本文适用于大学的期中期末考试、专升本(专接本、专插本)考试、408等考研预科。如有相关题目疑问或建议欢迎在评论区进行互动。
转载请标明出处。
不知道大家有没有消化完第二章的内容。在这里我们将列出一些关于运算符及其优先级关系的课后练习题,方便大家理解记忆。
点击题目上方标题,即可跳转至解析。
给定 int a = 5;,求表达式 (a++) + (a++) + a; 的值。
给定 int x = 5, y = 10;,求表达式 x += y - 3; 的结果。
给定 int a = 3, b = 7;,求表达式 (a += b) - (b -= a); 的结果。
给定 int a = 5, b = 3;,求表达式 (a > b) ? a : b; 的结果。
给定 int a = 15, b = 10;,求表达式 a / b + a % b; 的结果。
给定 int a = 5, b = 2;,求表达式 (a << 2) + (b >> 1); 的结果。
给定 int a = 0x12, b = 0x34;,求表达式 (a & b) | (a ^ b); 的结果。
给定 int a = 0x1F, b = 0x1;,求表达式 (a & ~b); 的结果。
给定 int a = 0x55, b = 0xAA;,求表达式 (a ^ b); 的结果。
给定 int a = 0x7F, b = 0x80;,求表达式 (a | b); 的结果。
给定 int a = 5, b = 10;,求表达式 a < b ? a++ : b++; 的结果。
给定 int a = 3, b = 7, c = 5;,求表达式 (a += b > c) ? a : c; 的结果。
给定 int a = 3, b = 2, c = 1;,求表达式 (a -= b <<= c); 的结果。
给定 int a = 10, b = 20;,求表达式 (a += b %= 5); 的结果。
给定 int a = 10, b = 20;,求表达式 (a -= b /= 5); 的结果。
给定 int a = 2, b = 5;,求表达式 (a << 1) == (b >> 1); 的结果。
给定 int a = 10, b = 3;,求表达式 (a -= b * 2); 的结果。
给定 int a = 7, b = 5;,求表达式 (a -= b <<= 1); 的结果。
给定 int a = 10, b = 20, c = 30;,求表达式 (a += b) * (c -= a); 的结果
给定 int a = 15, b = 0;,求表达式 (a && b) ? a : b; 的结果。
以下为题目答案及解析:
第一道题:
- 答案:16
- 解析:
a++
是后缀递增运算符,表达式中的a
先是两次自增后的值5,然后第三次是自增前的值5。
第二道题:
- 答案:x = 12
- 解析:
y - 3
先计算得到7,然后x
增加7,结果是12。
第三道题:
- 答案:-1
- 解析:
a += b
先计算,a 变为10,然后b -= a
,b 变为-3,最后相减得到-1。
第四道题:
- 答案:5
- 解析:三元运算符,因为
a > b
为真,所以结果是a
的值。
第五道题:
- 答案:6
- 解析:
a / b
是整数除法,结果是1,a % b
是取余,结果是5,相加得6。
第六道题:
- 答案:22
- 解析:
a << 2
是将a
左移两位,结果是20,b >> 1
是将b
右移一位,结果是1,相加得22。
第七道题:
- 答案:0x36
- 解析:
a & b
是按位与,结果是0x10,a ^ b
是按位异或,结果是0x26,按位或得到0x36。
第八道题:
- 答案:0x1E
- 解析:
~b
是取反,结果是0xFFFFFFFE,然后与a
按位与,得到0x1E。
第九道题:
- 答案:0xFF
- 解析:
a
和b
按位异或,结果是0xFF。
第十道题:
- 答案:-128
- 解析:
a | b
是按位或,结果为0xFF,但在有符号整数中表示为-128。
第十一道题:
- 答案:a = 6, b = 10
- 解析:因为
a < b
为真,执行a++
,a
的值变为6。
第十二道题:
- 答案:10
- 解析:
b > c
为真,所以a += 1
,结果是10。
第十三道题:
- 答案:a = 0
- 解析:
b <<= c
先执行,b
变为4,然后a -= 4
,结果是0。
第十四道题:
- 答案:a = 25, b = 0
- 解析:
b %= 5
先执行,b
变为0,然后a += 0
。
第十五道题:
- 答案:a = -10, b = 4
- 解析:
b /= 5
先执行,b
变为4,然后a -= 4
。
第十六道题:
- 答案:1 (true)
- 解析:
a << 1
变为4,b >> 1
也变为4,所以表达式为真。
第十七道题:
- 答案:a = 4
- 解析:
b * 2
先计算得到6,然后a -= 6
。
第十八道题:
- 答案:a = 1
- 解析:
b <<= 1
先执行,b
变为10,然后a -= 10
。
第十九道题:
- 答案:1000
- 解析:
a += b
先执行,a
变为30,然后c -= a
,c
变为0,最后30 * 0
。
第二十道题:
- 答案:0
- 解析:逻辑与运算符
&&
,因为b
为0,表达式为假,结果是b
的值。
《衡庐浅析·C语言程序设计·第二章·运算符及其优先级关系(练习题一)》部分到这里就结束了,请及时用习题巩固所学知识,也欢迎大家在评论区进行互动!