下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,在划线处应填入的选项是 #include <iostream.h> void main( ) { int i=0,j,k; do{i++;k=316-13*i;}while(______); j=k/11; cout<<"316=13*"<<i<<"+11*"<<j; }
A.k/11
B.k%11
C.k/11==0
D.k%11==0
参考答案:B
解析: do-while语句的一般形式是 do { 语句 }while(表达式); 特点是:“直到型”循环结构。先执行一次“语句”,判“表达式”,当“表达式”为非0,再执行“语句”,直到“表达式”的值为0时停止执行语句。在一般情况下,用while和 do-while语句解决同一问题时,若二者的循环体部分是一样的,它们的结果也一样。但当while后面的“表达式”一开始就为“假”时,两种循环的结果不同。这是因为此时while循环的循环不被执行,而do-while循环的循环体被执行一次。本题的关键是两个加数分别能被13和11整除,在i=0时,直接将316赋值给k,当 k%11的值为0时,则不必执行循环,将执行j=k/11语句,输出结果,所以该表达式合理的条件是k%11。