第1页共5页B卷南京工业职业技术学院2007/2008第一学期期末考试试卷课程:《C语言程序设计》一、选择题(每题2分,共50分)1、若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是。A)++x,y=x—B)x+1=yC)x=x+10=x+yD)double(x)/102、若有定义intx,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++):(y++)中的条件表达式(x-y)等价的是。A)(x-y0)B)(x-y0)C)(x-y0‖x-y0)D)(x-y==0)3、若有以下程序段,其输出的结果是。inta=0,b=0,c=0;c=(a-=a-5),(a=b,b+3);printf(“%d,%d%d\n”,a,b,c);A)0,0,10B)0,0,5C)-10,3,-10D)3,3,-104、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=‘A’+‘6’-‘3’;后,c2中的值为______。A)DB)68C)不确定的值D)C5、一个用C语言编写的源程序中,______是必不可少的。A)取名为main的函数定义B)#includestdio.hC)变量声明D)注释6、已知字符A的机内编码为65,则执行下列函数调用语句时,不能输出字符B的是_____。A)putchar(‘B’)B)putchar(“B”)C)putchar(66)D)putchar(‘\x42’)7、把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是。A)k%2B)k%2==1C)(k%2)!=0D)8、设有“inta;”,以下不能正确表达数学关系10a15的表达式是____。A)10a15B)a==11||a==12||a==13||a==14C)a10&&a15D)!(a=10)&&!(a=15)9、以下关于if语句的错误描述是_____。A)条件表达式可以是任意的表达式(B)条件表达式只能是关系表达式或逻辑表达式C)条件表达式的括号不可以省略D)与else配对的if语句是其之前最近未配对的if语句10、逻辑“异或”运算可描述为“axorb”,其中a和b为参加运算的两个操作数,运算结果为当且仅当a、b两个操作数中只有一个为真时才为真,其他情况下均为假。以下表达式中_____可以正确表示逻辑“异或”运算。A)a||bB)(a&&b)&&!(a||b)C)a&&bD)(a||b)&&!(a&&b)11、有字符数组s1[10]和s2[10],则以下正确的输入语句是_________。A)gets(s1,s2);B)scanf(%s,%s,s1,s2);C)gets(s1);gets(s2);D)scanf(%s,%s,&s1,&s2);12、设k为整型变量,则以下循环执行次数是_______。for(k=6;k4;)printf(“%d”,k--);A)0B)1C)2D)死循环第2页共5页B卷13、以下叙述正确的是。A)do_while语句构成的循环不能用其他语句构成的循环来代替。B)do_while语句构成的循环只能用break语句退出。C)用do_while语句构成循环时,只有在while后的表达式为非零时结束循环。D)用do_while语句构成循环时,只有在while后的表达式为零时结束循环。14、以下程序的运行结果是_____。main(){intm=5;if(m++5)printf(“%d\n”,m);elseprintf(“%d\n”,m--);}A)4B)5C)6D)715、以下程序段的输出结果是。main(){inti;for(i=1;i=5;i++){if(i%2)printf(“*”);elsecontinue;printf(“#”);}printf(“$\n”);}A)*#*#*#$B)#*#*#*$C)*#*#$D)#*#*$16、若要求从键盘读入含有空格字符的字符串,应使用函数。A)getc()B)gets()C)getchar()D)scanf()17、有以下程序,程序运行后的输出结果是。printf(%d%d\n,sizeof(p),sizeof(q));A)44B)33C)34D)4318、有以下程序main(){inti,t[][3]={9,8,7,6,5,4,3,2,1};for(i=0;i3;i++)printf(%d,t[2-i][i]);}程序执行后的输出结果是A)753B)357C)369D)75119、有以下程序main(){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++7)if(p[i]%2)j+=p[i];printf(%d,j);}程序运行后的输出结果是第3页共5页B卷A)42B)45C)56D)6020、在以下给出的表达式中,与while(E)中的(E)不等价的表达式是。A)(!E==0)B)(E0‖E0)C)(E==0)D)(E!=0)21、设有变量声明“charc;”,执行“for(;c=(getchar()!=’\n’);)printf(“%c”,c);”时,从键盘上输入“ABCDEFG”回车之后,输出的结果是。A)ABCDEFGB)AABBCCDDEEFFGGC)非字母数字字符D)语句不能执行22、当需要定义一个函数时,以下标识符中______不能用作函数名。A)scanfB)forC)_sumD)F223、以下程序的输出结果是。main(){intn[2]={0},i,j,k=2;for(i=0;ik;i++)for(j=0;jk;j++)n[j]=n[i]+1;printf(“%d\n”,n[k]);}A)不确定的值B)3C)2D)124、以下对一维整型数组a的正确说明是_____。A)inta(10);B)intn=10,a[n];C)intn;scanf(“%d”,&n);D)#defineSIZE10inta[n];inta[SIZE];25、inta=2,b=4,c=3,d=1;执行下列程序段后,x的值为if(ab)if(cd)x=12;elseif(ac)if(bd)x=13;elsex=14;elsex=15;elsex=16;A)15B)13C)12D)14二、填空题(每空1分,共15分)1、C语言中的标识符可分为、和三类。2、C语言中的逻辑运算符按优先级别是、、。3、复合语句在语法上被认为是。空语句的形式是。4、在程序中需要调用库函数sqrt时必须包含头文件。5、在循环语句中通常都包含一个“循环条件表达式”,该表达式的值决定是否执行下一次循环。在C语言的循环语句中,“循环条件表达式”可缺省的语句是。6、执行以下程序段后,b[0]、b[1]、b[2]的值为______________。intb[3]={0,1,2};b[2]=b[(b[0]=2)+b[1]-1]-2;7、关键字case和default只能在语句中出现。8、若有说明“inta[][4]={1,2,3,4,5,6,7,8,9};”,则数组a第一维的大小是___。9、若有声明“inti=7;floatx=3.1416;doubley=3;”,表达式i+’a’*x+i/y值的类型是型。10、已知程序中有声明“inta;longb;”,若需要接收从键盘输入的电话号码字符串01064782656(其中010是区号,64782656是电话号码),并将其中的区号、电话号码分别存储到变量a,b中,则实现该功能的输入语句应为“scanf(“”,&a,&b);”第4页共5页B卷三、阅读程序题(每题4分,共20分)1、给出下面程序的运行结果:main(){intsum=0,i;for(i=1;i=10;i+=2)sum+=i;printf(“sum=%d\n”,sum);}2、给出下面程序的运行结果:main(){inti,j,a[][3]={1,2,3,4,5,6,7,8,9};for(i=0;i3;i++)for(j=i+1;j3;j++)a[j][i]=0;for(i=0;i3;i++){for(j=0;j3;j++)printf(&d,a[i][j]);printf(\n);}}3、给出下面程序的运行结果:main(){inta=1,b;for(b=1;b=10;b++){if(a=8)break;if(a%2==1){a+=5;continue;}a-=3;}printf(%d,b);}4、以下fun函数的功能是将一个字符串的内容颠倒过来,请填空。#include“string.h”voidfun(charstr[]){inti,j,k;for(i=0,j=;ij;i++,){k=str[i];str[i]=str[j];str[j]=k;}5、以下程序的功能是:从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入,请填空。main(){floatx,amax,amin;scanf(“%f”,&x);amax=x;amin=x;while(){if(xamax)amax=x;if()amin=x;第5页共5页B卷scanf(“%f”,&x);}printf(“\namax=%f\namin=%f\n”,amax,amin);}四、编程题(15分)1、把100-200之间的不能被3整除的数输出。2、用冒泡法对10个整数排序。一、选择题1-5AABAA6-10BDABD11-15BCDCA16-20BCBBC21-25CBCDA二、填空题1.关键字预定义标识符用户标识符2.!&&||3.一条语句{;}4.include“math.h”5.for6.2107.switch8.39.double10.%d%ld三、阅读程序题1.252.1230560093.44.n-1j--