内容正文:
编写说明:湖南省普通高校对口招生专业理论考试《计算机应用类专业综合考纲百套卷》,依据《湖南省普通高校对口招生计算机应用类专业综合知识基本要求及考试大纲》编写。每门课程均分三层训练:基础层(具象化支架)拆解考点为微目标,紧扣考纲 “掌握”“理解” 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。
本试卷是第67卷,按《计算机编程语言——C语言》范围和要求编写。具体内容为:①算术运算符;②自增、自减运算符;③赋值运算符;④逗号运算符;⑤位运算;⑥强制类型转换。
湖南省《计算机应用类专业综合考纲百套卷》 第67卷
《计算机编程语言——C语言》
运算符和表达式
考点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、单项选择题(本大题共50小题,每题2分,共100分)
1. 执行程序段 int a=1,b=2,c=3,x; x=(a+=b,c+=a,b+=c); 后,x的值是( )
A. 3 B. 5 C. 8 D. 6
2.(2024年)执行程序段“int x=061,y=016;int z=x|y;”后,z的值是( )
A.63 B.77 C.45 D.14
3.(2024年)执行程序段”int a=37;a+=a%=9;”后,a的值是( )
A.4 B.8 C.2 D.18
4.(2022年)下列C语言表达式( )的值不等于1
A.123/100 B.365%5 C. abs(-1) D.0||1
5.(2021年)若“int a=-7,b=-1;”执行“a%=b-1;”,a 的值是( )
A. -7 B.-1 C.-2 D.-3
6.(2020年) 执行“int a=3;a+=a^2;”后,则a的值是( )
A.12 B.9 C.6 D.4
7.(2019年)已知“int a=1,b=2,c=3,x;”与“x=(a^b)&c;”,则x的值为( )
A.0 B.1 C.2 D.3
8.(2018年)若“int a=12;”,执行“a/=a+8;”后,a的值是( )
A.1 B.8 C.9 D.0
9.(2018年)若“int a=5,b;”,执行“b=a>>2;”后,b的值是( )
A.10 B.20 C.1 D.2
10.执行程序段 int a=5,b=3; int c=a&b; 后,c的值是( )
A. 7 B. 1 C. 2 D. 0
11.执行程序段 int a=6,b; b=a^3; 后,b的值是( )
A. 5 B. 9 C. 3 D. 6
12. 执行程序段 int a=7,b=2; int c=(a|b)<<1; 后,c的值是( )
A. 18 B. 9 C. 14 D. 10
13.执行程序段 int a=5,b=2; double c=(double)a/b; 后,c的值是( )
A. 2.0 B. 2 C. 2.5 D. 0.0
14.执行程序段 int a=3,b=4; a^=b^=a^=b; 后,a和b的值分别是( )
A. 3,4 B. 4,3 C. 4,4 D. 3,3
15.执行程序段 int a=10; a+=a-=a*=a; 后,a的值是( )
A. 0 B. 100 C. -90 D. 90
16.执行程序段 int x=2,y=3,z; z=x+y,x*y,y-x; 后,z的值是( )
A. 5 B. 6 C. -1 D. 3
17.执行程序段 int a=15; a&=~7; 后,a的值是( )
A. 8 B. 7 C. 0 D. 15
18.执行程序段 int x = 0x0F, y = 0xF0; int z = (x | y) ^ (x & y); 后,z的值是( )
A. 0xFF B. 0x00 C. 0x0F D. 0xF0
19.执行程序段 int a = 5; int b = (a = 3, a * 2, a + 10); 后,b的值是( )
A. 16 B. 13 C. 6 D. 3
20.执行程序段 int a = 12; a >>= 2; a <<= 1; 后,a的值是( )
A. 6 B. 3 C. 12 D. 24
21.执行程序段 int a = 3, b = 5; int c = a ^ b ^ a; 后,c的值是( )
A. 3 B. 5 C. 0 D. 8
22.执行程序段 int a = 0xFF; a &= ~0x0F; 后,a的值是( )
A. 0xFF B. 0x0F C. 0xF0 D. 0x00
23.执行程序段 unsigned short a = 65535; int x = (short)a; 后,x的值是( )
A. 65535 B. 0 C. -1 D. 1
24. 执行程序段 int a = 100, b = 200; int c = (a ^ b) & ~(a & b); 后,c的值是( )
A. 172 B. 0 C. 100 D. 200
25. 执行程序段 int a = 7, b = 3; int c = (a / b) << 2 | (a % b); 后,c的值是( )
A. 9 B. 8 C. 10 D. 12
26.执行程序段 int a = 3, b = 7; int c = (a + b, a * b, b - a); 后,c的值是( )
A. 10 B. 21 C. 4 D. 3
27.执行程序段 int a = 012, b = 12; int c = a + b; 后,c的值是( )
A. 24 B. 22 C. 20 D. 14
28.执行程序段 char c1 = 'A', c2 = 'a'; int x = (c1 ^ c2) + 32; 后,x的值是( )
A. 0 B. 32 C. 64 D. 65
29. 执行程序段 int a = 7, b = 3; double c = a / b + 0.5; 后,c的值是( )
A. 2.5 B. 2.833333 C. 2.0 D. 3.0
30.设有 int a = 5, b;,执行 b = ++a + 3; 后,a 和 b 的值分别为( )
A. 6, 8 B. 5, 8 C. 6, 9 D. 5, 9
31.设有 int a = 5, b = 2;,表达式 a / ++b 的值为( )
A. 2 B. 1 C. 2.5 D. 1.67
32.设有 int a = 10;,执行 a *= 2 + 3; 后,a 的值为( )
A. 23 B. 50 C. 25 D. 15
33.表达式(int)(3.5+2.5)/2的运算结果是( )
A. 2 B. 3 C. 2.5 D. 3.0
34.执行int m=2,n=3; m*=n+1;后,m的值为( )
A. 7 B. 8 C. 9 D. 6
35.执行int i=4; (i++,i+2,++i);后,i的值为( )
A. 5 B. 6 C. 7 D. 8
36.执行int a=2,b=3; int c=(a++,b++,a+b);后,c的值为( )
A. 5 B. 6 C. 7 D. 8
37.执行int i=1; int j=(++i,i++,i*2);后,j的值为( )
A. 2 B. 4 C. 6 D. 8
38.表达式(int)(7.2 + (float)9 / 2) % 4的运算结果是( )
A. 1 B. 2 C. 3 D. 0
39.执行int x=2,y=5; x *= y -= x + 1;后,x的值是( )
A. 6 B. 8 C. 10 D. 4
40.已知int i=5;,表达式(i++, ++i, i*=2, i>>1),则变量i最终值为( )
A. 10 B. 12 C. 14 D. 16
41.已知int k=6;,表达式k++ * (--k + 1)的结果为( )
A. 36 B. 42 C. 48 D. 30
42.执行int c=4; c -= ++c * c--;后,c的值为( )
A. -21 B. -20 C. -19 D. -18
43.执行int x=3,y=7; y ^= x += 2;后,y的值为( )
A. 2 B. 3 C. 4 D. 5
44.执行int z=10; z = z-- + (++z % 3);后z的值为( )
A. 10 B. 11 C. 12 D. 9
45.执行int s=0; s += (++s, s++, s*5);后s的值为( )
A. 5 B. 6 C. 11 D. 12
46.执行逗号表达式int a=5; a--, ++a, a *= a - 2;,变量a最终值为( )
A. 6 B. 9 C. 12 D. 15
47.将一个浮点型变量 n 四舍五入精确到小数点后两位,正确的表达式是( )
A. (int)(n * 100 + 0.5) / 100 B. (int)(n * 100 + 0.5) / 100.0
C. n * 100 + 0.5 / 100 D. (n * 100 + 0.5) / 100.0
48.表达式 (double)(15 | 6) - (short)(12.7) % (5 << 1) 的结果是( )
A. 12.0 B. 13.0 C. 14.0 D. 15.0
49.下列表达式运算结果不等于 2的是( )
A. (int)(4.9 / 2) B. 6 >> 2
C. 3 & 2 D. (short)(7 % 5)
50.已知int x = 6;,以下表达式执行后,表达式整体值等于 4的是( )
A. (x << 1) % 8 B. x -= (x >> 1)
C. (x++, x % 3) D. (int)(x / 1.6)
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
编写说明:湖南省普通高校对口招生专业理论考试《计算机应用类专业综合考纲百套卷》,依据《湖南省普通高校对口招生计算机应用类专业综合知识基本要求及考试大纲》编写。每门课程均分三层训练:基础层(具象化支架)拆解考点为微目标,紧扣考纲 “掌握”“理解” 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。
本试卷是第67卷,按《计算机编程语言——C语言》范围和要求编写。具体内容为:①算术运算符;②自增、自减运算符;③赋值运算符;④逗号运算符;⑤位运算;⑥强制类型转换。
湖南省《计算机应用类专业综合考纲百套卷》 第67卷
《计算机编程语言——C语言》
运算符和表达式
考点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、单项选择题(本大题共50小题,每题2分,共100分)
1. 执行程序段 int a=1,b=2,c=3,x; x=(a+=b,c+=a,b+=c); 后,x的值是( )
A. 3 B. 5 C. 8 D. 6
【答案】C
【解析】逗号表达式从左向右依次求值,整个表达式的值为最后一个子表达式的值。第一步 a+=b,a 变为 1+2=3;第二步 c+=a,c 变为 3+3=6;第三步 b+=c,b 变为 2+6=8。最后返回 b+=c 的值,即 8,赋给 x。
2.(2024年)执行程序段“int x=061,y=016;int z=x|y;”后,z的值是( )
A.63 B.77 C.45 D.14
【答案】A
【解析】061为八进制,转十进制为49;016为八进制,转十进制为14;49的二进制为110001,14的二进制为001110,按位或运算|后结果为111111,转十进制为63,故选A。
3.(2024年)执行程序段”int a=37;a+=a%=9;”后,a的值是( )
A.4 B.8 C.2 D.18
【答案】C
【解析】复合赋值运算符从右向左结合,先计算a%=9,即37对9取余得1,此时a变为1;再计算a+=1,即1+1=2,最终a的值为2,故选C。
4.(2022年)下列C语言表达式( )的值不等于1
A.123/100 B.365%5 C. abs(-1) D.0||1
【答案】B
【解析】A项整数除法123/100结果为1;B项365能被5整除,取余结果为0;C项-1的绝对值为1;D项逻辑或运算0||1结果为1。因此值不等于1的是B项,故选B。
5.(2021年)若“int a=-7,b=-1;”执行“a%=b-1;”,a 的值是( )
A. -7 B.-1 C.-2 D.-3
【答案】B
【解析】先计算等号右侧的b-1,即-1-1=-2;再计算a%=-2,即-7对-2取余,商为3,余数为-7-(3×-2)=-1,最终a的值为-1,故选B。
6.(2020年) 执行“int a=3;a+=a^2;”后,则a的值是( )
A.12 B.9 C.6 D.4
【答案】D
【解析】复合赋值运算符从右向左结合,先计算a^2,即3的按位异或2(二进制011^010)结果为1;再计算a+=1,即3+1=4,最终a的值为4,故选D。
7.(2019年)已知“int a=1,b=2,c=3,x;”与“x=(a^b)&c;”,则x的值为( )
A.0 B.1 C.2 D.3
【答案】D
【解析】先计算括号内的a^b,即1异或2(二进制01^10)结果为3(二进制11);再计算3&c,即3按位与3(二进制11&11)结果为3,最终x的值为3,故选D。
8.(2018年)若“int a=12;”,执行“a/=a+8;”后,a的值是( )
A.1 B.8 C.9 D.0
【答案】D
【解析】先计算等号右侧的a+8,即12+8=20;再计算a/=20,即12除以20,由于是整数除法,结果截断小数部分为0,最终a的值为0,故选D。
9.(2018年)若“int a=5,b;”,执行“b=a>>2;”后,b的值是( )
A.10 B.20 C.1 D.2
【答案】C
【解析】右移运算符>>2表示将a的二进制向右移动2位,5的二进制为101,右移2位后变为1,即十进制的1,最终b的值为1,故选C。
10.执行程序段 int a=5,b=3; int c=a&b; 后,c的值是( )
A. 7 B. 1 C. 2 D. 0
【答案】B
【解析】 5 的二进制补码为 0101,3 的二进制补码为 0011。按位与运算 & 的规则是同为 1 才为 1:0101 & 0011 = 0001,转换为十进制为 1。
11.执行程序段 int a=6,b; b=a^3; 后,b的值是( )
A. 5 B. 9 C. 3 D. 6
【答案】A
【解析】6 的二进制为 0110,3 的二进制为 0011。按位异或运算 ^ 的规则是相同为 0,不同为 1:0110 ^ 0011 = 0101,转换为十进制为 5。
12. 执行程序段 int a=7,b=2; int c=(a|b)<<1; 后,c的值是( )
A. 18 B. 9 C. 14 D. 10
【答案】C
【解析】括号优先级最高,先计算按位或运算 a|b,即 7(二进制 0111)与 2(二进制 0010)进行按位或运算,结果为 7(二进制 0111);接着计算左移运算 <<1,将 7 的二进制向左移动 1 位,相当于乘以 2,即 7 × 2 = 14,最终 c 的值为 14,故选 C。
13.执行程序段 int a=5,b=2; double c=(double)a/b; 后,c的值是( )
A. 2.0 B. 2 C. 2.5 D. 0.0
【答案】C
【解析】(double)a 将整型 5 转换为 double 型 5.0,接着计算 5.0/b,此时 b 被隐式提升为 double 型,执行浮点除法 5.0/2.0 = 2.5,赋给 double 型变量 c。
14.执行程序段 int a=3,b=4; a^=b^=a^=b; 后,a和b的值分别是( )
A. 3,4 B. 4,3 C. 4,4 D. 3,3
【答案】B
【解析】复合赋值右结合,等价于 a ^= (b ^= (a ^= b))。第一步 a ^= b:a = 3^4 = 7(此时 a=7, b=4);第二步 b ^= a:b = 4^7 = 3(此时 a=7, b=3);第三步 a ^= b:a = 7^3 = 4。最终 a=4, b=3。这是利用异或交换两数的经典写法。
15.执行程序段 int a=10; a+=a-=a*=a; 后,a的值是( )
A. 0 B. 100 C. -90 D. 90
【答案】A
【解析】右结合,等价于 a += (a -= (a *= a))。第一步 a *= a:a = 10*10 = 100;第二步 a -= 100:a = 100-100 = 0;第三步 a += 0:a = 0+0 = 0。
16.执行程序段 int x=2,y=3,z; z=x+y,x*y,y-x; 后,z的值是( )
A. 5 B. 6 C. -1 D. 3
【答案】A
【解析】赋值运算符 = 的优先级高于逗号运算符 ,。因此表达式等价于 (z = x+y), (x*y), (y-x)。首先执行 z = 2+3 = 5,然后依次计算 x*y 和 y-x(这两个结果被丢弃)。整个逗号表达式的值虽然是 y-x=-1,但并没有赋给 z,z 的值仍为 5。
17.执行程序段 int a=15; a&=~7; 后,a的值是( )
A. 8 B. 7 C. 0 D. 15
【答案】A
【解析】~7 是对 7 按位取反。7 的二进制为 ...00000111,取反后为 ...11111000。a & ~7 即 15 & (~7),15 的二进制为 00001111,与 11111000 按位与,低 3 位被清零,结果为 00001000,即十进制 8。此操作常用于将指定位清零。
18.执行程序段 int x = 0x0F, y = 0xF0; int z = (x | y) ^ (x & y); 后,z的值是( )
A. 0xFF B. 0x00 C. 0x0F D. 0xF0
【答案】A
【解析】x|y = 0x0F | 0xF0 = 0xFF,x&y = 0x0F & 0xF0 = 0x00。然后 0xFF ^ 0x00 = 0xFF。实际上 a|b ^ a&b 恒等于 a^b,而 0x0F ^ 0xF0 = 0xFF。
19.执行程序段 int a = 5; int b = (a = 3, a * 2, a + 10); 后,b的值是( )
A. 16 B. 13 C. 6 D. 3
【答案】B
【解析】逗号表达式从左到右依次求值。a = 3 将 a 赋值为 3;a * 2 计算结果为 6 但被丢弃;a + 10 计算结果为 13,作为整个逗号表达式的值赋给 b。
20.执行程序段 int a = 12; a >>= 2; a <<= 1; 后,a的值是( )
A. 6 B. 3 C. 12 D. 24
【答案】A
【解析】a >>= 2 即 a = 12 >> 2 = 3(12/4=3);接着 a <<= 1 即 a = 3 << 1 = 6(3*2=6)。
21.执行程序段 int a = 3, b = 5; int c = a ^ b ^ a; 后,c的值是( )
A. 3 B. 5 C. 0 D. 8
【答案】B
【解析】异或运算满足交换律和结合律,且 a ^ a = 0,0 ^ b = b。因此 a ^ b ^ a = (a ^ a) ^ b = 0 ^ b = b = 5。
22.执行程序段 int a = 0xFF; a &= ~0x0F; 后,a的值是( )
A. 0xFF B. 0x0F C. 0xF0 D. 0x00
【答案】C
【解析】~0x0F 将低 4 位取反为 0,其余位为 1。0xFF & ~0x0F 即 11111111 & 11110000 = 11110000,即 0xF0。此操作常用于清除指定位。
23.执行程序段 unsigned short a = 65535; int x = (short)a; 后,x的值是( )
A. 65535 B. 0 C. -1 D. 1
【答案】C
【解析】unsigned short 65535 的二进制表示为 16 个 1(1111111111111111)。强制转换为 short(有符号 16 位)时,位模式不变,但被解释为补码,其值为 -1。再赋值给 int 时进行符号扩展,结果仍为 -1。
24. 执行程序段 int a = 100, b = 200; int c = (a ^ b) & ~(a & b); 后,c的值是( )
A. 172 B. 0 C. 100 D. 200
【答案】A
【解析】a^b = 172,a&b = 64,~(a&b) 将第 6 位清零,而 a^b 的第 6 位本来就是 0(因为 a&b 的第 6 位为 1 意味着 a 和 b 该位都为 1,异或后必为 0),所以 172 & ~64 = 172。
25. 执行程序段 int a = 7, b = 3; int c = (a / b) << 2 | (a % b); 后,c的值是( )
A. 9 B. 8 C. 10 D. 12
【答案】A
【解析】7/3=2,左移 2 位得 8;7%3=1;8|1=9。
26.执行程序段 int a = 3, b = 7; int c = (a + b, a * b, b - a); 后,c的值是( )
A. 10 B. 21 C. 4 D. 3
【答案】C
【解析】逗号表达式取最后一个子表达式的值。a + b = 10(丢弃),a * b = 21(丢弃),b - a = 7 - 3 = 4,作为整个表达式的值赋给 c。
27.执行程序段 int a = 012, b = 12; int c = a + b; 后,c的值是( )
A. 24 B. 22 C. 20 D. 14
【答案】B
【解析】在C语言中,以0开头的数字常量表示八进制数,因此a = 012转换为十进制为 1×8 + 2 = 10;而b = 12为普通的十进制数,即 12;将两者相加 10 + 12 = 22,最终 c 的值为 22,故选 B。
28.执行程序段 char c1 = 'A', c2 = 'a'; int x = (c1 ^ c2) + 32; 后,x的值是( )
A. 0 B. 32 C. 64 D. 65
【答案】C
【解析】在 ASCII 码中,大写字母与小写字母之间相差 32,且它们的二进制表示仅在倒数第 6 位(值为 32)不同。因此 c1 ^ c2 的结果正好是 32。再加上 32,最终 x = 64。
29. 执行程序段 int a = 7, b = 3; double c = a / b + 0.5; 后,c的值是( )
A. 2.5 B. 2.833333 C. 2.0 D. 3.0
【答案】A
【解析】a / b 是整数除法,7 / 3 = 2。然后 2 + 0.5 = 2.5,隐式转换为 double 赋给 c。注意:不是 (double)a / b,所以不会得到 2.333...。
30.设有 int a = 5, b;,执行 b = ++a + 3; 后,a 和 b 的值分别为( )
A. 6, 8 B. 5, 8 C. 6, 9 D. 5, 9
【答案】C
【解析】++a 是前置自增,a 先自增为 6,再参与加法运算,6 + 3 = 9 赋给 b。
31.设有 int a = 5, b = 2;,表达式 a / ++b 的值为( )
A. 2 B. 1 C. 2.5 D. 1.67
【答案】B
【解析】++b 前置自增,b 先变为 3。然后 a / b 即 5 / 3 = 1(整除)。
32.设有 int a = 10;,执行 a *= 2 + 3; 后,a 的值为( )
A. 23 B. 50 C. 25 D. 15
【答案】B
【解析】a *= 2 + 3 等价于 a = a * (2 + 3),即 a = 10 * 5 = 50。复合赋值运算符右侧整体作为一个表达式。
33.表达式(int)(3.5+2.5)/2的运算结果是( )
A. 2 B. 3 C. 2.5 D. 3.0
【答案】B
【解析】3.5+2.5=6.0,强转 int 为 6,6/2=3。
34.执行int m=2,n=3; m*=n+1;后,m的值为( )
A. 7 B. 8 C. 9 D. 6
【答案】B
【解析】赋值运算符优先级低于算术,n+1=4,m=2*4=8。
35.执行int i=4; (i++,i+2,++i);后,i的值为( )
A. 5 B. 6 C. 7 D. 8
【答案】B
【解析】逗号表达式从左到右执行,i++→5,++i→6。
36.执行int a=2,b=3; int c=(a++,b++,a+b);后,c的值为( )
A. 5 B. 6 C. 7 D. 8
【答案】C
【解析】a→3,b→4,3+4=7,逗号表达式取最后值。
37.执行int i=1; int j=(++i,i++,i*2);后,j的值为( )
A. 2 B. 4 C. 6 D. 8
【答案】C
【解析】i→2→3,3*2=6。
38.表达式(int)(7.2 + (float)9 / 2) % 4的运算结果是( )
A. 1 B. 2 C. 3 D. 0
【答案】C
【解析】(float)9/2=4.5,相加得11.7,强转 int 为 11;11%4=3。
39.执行int x=2,y=5; x *= y -= x + 1;后,x的值是( )
A. 6 B. 8 C. 10 D. 4
【答案】D
【解析】赋值运算符具有右结合性,因此表达式等价于 x *= (y -= (x + 1))。首先计算最右侧的 x + 1,即 2 + 1 = 3;接着计算 y -= 3,即 5 - 3 = 2,此时 y 的值变为 2;最后计算 x *= 2,即 2 * 2 = 4,最终 x 的值为 4,故选 D。
40.已知int i=5;,表达式(i++, ++i, i*=2, i>>1),则变量i最终值为( )
A. 10 B. 12 C. 14 D. 16
【答案】C
【解析】逗号顺序执行:i=6→7,i*=2得 14,右移运算不改变变量本身,i 最终为 14。
41.已知int k=6;,表达式k++ * (--k + 1)的结果为( )
A. 36 B. 42 C. 48 D. 30
【答案】D
【解析】先算右侧 --k 使 k 变 5,加 1 得 6;再算左侧 k++ ,因其为后置自增,现取当前值 5 参与乘法,随后k变 6;最后相乘 5 × 6 = 30,故选 D。
42.执行int c=4; c -= ++c * c--;后,c的值为( )
A. -21 B. -20 C. -19 D. -18
【答案】A
【解析】c=c-(++c * c--);自增在前,先自增,c=5,乘积为25,后c自减,c=4,最后c=4-25=-21。
43.执行int x=3,y=7; y ^= x += 2;后,y的值为( )
A. 2 B. 3 C. 4 D. 5
【答案】A
【解析】x=3+2=5,7(0111)^5(0101)=0010(2)。
44.执行int z=10; z = z-- + (++z % 3);后z的值为( )
A. 10 B. 11 C. 12 D. 9
【答案】C
【解析】先计算括号内,z自增为11,后取余3得到2,z--因其为后置自减,先参与运算后自减,参与加法和赋值运算后z的值为13,再对后置自减进行自减操作,得到z的值为12。
45.执行int s=0; s += (++s, s++, s*5);后s的值为( )
A. 5 B. 6 C. 11 D. 12
【答案】D
【解析】逗号表达式从左至右依次执行,先执行 ++s,s 变为 1;再执行 s++,s 变为 2(该子表达式值为 1);最后计算 s*5,即 2*5=10,逗号表达式的最终值为 10;接着执行外层的 s += 10,即 2 + 10 = 12,最终 s 的值为 12,故选 D。
46.执行逗号表达式int a=5; a--, ++a, a *= a - 2;,变量a最终值为( )
A. 6 B. 9 C. 12 D. 15
【答案】D
【解析】a=4→5,5-2=3,5*3=15。
47.将一个浮点型变量 n 四舍五入精确到小数点后两位,正确的表达式是( )
A. (int)(n * 100 + 0.5) / 100 B. (int)(n * 100 + 0.5) / 100.0
C. n * 100 + 0.5 / 100 D. (n * 100 + 0.5) / 100.0
【答案】B
【解析】必须除以 100.0 才能得到浮点结果,否则整数除法会截断小数。
48.表达式 (double)(15 | 6) - (short)(12.7) % (5 << 1) 的结果是( )
A. 12.0 B. 13.0 C. 14.0 D. 15.0
【答案】B
【解析】15|6=15;(short)12.7=12;5<<1=10;12%10=2;15.0-2=13.0。
49.下列表达式运算结果不等于 2的是( )
A. (int)(4.9 / 2) B. 6 >> 2
C. 3 & 2 D. (short)(7 % 5)
【答案】B
【解析】A:4.9/2=2.45,强转 int 截断为 2;
B:6 二进制110,右移 2 位得1,结果为 1;
C:3 (011) & 2 (010) = 2;
D:7%5=2,强转 short 仍为 2。综上只有 B 结果不为 2。
50.已知int x = 6;,以下表达式执行后,表达式整体值等于 4的是( )
A. (x << 1) % 8 B. x -= (x >> 1)
C. (x++, x % 3) D. (int)(x / 1.6)
【答案】A
【解析】A:6<<1=12,12%8=4;
B:x>>1=3,x=6-3=3,表达式值为 3;
C:x++ 后 x=7,7%3=1;
D (int)(x / 1.6),6/1.6=3.75→3。综上所述,答案为A。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$