更多"两个正整数分别除以它们的最大公约数,得到2个商的和是18,能确定两个整"的相关试题:
[填空题][函数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 );
}
[简答题]请编写函数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);
}
[填空题]下列给定程序中函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。
例如,若num1和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,则输出的最大公约数为27。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
int fun(int a,int b)
int r,t:
if(a<b)
/*********found*********/
t=a;b=a;a=t;
r=a%b;
while(r!=0)
a=b;b=r;r=a%b;
/*********found*********/
return(a);
void main( )
int num1,hum2,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);
[简答题]fun( )的功能是:求出两个非零正整数的最大公约数,并作为函数值返回。
例如,若给hum1和num2分别输入49和21,则输出的最大公约数为7;若给num1和num2分别输入27和81,则输出的最大公约数为27。
#include<stdio.h>
int fun(int a,int b)
int r,t;
if(a<b)
/**********found**********/
t=a;b=a;a=t;
r=a%b;
while(r!=0)
a=b;b=r;r=a%b;
/**********found**********/
return(a);
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);
[填空题]下面的程序是找出两个正整数a和b,使得a<b、a+ b=99、a和b的最大公约数是3的倍数,并统计满足条件数对的个数。
Option Explicit
Dim a As Integer, b As Integer, n As Integer, c As Integer
Private Function Gcd (ByVal a As Integer, Byval b As Integer) As Integer
do
c=a Mod b: a=b=c
Loop 【13】
Gcd=a
End Function
Private Sub form_ Click( )
n=0
for a= 1 To 49
b= 【14】
c= Gcd (a, b)
if c Mod 3= 0 then
【15】
Print a, b, c
End if
Next a
Print n
End Sub
[简答题]下列程序中,给出两个整数4和6,分别求4除以6和4乘以6的结果,要求调用类exl的方法method( )来输出相应的结果,请将程序补充完整。程序运行结果如下:
0.6666666666666666
24
注意:不改动程序结构,不得增行或删行。
public class ex1
{
public static void main(String[] args)
{
int n1=2,n2=3;
ex1 obj1=new ex1( );
obj1.______;
}
public void method(int x, int y)
{
System.out.println(______);
System.out.println(______);
}
}
[简答题]下列程序中,给出两个整数2和3,分别求2除以3和2乘以3的结果,要求调用类ex19_1的方法method( )来输出相应的结果,请将程序补充完整。程序运行结果如下。
0.6666666666666666
6
源程序文件代码清单如下:
public class exl9 1
{
public static void main(String args[])
{
int n1=2,n2=3;
ex19_1 obj19_1=new ex19_1( );
obj19_1.
}
public void method(int x,int y)
{
System.out.println(______);
System.out.println(______);
}
}
[简答题]下列程序中,给出两个整数2和3,分别求2除以3和2乘以3的结果,要求调用类ex1_1的方法method( )来输出相应的结果,请将程序补充完整。程序运行结果如下:
0.6666666666666666
6
public class ex1_1{
public static void main(String[]args) {
int n1=2,n2=3;
ex1_1 obj1_1=new ex1_1( );
obj1_1. ______;
}
public void method(int x,int y){
System.out.println(______);
System.out.println(______);
}
}
[多项选择]基本操作题
下列程序中,给出两个整数2和3,分别求2除以3和2乘以3的结果,要求调用类ex1_1的方法method( )来输出相应的结果,请将程序补充完整。程序运行结果如下:
0.6666666666666666
6
public class ex1_1 {
public static void main(String[] args) {
int n1=2,n2=3;
ex1_1 obj1_1=new ex1_1( );
obj1_1. ;
}
public void method(int x,int y){
System.out.println( );
System.out.println( );
}
}
[单项选择]两个重量相同的实心铅球和棉球,将它们用细线分别挂在两个同样的弹簧秤下并浸入水巾,比较这两个弹簧秤的读数是( )。
A. 挂铅球的大
B. 挂棉球的大
C. 两者一样
D. 无法确定
[简答题]【程序说明】
该程序定义了两个子函数strsort和strmerge。它们分别实现了将一个字符串按字母顺序排序和将两个字符串合并排序,并删去相同字符。在主函数里,先输入两个字符串s1和s2,然后调用strsort函数对它们分别排序,然后调用strmerge函数将s1和s2合并,将合并后的字符串赋给字符串s3,最后输出字符串s3。
【程序】
#include<stdio.h>
void strmerge(char,a,char *b,char *c) //将字符串a,b合并到字符串c中
{
char t,*w;
w=c;
while( (1) )
{//找到字符串a,b当前字符中较小的字符
if(*a< *b)
{
t= *a;
(2) ;
{
else if (*a>*b)
{
t= *b;
(3) ;
}
else //字符串a,b当前字符相等
{
t= *a;
a++;
b++;
}
if( (4) ) //开始,可直接赋值
*w=t;
else if(t!=*w)
//如果a,b中较小的当前字符与c中当前字符不相等,才赋值 (5) ;
}
if(*a!=/’/0’) //如果字符串a还没有结束,则将a的剩余部分赋给C
while(*a!=’/0’)
if(*a!=*w)
{
*(++w)=*a;
a++;
}
else
(6) ;
if(*6!=’/0’) //如果字符串b还没有结束,则将b的剩余部分赋给c
while(*b!=’/0’)
if(*b! = *w)
{
*(++w)=*b;
b++;
}
else
b++;
(7) ;
}
void strsort(char*s) //将字符串S中的字符
[简答题]【程序说明】
该程序定义了两个子函数strsort和strmerge。它们分别实现了将一个字符串按字母顺序排序和将两个字符串合并排序,并删去相同字符。在主函数里,先输入两个字符串s1和s2,然后调用strsort函数对它们分别排序,然后调用strmerge函数将s1和s2合并,将合并后的字符串赋给字符串s3,最后输出字符串s3。
【程序】
#include<stdio.h>
void strmerge(char,a,char *b,char *c) //将字符串a,b合并到字符串c中
char t,*w;
w=c;
while( (1) )
//找到字符串a,b当前字符中较小的字符
if(*a< *b)
t= *a;
(2) ;
else if (*a>*b)
t= *b;
(3) ;
else //字符串a,b当前字符相等
t= *a;
a++;
b++;
if( (4) ) //开始,可直接赋值
*w=t;
else if(t!=*w)
//如果a,b中较小的当前字符与c中当前字符不相等,才赋值 (5) ;
if(*a!=/’/0’) //如果字符串a还没有结束,则将a的剩余部分赋给C
while(*a!=’/0’)
if(*a!=*w)
*(++w)=*a;
a++;
else
(6) ;
if(*6!=’/0’) //如果字符串b还没有结束,则将b的剩余部分赋给c
while(*b!=’/0’)
if(*b! = *w)