问题 单项选择题

下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,在划线处应填入的是( )。  #include<iostream.h>  voidmain( )  {    inti=0,j,k;    do{i++;k=316-13*i;}while(_____);    j=k/11;    cout<<"316=13*"<<i<<"+11*"<<j;  }

A.k/1l

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语句,输出结果,所以该表达式合理的条件是k5%11。

单项选择题
单项选择题 A1/A2型题