有以下程序段int n=0,p;do {scanf(“%d”,&p);n++;} while (p!=12345 && n<3); 此处do-while 循环的结束条件是

admin2009-01-15  36

问题 有以下程序段int n=0,p;do {scanf(“%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

答案8

解析 本题考查的知识点是do-while循环结构循环执行条件的判断.使用do -while语句必须注意以下几点:
   先执行语句,后判断表达式。所以,无论一开始表达式的值为“真”还是“假”,循环体中的语句至少执行一次,这一点与while不同,
   如果do-while语句循环体部分是由多个语句组成,则必须用花括号括起来,使其形成复合语句。
   C语言中的do—while语句是在表达式“真”时重复执行循环体。
   在本题中,循环执行判断条件为while后面括号里的表达式即p!=12345&&n<3(意思为p不等于 12345且n小于3)是否为“真”,由此可得循环结束的条件为:p大于12345或者p小于12345又或者 n大于等于3。选项A的意思是:p的值不等于12345并且n的小于3和while后面括号里的表达式等价是循环执行的条件而不是循环结束的条件,所以选项A不正确;选项B的意思是:p的值等于12345并且n的值大于3,不是循环结束的条件一个子集,所以选项B不正确;选项C的意思是:p的值不等于12345或者n的值小于3前一半是结束条件的子集,后一部分不是结束条件,所以选项C不正确;选项D描述的意思是:p的值等于12345或者你的大于等于3是结束条件的子集,所以选项D满足题意。所以4个选项中D正确。
转载请注明原文地址:https://jikaoti.com/ti/PbK0FFFM
0

最新回复(0)