有以下程序段:
int n=0,p;
doscanf(“%d”,&p);n++;while(p!=12345&&n<3);
此处do-while循环的结束条件是
A.p的值不等于12345并且n的值小于3
B.p的值等于12345并且n的值大于等于3
C.p的值不等于12345或者n的值小于3
D.p的值等于12345或者n的值大于等于3
参考答案:D
解析:do-while循环结构中循环执行条件的判断,使用do-while语句必须注意以下几点:
1)先执行语句,后判断表达式。所以,无论一开始表达式的值为“真”还是“假”,循环体中的语句至少执行一次,这一点与while不同。
2)如果do-while语句循环体部分是由多个语句组成,则必须用花括号括起来,使其形成复合语句。
3)C语言中的do-while语句是在表达式“真”时重复执行循环体。在本题中,循环执行判断条件为while后面括号里的表达式即p!=12345&&n<3(意思为P不等于12345且 n小于3)是否为“真”,由此可得循环结束的条件为:p大于12345或者P小于12345又或者n大于等于3。选项A的意思是:p的值不等于12345并且n小于3和while后面括号里的表达式等价是循环执行的条件而不是循环结束的条件;选项B的意思是:p的值等于 12345并且n的值大于3,不是循环结束的条件一个子集;选项C的意思是:p的值不等于 12345或者n的值小于3前一半是结束条件的子集,后一部分不是结束条件;选项D描述的意思是:p的值等于12345或者n的值大于等于3是结束条件的子集。