C语言模拟试卷 (6)
.
5. 以下程序段不是死循环的是( ) (2分) A.int i=100; while(1) { i=i%100+1; if(i>100) break; } B.for(;;) ; C.int k=0; do{++k;} while(k D.int s=36; while(s); --s; 标准答案:C
.
12. 当把下面4个表达式用做if语句的控制表达式时,有一个选项与其他3 个选项含义不同,这个选项是() (2分) A.k%2 B.k%2==1 C.(k%2)!=0 D.!k%2==1 标准答案:D
.
13. 下列数据类型中不属于构造类型的是( ) (2分) A.数组型 B.结构型 C.共用型 D.枚举型 标准答案:D
.
29. 下面合法的语句是( ) (2分) A.int A=8,B; B=++A++; printf("%d,%d",A,B++); B.int A; printf("\\"%d\\"",scanf("%d",&A)); C.char A; scanf("%c",&A); char B=scanf("B=%c",&B); D.char C=getchar( ); putchar((int)C); 标准答案:D
} } (2分) 标准答案:1. 8921;
.
3. 阅读下述程序 #include <stdio.h> #define N 10 main() { int i,j,k,u; int a[N]; for (i=0;i<N;i++) scanf("%d",&a[i]); for (i=1;i<N;i++) for (j=0;j<i;j++) if (a[j]<a[i]) { u=a[i]; for (k=i-1;k>=j;k--) a[k+1]=a[k]; a[j]=u; } for (i=0;i<N;i++) { printf("%5d",a[i]); if ((i+1)%5==0) printf("\n"); } } 在执行该程序时,设输入 2 74 30 17 101 81 96 35 28 19 请写出输出结果 ________________________________________________________________________ (2分) 标准答案:1. 101 96 81 74 35 30 28 19 17 2;
{ char s[100]; int c, i; scanf("%c",&c); scanf("%d",&i); scanf("%s",s); printf("%c,%d,%s \n",c,i,s); (2分) A.123,456,789 B.1,456,789 C.1,23,456,789 D.1,23,456 标准答案:D
case 2+1: printf("**\n"); } D.switch(a+b) { case 1: printf("*\n") case c: printf("**\n"); } 标准答案:C
.
22. 以下各选项中,均是C语言保留字的组是() (2分) A.integer、floa、double B.if、else、switCh C.struct、union、enum D.auto、static.、externa 标准答案:C
总共42题共100分
一、单选题 (共30题,共60分)
1. 下面程序段的输出结果是() char c='A'; int k=0; do { switch(c++) { case 'A': k++;break; case 'B': k--; case 'C': k+=2;break; case 'D': k%=2;continue; case 'E': k*=10;break; default: k/=3; } k++; }while(cprintf("k=%d",k); (2分) A.k=3 B.k=4 C.k=2 标准答案:B
.
18. 设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小 数点后两位,并将第三位四舍五入的是() (2分) A.x=x*100+0.5/100.0; B.x=(x*100+0.5)/100.0; C.x=(int)(x*100+0.5)/100.0 D.x=(x/100+0.5)*1=0
2. 表达式3+(!(4 A.3 C.错误的表达式 标准答案:A
.
B.4 D.5
3. 在C语言中,回车换行符是() (2分) A.'\n' B.'\t' C.'\v' D.'\b' 标准答案:A
.
4. 设a,b,c,d军事 int 型变量,为了使以下程序输出为:1234+123+12+1, 正确的输入形式应当为()。 scanf("%4d+%3d+%2d+%1d",&a,&b,&c,&d); printf("%4d+%3d+%2d+%1d",a,b,c,d); (2分) A.1234123121 B.1234123412341234 C.1234+1234+1234+1234 D.1234+123+12+1 标准答案:D
.
19. 下列符号中,可以作为变量名的事()。 (2分) A.+a B.12345e C.a3B D.5e+013 标准答案:C
.
20. 以下选项中,不能作为合法常量的是() (2分) A.1.234e04 B.1.234e0.4 C.1.234e+4 D.1.234e0 标准答案:B
.
21. 若有定义"float x=1.5;int a=1,b=3,c=2;",则正确的switch语句是() (2分) A.switch(x) { case 1.0: printf("*\n"); case 2.0 printf("**\n"); } B.switch((int)x) { case 1.0: printf("*\n"); case 2.0 printf("**\n"); } C.switch(a+b) { case 1: printf("*\n");
.
6. 设有定义:int n,*k=&n;以下语句将利用指针变量k读写变量n中的内 容,请将语句补充完整。 scanf("%d", ____); (2分) 标准答案:1. k;
.
7. 设有以下程序: main() { int n1,n2; scanf("%d",&n2); while(n2!=0) { n1=n2%10; n2=n2/10; printf("%d",n1); } } 程序运行后,如果从键盘上输入1298;则输出结果为 ________________。 (2分) 标准答案:1. 8921;
.
D.42,40
10. 语句:printf("%d \n",12 &012);的输出结果是( ) (2分) A.12 B.8 C.6 D.012 标准答案:B
.
11. 下列程序中格式错误的是() (2分) A.main() B.int a,b,z; C.a=2:b=3; D.z=a+b,y=7; 标准答案:C
.
25. 设k和x均为int型变量,且k=7,x=12,则能使值为3的表达式是() (2分) A.x%=(k%=5) B.x%=(k-k%5) C.x%=k-k%5 D.(x%=k)-(k%=5) 标准答案:D
.
26. 以下程序输出的结果为( ) main( ) {int i=0,sum=0;
while(i { i++; if (i==2||i==4) continue; sum=sum+i; } printf("%d",sum); } (2分) A.15 B.13 标准答案:A
.
D.x=12
16. 若x为float型变量,则以列程序段结果是( )。 x=1234.6789; printf("%-2.1f",x); (2分) A.输出格式描述符的域宽度不够,不能输出 B.输出为1234.7
C.输出为1234.6 D.输出为-1234.6 标准答案:B
.
17. 下列运算符中运算级最高的是()。 (2分) A.> B.+ C.&& D.!= 标准答案:B
.
23. 以下叙述中错误的是() (2分) A.语句标号是由合法的标识符后面加一个冒号构成 B.goto语句的作用是把程序的执行转向语句标号所在的位置 C.goto语句必须与语句标号在同一个函数内 D.结构化程序设计主张使用goto语句,使用goto语句的程序可读性强 标准答案:D
.
24. 以下程序段的输出结果是() int x=0,y=5,z=3; while(z-->0&&++x<5) y=y-1; printf("%d,%d,%d\n",x,y,z); (2分) A.3,2,0 B.3,2,-1 C.4,3,-1 D.5,-2,-5 标准答案:B