C程序设计试卷一、判断题(每题1分,共10分)1、一个C源程序必须包含一个main函数。()2、在对一个C程序进行编译的过程中,可以发现注释中的拼写错误。()3、C程序中的关键字必须小写,其他标识符不区分大小写。()4、关于if语句中,条件表达式只能是关系表达式或逻辑表达式。()5、在程序运行过程中,系统分配给实参和形参的内存单元是相同的。()6、C语言中定义的数组,编译系统为其数组元素在内存中是分配一片连续的存储单元。()7、C语言中字符型、整型、实型都能用八进制表示。()8、在C语言逻辑运算中,不等于0的数代表逻辑“真”。()9、如果函数值的类型与返回值类型不一致,以函数类型为准。()10、在定义二维数组时,可以将该数组的两个维数全部省略。()二、单项选择题(每题2分,共50分)1、下列合法的变量名是()A、floatB、3abcC、adg_56D、s#bc2、下列不合法的字符常量是()A、’\b’B、’xy’C、’z’D、’\124’3、若有inta=3,b=4,c=5;则表达式a+b%3/2*c的值为()A、3B、3.5C、5.5D、84、设floatm=4.0,n=4.0;使m为10.0的表达式是()A、m-=n*2.5B、m/=n+9C、m*=n-6;D、m+=n+25、如果a=1,b=2,c=3,d=4,则条件表达式a>b?a:cd?c:d的值为()A、1B、2C、3D、46、若变量已正确说明为float类型,要通过语句scanf(%f%f%f,&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是()A、10回车22回车33回车B、10.0,22.0,33.0回车C、10.0回车22.0空格33.0回车D、10空格22回车33回车7、将两个字符串s1和s2连接起来,正确的函数为()A、strcpy(s1,s2)B、strcat(s1,s2)C、strcmp(s1,s2)D、strlen(s1,s2)8、已知x=90,ch=’b’,y=0;则表达式(x!y&&ch’B’&&!y)的值为()A、1B、0C、trueD、语法错误9、以下程序的输出结果是()A、1,5,9B、1,4,7C、3,5,7D、3,6,9main(){inti,x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i3;i++)printf(%d,,x[i][2-i]);}10、以下程序段执行后,a的值和输出结果分别为()inta=8,b=4;printf(“%d”,(a=a+b,b=b*4,a+b));A、1216B、1228C、2828D、121211、有以下程序段,while循环体执行的次数是()intk=1;while(k=1)k++;A、执行1次B、有语法错,不能执行C、执行0次D、无限次12、执行以下程序,程序运行后,如果从键盘上输人-10,则输出结果是()A、-9B、-10C、-11D、无输出main(){intx;scanf(“%d”,&x);if(x=10)printf(“%d”,x--);elseprintf(“%d”,x++);}13、设有定义:inta=2,b=3,c=4;,则以下选项中值为0的表达式是()A、(!a==1)&&(!b==0)B、(ab)&&!c||1C、a&&bD、a||(b+b)&&(c-a)14、设a是int型变量,f是float型变量,则表达式a+65+’b’+f*f值的数据类型为()A、intB、floatC、doubleD、不确定15、下面程序段的运行结果是()intn=0;while(n++=2);printf(%d,n);A、2B、3C、4D、有语法错16、算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为()A、算术运算、赋值运算、关系运算B、算术运算、关系运算、赋值运算C、关系运算、赋值运算、算术运算D、关系运算、算术运算、赋值运算17、以下程序执行后输出的值是()A、6,3B、6,4C、0,3D、0,4main(){inti,sum=0;for(i=1;i4;i++)sum*=i;printf(“%d,%d\n”,sum,i);}18、以下程序段运行后,输出结果为()intx=1;dox=x+1;while(!x);printf(“%d\n”,x);A、1B、2C、0D、错误19、以下程序输出结果是()main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;}printf(“a=%d,b=%d”,a,b);}A、a=1,b=0B、a=2,b=1C、a=1,b=1D、a=2,b=220、以下C程序正确的运行结果是()main(){inty=2456;printf(“%8d,%-8d”,y,y);}A、□□□□2456,2456□□□□B、2456,2456C、2456□□□□,□□□□2456D、2456□□□□,2456□□□□21、设charb[20];若从键盘输入字符串“spkaoshi”,则正确的函数引用是()A、scanf(“%s”,b);B、scanf(“%c”,&b[10]);C、get(b);D、gets(b[10]);22、下列表达式的值为0的是()A、7/8B、7%8C、7/8.0D、7823、#includestdio.hmain(){inta,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(%d,%d\n,a,b);}A、6,1B、2,1C、6,0D、2,024、下列()循环不是无限循环。A、for(y=0;x=1;++y);B、for(;;x=0);C、while(x=1){x=1;}D、for(y=0,x=1;x++y;x++);25、以下程序的输出结果是()A、0B、29C、31D、无定值fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31;fun(5,2,a);printf(%d,a);}三、填空题(每空2分,共20分)1、表达式4.5+3/2的计算结果是______2、在C语言中,二维数组元素在内存的存放顺序是______3、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式为4、下面是实现打印九九乘法表的程序,请在画线的位置填上适当的语句,使程序(段)完整。main(){inti,j,k;for(i=1;_______;i++){for(j=1;_______;j++)printf(“%d*%d=%d”,i,j,i*j);________}}5、以下程序的作用是将两个数从小到大输出,请填空:main(){floata,b,t;scanf(“”,&a,&b);if(ab){t=a;;b=t;}printf(“Thenumsmalltobig:%f%f”,a,b);}6、从键盘上输入10个数,求其平均值。main(){inti;floatf,sum;for(i=1,sum=0.0;i11;i++){;;}printf(“average=%f\n”,sum/10);}四.程序设计题(每题10分,共20分)1、有一个函数:10113101121xxxxxxy编写程序,输入x,输出y值2、从键盘输入二维数组a[4][4]中各元素的值,并选出各行最大的元素组成一个一维数组b[4],并输出该数组。参考答案一判断题(每题1分,共10分)12345678910√××××√×√√×二单项选择题(每题2分,共50分)12345678910CBADCBBACB11121314151617181920DBACCBDBBA2122232425AABDC三填空题(每题两分,共20分)1.5.52.先行后列/按行存放3.单向值传递4.i=9、j=i、printf(“\n”);5.%f,%f(%f%f/a=%f,b=%f)、a=b6.scanf(“%f”,&f);、sum=sum+f/sum+=f四程序设计题(每题10分,共20分)1.#includestdio.hmain(){intx,y;scanf(%d,&x);if(x1)y=x;elseif(x10)y=2*x-1;elsey=3*x-11;printf(x=%d,y=%d\n,x,y);}2.#includestdio.hmain(){inta[4][4],b[4],max;inti,j;for(i=0;i4;i++)for(j=0;j4;j++)scanf(%d,&a[i][j]);for(i=0;i4;i++){max=a[i][0];for(j=0;j4;j++)if(maxa[i][j])max=a[i][j];b[i]=max;}for(i=0;i4;i++)printf(%d,,b[i]);