下面程序的运行结果( )。 s=0 i =1 DO WHILE i

admin2016-08-24  27

问题 下面程序的运行结果(     )。
    s=0
    i  =1
    DO WHILE i<5
    j=l
    DO WHILE j<=i
      IFj*j>i+3
        EXIT
    ENDIF
    s=s+j
    j=j+1
    ENDDO
    s=s+i
    i  =i+l
    ENDDO
    ?s

选项 A、10
B、20
C、23
D、27

答案B

解析 本题考查二重DO WHILE -ENDDO循环结构执行过程,程序执行过程如下所示:当i=l时,外层循环语句DO WHILE i<5条件成立,执行j=l,内层DO WHILE j<=i循环条件成立,Ifj*j >i+3条件不成立,执行s=s+j语句,s的值为l,执行j =j+l语句,j的值为2。内层DOWHILE j<=i循环条件不成立。继续执行外层循环语句s=s+i,s=2,执行i=i+l,i的值为2。当i=2时,外层循环语句DO WHILE i<5条件成立,执行j=l,内层DO WHILE j<=i循环条件成立,Ifj*j >i+3条件不成立,执行s=s+j语句,s的值为3,执行j =j+1语句,j的值为2。内层DOWHILE j<=i循环条件成立,判断IF j*j >i+3条件不成立,执行s=s+j语句,s的值为5,执行j=j+1语句,j的值为3。内层DO WHII.E j<=i循环条件不成立,内层循环结束继续执行外层循环语句s=s+i,s的值为7,执行i=i+l,i的值为3。当i=3时,外层循环语句DO WHILE i<5条件成立,执行j=l,内层DO WHILE j<=i循环条件成立,Ifj*j >i+3条件不成立,执行s=s+j语句,s的值为8,执行j =j+l语句,j的值为2。内层DOWHILE j<=i循环条件成立,判断IF j*j >i+3条件不成立,执行s=s+j语句,s的值为10,执行j=j+1语句,j的值为3。内层DO WHILE j<=i循环条件成立,判断IFj*j >i+3条件成立,执行EXIT语句,提前结束内层DO WHILE - ENDDO循环,继续执行外层循环语句s=s+i,s的值为13,执行I=I+1,i的值为4。当i=4时,外层循环语句DO WHILE i<5条件成立,执行j=l,内层DO WHILE j<=i循环条件成立,Ifj*j >i+3条件不成立,执行s=s+j语句,s的值为14,执行j=j+1语句,j的值为2。内层DOWHILE j<=i循环条件成立,判断IFj*j >i+3条件不成立,执行s=s+j语句,s的值为16,执行j=j+l语句,j的值为3。内层DO WHILE j<=i循环条件成立,判断IFj*j >i+3条件成立,执行EXIT语句,提前结束内层DO WHILE - ENDDO循环,继续执行外层循环语句s=s+i,s的值为20,执行i=I+l,i的值为5。当i=5时,外层循环结束,所以最终s的值为20。故B选项正确。
转载请注明原文地址:https://kaotiyun.com/show/aQIp777K
0

最新回复(0)