下列程序的运行结果是()。Private Function myfun(m, n) Do While m > n Do While m>n:m=m-n:Loop

题目

下列程序的运行结果是( )。 Private Function myfun(m, n) Do While m > n Do While m>n:m=m-n:Loop Do while n>m:n=n-m:Loop Loop myfun=m End Function Private Sub Command1_Click() Print myfun(9, 8) End Sub

A.2

B.1

C.4

D.3

参考答案和解析
正确答案:B
解析:求解本题的关键在于理解好3个Do While循环的执行顺序,第2个和第3个Do While循环嵌套在第1个Do While循环内,先执行第2个循环,然后是第3个循环,最后是外层循环即第1个 Do While循环。程序执行如下:m=9,n=8;第1个Do While循环内,执行第2个Do While循环,m=m-n=1;退出第2个Do While循环;执行第3个Do While循环,n=n-m,最后n的值为1;退出第3个 Do While循环,退出第1个Do While循环.程序执行结果是1。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下列程序是死循环的是 ( )

A.for(;;)

B.int s=36; while(s)=s;

C.int m=10; do{m- -;}while(m>0);

D.int n=5; while(n>1) { n- -; if(n<0)break; }


正确答案:A

第2题:

下面程序的运行结果是( )。 include main() {int a,s,n,m; a=2;s=0;n=1;m=1; while(m<=4

下面程序的运行结果是( )。 include<stdio.h> main() {int a,s,n,m; a=2;s=0;n=1;m=1; while(m<=4){n=n*a;s=s+n;++m;} printf("s=%d",s); }


正确答案:s=30
s=30 解析:分析循环条件“m=1,m=4”,所以循环4次。第1次:n=n*a=2,s=s+n=2;m=2。第2次:n=n*a=4,s=s+n=6;m=3。第3次:n=n*a=8,s=s+n=14;m=4。第4次:n=n*a=16,s=s+n=30。

第3题:

( 8 )有以下程序

#include <stdio.h>

main ()

{ int m,n;

scanf ( " %d%d " ,&m,&n ) ;

while ( m!=n )

{ while ( m>n ) m=m-n;

while ( m<n ) n=n-m;

}

printf ( " %d\n " ,m ) ;

}

程序运行后,当输入 14 63 < 回车 > 时,输出结果是 【 8 】 。


正确答案:




第4题:

【填空题】当从键盘输入-1 0<CR>,则以下程序的运行结果是 。 #include<stdio.h> main() {int a,b,m,n; m=n=1; scanf("%d%d",&a,&b); do{if(a>0) {m=2*n;b++;} else {n=m+n;a+=2;b++;} }while(a==b); printf("m=%d n=%dn",m,n); }


This Is A Test.

第5题:

10、若变量m已定义,以下程序段中的do-while循环次数是________ m=-1; do{ m=m*m;}while(!m);


B 解析:对于do厀hile循环,程序先执行一次循环体,再判断循环是否继续。本题先输出一次i的值'0,',再接着判断表达式i++的值,其值为0,所以循环结束。此时变量i的值经过自加已经变为1,程序再次输出i的值'1'。

第6题:

有以下程序

inculde <stdio.h>

main()

{ int m,n;

scanF(“%d%d”,&m&n);

While(m!=n)

{ While(m>n)m=m-n;

While(m<n)n=n-m;

}

PrintF(“%d\n”,m);

}

程序运行后,当输入14 63<回车>时,输出结果是【 】。


正确答案:7
7 解析:执行while(m<n)的循环,得到m=14,n=7,然后执行while(m>n)的循环,得到m=7,n=7。此时所有循环结束,m=7。

第7题:

下列各程序段中,不是死循环的是( )。

A.int j=100;

B.for(;;) while(1) {j=j%100+1; if(j>1000) break; }

C.int n=0;

D.int m=36; do{ while(m)--m; ++n; }while(n>=0);


正确答案:D
解析:本题考查三种循环语句的结束条件。对于选项A,它的条件表达式1永远为真,故循环永远不会停止,是死循环;对于选项B,它的条件表达式为空,也是死循环;对于选项C,它的条件表达式(n>=0)总是成立,故也是死循环;对于选项D,当m减到小于0时,它的条件表达式结果为假(false),循环结束。

第8题:

下列程序是死循环的是

A.for(;;);

B.int s=36; while(S)--S;

C.int m=10; do { m- - }while(m>0);

D.int n=5; while(n>1) { n- -; if(n<0)break; }


正确答案:A
解析:在for语句中省略中间的判断表达,并且后面只有一个分号,所以是循环。

第9题:

若变量m已定义,以下程序段中的do-while循环次数是________ m=-1; do{ m=m*m;}while(!m);


1 或者 一

第10题:

27、运行以下程序后,如果从键盘上输入65 14<回车>,则输出结果为()。 int main(void){ int m, n; printf("Enter m,n;"); scanf("%d%d", &m,&n); while (m != n) { while (m > n) m = m - n; while (n > m) n = n - m; } printf("m=%d\n",m); return 0;}

A.m=3

B.m=2

C.m=1

D.m=0


C