问题
单项选择题
下面程序的功能是把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。