C语言选择题复习:基础表达式与运算符

版权申诉
0 下载量 25 浏览量 更新于2024-08-14 收藏 79KB PDF 举报
本资源是一份C语言程序设计的复习题集,包含11道选择题,旨在帮助学习者巩固和检验对C语言基础知识的理解。以下是部分题目及解析: 1. **问题1**:判断整型变量b的值为0,选项C`b=a%2`是正确的。这里通过取a的余数(a除以2的余数),若a是偶数(即能被2整除),则余数为0,因此b会得到0。 2. **问题2**:计算表达式`x+a%3*(int)(x+y)%2/4`,给定`x=2.5`和`y=4.7`,首先求`a%3`(2.5取模3),然后`(int)(x+y)`取整结果为7(向下取整),再计算`7%2`得1,1除以4得0.25,与x相加得2.75,但因为x本身是浮点数,最终结果为2.5,选A。 3. **问题3**:逻辑表达式`!(a+b)+c-1&&b+c/2`,先计算`!(a+b)`,`a=3`和`b=4`相加结果为7,取非为假(0),然后`c-1`为4,`b+c/2`为6,`&&`运算符优先级较低,整个表达式的值为0。 4. **问题4**:表达式`(a=2,b=5,b++,a+b)`中,先执行赋值操作`a=2`,然后`b++`自增1,此时`b=6`,最后计算`a+b`,结果为8,选B。 5. **问题5**:选项D`x!=y||x>=y`满足条件,因为`x=5`和`y=2`时,不等于`y`(`x!=y`为真),且`x`大于等于`y`(`x>=y`也为真),所以值为1。 6. **问题6**:表达式`a+=a-=a*=a`等价于`a=a*a-a`, 因为开始时`a=12`,所以计算结果为`12*12-12=120-12=108`,然后取模12得到0,最终结果为0,选C。 7. **问题7**:表达式`10+'b'+x*f`,其中`b`转换为整型后,和`10`相加为字符'b'对应的ASCII值11,`x`和`f`相乘为浮点型,两者相加后结果是`double`类型,选C。 8. **问题8**:将`float`类型的`x=1.2`转换为`int`类型,结果向下取整为1,加上整型`k=5`,总和为6,选D。 9. **问题9**:表达式`k=(12<10)?4:1?2:3`中,第一个条件`12<10`为假,因此跳过4和2,取1对应的值2,选B。 10. **问题10**:运算符优先级相同且从左到右运算的是括号`()`, 数组访问`[]`, 指针箭头`->`, 和成员访问`.`,选A。 11. **问题11**:`z=x>y?10:20`中,`x=1`小于`y=2`,因此`z`取10,选A。 这些题目覆盖了C语言中的算术运算、关系运算、逻辑运算、数据类型转换以及控制结构,适合用于复习和测试对C语言基础理论的掌握程度。