问题 单项选择题

有以下程序main(){int y=10;while(y--);printf("y=%d\n",y);}程序执行后的输出结果是______。

A.y=0

B.y=-1

C. y=1

D.while

答案

参考答案:B

解析:此题考核的是 while 条件语句及自减运算。当 while 的条件表达式成立时(非零),重复执行循环体, 但此题的 while 循环无循环体,则只要 while 的条件表达式成立,就不断执行 while 条件表达式,直到其条 件表达式不成立,程序就自动跳出 while 循环,直接执行 printf 语句。“y—”表示先运用 y 的值,再进行y 自减。本题一开始先判断 y 为 10 的值是否满足条件(同时 y 的值自减 1),显然 y=10 条件满足,则再次 执行 while 语句,判断y为9 的值是否满足条件(同时 y 的值自减 1)……直到判断y为0 的值是否满足 条件(同时 y 的值自减 1,即 y=-1),此时条件为假,退出循环,执行 printf 语句,输出 y=-1。

单项选择题
实验题