AI智能推荐题库-试题通 AI智能整理导入题库-试题通
×
首页 题库中心 c语言选择判断题库 题目详情
CA4E3A01C46000013755684012D01E55
c语言选择判断题库
379
单选题

9.以下程序的输出结果为()。 main() {int i=010,j=10; printf(”%d,%d\n”,++i,j--); }

A
 11,10
B
 9,10
C
 010,9
D
 10,9

答案解析

正确答案:B

解析:

这道题主要考察 C 语言中**八进制常量的表示**以及**自增/自减运算符**的使用规则。以下是详细解析: ### 1. 变量初始化分析 * `int i = 010;` * 在 C 语言中,以数字 `0` 开头的整数常量表示**八进制**数。 * 八进制数 `010` 转换为十进制的计算过程为:$1 \times 8^1 + 0 \times 8^0 = 8$。 * 因此,变量 `i` 的初始值为 **8**。 * `int j = 10;` * 这是一个普通的十进制整数。 * 因此,变量 `j` 的初始值为 **10**。 ### 2. 表达式分析 `printf("%d,%d\n", ++i, j--);` `printf` 函数中的参数涉及两个运算:`++i` 和 `j--`。 * **`++i`(前置自增)**: * 规则是“先加后用”。即先将 `i` 的值加 1,然后使用增加后的值参与运算。 * 计算:`i` 从 8 变为 9。 * 传递给 `printf` 的第一个 `%d` 的值为 **9**。 * **`j--`(后置自减)**: * 规则是“先用后减”。即先使用 `j` 当前的值参与运算,然后再将 `j` 的值减 1。 * 计算:传递给 `printf` 的第二个 `%d` 的值为 `j` 原来的值,即 **10**。 * 副作用:在该表达式求值完成后,`j` 的值会变为 9(但这不影响本次输出的结果)。 ### 3. 输出结果 * 第一个 `%d` 输出 `++i` 的结果:**9** * 第二个 `%d` 输出 `j--` 的结果:**10** * 中间由逗号分隔。 因此,最终输出结果为:`9,10` ### 4. 选项对比 * A. 11,10 (错误,误以为 i 是十进制 10 且前置自增) * **B. 9,10 (正确)** * C. 010,9 (错误,格式符 %d 输出十进制,且逻辑错误) * D. 10,9 (错误,混淆了前置/后置运算符或八进制转换) 故正确答案为 **B**。
题目纠错
c语言选择判断题库

扫码进入小程序
随时随地练习

关闭登录弹窗
专为自学备考人员打造
勾选图标
自助导入本地题库
勾选图标
多种刷题考试模式
勾选图标
本地离线答题搜题
勾选图标
扫码考试方便快捷
勾选图标
海量试题每日更新
波浪装饰图
欢迎登录试题通
可以使用以下方式扫码登陆
APP图标
使用APP登录
微信图标
使用微信登录
试题通小程序二维码
联系电话:
400-660-3606
试题通企业微信二维码