编程题汇总答案.docx
《编程题汇总答案.docx》由会员分享,可在线阅读,更多相关《编程题汇总答案.docx(38页珍藏版)》请在冰豆网上搜索。
编程题汇总答案
一、编程题(总分100)
1.(分值:
2.1分)编写程序求出555555的约数中最大的三位数是多少。
参考答案:
#include
voidmain()
{
inta=555555;
inti=100;
intmax=100;
while(i++<1000)
if(a%i==0&&i>max)
max=i;
printf("%d\n",max);
}
2.(分值:
2.1分)输入一个正整数,要求以相反的顺序输出该数。
例如输入12345,输出位54321。
参考答案:
#include
intmain()
{
inti;
intj;
scanf("%d",&i);
while(i>0)
{
j=i%10;
printf("%d",j);
i=i/10;
}
return0;
}
3.(分值:
2.1分)编写程序,求S=1/(1*2)+1/(2*3)+1/(3*4)+……前50项之和。
参考答案:
#include
intmain()
{
floats=0;
inti;
for(i=1;i<51;i++)
s+=1.0/(i*(i+1));
printf("%f",s);
return0;
}
4.(分值:
2.1分)编写程序,求S=1/(1+2)+1/(2+3)+1/(3+4)+……前50项之和。
参考答案:
#include
voidmain()
{
inti=1;
floatsum=0;
while(i<=50)
{
sum=sum+1.0/(i+(i+1));
i++;
}
printf("\ns=%f\n",sum);
}
5.(分值:
2.1分)编一通用函数sub,分别统计字符串strg中字母''A''及''a''的个数;
主函数中输入一不大于80个字符的字符串,调用上述函数,输出''A''及''a''的个数。
(注:
此程序不允许使用全局变量,不允许在sub函数中输出)
参考答案:
#include
voidmain()
{
intnum1,num2;
voidsub(char[],int,int);
charstrg[80];
printf("请输入字符:
\n");
gets(strg);
sub(strg,&num1,&num2);
printf("A的个数为:
%d\n",num2);
printf("a的个数为:
%d\n",num1);
}
voidsub(charstrg[],int*n1,int*n2)
{
inti,a=0,A=0;
for(i=0;strg[i]!
='\0';i++)
if(strg[i]=='a')
a++;
elseif(strg[i]=='A')
A++;
*n1=a;
*n2=A;
}
6.(分值:
2.1分)编一通用函数avernum,计算含有n个数据的一维数组的平均值,并统计此
数组中大于平均值的数据的个数;主函数中定义含有100个元素的数组x,x[I]=200*cos(I*0.875)(I=0,1,2……99),调用上述函数,输出此数组的平均值及大于平均值的数据的个数。
(注:
此程序不允许使用全局变量,不允许在avernum函数中输出)
参考答案:
#include"stdio.h"
#include"math.h"
#defineN100
doubleavernum(double*x,doublen,doubleave)
{doubleaver=0.000000,a=0;
inti;
if(ave==0)
{for(i=0;iaver=aver+*(x+i);
aver=aver/n;
returnaver;
}
else
{for(i=0;iif(ave<*(x+i))a++;
returna;
}
}
voidmain()
{doublex[N],m,aver;
inti;
for(i=0;ix[i]=200*cos(i*0.875);
aver=avernum(x,N,0);
m=avernum(x,N,aver);
printf("aver=%f\nm=%f\n",aver,m);
}
7.(分值:
2.1分)编一通用函数avermax,计算含有n个数据的一维数组的平均值,并求出此
数组中大于平均值的数据之和;主函数中定义含有300个元素的数组x,x[I]=10*cos((3.0+I*I)/5)(I=0,1,2……299),调用上述函数,输出此数组的平均值及大于平均值的数据之和。
(注:
此程序不允许使用全局变量,不允许在avermax函数中输出)
参考答案:
#include"stdio.h"
#include"math.h"
#defineN300
doubleavernum(double*x,doublen,doubleave)
{doubleaver=0.000000,a=0;
inti;
if(ave==0)
{i=0;
while(i{aver=aver+*(x+i);i++;}
aver=aver/n;
returnaver;
}
else
{i=0;
while(i{if(ave<*(x+i))a+=*(x+i);i++;}
returna;
}
}
voidmain()
{doublex[N],m,aver;
inti=0;
while(i{x[i]=10*cos((3.0+i*i)/5);i++;}
aver=avernum(x,N,0);
m=avernum(x,N,aver);
printf("aver=%f\nm=%f\n",aver,m);
}
8.(分值:
2.1分)编一通用函数maxsub,求出含有n个数据的一维数组的最大值及其所在位
置(即下标);主函数中定义含有300个元素的数组x,x[I]=10*cos((3.0+I*I)/5)(I=0,1,2……299),调用上述函数,输出此数组的最大值及其所在位置。
(注:
此程序不允许使用全局变量,不允许在maxsub函数中输出)
参考答案:
#include"stdio.h"
#include"math.h"
#defineN300
doublemaxsub(double*y,doublen,doubleave)
{doublemax;
inti,j=0;
if(ave==0)
{max=*y;
for(i=1;iif(max<*(y+i))
{max=*(y+i);j++;}
returnmax;
}
else
returnj;
}
voidmain()
{doublex[N],m,aver;
inti;
for(i=0;ix[i]=10*cos((3.0+i*i)/5);
aver=maxsub(x,N,0);
m=maxsub(x,N,aver);
printf("aver=%f\nm=%f\n",aver,m);
}
9.(分值:
2.1分)编一函数,统计一维整数组小于数组元素平均值的元素的个数;主函数定义
x[50],x[i]=600*cos(i*0.35),调用函数,输出小于数组元素平均值的元素的个数。
参考答案:
#include"stdio.h"
#include"math.h"
#defineN50
floatavernum(floaty[],intn)
{floatv,s=0;
intcount=0,i=0;
while(i{s+=y[i];i++;}
v=s/n;
i=0;
while(i{if(y[i]count++;
i++;
}
return(count);
}
voidmain()
{floatx[N];
inti=0;
while(i{x[i]=600*cos(i*0.35);i++;}
printf("%f\n",avernum(x,50));
}
10.(分值:
2.1分)编一函数,求有50个元素的一维整数组中最大值的位置;主函数中定义
y[50],y[j]=600*sin(j*0.16),调用函数,输出最大值及其位置。
参考答案:
#include"stdio.h"
#include"math.h"
doublemaxsub(doublex[],intnum,doublemax)
{
inti,j;
doublem=0.00000;
m=x[0];
j=0;
if(max==0)
{for(i=1;iif(x[i]>m)
{
m=x[i];j=i;
}
return(m);
}
else
return(j);
}
voidmain()
{doublea[50],max,m;
inti;
for(i=0;i<50;i++)
a[i]=600*sin(i*0.16);
max=maxsub(a,50,0);
m=maxsub(a,50,max);
printf("m=%f,J=%f\n",max,m);
}
11.(分值:
2.1分)求一维实型数组中最大元素。
要求:
主函数中定义含有300个元素的数组x,x[i]=10*cos((3.0+i*i)/5)(i=0,1,2……299),调用自定义函数qmax求出最大元素,然后在主函数中输出结果。
参考答案:
#include"math.h"
#include"stdio.h"
#defineN300
floatqmax(floata[],intn)
{
inti=1;
floatmax=a[0];
while(i{
if(max{
max=a[i];i++;
}
return(max);
}
}
voidmain()
{
inti=0;
floatx[N],max;
while(i{
x[i]=10*cos(3.0+i*i)/5;
i++;
}
max=qmax(x,N);
printf("%10.4f\n",max);
}
12.(分值:
2.1分)求一维整型数组中的最小元素。
要求:
主函数定义数组y[50],y[j]=600*sin(j*0.16)(j=0,1,2……49),调用自定义函数qmin
求出最小元素,最后在主函数中输出结果。
参考答案:
#include "stdio.h"
#include "math.h"
main()
{ int y[50],min, j;
int qmin(int x[50]);
for(j=0;j<=49;j++)
y[j]=600*sin(j*0.16);
min=qmin(y);
printf("min=%d",min);
}
int qmin(int x[50])
{ int i,min;
min=x[0];
for(i=1;i<=49;i++)
if(x[i] min=x[i];
return(min);
}
13.(分值:
2.1分)求一维整型数组中正数的和。
要求:
主函数定义数组a[10],从键盘输入十个数,调用自定义函数求出正数的和,然后在主函数中输出结果
参考答案:
#include
#include
voidmain()
{
voidhanshu(double[],int,double*);
doublea[10],he;
inti;
printf("请输入10个数:
\n");
for(i=0;i<10;i++)
{
printf("第%d个数:
",i+1);
scanf("%lf",&a[i]);
}
hanshu(a,10,&he);
printf("%lf",he);
}
voidhanshu(doublea[],intw,double*nhe)
{
inti;
doublezhengshuhe=0;
for(i=0;i{
if(a[i]>0)
{
zhengshuhe+=a[i];
}
}
*nhe=zhengshuhe;
}
14.(分值:
2.1分)求n!
。
参考答案:
#include
voidmain()
{
inti,n,he;
printf("请输入n:
\n");
scanf("%d",&i);
n=i;
for(he=1;i>0;i--)
{
he*=i;
}
printf("%d!
=%d",n,he);
}
#include
voidmain()
{
intjiecheng(int);
inti,he;
printf("请输入n:
\n");
scanf("%d",&i);
he=jiecheng(i);
printf("%d!
=%d",i,he);
}
intjiecheng(inti)
{
intji;
for(ji=1;i>0;i--)
{
ji*=i;
}
returnji;
}
15.(分值:
2.1分)通过调用自定义函数来完成求圆柱体的体积(v=3.14*r*r*h),
要求圆柱体的高和底半径在主函数中做输入,圆柱体的体积在主函数中做输出。
参考答案:
#include
floatvolume_cy(floatr,floath)
{
return(3.14*r*r*h);
}
voidmain()
{floatr,h,v;
printf("请输入圆柱体的半径和高度");
scanf("%f%f",&r,&h);
v=volume_cy(r,h);
printf("\n圆柱体的体积为%f\n",v);
}
16.(分值:
2.1分)通过调用自定义函数完成求正方形的体积(要求:
正方体的的边长在主函
数中做输入,正方体的体积在主函数中做输出)。
参考答案:
#include
intmain()
{
intvolume_c(inta);
inta;
intv;
printf("pleaseinputa:
");
scanf("%d",&a);
v=volume_c(a);
printf("v=%d\n",v);
}
intvolume_c(inta)
{
returna*a*a;
}
17.(分值:
2.1分)通过调用自定义函数完成找两个数的最大值(要求:
在主函数中输入两个
数并且在主函数中输出最大值)。
参考答案:
#include
voidmain()
{
intHmax(int,int);
inta,b,c;
printf("请输入两个数:
");
scanf("%d%d",&a,&b);
c=Hmax(a,b);
printf("%d和%d的最大值是%d",a,b,c);
}
intHmax(inta,intb)
{
intMAX;
if(a>b)
{
MAX=a;
}
else
MAX=b;
returnMAX;
}
18.(分值:
2.1分)输入10个整数,统计同时能被3和7整除的个数,将结果输出。
参考答案:
#include
voidmain()
{
intn=0,i,num;
for(i=1;i<=10;i++)
{
printf("请输入第%d个数:
\n",i);
scanf("%d",&num);
if(num!
=0)
{
if((num%3==0)&&(num%7==0))
n++;
else
continue;
}
else
printf("输入有误。
\n");
continue;
}
printf("能被3和7整数的个数为:
%d",n);
}
19.(分值:
2.1分)编写一个sum函数求和:
输入一个正整数n,统计不大于n值的所有正偶数的和,在主函数中完成输入输出。
参考答案:
#include"stdio.h"
voidmain()
{
intn,sum=0,i;
printf("请输入一个正整数:
");
scanf("%d",&n);
i=2;
do
{sum=sum+i;i+=2;}while(iprintf("%d\n",sum);
}
20.(分值:
2.1分)求圆锥体积:
在主函数中输入半径和高度,调用函数求体积,要求在主函
数中输出圆锥的体积。
(公式v=h*3.14*r*r/3)
参考答案:
#include
floatareaT(doubler,doubleh)
{
return3.14*r*r*h/3.0;
}
voidmain()
{
floatr,h,v;
printf("请输入圆锥体的半径和高度");
scanf("%f%f",&r,&h);
v=areaT(r,h);
printf("\n圆锥体的体积为%f\n",v);
}
21.(分值:
2.1分)通过函数调用求华氏温度,要求在主函数中输入摄氏温度,在主函数中输
出华氏温度。
(公式f=5/9*c+32)
参考答案:
#include
intmain()
{
floatFra(floatc);
floatc,f;
scanf("%f",&c);
f=Fra(c);
printf("f=%f\n",f);
}
floatFra(floatc)
{
floatf=5.0/9*c+32;
returnf;
}
22.(分值:
2.1分)调用函数求梯形面积,要求在主函数中输入上底、下底和高,在主函数中
输出梯形面积的值。
(公式s=(a+b)*h/2)
参考答案:
#include
doubleareaT(doublea,doubleb,doubleh)
{
return0.5*(a+b)*h;
}
intmain(void)
{
doublea,b,h;
printf("请输入梯形的上底、下底和高:
");
scanf("%lf%lf%lf",&a,&b,&h);
printf("thelength=%f,thewidth=%f,theheight=%f\nTheareaT=%f\n",a,b,h,areaT(a,b,h));
return0;
}
23.(分值:
2.1分)编程求1+(1+2)+…+(1+2+…+n),n的值由键盘输入。
参考答案:
#include
voidmain()
{
inti,j=0,n;
intsum=0;
printf("请输入n的值:
");
scanf("%d",&n);
for(i=1;i<=n;i++)
{j=j+i;
sum=sum+j;}
printf("\ns=%d\n",sum);
}
24.(分值:
2.1分)求包含10个元素的一维整型数组中的最小元素。
要求:
在主函数定义数组并且输入10个元素的值,调用自定义函数求出最小元素,最后在主函数中输出结果。
参考答案:
#include
voidmain()
{
intHmin(int[]);
inta[10];
inti,nmin;
for(i=0;i<10;i++)
{
printf("请输入第%d个数:
\n",i+1);
scanf("%d",&a[i]);
}
nmin=Hmin(a);
printf("最小元素为:
%d\n",nmin);
}
intHmin(inta[])
{
inti,n=a[0];
for(i=1;i<10;i++)
{
if(a[i]n=a[i];
else
continue;
}
returnn;
}
25.(分值:
2.1分)通过调用自定义函数完成找两个数的最小值(要求:
在主函数中输入两个
数并且在主函数中输出最小值)。
参考答案:
#include
voidmain()
{
intHmin(int,int);
inta,b,c;
printf("请输入两个数:
");
scanf("%d%d",&a,&b);
c=Hmin(a,b);
printf("%d和%d的最小值是%d",a,b,c);
}
intHmin(inta,intb)
{
intMIN;
if(a
{
MIN=a;
}
else
MIN=b;
returnMIN;
}
26.(分值:
2.1分)编写一个函数fun,函数的功能是:
判断一个整数是否既是5又是7的整倍数。
若是,输出yes,否则输出no。
在主函数中输入任意一个正整数,调用fun函数,输出该数对应的结果。
参考答案:
#include
voidmain()
{
voidfun(int);
inta;