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. 10
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
float x; int i; x=12.6; i=(int)x;
cout<<\cout<<\}
x=12.6 y=12
2. #include
int i; char c1; i='A'; c1='A';
cout<
3. #include
cout<<\cout<<\}
abc\\\abc\\\\abc
4. #include
int main() {
int i=1;
cout<<\cout<<\} i=2 i=2
5. #include
int a;
a=7*2+-3%5-4/3; double b;
b=510+3.2-5.4/0.03; cout<
cout<
10 333.2 0 4t3
6. #include
int x,y,z; x=y=z=1;
--x && ++y && ++z;
cout< cout< cout< 0 1 1 1 2 2 2 1 2 7. #include void main() { char x('m'),y('n'); int n; n=x cout< cout< n=('y'!='Y')+(5>3)+(y-x==1); cout< 四、改错题 1. 下面程序要求输出x和y的值,x的值为10,y的值为11。 #include 第三章语句 一、选择题 1. 关于switch语句的描述中,正确的是( ) A. switch语句中default子句可以没有,也可有一个 B. switch语句中每个case语句序列中必须有break语句 C. switch语句中default子句只能放在最后 D. switch语句中case子句后面的表达式只能是整型表达式 2. 下列关于goto语句的描述中正确的是( ) A. goto语句可以在一个文件中随意转向 B. goto语句后面要跟上一个它所转向的语句