第24题,应该选A,对于sum=1+1/2+(float)(1/3),首先1/2:这是两个整数之间的除法,在C语言中,这将进行整数除法,结果为0。 (float)(1/3):首先计算 1/3,这也是整数除法,结果是 0。然后将其强制转换为 float 类型,结果仍然是 0.0f。那么 1 + 0 + 0.0f:最终的表达式变为 1 + 0 + 0.0f,即 1.0f。 第26题,应该选C,sum *= i + 1 是复合赋值运算符,等价于 sum = sum * (i + 1)。由于运算符优先级,i + 1 会先计算,再与 sum 相乘。算术运算符优先于赋值运算符。 第28题,应该选A,C语言中,宏定义通常用于定义符号常量。3.1415926 是一个浮点字面常量,宏名 PI 在代码中直接替换为该常量值。因此,从宏的用途和替换机制来看,PI 代替的是一个常量。虽然 3.1415926 默认是双精度浮点类型(double),但题目并未明确考察数据类型,而是问“代替一个什么”。宏替换的本质是文本替换,不涉及类型检查,因此数据类型并非此处的核心概念。 第31题,选C,1. 宏展开:a 被替换为 5,b 被替换为 3<<2,表达式变为 5 + 3<<2。2. 运算符优先级:加法运算符 + 的优先级(第4级)高于位移运算符 <<(第5级),因此表达式等价于 (5 + 3) << 2。3. 计算过程:先计算 5 + 3 = 8,再计算 8 << 2(即 8 * 2^2 = 32)。
点赞 评论

相关推荐

点赞 评论 收藏
分享
momo_校招版:给佬跪了 我周末三场都有点嫌多了
点赞 评论 收藏
分享
牛客网
牛客企业服务