IF语句的一个问题
来源:百度知道 编辑:UC知道 时间:2024/05/10 20:00:11
9、下列IF语句中,ENDIF表示相应的IF的结束:
Y=0
IF X<0
THEN Y=5
ELSE IF X<10
THEN Y=10
IF X<100
THEN Y=100
ENDIF
ELSE Y=200
ENDIF
ENDIF
试指出X=80时,运行的结果为( ) ,X=5时结果为( )
A、Y=9 B、Y=5 C、Y=10 D、Y=100 E、Y=200
请稍微解释一下
自然是C语言
他那个嵌套的怎么很别扭...
为什么有个Y=0呢
答案是E\D
所以我就很纳闷了
事实上这是NOIP的一道题....
Y=0
IF X<0
THEN Y=5
ELSE IF X<10
THEN Y=10
IF X<100
THEN Y=100
ENDIF
ELSE Y=200
ENDIF
ENDIF
试指出X=80时,运行的结果为( ) ,X=5时结果为( )
A、Y=9 B、Y=5 C、Y=10 D、Y=100 E、Y=200
请稍微解释一下
自然是C语言
他那个嵌套的怎么很别扭...
为什么有个Y=0呢
答案是E\D
所以我就很纳闷了
事实上这是NOIP的一道题....
题目不清.
上面只是语句的描述,并非C语言,也不完全像fortran语言.
(C语言关键字应小写,无then,endif. 很像fortran,但fortran关系运算符用.LT. .EQ. .GT.)
"IF语句中,ENDIF表示相应的IF的结束" 这是一条原则.
很明显,"IF X<100 THEN Y=100 ENDIF" 是最内层的独立运算块,它的结果不影响外层块的运算结果.我们把它抽去.剩下的IF与ENDIF的配对就明显了:
IF (X<0) {THEN Y=5;}
ELSE
{ IF (X<10) {THEN Y=10,,"IF X<100 THEN Y=100 ENDIF"} ELSE Y=200 ENDIF } // 这是块
ENDIF // 与 x<0 的 IF 配对
X=80,进X<10那块的ELSE,所以得Y=200
x=5,也进X<10那块,但进THEN Y=10,和平行与Y=10的最内层条件语句:
"IF X<100 THEN Y=100 ENDIF",x=5也满足条件X<100,所以最终Y=100 .
答案200 和 100.
Y=0 是条件语句未含盖时的默认值.
结果应该是200 100
Y=0只是在开始初始化
只要认清这个IF语句的结构,这个问题也就简单了
在这个语句中可以分为三部分
第一部分是:
IF X<0
THEN Y=5
第二部分是:
ELSE IF X<10
THEN Y=10
IF X<100
THEN Y=100
第三部分是:
ELSE Y=200
当X=80时,前两