重庆理工大学C语言程序设计预赛(考试时间90分钟,满分100分)一、单选题(共60小题,每题1分,共60分)1. 执行下列程序中的输出语句后,x的值是______。
(知识点3.10)main(){int x ;printf(“%d\n”,(x=5*6,x*2,x+20));}A)30 B)60 C)50 D)802. 下列程序的输出结果是_______。
(知识点3.8)main(){int x=1,y=0,z;z=(x<=0)&&(y- ->=0);printf(“%d %d% d%\n”,z,x,y);}A)0 -1 -1 B)0 -1 0 C)0 1 0 D)0 1 -13. 在C语言中,下列选项属于合法的长整型常数的是_______。
(知识点3.3)A)0L B)1234567 C)0.0234567 D)3.14159e34. 下列选项中属于不正确的赋值语句的是_____。
(知识点3.6)A)t++; B)n1=(n2=(n3=0)); C)k=i= =j; D)a=b,c=1;5. 若有定义:int a,b;char x,y;并有以下输入数据: 14 22 XxYy (回车)则能给a赋整数14,给b赋整数22,给x赋字符x,给y赋字符y的正确程序段是________。
(知识点4.2)A) scanf(“%d %d”,&a,&b);x=getchar();y=getchar();B) scanf(“%d%d %c %c”, &a, &b,&x,&x,&y,&y);C) scanf(“%d %d %c%c%c %c”, &a,&b,&x,&x,&y,&y);D) scanf(“%d%d %c %c”, &a, &b,&x,&y);6. 下列转义字符不正确的是_______。
(知识点3. 5)A)’\\’ B)’\’ C)’\053’ D)’\0’7. 下列选项可作为C语言赋值语句的是_______。
(知识点4.2)A)x=3,y=5 B)a=b=6 C)i- -; D)y=int(x);8. 当c的值不为0时,下列选项中能正确将c的值赋给变量a、b的是_______。
(知识点5.2)A)c=b=a; B)(a=c)‖(b=c); C)(a=c)&&(b=c); D)a=c=b;9. 有以下程序:main(){ unsigned int a ;int b=-1;a=b;printf(“%u”,a);}该程序运行后的输出结果是_______。
(知识点4.5)A)-1 B)65535 C)32767 D)-3276810. 若x、b、m、n均为int型变量,执行下面语句后b的值为_______。
(知识点3.10)m=20;n=6;x=(- -m= =n++)?- -m:++n;b=m++;A)11 B)6 C)19 D)1811. 有以下程序:main(){ int a=111,b=222;printf(“%d\n”,a,b);}该程序运行后的输出结果是_______。
(知识点4.5)A)错误信息 B)111 C)222 D)111,22212. 以下程序的输出结果是_______。
(知识点4.5)main(){ int a=2,c=5;printf(“a=%%%d,b=%%%d\n”,a,c);}A) a=%2,b=%5 B) a=2,b=5 C) a=%%%d,b=%%%d D) a=%%d,b=%%d13. 对于浮点型变量f,能实现对f中的值在小数点后第三位进行四舍五入的表达式是_______。
(知识点3.8)A)f=(f*100+0.5)/100.0 B)f=(f*100+0.5)/100C)f=(int)(f*100+0.5)/100.0 D)f=(f/100+0.5)*10014. 设 a=5, b=6, c=7, d=8, m=2, n=2, 执行(m=a>b)&&(n=c>d) 后m,n的值为______。
(知识点5.2)A) 2,2 B) 2,0 C) 0,2 D) 0,015. 语句printf(“%d\n”,strlen(“asd\n\x12\1\\”));的输出结果是______。
(知识点7.3)A) 9 B) 11 C) 7 D) 816. 有以下程序:main( ){int y=1234;printf(“y=%6d”,y);printf(“y=%+06d\n”,y);}该程序的运行结果是______。
(知识点4.5)A) y= 1234y=001234 B) y= 1234y=+01234C) y=1234y=+01234 D) y= 1234y=123417. 语句:printf(“%d”, !9);的输出结果是______。
(知识点5.2)A) 0 B) 1 C) 有语法错误,不能执行 D) -918. 已有定义语句:int x=6,y=4,z=5;执行以下语句后,能正确表示x、y、z值的选项是______。
(知识点5.3)if(x<y)z=x;x=y ;y=z;A) x=4,y=5,z=6 B) x=4,y=6,z=6C) x=4,y=5,z=5 D) x=5,y=6,z=419. 下列选项中属于正确的switch语句的是______。
(知识点5.4)A)switch(1.0) B)swicth(1){ case 1.0 :printf(“A\n”); { case 1 :printf(“A\n”); case 2.0 :printf(“B\n”); } case 2 :printf(“B\n”);} C)switch((int)(1.0+2.5)) D)switch(“a”);{ case 1 :printf(“A\n”); { case “a”:printf(“A\n”); case 1+2 :printf(“B\n”);} case “b”:printf(“B\n”);} 20. 若k为int型变量,以下语句段执行后的输出结果是______。
(知识点5.3)k=-3;if(k<=0) printf(“####”)else printf(“****”);A) #### B) **** C) ####**** D) 有语法错误,不能执行21. 当a=2,b=3,c=4,d=5时,执行下面一段程序后x的值为_____。
(知识点5.3)if(a>b)if(c<d)x=1 ;elseif(a<c)if(b>d)x=2 ;else x=3 ;else x=4 ;else x=5 ;A)2 B)3 C)4 D)522. 下列程序的运行结果是________。
(知识点6.3)main(){ int y=10;do { y- - ;} while(- -y);printf(“%d\n”,y- -);}A)-1 B)1 C)8 D)023. 下列程序的运行结果是________。
(知识点6.5)# include <stdio.h>main(){int i ;for(i=1;i<=5;i++){ if(i %2)printf(“*”);else continue ;printf(“#”);}printf(“$\n”);}A)*#*#$ B)#*#*#*$ C)*#*#*#$ D)***#$ 24. 若x是int型变量,且有下面的程序片段:(知识点6.5)for(x=5;x<8;x++)printf((x%2)?(“**%d”):(“##%d\n”),x);该程序片段的输出结果是 _______。
A)**5##6 B)##5 C)##5**6##7 D)**5##6**7 **7 **6##725. 有以下程序:main(){int a=1,b=0;switch(a){ case 1:switch(b){ case 0:printf(“****”);break ;case 1:printf(“####”);break ; }case 2: printf(“$$$$”);break ; }该程序的输出结果是________。
(知识点5.4)A)**** B)****$$$$ C)****####$$$$ D) ####$$$$ 26. 下列程序段的输出结果是_______。
(知识点6.4)int x=3;do {printf(“%3d”,x-=2);}while(!(--x));A)1 B)3 0 C)1 -2 D)死循环27. 有以下程序,其中x、y为整型变量;for(x=0,y=0;(x<=1)&&(y= 1);x++,y--);printf(“x=%d,y=%d”,x,y);该程序的输出结果是_____。
(知识点6.5)A)x=2,y=0 B) x=1,y=0 C) x=1,y=1 D) x=0,y=028. 有以下程序段:int n=0,p;do { scanf(“%d”,&p);n++;} while(p!=12345&&n<3);此处do-while循环的结束条件是_____。
(知识点6.4)A)p的值不等于12345并且n的值大于3B)p的值等于12345并且n的值大于等于3C)p的值不等于12345或者n的值小于3D)p的值等于12345或n的值大于等于329. 在下述程序中,if (i>j) 语句共执行的次数是_____。
(知识点6.5)main(){ int i=0,j=10,k=2,s=0;for(;;){ i+= k ;if(i>j){ printf(“%d”,s);break ;}s+=i ;}}A)4 B)7 C)5 D)630. 以下程序的功能是:按顺序读入10名学生和4门课程的成绩,计算出每位学生的平均分进行输出,但运行结果不正确。
main(){ int n,k;float score,ave;ave=0.0;for(n=1;n<=10;n++){ for(k=1;k<=4;k++){ scanf(“%f”,&score);ave+=score/4 ;}printf(“NO%d:%f\n”,n,ave);}}造成程序计算结果错误的语句行是_____。
(知识点6.6)A)ave=0.0; B)for(n=1;n<=10;n++)C)ave+=score/4 ; D)printf(“NO%d:%f\n”,n,ave);31. 若有以下定义:char s[10]={‘a’,’b’,’c’,’0’,’\0’,’2’,’\x32’,’\0’};执行语句printf(“%d”,strlen(s));的结果是_____。