题目内容

设计一个函数MaxCommonFactor(),利用欧几里德算法(也称辗转相除法)计算两个正整数的最大公约数。代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include int MaxCommonFactor(int a, int b); int main() { int a, b, x; printf("Input a,b:"); scanf("%d,%d", &a, &b); x =_______________ ; if (x != -1) { printf("MaxCommonFactor = %d\n", x); } else { printf("Input error!\n"); } return 0; } //函数功能: 计算两个正整数的最大公约数,-1表示没有最大公约数 int MaxCommonFactor(int a, int b) { int r; if (a<=0 || b<=0) return -1; // 保证输入的参数为正整数 do{ ____________; a = b; _____________; }while (__________); return a; }

A. 第8行:MaxCommonFactor(a, b)第29行: r = a % b第31行: b = r第32行: r != 0
B. 第8行:MaxCommonFactor(a, b, x)第29行: r = a % b第31行: a= r第32行: r == 0
C. 第8行:MaxCommonFactor(a, x)第29行: r = b % a第31行: b= r第32行: r = 0
D. 第8行:MaxCommonFactor(x, b)第29行: r = a/ b第31行: a= r第32行: r != 0

查看答案
更多问题

以下程序的功能是:输入两个整数,求出它们的最大公约数并输出,请填空。int gcd(int m,int n){ int r;r=m%n;while(r!=0){ m=n;n=r; ____________;}return n;}main( ){ int a,b;scanf("%d,%d",&a,&b);printf("%d",gcd(a,b));}

A. r=n%m
B. r=m%n
C. r=m/n
D. m=r*n

以下程序运行后的输出结果是#include float Fun(int x,int y) { return(x+y); } int main() { int a=2,b=5,c=8; printf("%3.0f\n",Fun((int)Fun(a+c,b),a-c)); return 0; }

A. 9
B. 21
C. 9.0
D. 编译出错

以下程序运行的结果是什么?int fun (int x,int y){if (x!=y) return ((x+y)/2);else return (x);}main(){int a=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c)));}

A. 4
B. 5
C. 6
D. 7

下面的函数调用语句中func函数的实参个数是几个?func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8)))

A. 3
B. 4
C. 5
D. 6

答案查题题库