题目
阅读以下程序:#include [stdio.h]#include [stdlib.h]int main( )( int x; scanf("%d",&x); if(x--A. 3B. 4C. 5D. 6
阅读以下程序:#include [stdio.h]#include [stdlib.h]int main( ){ int x; scanf("%d",&x); if(x--<5) printf("%d",x); else printf("%d",x++); system("pause"); return 0;}程序运行后,如果从键盘上输入5,则输出结果是( )。
A. 3
B. 4
C. 5
D. 6
题目解答
答案
B. 4
解析
考查要点:本题主要考查对C语言中后置自减运算符(--)和条件判断语句的理解,特别是运算符优先级和表达式执行顺序的应用。
解题核心思路:
- 明确运算符优先级:后置自减运算符(--)的优先级高于关系运算符(<)。
- 分析表达式执行顺序:在条件判断
if(x--<5)中,先读取x的当前值,再执行自减操作,最后进行比较。 - 判断条件结果:根据输入值
5,推导x的变化和最终输出路径。
破题关键点:
- 后置运算符特性:
x--的执行顺序是“先取值,后自减”。 - 条件判断逻辑:若条件成立,输出自减后的
x;否则输出自增后的x。
程序逻辑分析
- 输入处理:从键盘读取整数
x,假设输入为5,则初始x = 5。 - 条件判断:执行
if(x-- < 5):- 运算符优先级:先计算
x--,即先取x的当前值5,再将x减1变为4。 - 比较操作:将
x--的结果5与5比较,5 < 5不成立,因此条件为假。 - 路径选择:由于条件不成立,执行
else分支。
- 运算符优先级:先计算
- 输出逻辑:在
else分支中,执行printf("%d", x++):- 后置自增运算:先输出当前
x的值4,再将x加1变为5。 - 最终输出:直接输出自增前的
x值4。
- 后置自增运算:先输出当前