1
单选(1分)
写出下面程序的运行结果
#include <stdio.h>
void Bin(int x)
{
if (x/2 > 0) Bin(x/2);
printf("%d\n", x%2);
}
int main()
{ Bin(12);
return 0;
}
2
单选(1分)
下面程序是用辗转相除法计算两个正整数的最大公约数的递归求解方法。请将程序补充完整。
提示:辗转相除法的基本思路是,对正整数a和b,连续进行求余运算,直到余数为0为止,此时非0的除数就是最大公约数。设r=a mod b表示a除以b的余数,若r≠0,则将b作为新的a,r作为新的b,重复a mod b运算,直到r=0时为止,此时b为所求的最大公约数。例如,50和15的最大公约数的求解过程可表示为:Gcd(50, 15)=Gcd(15, 5)=Gcd(5, 0)=5。
int Gcd(int a, int b)
{ if (a%b == 0)
return b;
else return ____________________;
}
-
A.
Gcd(b, a%b)
-
B.
Gcd(b%a, a)
-
C.
Gcd(a, b%a)
-
D.
Gcd(a%b, b)
-
答案:A
3
单选(1分)
请给出程序的运行结果。
#include <stdio.h>
int Fun(int m)
{
static int n = 0;
m /= 2;
m = m * 2;
if (m)
{
n *= m;
return(Fun(m - 2));
}
else
return n;
}
int main()
{
int a, i;
for (i = 0; i < 2; i++)
{
a = Fun(4 + i);
printf("%d\n", a);
}
return 0;
}
4
单选(1分)
根据最大公约数的如下3条性质,采用递归法编写计算最大公约数的函数Gcd(),在主函数中调用该函数计算并输出从键盘任意输入的两正整数的最大公约数。
性质1 如果a>b,则a和b与a-b和b的最大公约数相同,即Gcd(a, b) = Gcd(a-b, b)
性质2 如果b>a,则a和b与a和b-a的最大公约数相同,即Gcd(a, b) = Gcd(a, b-a)
性质3 如果a=b,则a和b的最大公约数与a值和b值相同,即Gcd(a, b) = a = b
代码如下,请补充程序中缺少的内容。
#include <stdio.h>
int Gcd(int a, int b);
int main()
{
int a, b, c;
printf("Input a,b:");
scanf("%d,%d", &a, &b);
c = Gcd(a, b);
if (_________) printf("Greatest Common Divisor of %d and %d is %d\n", a, b, c); else
printf("Input number should be positive!\n");
return 0;
}
int Gcd(int a, int b)
{
if (_______________) return -1;
if (a == b) return __________; else if (a > b) return __________; else return ___________;
}
-
A.
第9行: c!= -1
第18行: a <= 0 || b <= 0
第21行: a
第23行: Gcd(a - b, b)
第25行: Gcd(a, b - a)
-
B.
第9行: c== -1
第18行: a <= 0 || b <= 0
第21行: a
第23行: Gcd(a, b - a)
第25行: Gcd(a - b, b)
-
C.
第9行: c== -1
第18行: a <= 0 && b <= 0
第21行: a
第23行: Gcd(a - b, b)
第25行: Gcd(a, b - a)
-
D.
第9行: c!= -1
第18行: a <= 0 && b <= 0
第21行: b
第23行: Gcd(a, b - a)
第25行: Gcd(a - b, b)
答案:A
5
单选(1分)
Y()是实现n层嵌套平方根计算的函数,其公式如下,请将程序补充完整。
double Y(double x, int n)
{ if (n == 0)
return 0; else
return (square(x +___________________));
}
-
A.
Y(x,n-1)
-
B.
Y(x,1)
-
C.
Y(x,n+1)
-
D.
Y(x,n)
-
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)