C语言第三章复习题及答案
- 格式:doc
- 大小:50.50 KB
- 文档页数:9
C语言复习题1
一、选择题
1. C语言提供的合法的数据类型关键字是(B)。
(A)Double (B)short (C)integer (D)Char
2. 在C语言中,合法的长整型常数是(A )。
(A)0L(B)4962710 (C)0.054838743 (D)2.1869e10
3. 若有说明和语句:
int a=5;
a++;
此处表达式a++的值是( C)。
(A)7 (B)6 (C)5 (D)4
4. C语言中最简单的数据类型包括(B )。(A)整型、实型、逻辑型 (B)整型、实型、字符型
(C)整型、字符型、逻辑型 (D)整型、实型、逻辑型、字符型
5. 以下说法中正确的是( C)。(A)C语言程序总是从第一个定义的函数开始执行
(B)在C语言程序中,要调用的函数必须在main()函数中定义
(C)C语言程序总是从main()函数开始执行
(D)C语言程序中的main()函数必须放在程序的开始部分
6. 在C语言中,要求运算数必须是整型的运算符是(A)。
(A) % (B) /(C) < (D) !
7. 以下有4个用户标识符,其中合法的一个是 ( C )。
(A) for (B) 4d (C) f2_G3 (D) short
8. 假定x和y为double型,则表达式x=2,y=x+3/2的值是(D )。
(A) 3.500000 (B) 3 (C) 2.000000 (D) 3.000000
9. 下面程序的输出是(C)。
(A) 0 (B) 1 (C) 3 (D) 不确定的值
main()
{ int x=10,y=3;
printf("%d\n",y=x/y);}
10. 执行下面程序中输出语句后,a的值是(C)。
(A) 65 (B) 20 (C) 15 (D) 10
main()
{int a;
printf("%d\n",(a=3*5,a*4,a+5));}
11. C语言提供的合法的关键字是(D)。
(A)Switch (B)cher(C)Case(D)default
12. 在C语言中,合法的字符常量是(B)。
(A)'\084' (B)'\x43'(C)'ab' (D)"\0"
13. 若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是(C)。
(A)1(B)2(C)2.0 (D)2.5
14. 以下叙述中错误的是(B)。
(A)算法正确的程序最终一定会结束
(B)算法正确的程序可以有零个输出
(C)算法正确的程序可以有零个输入
(D)算法正确的程序对于相同的输入一定有相同的结果
15. 若有以下程序片段:
char str[]="ab\n\012\\\"";
printf("%d",strlen(str));
上面程序片段的输出结果是(C)。 (A)3 (B)4(C)6 (D)12
16. 以下叙述中正确的是(B)。
(A) C语言的源程序不必通过编译就可以直接运行
(B) C语言中的每条可执行语句最终都将被转换成二进制的机器指令
(C) C源程序经编译形成的二进制代码可以直接运行
(D) C语言中的函数不可以单独进行编译
17. 下列不正确的转义字符是(C)。
(A)'\\' (B)'\" (C)'074' (D)'\0'
18. 若有以下定义:
char a; int b;
float c; double d;
则表达式a*b+d-c值的类型为(D)。
(A) float (B) int (C) char (D) double
19. 设a=1,b=2,c=3,d=4,则表达式:a
(A) 4 (B) 3 (C) 2 (D) 1
20. 设x为int型变量,则执行以下语句后,x的值为(B)。
x=10; x+=x-=x-x;
(A) 10 (B) 20 (C) 40 (D) 30
21. 设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为(C)。
(A) 4 (B) 16 (C) 32(D) 52
22. 设有如下的变量定义:
int i=8, k, a, b;
unsigned long w=5;
double x=1. 42, y=5.2;
则以下符合C语言语法的表达式是(A)。
(A) a+=a-=(b=4)*(a=3) (B) x%(-3);(C) a=a*3=2 (D) y=float(i)
23. 假定有以下变量定义:
int k=7,x=12;
则能使值为3的表达式是(D)。
(A) x%=(k%=5) (B) x%=(k-k%5) (C) x%=k-k%5 (D) (x%=k)-(k%=5)
24. 以下程序的输出结果是(D)。
main()
{ int a=12,b=12;
printf("%d,%d\n",- -a,+ +b);
}
(A) 10 10 (B) 12 12 (C) 11 10 (D) 11 13
25. 下列选项中,不能用作标识符的是(D)。
(A)_1234_ (B)_1_2 (C)int_2_ (D)2_int_
26. 以下所列的C语言常量中,错误的是( B )
(A) 0xFF (B) 1.2e0.5 (C) 2L (D) '\72'
27. 以下选项中属于C语言的数据类型是(C)。
(A) 复数型 (B) 逻辑型 (C) 双精度型 (D) 集合型
28. 在C语言中,不正确的int类型的常数是(A)。
(A)32768 (B) 0 (C) 037 (D) 0xaf
29. 以下选项中,与k=n++完全等价的表达式是( A )。
(A) k=n,n=n+1 (B) n=n+1,k=n (C) k=++n (D) k+=n+1
30. 以下程序的输出结果是( C )。
main()
{ int a=5,b=4,c=6,d; printf("%d\n",d=a>b?(a>c?a:c):(b));
}
(A) 5 (B) 4 (C) 6 (D) 不确定
31. 设有 int x=11; 则表达式 (x++ * 1/3) 的值是(A)。
(A) 3 (B) 4 (C) 11 (D) 12
32. 下列变量定义中合法的是 (A)。
(A) short _a=1.le-1; (B) double b=1+5e2.5;
(C) long do=0xfdaL; (D) float 2_and=1-e-3;
33. 以下程序的输出结果是(D )。
main()
{ int a=3;
printf("%d\n",(a+=a-=a*a) );
}
(A) -6 (B)12 (C) 0 (D) -12
34. 若变量已正确定义并赋值,下面符合C语言语法的表达式是(B)。
(A) a:=b+1 (B) a=b=c+2 (C) int 18.5%3 (D) a=a+7=c+b
35. C语言中运算对象必须是整型的运算符是(A)。
(A) %= (B) / (C) = (D) 〈=
36. 若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是(C)。
(A) 1 (B) 2 (C) 2.0 (D) 2.5
37. 若变量a、i已正确定义,且i已正确赋值,合法的语句是(B)。
(A) a==1 (B) ++i; (C) a=a++=5; (D) a=int(i);
38. 有如下程序
main(){ int y=3,x=3,z=1;
printf(“%d %d\n”,(++x,y++),z+2);
}
运行该程序的输出结果是(D)。
(A) 3 4 (B) 4 2 (C) 4 3 (D) 3 3
39. 设有说明语句:char a=’\72’;则变量a中(A)。
(A) 包含1个字符 (B) 包含2个字符 (C) 包含3个字符 (D) 说明不合法
40. 以下所列的C语言常量中,错误的是( B )。
(A) 0xFF (B) 1.2e0.5 (C) 2L (D) '\72'
41. 下列选项中,合法的C语言关键字是( D )。(A) VAR (B) cher (C) integer (D) default
42. 若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是( C )。(A) -3(B) 9 (C) -12 (D) 6
43. 以下选项中,非法的字符常量是( C)。(A) '\t' (B) '\17' (C)"n"(D) '\xaa'
44. 有以下程序
main()
{ int i=10,j=1;
printf("%d,%d\n",i--,++j);
}执行后输出结果是(B)。(A) 9,2 (B) 10,2 (C) 9,1 (D) 10,1
45. 若变量a是int类型,并执行了语句:a=‘A'+1.6;,则正确的叙述是( D)。
(A) a的值是字符C (B) a的值是浮点型
(C) 不允许字符型和浮点型相加 (D) a的值是字符‘A’的ASCII值加上1。
46. 以下程序的输出结果是( C)。
main()
{ int a=5,b=4,c=6,d;
printf("%d\n",d=a>b?(a>c?a:c):(b));
}
(A) 5 (B) 4 (C) 6 (D) 不确定