更多"[说明] 下面的程序利用递归算法计算x和y的最大公约数。[函数2.1"的相关试题:
[简答题][说明]
下面的程序利用递归算法计算x和y的最大公约数。
[函数2.1]
main ( )
{ int x,y,k,t;
scanf(" % d% d" , &x, &y);
if(x>y) { t=x;x=y; y=t;}
(1) ;
while(k! =0){
y=x;
(2) ;
k=y%x;
}
prinff( "% d" ,x); }
[函数2.2说明]
函数fun(char *str,char *substr的功能是计算子串sugbstr在串str中出现的次数。
[函数2.2]
fun(ehar * str, char * substr)
{ int x,y,z;
(3) ;
for(x=0;str[ x] ! = ’/O’;x + + )
for(y=x,z=0;sabstr[z] = =str[y]; (4) ,y+ +)
if( (5) = =’/0’) {
num + +;
break;
}
return(num);
}
[简答题][函数2.1说明]
下面程序的功能是计算x和y的最小公倍数。
[函数2.1]
main( )
int m,n,d,r;
seanf("%d %d",&m,&n);
if(m<n) r=m;m=n;n=r;
(1) ;
while (d%n! =0) (2) ;
printf("%d/n",d);[函数2.2说明]
下述程序接收键盘输入,直到句点“.”时结束。输入的字符被原样输出,但连续的空格输入将转换成一个空格。
[函数2.2]
#include <stdio.h>
main( )
char c,preChar=’/0’;
c = getchar( );
while(c! = ’.’)
if( (3) ) putchar(c);
else if(preChar! =’ ’) putchar(c);
(4) ;
c= (5) ;
[单项选择]
下面程序段实现求最大公约数,请将程序补充完整。
DATA M,N/8,24/
R=MOD(M,N)
30 IF R.NE.0 THEN
M=N
N=L
______
GOTO 30
ENDIF
WRITE(*,*)N
END
答案是()。
A. R=MOD(M,N)
B. R=M/N
C. R=M-N
D. R=M*N
[填空题]下面程序的功能是求整数m、n的最大公约数,请填空。
main( )
int m,n,r;
scanf("%d,%d",&m,&n);
if( 【18】 )r=m;m=n;n=r;)
while( 【19】 )
r=m%n;m=n;n=r;
printf("%d",m);
[填空题]下面程序的功能是求整数m、n的最大公约数,请填空。
main( )
{ int m,n,r;
scanf("%d,%d",&m,&n);
if( 【18】 ){r=m;m=n;n=r;)
while( 【19】 )
{ r=m%n;m=n;n=r; }
printf("%d",m);
}
[填空题]下面程序的功能是求整数m、n的最大公约数,请填空。
main( )
int m,n,r;
scanf("%d,%d",m,n);
if( 【17】 ) r=m;m=n;n=r;
while( 【18】 )
r=m%n;m=n;n=r;
printf("%d",m);
[填空题]下面程序的功能是用“辗转相除”求两个整数的最大公约数。请填空。
#include<stdio.h>
main( )
{int r,m,n;
scanf("%d%d",&m,&n);
if(m<n)______
r=m%n:
while(r){m=n;n=r;r=m%/n};
printf(“%d/n",n);
}
[填空题]下面程序的功能是用“辗转相除”求两个整数的最大公约数。请填空。
#include<stdio.h>
main( )
int r,m,n;
scanf("%d%d",&m,&n);
if(m<n)______
r=m%n:
while(r)m=n;n=r;r=m%/n;
printf(“%d/n",n);
[填空题]下面程序通过调用函数模板实现计算两个正整数的最大公约数,把main函数中的错误找出并改正过来。
#include<iostream.h>
template<class T>
T gcd(T x,T y)
while(x!=y)
if(x>y)x-=y;
else y-=x;
return x;
void main( )
int a;
double d;
cin>>a>>d:
cout<<gcd(a,d)<<endl;
[填空题]以下函数fun用于求两个整数a和b的最大公约数。
fun(a,B)
int a,b;
{int i,j,m,n;
if(a>B)
{m=a;a=b; 【18】 ;}
i=a;j=b;
while((n= 【19】 )!=0)
{j=i;i= 【20】 ;}
return(i);
}
[简答题]下面的程序中定义了两个方法求自然数1~100的和。具体如下:int suml(int n);利用循环求1~n的和,int sum2(int n);利用递归方法求和1~n的和;在main( )方法中调用这两个方法求1~100的和并显示。在程序的每条横线处填写一个适当的语句,使程序的功能完整。
public class Sum
public static void main(String args[])
//1.调用suml(int n),求1~100的和
System.out.println("1~100的和:"+sum1(100));
//2,调用sum2(int n),求1~100的和
System.out.println("1~100的和:"+sum2(100));
static int suml(int n)
int result=0;
for(int i=1;i<=n;i++)
________________
retrun result;
static int sum2(int n)
if(______________)
return 1;
else
_____________
[简答题]下列给定程序中,函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
int fun(int a, int b)
int r, t;
if(a<b)
t=a; b=a; a=t;
/******************found*******************/
r=a%b;
while(r!=0)
a=b; b=r; r=a%b;
/******************found*******************/
return(a);
void main( )
int num1, num2, a;
printf("Input num1 num2:");
scanf("%d%d", &num1, &num2);
printf("num1=%d num2=%d/n/n", num1, num2);
a=fun(num1, num2);
printf("The maximun common divisor is%d/n/n",a);
[填空题][函数2.1说明]
求任意两个正整数的最大公约数的欧几里德算法。用辗转相除法求正整数m和n的最大公约数,并返回该公约数。
[函数2.1]
void func1(int m, int n)
r=m% n;
while(r<>0)
(1) ;
n=r;
(2) ;
return n;
[函数2.2说明]
判断101~200之间有多少个素数,并输出所有素数。用一个数分别去除2到sqrt (这个数),如果能被整除,则表明此数不是素数,反之是素数。
[函数2.2]
void func2 ( )
int m, i, k, h=0,leap=1;
printf ( "/n" );
for ( m=101;m<=200;m++ )
(3) ;
for (i=2;i<=k; i++ )
if( (4) )
leap=0;break;
if ( leap )
printf ( "%-4d",m );
(5) ;
if ( h%10==0 )
printf ( "/n" );
leap=1;
printf ( "/n The total is %d", h );
[简答题]请完成下列Java程序:输入2个整数,求最大公约数。要求有2个单行文本区作为输入,2个按钮,一个点击完成计算,一个点击退出程序。
注意:请勿改动main( )主方法和其他已有的语句内容,仅在横线处填人适当的语句。
import java.awt.*;
import java.awt.event.*;
public class ex14_2 extends Frame implements ActionListener{
private Label l;
private TextField tf,tf2;
public static void main(String[]arg){
exl4_2 obj14_2=new ex14_2( );
}
public ex14_2( ){
setTitle("ex14_2");
Panel p1;
Button b=new Button("OK");
p1=new Panel( );
tf=new TextField(8);
p1.add(tf);
d2=new TextField(8);
p1.add(tf2);
b.addActionListener(this);
p1.add(b);
b=new Button("Exit");
b.addActionListener(this);
p1.add(b);
add("North",p1);
Panel p2=new Panel( );
1=new Label("最大公约数:");
p2.add(1);
add("Center",P2);
setSize(500,300);
show( );
}
public void actionPerformed(ActionEvent ae){
if(ae.getActionCommand( ).equals("Exit"))//比较ae对象的标识名,是否为Exit。
System.exit(0);
else if(
[简答题]请完成下列Java程序:输入2个整数,求最大公约数。要求有2个单行文本区作为输入,2个按钮,一个单击完成计算,一个单击退出程序。
注意:请勿改动main( )主方法和其他已有语句内容,仅在下划线处填入适当的语句。
源程序文件代码清单如下:
import java.awt.*;
import java.awt.event.*;
public class ex7_2 extends Frame implements ActionListener
private Label 1;
private TextField tf,tf2;
public static void main(String args[])
ex7_2 obj7_2=new ex7_2( );
public ex7_2( )
setTitle("ex7_2");
Panel p1;
Button b=new Button("OK");
p1=new Panel( );
tf=new TextField(8);
p1.add(tf);
tf2=new TextField(8);
p1.add(tf2);
b.addActionListener(this);
p1.add(b);
b=new Button("Exit");
b.addActionListener(this);
p1.add(b);
add("North",p1);
Panel p2=new Panel( );
l=new Label("最大公因数:");
p2.add(l);
add("Center",p2);
setsize(500,300);
show( );
public