计算机二级

下列程序的运行结果是( )。Private Function myfun(m,n)Do While m>nDo While m>n:m=m-n:LoopDo While n>m:n=n-m:LoopLoopmy fun=mEnd FunctionPrivate Sub Command1_Click()Print myfun(9,8)End SubA.2B.1C.4D.3

题目

下列程序的运行结果是( )。

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

my fun=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题:

以下函数声明行书写不正确的是:

A.function [m,n] = myfun(a)

B.function [m] =myfun(a)

C.function m= myfun (b,c)

D.function m,n=myfun(b,c)


function m,n=myfun(b,c)

第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题:

以下定义函数声明正确的是:

A.function [m] =myfun[a,b]

B.function (m,n) =myfun(a)

C.function m =myfun([a,b])

D.function m =myfun


function m =myfun

第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