其他.docx
《其他.docx》由会员分享,可在线阅读,更多相关《其他.docx(31页珍藏版)》请在冰豆网上搜索。
其他
1.2.改错题
下列给定程序中,函数fun()的功能是:
求出两个数的最大公约数,并作为函数值返回。
例如,若给num1和num2输入49和21,则输出的最大公约数为7;若给num1和num2分别输入27和81,则输出最大公约数为27。
#include
intfun(inta,intb)
{intr,t;
if(a
/**********************found***********************/
{t=a;a=b;b=t;}
r=a%b;
while(r!
=0)
{a=b;b=r;r=a%b;}
/**********************found***********************/
return(b);
}
main()
{intnum1,num2,a;
printf("Inputnum1num2:
");scanf("%d%d",&num1,&num2);
printf("num1=%dnum2=%d\n\n",num1,num2);
a=fun(num1,num2);
printf("Themaximuncommondivisoris%d\n\n",a);
}
2.1.填空题
下列给定程序中,函数fun()的功能是:
求整数x的y次方的低3位值。
例如,整数5的6次方为15625,此值的低3位值为625。
【1】
longfun(intx,inty,long*p)
{inti;
longt=1;
for(i=1;【2】;i++)
t=t*x;
*p=t;
【3】;
returnt;
}
main()
{longt,r;intx,y;
printf("\nInputxandy:
");scanf("%1d%1d",&x,&y);
t=fun(x,y,&r);
printf("\n\nx=%d,y=%d,r=%ld,last=%ld\n\n",x,y,r,t);
}
3.1.填空题
下列给定程序中,函数fun()的功能是:
从3个红球,5个白球,6个黑球中任意取出8个作为一组,进行输出。
在每组中,可以没有黑球,但必须要有红球和白球。
组合数作为函数值返回。
正确的组合数应该是15。
程序中i的值代表红球数,j的值代表白球数,k的值代表黑球数。
#include
intfun()
{inti,j,k,【1】;
printf("\nTheresult:
\n\n");
for(【2】;i<=3;i++)
{for(j=1;j<=5;j++)
{k=8-i-j;
if(【3】)
{sum=sum+1;
printf("red:
%4dwhite:
%4dblack:
%4d\n",i,j,k);
}
}
}
returnsum;
}
main()
{intsum;
sum=fun();
printf("sum=%4d\n\n",sum);
}
4.2.改错题.下列给定程序中函数fun()的功能是:
从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。
例如,当s中的数为7654321时,t中的数为642。
#include
#include
/**********************found***********************/
voidfun(longs,longt)
{longs1=10;
s/=10;
*t=s%10;
/**********************found***********************/
while(s<0)
{s=s/100;
*t=s%10*s1+*t;
s1=s1*10;
}
}
main()
{longs,t;
clrscr();
printf("\nPleaseenters:
");scanf("%ld",&s);fun(s,&t);
printf("Theresultis:
%ld\n",t);
}
5.2.改错题.下列给定程序中,函数fun()的功能是:
实现两个整数的交换。
例如给a和b分别输入60和65,输出为:
a=65b=60
#include
#include
/**********************found***********************/
voidfun(inta,b)
{intt;
/**********************found***********************/
t=b;b=a;a=t;
}
main()
{inta,b;
clrscr();
printf("Entera,b:
");scanf("%d%d",&a,&b);
fun(&a,&b);
printf("a=%db=%d\n",a,b);
}
6.1.填空题.以下程序可把输入的十进制数以十六进制数的形式输出。
请在横线上填上适当的内容并把横线删除,使它能得出正确的结果。
#include
main()
{
charb[17]={"0123456789ABCDEF"};
intc[64],d,i=0,base=16;
longn;
printf("Enteranumber:
\n");scanf("%ld",&n);
do{
c[i]=【1】;i++;n=n/base;}
while(n!
=0);
printf("Transmitenewbase:
\n");
for(【2】;i>=0;--i)
{d=c[i];printf("%c",b【3】);}
printf("\n");
}
7.2.改错题.下列给定的程序中,函数fun()的功能是:
计算并输出k以内最大的10个能被13或17整除的自然数之和。
K的值由主函数传入,若k的值为500,则函数的值为4622。
请改正程序中的错误,使它能得出正确的结果。
#include
#include
intfun(intk)
{intm=0,mc=0,j;
while((k>=2)&&(mc<10))
{
/**********************found***********************/
if((k%13=0)||(k%17=0))
{m=m+k;mc++;}
k--;
/**********************found***********************/
returnm;
}
main()
{clrscr();
printf("%d\n",fun(500));
}
8.1.填空题.下列给定程序中,函数fun()的功能是:
给定n个实数,输出平均值,并统计平均值以上(含平均值)的实数个数。
例如,n=8时,输入193.199,195.673,195.757,196.051,196.092,196.596,196.579,196.763,所得平均值为195.838745,在平均值以上的实数个数应为5。
#include
#include
intfun(floatx[],intn)
intj,c=0;float【1】;
{for(j=0;j【2】;
printf("ave=%f\n",xa);
for(j=0;jif(【3】)
c++;
returnc;
}
main()
{floatx[100]={193.199,195.673,195.757,196.051,196.092,196.596,196.579,196.763};
clrscr();
printf("%d\n",fun(x,8));
}
9.2.改错题.下列给定程序中,函数fun()的功能是:
从n个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。
例如输入8名学生的成绩:
80.5607290.59851.58864.则低于平均分的学生人数为4(平均分为75.5625)。
#include
#include
#defineN20
intfun(float*s,intn,float*aver)
{floatave,t=0.0;
intcount=0,k,i;
for(k=0;k/**********************found***********************/
t=s[k];
ave=t/n;
for(i=0;iif(s[i]/**********************found***********************/
*aver=&ave;
returncount;
}
main()
{floats[30],aver;
intm,i;
clrscr();
printf("\nPleaseenterm:
");scanf("%d",&m);
printf("\nPleaseenter%dmark:
\n",m);
for(i=0;iprintf("\nThenumberofstudents:
%d\n",fun(s,m,&aver));
printf("Ave=%f\n",aver);
}
10.1.填空题.下列给定程序中,函数fun()的功能是:
判断一个整数m是否是素数,若是返回1,否则返回0。
在main()函数中,若fun()返回1则输出YES,若fun()返回0则输出NO!
#include
#include
intfun(intm)
{intk=2;
while(k<=m【1】(m%k))
【2】
if(【3】)
return1;
elsereturn0;
}
main()
{intn;
printf("\nPleaseentern:
");scanf("%d",&n);
if(fun(n))printf("YES\n");
elseprintf("NO!
\n");
}
11.1.填空题.下列给定程序中,函数fun()的功能是:
将长整型数中每一位上为偶数的数依次取出,构成一个新数放在t中。
高位仍在高位,低位仍在低位。
例如,当s中的数为87653142时,t中的数为8642。
#include
#include
voidfun(longs,long*t)
{【1】;
longs1=1;
*t=0;
while(s>0)
{d=s%10;
if(【2】)
{*t=d*s1+*t;
s1*=10;
}
【3】;
}
}
main()
{longs,t;
printf("\nPleaseenters:
");scanf("%ld",&s);
fun(s,&t);
printf("Theresultis:
%ld\n",t);
}
12.1.填空题.下列给定程序中,函数fun()的功能是:
求k!
(求k的阶乘,且k小于13),所有阶乘的值作为函数值返回。
例如:
若k=10,则应输出3628800。
#include
#include
【1】fun(intk)
{
if(【2】)return(k*fun(k-1));
elseif(k==0)
【3】;
else
return-1;
}
main()
{intk=10;
printf("%d!
=%ld\n",k,fun(k));
}
13.1.填空题
下列给定程序中函数fun()的功能是:
计算n!
(计算机的阶乘)。
例如,给n输入5,则输出120.000000。
#include
#include
doublefun(【1】)
{double【2】;
if(n==0)
return1.0;
while(n>1&&n<170)
result*=n--;
returnresult;
}
main()
{intn;
printf("InputN:
");
scanf("%d",【3】);
printf("\n\n%d!
=%lf\n\n",n,fun(n));
}
14.1.填空题下列给定程序中,函数fun()的功能是:
根据输入的3个边长(整型值),判断能否构成三角形:
若能构成等边三角形,则返回3,若是等腰三角形,则返回2,若能构成三角形则返回1,若不能,则返回0。
#include
#include
【1】fun(inta,intb,intc)
{if(【2】)
{if(a==b&&b==c)
return3;
elseif(a==b||b==c||a==c)
return2;
elsereturn1;
}
【3】return0;
}
main()
{inta,b,c,shape;
printf("\nInputa,b,c:
");scanf("%d%d%d",&a,&b,&c);
printf("\na=%d,b=%d,c=%d\n",a,b,c);
shape=fun(a,b,c);
printf("\n\nTheshape:
%d\n",shape);
}
1.填空题给定程序中,函数fun()的功能是:
求输入的两个数中较小的数。
例如:
输入510,结果为minis5。
#include
#include
intfun(intx,【1】)
{intz;
z=xy;
return(z);
}
main()
{inta,b,c;
scanf("%d,%d\n",【3】);
c=fun(a,b);
printf("minis%d",c);
}
2.改错题.已知一个数列从0项开始的前3项:
0,0,1,以后的各项都是其相邻的前3项之和。
下列给定的程序中,函数fun()的功能是:
计算并输出该数列前n项的和sum。
n的值通过形参传入。
例如,当n=10时,程序的输出结果应为96.000000。
#include
#include
doublefun(intn)
{
doublesum,s0,s1,s2,s;
intk;
sum=1.0;
if(n<=2)
sum=0.0;
s0=0.0;
s1=0.0;
s2=1.0;
/**********************found***********************/
for(k=4;k{
s=s0+s1+s2;
sum+=s;
s0=s1;
s1=s2;
/**********************found***********************/
s2=s;
returnsum;
}
main()
{
intn;
clrscr();
printf("InputN=");
scanf("%d",&n);
printf("%f\n",fun(n));
}
1.填空题
下列给定程序中,函数fun()的功能是:
找出一个大于给定整数m且紧随m的素数,并作为函数值返回。
#include
#include
intfun(intm)
{inti,k;
for(i=【1】;;i++)
{for(k=2;k<【2】;k++)
if(i%k==0)
break;
if(k>=i)
【3】;
}
}
main()
{intn;
printf("\nPleaseentern:
");
scanf("%d",&n);
printf("%d\n",fun(n));
}
2.改错题.下列给定程序中函数fun()的功能是:
将长整型数中每一位上为偶数的数依次逆向取出,构成一个新数放在t中。
高位在低位,低位在高位。
例如当s中的数为25846513时,t中的数为6482。
#include
#include
voidfun(longs,long*t)
{
intd;
longs1=1,i=1;
*t=0;
while(s/i>0)
i=i*10;
i=i/10;
while(s>0)
{
d=s/i;
/**********************found***********************/
if(d%2!
=0)
{
/**********************found***********************/
t=d*s1+t;
s1*=10;
}
s=s%i;
i=i/10;
}
}
main()
{
longs,t;
clrscr();
printf("\nPleaseenters:
");
scanf("%ld",&s);
fun(s,&t);
printf("Theresultis:
%ld\n",t);
}
1.填空题.下列给定函数中,函数fun()的功能是:
统计字符串中各元音字母(即A,E,I,O,U)的个数。
注意:
字母不分大小写。
例如,输入THIsisaboot,则应输出是10220。
#include
#include
voidfun(char*s,intnum[5])
{intk,i=5;
for(k=0;k
num[k]=【1】;
for(;*s;s++)
{i=-1;
switch(*s)
{case'a':
case'A':
{i=0;break;}
case'e':
case'E':
{i=1;break;}
case'i':
case'I':
{i=2;break;}
case'o':
case'O':
{i=3;break;}
case'u':
case'U':
{i=4;【2】;}
}
if(i>=0)
【3】;
}
}
main()
{chars1[81];intnum1[5],i;
printf("\nPleaseenterastring:
");gets(s1);
fun(s1,num1);
for(i=0;i<5;i++)printf("%d",num1[i]);printf("\n");
}
2.改错题.下列给定程序中函数fun()的功能是:
从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。
例如,当s中的数为4576235时,t中的数为4725。
#include
#include
/**********************found***********************/
intfun(longs,long*t)
{
longs1=10;
*t=s%10;
while(s>0)
{
/**********************found***********************/
s=s%100;
*t=s%10*s1+*t;
s1=s1*10;
}
}
main()
{
longs,t;
clrscr();
printf("\nPleaseenters:
");
scanf("%ld",&s);
fun(s,&t);
printf("Theresultis:
%ld\n",t);
}
1.填空题。
下列给定的程序中,函数fun()的功能是:
为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。
#include
#include
voidfun(inta,int*b,int*c)
{inti,j,d,y;
for(i=3;i<=a/2;i=i+2)
{【1】;
for(j=2;j<=sqrt((double)i);j++)
if(【2】==0)y=0;
if(y==1)
{d=a-i;
for(j=2;j<=sqrt((double)d);j++)
if(d%j==0)y=0;
if(y==1)
{*b=i;*c=d;}
}
}
}
main()
{inta,b,c;
do
{printf("\nInputa:
");scanf("%d",&a);}
while(【3】);
fun(a,&b,&c);
printf("\n\n%d=%d+%d\n",a,b,c);
}
2.改错题.下列给定的程序中,函数fun()的功能是:
计算并输出k以内最大的6个能被7或11整除的自然数之和。
K的值由主函数传入,若k的值为500,则函数的值为2925。
#include
#include
intfun(intk)
{
intm=0,mc=0,j;
/**********************found***********************/
while(k>=2)&&(mc<6)
{
/**********************found***********************/
if((k%7=0)||(k%11=0))
{
/**********************found***********************/
m=k;
mc++;
}
k--;
}