更多"下列给定程序中,函数fun( )的功能是;求出两个数的最大公约数,并作"的相关试题:
[简答题]下列给定程序中,函数fun( )的功能是;求出两个数的最大公约数,并作为函数值返回。例如,若给num1和num2输入49和21,则输出的最大公约数为7:若给num1和num2分别输入27和81,则输出最大公约数为27。
请改正函数fun( )中的错误,使它能得出正确的结果。
注意:不要改动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);
}
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);
}
[简答题]下列给定程序中,函数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);
[简答题]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);
[简答题]下列给定程序中,函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。
例如,若num1和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,则输出的最大公约数为27。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
intfun(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,num2,a;
printf("Input num1 num2:");
scanf("%d%d",&num1,&num2);
printf("num1=%d num2=%&n/n",num1,num2);
a=fun(num1,num2);
printf("The maximun common divisor is%d/n/n",a);
[填空题]在给定程序中,函数fun的功能是:将a和b所指的两个字符串转换成面值相同的整数,并进行相加作为函数值返回,规定字符串中只含9个以下的数字字符。
例如:主函数中输入字符串:32486和12345,在主函数中输出的函数值为:44831。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构。
文件BLANK1.C内容如下:
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#define N 9
long ctod(char *s)
long d=0;
while(*s)
if(isdigit(*s))
/**********found**********/
d=d*10+*s- (1) ;
/**********found**********/
(2) ;
return d;
long fun(char *a,char *b)
/**********found**********/
return (3) ;
void main( )
char s1[N],s2[N];
do
printf("Input string s1: ");
gets(s1);
while(strlen(s1)>N);
do
printf("Input string s2: ");
gets(s2);
while(strlen(s2)>N);
printf("The result is: %1d/n",fun(s1,s2));
[填空题]下面程序通过调用函数模板实现计算两个正整数的最大公约数,把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;
[简答题][说明]
下面的程序利用递归算法计算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);
}
[简答题]下列给定程序中,函数fun的功能是:计算正整数num各位上的数字之积。
注意:不要改动maln函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include <stdio.h >
#include <conio.h>
long fun (long num)
/********** found********** /
long k;
do
k*=num% 10;
/********** found********** /
num/=10;
while (num);
return (k);
main ( )
long n;
printf ("/ n please enter a num-
ber: ");
scanf("% 1d", &n);
printf("/n% 1d/n", fun(n));
[简答题][说明]
下面的程序利用递归算法计算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);
[填空题]由N个有序整数组成的数列已放在一维数组中,下列给定程序函数fun的功能是:利用折半查找法查找整数m在数组中的位置。若找到,返回其下标值;否则,返回-1。
折半查找的基本算法是:每次查找前先确定数组中待查的范围low和high(low<high),然后用m与中间位置(mid)上元素的值进行比较。如果m的值大于中间位置元素的值,则下一次的查找范围落在中间位置之后的元素中;反之,下一次的查找范围落在中间位置之前的元素中,直到low>high,查找结束。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#define N 10
/**********found**********/
void fun(int a[],int m)
int low=0,high=N-1,mid;
while(low<=high)
mid=(low+high)/2;
if(m<a[mid])
high=mid-1;
/********found**********/
else if(m>a[mid])
low=mid+1;
else return(mid);
return(-1);
void main( )
int i,a[N]=(-3,4,7,9,13,45,67,89,100,180),
k,m;
printf("a数组中的数据如下:");
for(i=0;i<N;i++)
printf("%d",a[i]);
printf("Enter m:");
scanf("%d",&m);
k=fun(a,m);
if(k>=0)
printf("m=%d,index=%d/n",m,k);
else printf("Not be found /n");
[简答题]改错题
下列给定程序中函数fun( )的功能是计算正整数num的各位上的数字之平方和。
例如:输入352,则输出应该是38;若输入328,则输出应该是77。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
long fun(long num)
{
/**********************found***********************/
long k=1;
do
{
k+=(num%10)*(num%10);
num/=10;
/**********************found***********************/
}while(num)
return (k);
}
main( )
{
long n;
clrscr( );
printf("/Please enter a number:");
scanf("%ld",&n);
printf("/n%ld/n",fun(n));
}
[填空题]下列给定程序中函数fun( )的功能是计算正整数num的各位上的数字之平方和。
例如:输入352,则输出应该是38;若输入328,则输出应该是77。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <stdio.h>
#include <conio.h>
long fun(long num)
/*+**+*+*+*found************/
long k=1;
do
k+=(num%10)*(num%10);
num/=10;
/*********+found*+**+*+******/
while(num)
return(k);
main( )
long n;
clrscr( );
printf("/Please enter a number:");
scanf("%ld",&n);
printf("/n%ld/n",fun(n));