当前位置:文档之家› c语言设计基础

c语言设计基础

#include <stdio.h>void main(){int k,t,i,a[7];for(i=0; i<7; i++) /*输入7个整型数据,存入数组a*/scanf("%d", &a[i]);for(k=0; k<7; k++)printf("%4d", a[k]); /*输出原数组中的元素*/printf("\n");i=7;for(k=0; k<=i/2-1; k++) /*逆序存储*/{ t=a[k]; a[k]=a[i-1-k]; a[i-1-k]=t; }for(k=0; k<7; k++) /*输出数组*/printf("%4d", a[k]);printf("\n");}一.选择题(每题2分,共15题,计30分)1.下列关于C语言用户标识符的叙述中正确的是()A.用户标识符中可以出现下划线和中划线(减号)B.用户标识符中不可以出现中划线或空格符,但是可以出现下划线C.用户标识符中可以出现下划线,但是不可以放在用户标识符的开头D.用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头2.在C语言中,不正确的int类型的常数是()A.32768 B.0 C.037 D.0xAF3.字符串”ABC”在内存中占用的字节数是()A.3 B.4 C.6 D.84.运行以下程序,输出是()main( ){ int k=-3;if(k<=0)printf("****\n");elseprintf("&&&&\n");}A.**** B.&&&& C.####&&&& D.有语法错误不能通过编译5.以下程序段的输出结果是()int i,j,m=0;for(i=1;i<=15;i+=4)for(j=3;j<=19;j+=4)m++;printf("%d\n",m);A.12 B.15 C.20 D.256.以下叙述正确的是()A.C语言中不能使用do-while-语句构成的循环B.do-while语句构成的循环必须用break语句才能退出C.do-while语句构成的循环,当while后圆括号内的表达式值为非零时结束循环D.do-while语句构成的循环,当while后圆括号内的表达式值为零时结束循环7.以下程序段的输出结果是()int x=3;do {printf("%3d",x-=2); }while(!(--x));A.1 B.3 0 C.1 -2 D.死循环8.合法的数组定义是()A.int a[ ]= "string";B.int a[5]={0,1,2,3,4,5};C.char a="string";D.char a[]={'0','1','2','3','4','5'};9.语句printf("%d\n",strlen("ats\n012\1\\");的输出结果是()A.11 B.10 C.9 D.810.设指针x指向的整型变量值是25,则printf("%d\n",++*x);的输出量是()A.23 B.24 C.25 D.2611.设有定义语句”int (*ptr)[ 10 ];”,其中的ptr是()A.10个指向整型变量的指针B.指向10个整型变量的函数指针C.一个指向具有10个元素的一维数组的指针D.具有10个指针元素的一维数组12.以下说法正确的是()A.C语言程序总是从第一个定义的函数开始执行B.在C语言程序中,要调用的函数必须在main()函数中定义C.C语言程序总是从main()函数开始执行,并在main()中结束D.C语言程序中的main()函数必须放在程序的开始部分13.函数调用语句f((e1,e2),(e3,e4,e5))中参数的个数是()A.1 B.2 C.4 D.514.函数定义过程中,如果缺省了函数的数据类型,函数默认为()A.void B.float C.int D.无15.以下程序的输出结果是()void sub( float x, float *y, float *z){ *y = *y-1.0;*z = *z+x;}main( ){ float a=2.5, b=9.0, *pa,*pb;pa=&a;pb=&b;sub(b-a, pa,pb);printf("%f\n",a);}A.9.000000 B.1.500000 C.8.000000 D.10.500000二.填空题(每空2分,共15空,计30分)1.若a为int类型,且值为3,执行完表达式a+=a-=a*a后a的值是______2.以下程序输出的结果是________main( ){ int k=17;printf("%d,%o,%x",k,k,k);}3.若已知a=10,b=20,则表达式!a<b的值为______4.结构化程序设计规定的三种基本结构是顺序结构,_______结构和循环结构。

5.在C语言中,break语句只能出现在循环结构和________结构中6.如果在程序中用到“strlen()”函数时,应在程序的开头处打开包含文件,格式是__________7.有如下的定义,float wr[10],相应元素的上限(下标)值为_____8.有定义语句:float a[10],*p; p=a; p=p+6; 问指针p一共移动了______字节9.定义如下:int a[10], *p,*q; p=a; q= &a[7]; q-p相差几个元素________10.设有定义语句:static int a[3][4]={{1},{2},{3}};则a[1][1]的值为_____11.以下程序输出的结果是_____main( ){ int i , x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++) printf("%d ",x[i][2-i]);}12.有以下定义,那么*(*(p+2)+1)的值是_______int a[3][2]={10,20,30,40,50,60},(*p)[2];p=a;13.有以下定义,则p[1][1]的值是_____int w[3][4]={{0,1},{2,4},{5,8}},(*p)[4]=w;14.函数具有返回语句return,但是return返回的数据类型与函数的数据类型不一致,这时返回值类型是____________________15.函数调用时,参数结合一般有两种形式,一种是传值,另一种是________三.程序分析题(每题4分,共20分)1.阅读下列程序,写出程序的输出结果main( ){ int x=100 , a=10, b=20, ok1=5,ok2=0;if (a<b) if (b!=15) if(!ok1) x=1;else if( ok2 ) x=10;else x= -1;printf("%d\n",x);}运行结果是______2.写出以下程序的功能________________________________ main( ){ int i , j;float a[3][3],b[3][3],x;for(i=0;i<3;i++)for(j=0;j<3;j++){ scanf("%f", &x); a[i][j]=x;}for(i=0;i<3;i++)for(j=0;j<3;j++)b[j][i]=a[i][j];for(i=0;i<3;i++){ printf(“\n”);for(j=0;j<3;j++)printf("%f",b[i][j]);}}3.分析以下程序,写出程序的输出结果main( ){char *a[6]={ "ab","cd","ef","gh","u","kl"};int i;for(i=0;i<6;i++)printf("%s",a[i]);printf("\n");}输出结果:______________________________________ 4.分析函数,写出函数的功能ch(int *p1,int *p2){ int p;if(*p1>*p2){ p=*p1; *p1= *p2; *p2=p; }}函数的主要功能是_______________________________ 5.分析函数,写出函数的功能float av(float a[ ],int n){int j;float s=0;for(j=0;j<n;j++)s= s+a[i];return s/n;}函数的主要共是___________________________________ 四.程序设计题(每题10分,共20分)1.有36块砖,36人搬,男人一次搬4块,女人一次搬3块,两个小孩一次抬1块,要求一次搬完,问男人,女人和小孩各有多少人?2.从100~999中找出各位上的数字的立方和等于1099的所有数存放到数组中,然后再从数组中将这些数输出。

相关主题