问题 单项选择题

有以下程序:
#include<stdio.h>
int abc(int u, int v);
main()
int a=24, b=16, c;
c=abc(a, b);
printf("%d\n", c);

int abc(int u, int v)
int w;
while(v)
w=u%v; u=v; v=w;
return;

输出结果是( )。

A.6

B.7

C.8

D.9

答案

参考答案:C

解析: abc函数是求u、v的最大公约数,当v=16时,循环成立,执行其后的语句,即w=u%v, u=v; v=w; w=24%16=8, u=16, v=8,接着返回到while中,当v=8时,循环成立,执行其后的语句,即w=u%v; u=v; v=w; w=16%8=0, u=8, v=0,接着再返回到while中,当v=0时,循环不成立,退出循环。

单项选择题
单项选择题