C++常见选择填空习题集 下载本文

A. 2 B. 4 C. 8 D. 16

18. 已知:int a=5,b=6;,则下列表达式中,有二义性的是( ) A. a+b>>3 B. ++a+b++ C. b+(a=3) D. (a=3)-a++

19. 下列运算符中优先级最高的是( )

A. = B. && C. >= D. +

20. 下列运算符中优先级最低的是( )

A. % B. %= C. & D. >>

21. 表达式(-17)%5的值( )表达式(-17)%(-5)的值。

A. 大于 B. 等于 C. 小于 D. 不确定

22. 下列运算符中,结合性从左向右的是( )

A. -> B. >> C. != D. ~

23. 若int a=2,b=3;,则表达式a++ +b++的值为( ) A. 11 B. 9 C. 7 D. 5

24. 设有定义int a; float f; double i;,表达式10+.a.+i*f的结果类型是( ) A. int B. float C. double D. 不确定

25. sizeof(double)是一个( )

A. 整型表达式 B. 双精度表达式 C. 函数调用 D. 不合法

26. 下列关于类型转换的描述中错误的是( )

A.在不同类型操作数组成的表达式中,表达式类型一定是最高类型double型 B. 逗号表达式的类型是最后一个子表达式的类型 C. 赋值表达式的类型是左值的类型 D. 在由低向高的类型转换中是保值映射

27. 下列说法中正确的是( )

A. 隐含类型转换可能会损失数据精度 B. 显式类型转换可能会损失数据精度 C. 隐含类型转换一定会损失数据精度 D. 显式类型转换一定会损失数据精度

28. 在隐含类型转换中,long、int、double三种类型之间的转换顺序为( ) A. long->int->double B. long->double->int C. int->double->long D. int->long->double

29. 下列说法正确的是( )

A. 隐含类型转换可以从高类型转换为低类型 B. 显式类型转换不可以从低类型转换为高类型 C. 隐含类型转换可以在任何类型之间转换

D. 显式类型转换可以在任何类型之间转换

30. 设int n=10,i=4;,则表达式n%=i+1运算后n的值是( ) A. 0 B. 3 C. 2 D. 1

31. 下列运算符中,可以作用于浮点数的是( ) A. ++ B. % C. >> D. &

32. 下列各运算符中,不可以作用于浮点数的是( ) A. / B. && C. || D. ~

33. 下列运算符中,可以作用于浮点数的是( ) A. ++ B. % C. >> D. ^

34. 下列运算符中,结合性从左到右的是( )

A. ?: B. *= C. == D. ++

35. 若有下面的定义,则表达式:a

A. 1 B. 2 C. 3 D. 4

36. 设x为int型变量,则执行下列语句后,x的值为( ) x=10;

x+=x-=x-x;

A. 10 B. 20 C. 30 D. 40

37. 若有下面的定义,则对语句c=a+b;的下列说法中正确的是( ) int a=12;

float b=1.2f, c;

A. 变量a转换为float类型

B. 变量b转换为int类型,运算结果再转换为float类型

C. 变量a和b都转换为一中间类型,运算结果再转换为float类型 D. 以上都不对

38. 执行下列语句后,a的值是( )

int a = 8; a += a -= a*a;

A. -240 B. 64 C. 112 D. -112

39. 能正确表示“大于10且小于20的数”的C++表达式是( )

A. 1010||x<20 C. x>10&x<20 D. !(x<=10||x>=20)

40. 表示关系x≤y≤Z的C++语言表达式为( ) A. (x<=y)&&(y<=Z) B. (x<=y)AND(y<=Z) C. (x<=y<=Z) D. (x<=y)&(y<=Z)

41. 设x, y, z均为int型变量,则执行以下语句后,t的值为( ) x=y=z=1;

t=++x||++y&&++z;

A. 0 B. 1 C. 2 D. 不定值

42. 若有如下语句: int a,b,c; a=b=c=5; 则执行语句: b+=++a&&++c>b;

后a、b、c的值分别为( )

A. 6,7,6 B. 6,6,6 C. 6,6,5 D. 6,1,6

43. 在C++中,const修饰符主要用于代替C语言中的( )关键字进行常量定义。 A. #include B. static C. #define D. #ifdef

二、填空题

1. 在32位计算机中,若有double *p;,则p占用 4字节的内存空间。 2. 在C++中,用同一个数据类型定义多个变量时需要用逗号分隔。

3. 变量的三要素分别是(变量的)类型、(变量的)名字(或变量名)、(变量的)值。 4. 表达式(-9)%4的值为-1 ,表达式9%(-4)的值为1 ,表达式(-9)%(-4)的值为-1 5. 在C++中,’\\0’ 被用来作为字符串的结束符。 6. 空字符串的长度为1。

7. 在C++中,变量必须遵循先定义后使用的原则。 8. 在16位计算机中,int数据类型占用2个字节。

9. 数据类型转换分为自动类型转换(隐含类型转换)和强制类型转换(显式类型转换)两种。 10. 在32位机器中,若有:int a[10];则表达式sizeof(a)/sizeof(int)的值为10。 11. 在32位机器中,若有:int a[10];则表达式sizeof(a)的值为40。 12. 变量的类型既规定了占用内存字节数(大小) ,也规定了合法操作。 13. 没有初始化的变量其存储的值要么是默认值,要么是 机器(计算机)决定。

15. 条件表达式的类型由:号前后两个子表达式的高类型决定。 16.赋值表达式的类型由赋值运算符的左值的类型决定。 17. 逻辑运算符&&和||的特点是在计算时存在短路现象。 18. 若有定义: int a(4), b(2);

则表达式 a&&b||a++||(a-b*2) 运算完成后a的值为4 。

19. 设int型变量x的值为10,则表达式x>10?x+100:x-100的值是-90。

三、写程序运行结果

1. #include using namespace std; int main() {

float x; int i; x=12.6; i=(int)x;

cout<<\cout<<\}

x=12.6 y=12

2. #include using namespace std; int main() {

int i; char c1; i='A'; c1='A';

cout<

3. #include using namespace std; int main() {

cout<<\cout<<\}

abc\\\abc\\\\abc

4. #include using namespace std;