编程题汇总-答案_第1页
编程题汇总-答案_第2页
编程题汇总-答案_第3页
编程题汇总-答案_第4页
编程题汇总-答案_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、编程题(总分100)1.(分值:2.1分)编写程序求出555555的约数中最大的三位数是多少。参考答案:#include void main()int a=555555;int i=100;int max =100;while (i+max)max=i;printf (%dn,max); 2.(分值:2.1分)输入一个正整数,要求以相反的顺序输出该数。例如输入12345,输出位54321。参考答案:#include int main()int i;int j;scanf(%d, &i);while (i 0)j = i % 10;printf(%d, j);i = i / 10;retur

2、n 0; 3.(分值:2.1分)编写程序,求S=1/(1*2)+1/(2*3)+1/(3*4)+前50项之和。参考答案: #include int main()float s = 0;int i;for (i = 1; i 51; i+)s += 1.0 / (i*(i + 1);printf(%f, s);return 0; 4.(分值:2.1分)编写程序,求S=1/(1+2)+1/(2+3)+1/(3+4)+前50项之和。参考答案:#include void main()int i = 1;float sum = 0;while (i = 50)sum = sum + 1.0 / (i +

3、 (i + 1);i+;printf(ns=%fn, sum); 5.(分值:2.1分)编一通用函数sub,分别统计字符串strg中字母A及a的个数;主函数中输入一不大于80个字符的字符串,调用上述函数,输出A及a的个数。(注:此程序不允许使用全局变量,不允许在sub函数中输出)参考答案:#includevoid main()int num1,num2;void sub(char ,int,int);char strg80;printf(请输入字符:n);gets(strg);sub(strg,&num1,&num2);printf(A的个数为:%dn,num2);printf(a的个数为:%

4、dn,num1);void sub(char strg, int *n1,int *n2)int i,a=0,A=0;for(i=0;strgi!=0;i+)if(strgi=a)a+;else if(strgi=A)A+;*n1=a;*n2=A; 6.(分值:2.1分)编一通用函数avernum,计算含有n个数据的一维数组的平均值,并统计此数组中大于平均值的数据的个数;主函数中定义含有100个元素的数组x,xI=200*cos(I*0.875)(I=0,1,299),调用上述函数,输出此数组的平均值及大于平均值的数据的个数。(注:此程序不允许使用全局变量,不允许在avernum函数中输出)参

5、考答案:#include stdio.h#include math.h#define N 100double avernum(double *x, double n, double ave) double aver=0.000000, a=0; int i; if(ave=0) for(i=0; in; i+) aver=aver+*(x+i); aver=aver/n; return aver; else for(i=0; in; i+) if(ave*(x+i)a+; return a; void main() double xN, m, aver; int i; for(i=0; iN;

6、 i+) xi=200*cos(i*0.875); aver=avernum(x, N, 0); m=avernum(x, N, aver); printf(aver=%fnm=%fn,aver, m); 7.(分值:2.1分)编一通用函数avermax,计算含有n个数据的一维数组的平均值,并求出此数组中大于平均值的数据之和;主函数中定义含有300个元素的数组x,xI=10*cos(3.0+I*I)/5)(I=0,1,2299),调用上述函数,输出此数组的平均值及大于平均值的数据之和。(注:此程序不允许使用全局变量,不允许在avermax函数中输出)参考答案:#include stdio.h#

7、include math.h#define N 300double avernum(double *x, double n, double ave) double aver=0.000000, a=0; int i; if(ave=0) i=0; while(in) aver=aver+*(x+i); i+; aver=aver/n; return aver; else i=0; while(in) if(ave*(x+i)a+=*(x+i); i+; return a; void main() double xN, m, aver; int i=0; while(iN) xi=10* cos

8、(3.0+i*i)/5); i+; aver=avernum(x, N, 0); m=avernum(x, N, aver); printf(aver=%fnm=%fn,aver, m); 8.(分值:2.1分)编一通用函数maxsub,求出含有n个数据的一维数组的最大值及其所在位置(即下标);主函数中定义含有300个元素的数组x,xI=10*cos(3.0+I*I)/5)(I=0,1,2299),调用上述函数,输出此数组的最大值及其所在位置。(注:此程序不允许使用全局变量,不允许在maxsub函数中输出)参考答案:#include stdio.h#include math.h#define

9、N 300double maxsub(double *y, double n, double ave) double max; int i,j=0; if(ave=0) max=*y; for(i=1; in; i+) if(max*(y+i) max=*(y+i); j+; return max; else return j; void main() double xN, m, aver; int i; for(i=0; iN; i+) xi=10*cos(3.0+i*i)/5); aver=maxsub(x, N, 0); m=maxsub(x, N, aver); printf(aver

10、=%fnm=%fn,aver, m); 9.(分值:2.1分)编一函数,统计一维整数组小于数组元素平均值的元素的个数;主函数定义x50,xi=600*cos(i*0.35),调用函数,输出小于数组元素平均值的元素的个数。参考答案: #include stdio.h#include math.h#define N 50float avernum(float y,int n)float v,s=0; int count=0,i=0; while(in) s+=yi;i+; v=s/n; i=0;while(in)if(yiv) count+; i+; return(count);void main

11、()float xN;int i=0; while(iN) xi=600*cos(i*0.35);i+; printf(%fn,avernum(x,50); 10.(分值:2.1分)编一函数,求有50个元素的一维整数组中最大值的位置;主函数中定义y50,yj=600*sin(j*0.16),调用函数,输出最大值及其位置。参考答案: #include stdio.h#include math.hdouble maxsub(double x,int num,double max)int i,j; double m=0.00000; m=x0; j=0; if(max=0) for(i=1;im)m

12、=xi;j=i; return (m); else return(j); void main() double a50,max,m; int i; for(i=0;i50;i+) ai=600*sin(i*0.16); max=maxsub(a,50,0); m=maxsub(a,50,max); printf(m=%f,J=%fn,max,m); 11.(分值:2.1分)求一维实型数组中最大元素。要求:主函数中定义含有300个元素的数组x,xi=10*cos(3.0+i*i)/5)(i=0,1,2299),调用自定义函数qmax求出最大元素,然后在主函数中输出结果。参考答案: #includ

13、emath.h#includestdio.h#define N 300float qmax(float a,int n) int i =1; float max=a0; while(iN) if(maxai) max=ai;i+; return (max); void main() int i=0; float xN,max; while(iN) xi=10*cos(3.0+i*i)/5; i+; max=qmax(x,N); printf(%10.4fn,max); 12.(分值:2.1分)求一维整型数组中的最小元素。要求:主函数定义数组y50,yj=600*sin(j*0.16)(j=0,

14、1,249),调用自定义函数qmin求出最小元素,最后在主函数中输出结果。 参考答案:#includestdio.h #includemath.h main() inty50,min,j; intqmin(intx50); for(j=0;j=49;j+) yj=600*sin(j*0.16); min=qmin(y); printf(min=%d,min); intqmin(intx50) inti,min; min=x0; for(i=1;i=49;i+) if(ximin) min=xi; return(min); 13.(分值:2.1分)求一维整型数组中正数的和。要求:主函数定义数组a

15、10,从键盘输入十个数,调用自定义函数求出正数的和,然后在主函数中输出结果参考答案:#include#includevoid main()void hanshu(double ,int ,double *);double a10,he;int i;printf(请输入10个数:n);for(i=0;i10;i+)printf(第%d个数:,i+1);scanf(%lf,&ai);hanshu(a,10,&he);printf(%lf,he);void hanshu(double a,int w,double *nhe)int i;double zhengshuhe=0;for(i=0;i0)z

16、hengshuhe+=ai;*nhe=zhengshuhe; 14.(分值:2.1分)求n!。参考答案:#includevoid main()int i,n,he;printf(请输入n:n);scanf(%d,&i);n=i;for(he=1;i0;i-)he*=i;printf(%d!=%d,n,he);#includevoid main()int jiecheng(int);int i,he;printf(请输入n:n);scanf(%d,&i);he=jiecheng(i);printf(%d!=%d,i,he);int jiecheng(int i)int ji;for(ji=1;i

17、0;i-)ji*=i;return ji; 15.(分值:2.1分)通过调用自定义函数来完成求圆柱体的体积(v=3.14*r*r*h),要求圆柱体的高和底半径在主函数中做输入,圆柱体的体积在主函数中做输出。参考答案:#include float volume_cy(float r,float h)return (3.14*r*r*h);void main()float r,h,v;printf(请输入圆柱体的半径和高度);scanf(%f %f,&r,&h);v=volume_cy(r,h);printf(n圆柱体的体积为%fn,v); 16.(分值:2.1分)通过调用自定义函数完成求正方形的

18、体积(要求:正方体的的边长在主函数中做输入,正方体的体积在主函数中做输出)。参考答案:#include int main()int volume_c(int a); int a;int v;printf(please input a:);scanf(%d, &a);v = volume_c(a);printf(v = %d n,v);int volume_c(int a) return a*a*a; 17.(分值:2.1分)通过调用自定义函数完成找两个数的最大值(要求:在主函数中输入两个数并且在主函数中输出最大值)。参考答案:#includevoid main()int Hmax(int,in

19、t);int a,b,c;printf(请输入两个数:);scanf(%d %d,&a,&b);c=Hmax(a,b);printf(%d和%d的最大值是%d,a,b,c);int Hmax(int a,int b)int MAX;if(ab)MAX=a;elseMAX=b;return MAX; 18.(分值:2.1分)输入10个整数,统计同时能被3和7整除的个数,将结果输出。参考答案:#includevoid main()int n=0,i,num;for(i=1;i=10;i+)printf(请输入第%d个数:n,i);scanf(%d,&num);if(num!=0)if(num%3=

20、0)&(num%7=0)n+;elsecontinue;elseprintf(输入有误。n);continue;printf(能被3和7整数的个数为:%d,n); 19.(分值:2.1分)编写一个sum函数求和:输入一个正整数n,统计不大于n值的所有正偶数的和,在主函数中完成输入输出。参考答案: #include stdio.hvoid main()int n,sum=0,i ;printf(请输入一个正整数:);scanf(%d,&n) ; i = 2;do sum=sum+i;i+=2;while(in);printf(%dn,sum) ; 20.(分值:2.1分)求圆锥体积:在主函数中输

21、入半径和高度,调用函数求体积,要求在主函数中输出圆锥的体积。(公式v=h*3.14*r*r/3)参考答案: #include float areaT(double r, double h)return 3.14*r*r*h / 3.0;void main()float r, h, v;printf(请输入圆锥体的半径和高度);scanf(%f %f, &r, &h);v = areaT(r, h);printf(n圆锥体的体积为%fn, v); 21.(分值:2.1分)通过函数调用求华氏温度,要求在主函数中输入摄氏温度,在主函数中输出华氏温度。(公式f=5/9*c+32)参考答案:#inclu

22、de int main()float Fra(float c);float c,f;scanf(%f, &c);f=Fra(c);printf(f = %f n,f);float Fra(float c)float f = 5.0/9*c+32;return f; 22.(分值:2.1分)调用函数求梯形面积,要求在主函数中输入上底、下底和高,在主函数中输出梯形面积的值。(公式s=(a+b)*h/2)参考答案:#include double areaT(double a, double b, double h)return 0.5*(a + b)*h;int main(void)double a

23、, b, h;printf(请输入梯形的上底、下底和高:);scanf(%lf%lf%lf, &a, &b, &h);printf(the length=%f,the width=%f,the height=%fnThe areaT=%fn, a, b, h, areaT(a, b, h);return 0; 23.(分值:2.1分) 编程求1+(1+2)+(1+2+n),n的值由键盘输入。参考答案:#include void main( ) int i,j=0,n; int sum=0; printf(请输入n的值:); scanf(%d,&n); for(i=1;i=n;i+) j=j+i

24、; sum=sum+j; printf(ns=%dn,sum); 24.(分值:2.1分)求包含10个元素的一维整型数组中的最小元素。要求:在主函数定义数组并且输入10个元素的值,调用自定义函数求出最小元素,最后在主函数中输出结果。参考答案:#includevoid main()int Hmin(int );int a10;int i,nmin;for(i=0;i10;i+)printf(请输入第%d个数:n,i+1);scanf(%d,&ai);nmin=Hmin(a);printf(最小元素为:%dn,nmin);int Hmin(int a)int i,n=a0;for(i=1;i10;

25、i+)if(ain)n=ai;elsecontinue;return n; 25.(分值:2.1分)通过调用自定义函数完成找两个数的最小值(要求:在主函数中输入两个数并且在主函数中输出最小值)。参考答案:#includevoid main()int Hmin(int,int);int a,b,c;printf(请输入两个数:);scanf(%d %d,&a,&b);c=Hmin(a,b);printf(%d和%d的最小值是%d,a,b,c);int Hmin(int a,int b)int MIN;if(ab)MIN=a;elseMIN=b;return MIN; 26.(分值:2.1分)编写

26、一个函数fun,函数的功能是:判断一个整数是否既是5又是7的整倍数。若是,输出yes,否则输出no。在主函数中输入任意一个正整数,调用fun函数,输出该数对应的结果。参考答案:#includevoid main()void fun(int);int a;printf(请输入一个数:n);scanf(%d,&a);fun(a);void fun(int a)int b,c;b=a%5;c=a%7;if(b=0)|(c=0)printf(yesn);elseprintf(non); 27.(分值:2.1分)从键盘输入一个学生的分数,要求实现这样的判断功能:如果分数大于100,输出”Input er

27、ror!”如果分数介于100到90之间,输出”Very Good!”如果分数介于80到90只,输出”Good!”如果分数介于70到80之间,输出”Middle”如果分数介于60到70之间,输出”Pass”如果分数小于60,输出”No Pass!”参考答案:#include void main()int score;printf(your score:);scanf(%d,&score);if(score100) printf(Input error!n);else if (score90)printf(Very Good!n); else if (score80) printf(Good!n)

28、; else if (score70) printf(Middlen); else if(score60) printf(Passn); else printf(No Pass!n); 28.(分值:2.1分)键盘输入10个实型数,求其倒数的和并输出.参考答案:#includevoid main()int i;double n,sum=0;for(i=1;i=10;i+)printf(请输入第%d个数:n,i);scanf(%lf,&n);n=1/n;sum+=n;printf(倒数和为:%g,sum); 29.(分值:2.1分) 判断一个学生成绩的“优、良、中、差”: 假如从键盘输入的字母是

29、A,输出评语“You are Excellent!”; 如果输入B,输出评语“You are well!”; 如果输入C,输出评语“You are passing!”; 如果输入D,输出评语“You are not passing!”。 如果输入的不是这四个字母,则出现提示“Input error!” 请编写一个程序,实现该判断功能。参考答案:#include void main()char grade;printf(Please input a grade:);scanf(%c,&grade);switch(grade)case A:printf(You are Excellent!n);b

30、reak;case B:printf(You are well!n);break;case C:printf(You are passing!n);break;case D:printf(You are not passing!n);break;default:printf(Input error!n); 30.(分值:2.1分)输入一个整数,判断该数是奇数还是偶数。参考答案:#include void main()int x;printf(Please input a number:);scanf(%d,&x);if(x%2=0)printf(ou shun);else printf(ji

31、shun); 31.(分值:2.1分)编写程序求下式的值:S=21*1!+22*2!+2n*n!(n0;n-)num*=n;return num;int chengfang(int n)int a=2,num=1;for(;n0;n-)num*=a;return num;int numS(int n,int *anS)int S=0;int num;int a,b;for(;n0;n-)a=jiecheng(n);b=chengfang(n);num=a*b;S+=num;*anS=S;void main()int anS;int n;printf(请输入一个小于10的整数:n);scanf(

32、%d,&n);if(n0)numS(n,&anS);printf(%dn,anS);elseprintf(输入错误!n); 32.(分值:2.1分)编写一个函数,判断一个整数是否能同时被5和7整除,在main函数中完成输入和输出。参考答案:#include void main() int div(int);int a,y; scanf(%d,&a); y=div(a) ;printf(y=%d,y);int div(int x) int y;if(x%5=0&x%7=0) y=1; else y=0; return(y) ; 33.(分值:2.1分)从键盘接收三个整数,编程求出最小数。参考答案

33、:#include void main()int a,b,c,min;printf(Please input 3 numbers:);scanf(%d,%d,%d,&a,&b,&c);if(ab)min=a;else min=b;if(minc)printf(min=%dn,min);else printf(min=%dn,c); 34.(分值:2.1分)从键盘接收三个整数,编程输出最大数。参考答案:#include void main()int x,y,z,max;printf(Please input 3 numbers:);scanf(%d,%d,%d,&x,&y,&z);if(xy)m

34、ax=x;else max=y; if(maxz) printf(max=%dn,max); else printf(max=%dn,z); 35.(分值:2.1分)从键盘接收一个字符,如果是字母,输出其对应的ASCII码,如果是数字,按原样输入,否则给出提示信息“输入错误!”。参考答案:#include void main()char c;printf(Please input a char:);c = getchar();if (c = a&c = A&c = 0&c = 9)printf(%cn, c);else printf(输入错误!n);36.(分值:2.1分)用循环结构程序设计方

35、法,输出一个九九乘法表。参考答案:#include stdio.hmain()int i,j,result; for (i=1;i10;i+) for(j=1;j10;j+) result=i*j; printf(%d*%d=%-3d,i,j,result); printf(n); 37.(分值:2.1分)从键盘输入10个整数,统计其中正数、负数和零的个数,并在屏幕上输出。参考答案:#includestdio.hvoid main()int a10,i,p=0,n=0,z=0;printf(输入10个整数:);i=0;while(i0)p+;else if (ai0) n+;else z+;

36、i+;printf(正数:%d,负数:%d,零:%dn,p,n,z); 38.(分值:2.1分) 个人所得税计算,应纳税款的计算公式如下:收入税率收入收入1000元的部分53000元收入2000元的部分106000元收入3000元的部分15收入6000元的部分20输入某人的收入,计算出应纳税额及实际得到的报酬,必须使用if-else 结构完成。参考答案:#include void main()float i,n,tax; /*定义收入,实际收入,个人所得税*/printf(Please input your income:);scanf(%f,&i);if(i1000&i2000&i3000&

37、i6000)tax=i*0.2;n=i-tax;printf(个人所得税=%.1f 实际报酬=%.2fn,tax,n);else printf(error!n); 39.(分值:2.1分)输入x,计算并输出下列分段函数sign(x)的值。要求定义和调用函数sign(x)实现该分段函数。sign(x)=1 x00 x=0-1 x0参考答案:#includevoid main()void sign(int);int x;printf(请输入一个数:n);scanf(%d,&x);sign(x);void sign(int x)if(x0)printf(1n);else if(x=0)printf(

38、0n);else if(x=a&c=z) printf(%cn,c-32); else printf(%cn,c); 41.(分值:2.1分)计算s=1-2!+3!-4!+-10!的值并输出。参考答案:#includevoid main()int n,t=1,f=-1;int sum=0;for(n=1;n=10;n+)t=t*n;f=-f;sum=sum+t*f;printf(%d,sum); 42.(分值:2.1分)编程判断输入的正整数是否既是5又是7的整倍数。若是,输出yes,否则输出no。参考答案: void main()int i; printf(please input an in

39、teger:);scanf(%d,&i);if(i%5=0&i%7=0)printf(yesn);elseprintf(non); 43.(分值:2.1分)打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如:153是一水仙花数,因为153=13+53+33.参考答案: #includevoid main()int a, b, c, i;for (i = 100; i1000; i+)a = i / 100;b = (i - a * 100) / 10;c = i % 10;if (i = a*a*a + b*b*b + c*c*c)printf(%d

40、, i); 44.(分值:2.1分)编写一程序,对于给定的一个百分制成绩,输出相应的五分制成绩。设:90分以上为A,8089分为B,7079分为C,6069分为D,60分以下为E。参考答案:#include main()int c,grade;printf(intput grade(0-100):);scanf(%d,&grade);if(grade100|grade0)printf(wrong graden);elsec=grade/10;switch(c)case 6:printf(Dn);break;case 7:printf(Cn);break;case 8:printf(Bn);br

41、eak;case 9:case 10:printf(An);break;default:printf(En);break; 45.(分值:2.1分)计算s=1-1/3+1/5-1/7+1/101的值并输出。参考答案: #include int main()int i, n, sign;float sum;sign = 1;sum = 0;printf(输入n的值:);scanf(%d, &n);for (i = 1; i = n; i+)sum += sign*1.0 / (2 * i - 1);sign = -sign;printf(S的值:%fn, sum);return 0; 46.(分值:2.1分)编写一个简单计算器程序,输入格式为:data1 op data2。其中data1和data2是参加运算的两个数,op为运算符,它的取值只能是+、-、*、/。参考答案:#include void main ( ) float data1, data2; char op; printf(Enter your expression:); scanf(%f%c%f, &data1,&op,&data2); switch(op) case +: printf(%.2f+%.2f=%.2fn, dat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论