总共42题共100分
一、单选题 (共30题,共60分)
1. 有以下程序 #include “stdio.h” main()
{ printf(\
程序运行后的输出结果是() (2分) A.0 B.1
C.-1 D.NULL没定义,出错 标准答案:A
2. 下列符号串中,合法的十进制整型常量是( ) (2分) A.09876 B.0x9876 C.9876*e4 D.-9876 标准答案:D
3. 有以下程序
#include
int x,i;
for (i=1;i<=50;i++) { x=i;
if (++x%2==0) if (x%3==0) if (x%7==0) printf(\ }
printf(\ }
执行此程序的输出结果是( ) (2分)
A.28 B.27 C.42 D.41 标准答案:D
4. #include
{ char c1='A', c2='Y';
printf(\ (2分) A.A,Y
B.65,65 C.65,90
D.65,89 标准答案:D
5. 以下各项中非法的语句标号是() (2分) A.flag: B.INT: C.3d: D.h_r_e: 标准答案:C
6. 以下程序运行后的输出结果是() int f1(int x,int y) {
return x>y?x:y; }
int f2(int x,int y) {
return x>y?y:x; }
main() {
int a=4,b=3,c=5,d,e,f; d=f1(a,b);d=f1(d,c); e=f2(a,b);e=f2(e,c); f=a+b+c-d-e;
printf(\
} (2分)
A.3,4,5 B.5,3,4 C.5,4,3 D.3,5,4 标准答案:C
7. 以下选项中,不能作为合法常量的是() (2分) A.1.234e04 B.1.234e0.4 C.1.234e+4 D.1.234e0 标准答案:B
8. 下列关于单目运算符++,--的叙述中正确的是() (2分) A.它们的运算对象可以是任何变量和常量
B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量 C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量 D.它们的运算对象可以是char型变量、int型变量和float型变量 标准答案:D
9. 下列语句中错误的是() (2分) A.x=sizeof(int); B.x=sizeof(3.14);
C.printf(“%d”,a=a+1,b--,c+1); D.printf(“%d”,++x,x++); 标准答案:B
10. 以下不能定义为用户标识符的是() (2分) A.Main B._0 C._int D.sizeof 标准答案:D
11. 语句printf(\的输出结果是( ) (说明:'\\b'是退格符) (2分)
A.a\\bre\\'hi\\'y\\\\\\bou B.a\\bre\\'hi\\'y\\bou C.re'hi'you D.abre'hi'y\\bou 标准答案:C
12. 执行以下一段代码后,变量a,b,c的值分别是( ) int x=10,y=9; int a,b,c;
a=(--x==y++)?--x:++y; b=x++;
c=y; (2分)
A.a=9,b=9,c=9 B.a=8,b=8,c=10 C.a=9,b=10,c=9 D.a=1,b=11,c=10 标准答案:B
13. 以下for循环语句( )。 for(;;)
printf(\(2分)
A.判断循环结束的条件不合法 B.是无限循环 C.循环一次也不执行 D.循环只执行一次 标准答案:B
14. 以下叙述中错误的是() (2分) A.用户所定义的标识符允许使用关键字
B.用户所定义的标识符应尽量做到“见名知意” C.用户所定义的标识符必须以字母或下划线开头
D.用户定义的标识符中,大小写字母代表不同的标识 标准答案:A
15. 以下程序运行后的输出结果是() main() { int a;
char c=10; float f=100.0; double x;
a=f/=c*=(x=6.5);
printf(\
} (2分) A.1 65 1 6.5 B.1 65 1.5 6.5 C.1 65 1.0 6.5 D.2 65 1.5 6.5 标准答案:B
16. 假设A,B变量均为整型,则表达式(A=2,B=5,B++,A+B)的值是( ) (2分) A.7 B.8 C.6 D.2 标准答案:B
17. 在ASCII代码表中可以看到每一个小写字母比它相应的大写字母的ASCII吗() (2分) A.大32 B.大26 C.小32 D.小26 标准答案:A
18. 执行下面程序段,给x、y赋值时,不能作为数据分隔符的是( ) int x,y;
scanf(\(2分)
A.空格 B.TAB键 C.回车 D.逗号 标准答案:D
19. 若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值“假”,则以下不能满足要求的表达式是()。 (2分)
A.A%2==1 B.!(a%2==0) C.!(A%2) D.A%2 标准答案:C
20. 下述描述中不正确的是( )。 (2分) A.字符型数组中可以存放字符串
B.可以对字符型数组进行整体输入、输出 C.可以对整型数组进行整体进行输入、输出
D.不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值 标准答案:C
21. 算法具有5个特性,以下选项中不属于算法特性的是() (2分) A.有穷性 B.简洁性 C.可行性 D.确定性 标准答案:B
22. 以下叙述中正确的是() (2分) A.掌握了C语言就能够编程
B.学习C语言程序设计必须学习算法 C.算法是一种抽象的东西,无法进行描述
D.学习程序设计的主要方法是“背”,应当背语法、背程序 标准答案:B
23. C语言中,整数-8在内存中的存储形式是( )。 (2分) A.1111,1111,1111,1000 B.1000,0000,0000,1000 C.0000,0000,0000,1000 D.1111,1111,1111,0111 标准答案:A
24. int i=65536; printf(\
上面程序语句在VC6.0下编译后运行结果为() (2分) A.65535 B.0 C.65536 D.1 标准答案:C
25. 以下叙述中正确的是() (2分)
A.C语言可以用来编写系统软件,也可以用来编写应用软件 B.函数体只由定义部分和初始化部分组成 C.C程序的每一行只能写一条语句
D.对一个C程序进行编译的过程可以发现注释中的拼写错误 标准答案:A
26. 以下程序的输出结果是() #include
main() {
printf(\ } (2分)
A.不确定 B.0 C.–1 D.1 标准答案:B
27. 有以下程序: main() {
int i=1,j=2,k=3;
if(i++==1&&(++j==3||k++==3)) printf(\}
程序运行后的输出结果是() (2分) A.1 2 3 B.2 3 4 C.2 2 3 D.2 3 3 标准答案:D
28. 以下程序段的输出是() int i=0,a=0; while(i {
for(;;) {
if((i)==0) break; else i--; }
i+=11;a+=i; }
printf(\(2分)
A.21 B.32 C.33 D.11 标准答案:B
29. 表达式10!=8的值为()。 (2分)
A.ture B.非零值 C.0 D.1 标准答案:D
30. 以下能正确定义且赋初值的语句是() (2分) A.int n1=n2=10; B.char c=32; C.float f=f+1.1; D.double x=12.3E2.5; 标准答案:B
二、填空题 (共10题,共20分)
1. 写出下列程序的运行结果____________________________________________________________。 #include
int i,j,k;
for( i=0;i<5;i++) {
for(j=0;j
(2分)
标准答案:1. ***** ***** ***** ***** *****;
2. 设有字符型变量x的值是'1'(对应二进制数是00110001),要通过“x^y”运算,使得x的高3位不变,低5位取反,y的值用二进制数来表示应为________________________________. (2分) 标准答案:1. 00011111;
3. 在循环中,continue语句与break语句的区别是
________________________________________________________________________________________________________________________________________________________________________________________________________________________ (2分)
标准答案:1. 结束本次循环,后进行循环的条件判定,即不终止整个循环的执行过程;终止整个循
环的执行,不再进行条件判定;
4. 设有变量说明语句 int x=1,y=2;
则执行下述printf语句的输出结果是________________________________。 printf(\(2分) 标准答案:1. 1.000000;
5. 循环的嵌套是指________________________________________________________________________ (2分) 标准答案:1. 一个循环体内包括另一个完整的循环结构;
6. 阅读下述程序 #include
int i,j,k,u; int a[N];
for (i=0;i
for (k=i-1;k>=j;k--) a[k+1]=a[k]; a[j]=u; }
for (i=0;i printf(\ if ((i+1)%5==0) printf(\ } } 在执行该程序时,设输入 2 74 30 17 101 81 96 35 28 19 请写出输出结果 ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________。 (2分) 标准答案:1. 101 96 81 74 35 30 28 19 17 2; 7. 设有定义\,b=10;\,则执行语句\<<2+1;\后a的值________。 (2分) 标准答案:1. 80; 8. 设有定义:int n,*k=&n;以下语句将利用指针变量k读写变量n中的内容,请将语句补充完整。 scanf(\(2分) 标准答案:1. k; 9. 以下程序运行后的输出结果是________。 main() { int i=10, j=0; do { j=j+i; i-; while(i>2); printf(\ } (2分) 标准答案:1. 52; 10. 已知字符A的ACSII码值为65,以下语句的输出结果是________________ char ch='B'; printf(\(2分) 标准答案:1. B,66; 三、程序设计题 (共2题,共20分) 1. 编程序从键盘上输入一个字符串(长度小于或等于80),分别统计其中的字母、数字和其他字符的数目。本题要求用指向数组首地址的指针变量来处理字符串中的字符。 (10分) 标准答案:参考答案内容: main() { char s[81],*p=s; int c1,c2,c3; c1=c2=c3=0; scanf(\,s); while(*p!='\0') { if((*p>='a')&&(*p c1++; else if((*p>='A')&&(*p<='Z')) c1++; else if((*p>+'0')&&(*p c2++; else c3++; p++; } printf(\\n\, c1,c2,c3); } 2. 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? (10分) 标准答案:main() { long f1,f2; int i; f1=f2=1; for(i=1;i{ printf(\ if(i%2==0) printf(\控制输出,每行四个*/ f1=f1+f2; /*前两个月加起来赋值给第三个月*/ f2=f1+f2; /*前两个月加起来赋值给第三个月*/ } }