题目
以下程序的输出结果是()。 #include < stdio.h > void main() ( int a=2, b=-1, c=2; if(a< b) if(b< 0) c=0; else c++; printf("%dn", c); ) A. 0B. 1C. 2
以下程序的输出结果是()。
#include < stdio.h >
void main()
{
int a=2, b=-1, c=2;
if(a< b)
if(b< 0)
c=0;
else
c++;
printf("%d\n", c);
}
- A. 0
- B. 1
- C. 2
题目解答
答案
C
解析
本题考查if-else语句的嵌套使用以及条件判断的逻辑。解题的关键在于理解if-else语句的配对规则,即else总是与离它最近的未配对的if配对,同时要根据给定的变量初始值,逐步分析每个if条件是否成立,从而确定程序的执行流程。
- 首先,对变量进行初始化:
- 代码中定义了三个整型变量
a = 2,b = -1,c = 2。
- 代码中定义了三个整型变量
- 接着,分析第一个
if语句if(a < b):- 这里判断
a是否小于b,将a = 2和b = -1代入条件,即判断2 < -1是否成立。 - 显然,
2 < -1不成立,所以第一个if语句的条件为假。
- 这里判断
- 由于第一个
if语句条件为假,根据if-else语句的执行规则,其内部嵌套的if-else语句都不会被执行。 - 最后,执行
printf("%d\n", c);语句:- 因为
c的值在整个过程中没有被修改,仍然是初始值2,所以会输出2。
- 因为