第1题:
请编写函数fun,它的功能是:求任意两个正整数的最小公倍数和最大公约数,最小公倍数放在指针变量bei所指的变量中,最大公约数放在指针变量yue所指的变量中。
注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
vOid fun(int m,int n,int*bei,int*yue)
{int s=l,i;
if(m>n){s=m;m=n;n=S;}
for(i=2,s=1;i<m i++)
if((m%i=0)&&(n%i=0))
{
}
*yue=s;
*bei=S*m*n;
}
main( )
{int a,b,beishu,yueshu;
chscr( );
printf("please input a,b:");scanf("%d,%d,"&a,&b);
fun(a,b,&beishu,&yueshu);
printf("a,b beishu:%d\n",beishu);
printf("a,b yueshu:%d\n",Yueshu);
}
第2题:
下面程序的功能是求整数m、n的最大公约数,请填空。
main()
{ int m,n,r;
scanf("%d,%d",&m,&n);
if(【 】){r=m;m=n;n=r;)
while(【 】)
{ r=m%n;m=n;n=r; }
printf("%d",m);
}
第3题:
( 6 ) 下面程序的功能是从键盘输入 1 大于 100 的整数 m ,计算并输出满足不等式
1+22+32 +42 + …… .+n2<m
的最大的 n 。请填空
Private Sub Command1__Click ()
Dim s ,m,n AS Integer
m=Val ( InputBox ( “ 请输入一个大于 100 的整数 ” ))
n=_________
s=0
Do While s<m
n=n+1
s=s+n*n
Loop
Print “ 满足不等式的最大 n 是_____
End Sub
第4题:
下列给定程序中,函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。
例如,若nmnl和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,
则输也的最大公约数为27。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或硼行,也不得更改程序的结构!
试题程序:
第5题:
阅读以下说明和流程图,回答问题1-2,将解答填入对应的解答栏内。
[说明]
下面的流程图采用欧几里得算法,实现了计算两正整数最大公约数的功能。给定正整数m和 n,假定m大于等于n,算法的主要步骤为:
(1)以n除m并令r为所得的余数;
(2)若r等于0,算法结束;n即为所求;
(3)将n和r分别赋给m和n,返回步骤(1)。
[流程图]
[问题1] 将流程图中的(1)~(4)处补充完整。
[问题2] 若输入的m和n分别为27和21,则A中循环体被执行的次数是(5)。
第6题:
下列程序在输入m后,求满足条件“n!<=m<=(n+1)!”的值n,请将程序补充完整。
include <iostream>
using namespace std;
int main()
{
int n,m, jc = 1;
cin>>m;
for(n=2;jc<=m;n++)
jc = jc*n;
cout<<"n="<<【 】<<end1;
return 0;
}
第7题:
JAVA编程
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
/**在循环中,只要除数不等于0,用较大数除以较小的数,将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为0,返回较大的数,此数即为最大公约数,最小公倍数为两数之积除以最大公约数。* /
import java.util.*;
public class lianxi06 {
public static void main(String[] args) {
int a ,b,m;
Scanner s = new Scanner(System.in);
System.out.print( "键入一个整数: ");
a = s.nextInt();
System.out.print( "再键入一个整数: ");
b = s.nextInt();
deff cd = new deff();
m = cd.deff(a,b);
int n = a * b / m;
System.out.println("最大公约数: " + m);
System.out.println("最小公倍数: " + n);
}
}
class deff{
public int deff(int x, int y) {
int t;
if(x < y) {
t = x;
x = y;
y = t;
}
while(y != 0) {
if(x == y) return x;
else {
int k = x % y;
x = y;
y = k;
}
}
return x;
}
第8题:
有如下事件过程,程序的功能是()。 Private Sub Commandl _Click ( ) S1=0: S2=0 M1=0: M2=0 N=1 Do while N<=100 A=INT(101* RND) If a mod 2=0 THEN S1= S1+A : M1=M1+1 Else S2= S2+A : M2=M2+1 End if N=N+1 Loop Print S1,S2 Print M1,M2 END Sub
:A. 求101以内奇数之和
B. 求101以内偶数之和
C. 随机产生100个0-100之间的整数,并分别求这些数的奇数和与偶数的个数与和
D. 随机产生101个0-100之间的整数,并分别求这些数的奇数和与偶数的个数与和
第9题:
请补充main函数,该函数的功能是:输入两个正整数m和n,求这两个数的最大公约和最小公倍数。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写的若干表达式或语句。
试题程序:
include <stdio.h>
main ( )
{
int a, b, n, m, t;
clrscr ();
printf ("\nInput two numbers: \n");
scanf ("%d, %d", &n, &m);
if (n<m)
{
a=m;
b=n;
}
else
{
a=n;
b=m;
}
while(【 】)
{
t=【 】
a=b;
b=t;
}
printf ("greatest con. non divisor:
%d\n", a);
printf ("least common multiple:
%d\n",【 】);
}
第10题:
以下程序是用来计算两个非负数之间的最大公约数我们假设x,y中最大的那个数的长度为n,基本运算时间复杂度为O(1),那么该程序的时间复杂度为()
A.O(1)
B.O(logn)
C.O(n)
D.O(n^2)