举一反三
- 假设传递给形参x和y的值是24和16,gcd (x,y)函数是求x和y的最大公约数,写出下列函数的运行结果: int lownum ( int x,int y) { printf (“ %d\n”,x * y /gcd (x,y)); return 0; }
- gcd (x,y)函数的功能是求x和y的最大公约数,在划线处填写正确的表达式: int gcd ( int x , int y) { if ( y == 0) return x; else return ____________________; }
- 有以下递归函数求最大公约数的程序, 则程序的执行结果是( )。#include<stdio.h>int gcd(int m, int n){ int g; if (n == 0) g=m; else g=gcd(n,m%n); return (g); }void main( ){ int m=21,n=7; printf(“%d”,gcd(m,n)); }
- 以下程序没有语法问题的是() A: B: include<;stdio.h>;int main( ){int x , y = 5 ; printf( "%d\n" , x / y ) ; return 0 ;} C: D: include<;stdio.h>;int main( ){int x = 3 ;y = 5 ; printf( "%d\n" , x / y ) ; return 0 ;} E: F: include<;stdio.h>;int main( ){int x = 3 ,y ; printf( "%d\n" , x / y ) ;y = 5; return 0 ;} G: H: include<;stdio.h>;int main( ){int x = 3 , y = 5 ; printf( "%d\n" , x / y ) ; return 0 ;}
- 递归法求两个数的最大公约数。 函数接口定义: int gys(int m,int n); 其中 m 和 n 都是用户传入的参数。函数用递归法求m 和 n的最大公约数。 #include int gys(int m,int n) { } int main() { int m,n; scanf("%d%d",&m,&n); printf("%d ",gys(m,n)); return 0; } 输入样例: 24 16 输出样例: 8
内容
- 0
下面程序的功能是用“辗转相除法”求两个正整数的最大公约数。请分析程序填空。 #include main() {int r,m,n; scanf("%d%d",&m,&n); if(m 【1】r=m,m=n,n=r;【2】m%n;
- 1
通过方法gcd求两个数的最大公约数。public static void main(String[] args) { int a=24,b=15; System.out.println(a+"和 "+b+"的最大公约数是:"+ ⑥ );//调用方法gcd}static ⑦(int a,int b){//定义方法gcd int k; do{ k=⑧; a=b; b=k; }while(⑨); ⑩;//返回最大公约数 }}
- 2
以下程序中,运行结果是36的有()。 A: include <stdio.h> B: define M(y) y*y int main() { printf("%d\n",M(6+0)); return 0; } C: include <stdio.h> D: define M(y) (y)*(y) int main() { printf("%d\n",M(6+0)); return 0; } E: include <stdio.h> int M(int y) { return y*y; } int main() { printf("%d\n",M(6+0)); return 0; } F: include <stdio.h> int M(int y) { return (y)*(y); } int main() { printf("%d\n",M(6+0)); return 0; }
- 3
求两个正整数x和y的最小公倍数,请填空。 #include "stdio.h" int main { int x = 24, y = 31, t, min, i; if(x > y) {t = x; x = y; y = t;} for (________; i >= y; i--) { if(________) min = i; } printf("min is : %d", min); return 0; }
- 4
设计一个函数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 , x); } else { printf(Input error! ); } return 0;}//函数功能: 计算两个正整数的最大公约数,-1表示没有最大公约数int MaxCommonFactor(int a, int b){ int r; if (a<=0 || b<=0) return -1; // 保证输入的参数为正整数 do{ ____________; a = b; _____________; }while (__________); return a; }