1、(word完整版)c语言程序设计编程题库难度1循环结构4计算 s=12!+3!4!+10!的值并输出。 -3301819includevoid main()int n,f=1;float t,sum=0;for(n=1;n=51;n+)t=1。0/(2n-1);f=-f;sum=sum+tf;printf(%f”,sum);10编写程序求出 555555的约数中最大的三位数是多少。 要求必须使用 dowhile语句实现. includestdio。h#define Y 555555void main()int n=100;int max=0;Do if(Y%n=0) max=n;n+;whil
2、e(nVoid main() int x;Scanf(“d”,&x);While()110编写程序,求S=1/(12)+1/(2*3)+1/(3*4)+前50项之和.要求必须使用for语句实现。 0.980393#include stdio.hvoid main( ) int i; float sum=0; for(i=1;i=50;i+)sum=sum+1.0/(i(i+1)); printf(”ns=fn”,sum);111编写程序,求S=1/(1+2)+1/(2+3)+1/(3+4)+前50项之和。要求必须使用while 语句实现。 #include void main( ) int i
3、=1; float sum=0;while(i=50) sum=sum+1。0/(i+(i+1); i+; printf(ns=%fn”,sum); 1.947676179输入 10个整数,统计同时能被 3和 7 整除的个数,结果存放在变量 nCount中。将 nCoun 输出。要求必须使用 do-while 语句实现。include stdio。hvoid main()int a10 ;int i=0 ,nCount=0;do scanf(d”,&ai); i+;while(i10);i = 0 ; do if(ai3 = 0 & ai % 7 = 0) nCount+;i+;while(i
4、10); printf(d, nCount);181编写一个sum函数求和:输入一个正整数n,统计不大于n值的所有正偶数的和,在主函数中完成输入输出。要求用 dowhile 语句实现。#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) ;187编程求1+(1+2)+(1+2+n),n的值由键盘输入。要求使用 for语句实现 #include stdio。hvoid main( ) int i,j
5、=0,n; int sum=0; printf(”请输入n的值:); scanf(”%d”,n); for(i=1;i=n;i+) j=j+i; sum=sum+j; printf(ns=%dn,sum); 265从键盘输入10个整数,统计其中正数、负数和零的个数,并在屏幕上输出。要求使用 while 语句.#includestdio。hvoid main()int a10,i,p=0,n=0,z=0;printf(”输入10个整数:”);i=0;while(i10)scanf(%d,ai); if(ai0)p+;else if (aivoid main()int max(int x, int
6、 y); int num1,num2,max1; printf(”请输入两个数:n); scanf(%d%d,num1,num2); max1=max(num1,num2); printf(max=%dn,max1);int max(int x,int y)int m; m=xy?x:y;return m;182定义函数 areaT,功能是求圆锥体积.在主函数中输入半径 r和高 h,调用函数 areaT 求体积,并在主函数中输出圆锥的体积。其中变量 r,h 均为 double 型数据. (公式v=h*3。14*r2/3)#include float Fra(float c)return 5。0
7、/9c+32.0;void main()float f,c;printf(”请输入摄氏温度:);scanf(”f,&c);f=Fra(c);printf(n对应的华氏温度为fn,f);184定义函数 areaT,功能是求梯形面积。要求在主函数中输入上底(用变量 a存储)、下底(用变量 b 存储)、和高(用变量 h 存储),在主函数中调用函数 areaT,输出梯形面积(用变量 s 存储)的值.其中,变量 a,b,h,s 数据类型均为 double。公式:s=(a+b)*h/2 #include stdio。hdouble areaT(double a,double b,double h)retu
8、rn (a+b)h/2;void main()double a,b,h,s;printf(请输入梯形的上底、下底和高度”);scanf(”%f f f,&a,&b,&h);s=areaT(a,b,h);printf(”n梯形的面积为fn,s);194)编写自定义函数 min,函数功能是找出两个数的较小值。在主函数中输入两个数,分别保存在变量 a 和变量b,并且在主函数中调用函数 min,输出 a 和b 的较小值。 #include stdio.hvoid main () int min(int x, int y); int a,b,min1; printf(请输入两个数:n”); scanf(
9、%d%d,&a,&b); min1=min(a,b); printf(min=%dn,min1);int min(int x,int y) int m; m=xy?x:y;return m;197编写一个函数fun,函数的功能是:判断一个整数是否既是5又是7的整倍数。若是,输出yes,否则输出no。在主函数中输入任意一个正整数,调用fun函数,输出该数对应的结果。include void main() void fun(int);int a; scanf(”%d,a); 对应的结果fun(a) ; 35 Yesvoid fun(int x) 49 if(x5=0x7=0) printf(”ye
10、sn”); No else printf(”non); return ; 242编写一个函数div,定义该函数的返回值类型为int,功能是判断一个整数n是否能同时被5 和7 整除,如果能,那么函数返回值为1;如果不能,那么函数返回值为0。在main 函数中完成数据输入,函数调用和数据输出。include stdio。h 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(x5=0x7=0) y=1; else y=0; return(y) ;317
11、)编写函数sign,功能是计算下列分段函数sign(x)的值。在主函数中输入一个数,保存在变量x 中,调用函数sign,在主函数中输出结果。要求x 为double 型变量.sign(x)=1 x0 0 x=0 1 x0 7#includestdio。hdouble sign(double x)double b;if(x=0)b=0;else if(x0)b=-1;elseb=1;return b;void main()double x,b;scanf(%f,x);b=sign(x);printf(”le,b);逻辑运算和判断选取控制6编程判断输入的正整数是否既是5又是7的整倍数。若是,输出ye
12、s,否则输出no。#include void main()int n;scanf(%d,n);if(n%5=0&n%7=0)printf(yesa);else printf(noa);8编写一程序,对于给定的一个百分制成绩,输出相应的五分制成绩。设:90分以上为A,8089分为B,7079分为C,6069分为D,60分以下为E。要求必须使用switchcase 结构实现.#include stdio。hint main()int score,g;printf(”请输入百分制成绩:”);scanf(d”,score);g=score/10;switch(g)case 1:case 2:case
13、3:case 4:case 5:printf(”En”);break;case 6:printf(”Dn”);break;case 7:printf(Cn”);break;case 8:printf(Bn”);break;case9: printf(An”);break;default: printf(Input Error!);93编写一个简单计算器程序,输入格式为:data1 op data2。其中data1和data2是参加运算的两个数,op为运算符,它的取值只能是+、-、*、/。要求必须使用switchcase语句实现.include stdio.hvoid main ( ) floa
14、t data1, data2; char op; printf(Enter your expression:”); scanf(fc%f”, data1,&op,&data2); switch(op) case +: printf(”。2f+。2f=。2fn, data1, data2, data1+data2); break; case : printf(%.2f%。2f=%。2fn”, data1, data2, data1data2); break; case : printf(%。2f%。2f=%.2fn, data1, data2, data1*data2); break; case
15、 / : if( data2=0 ) printf(Division by zero。n); else printf(”.2f/.2f=%。2fn”, data1, data2, data1/data2); break; default: printf(”Unknown operater。n”); 94已知银行整存整取存款不同期限的月息利率分别为:0。315% 期限一年0.330% 期限二年月息利率 0.345 期限三年0。375% 期限五年0.420 期限八年要求输入存钱的本金和期限,求到期时能从银行得到的利息与本金的合计。#include stdio.hint main()float mo
16、ney,y;printf(”请输入存钱的本金和期限:”);scanf(%ff”,&money,&y);if (y=1)money=money+0.0031512y;printf(”到期时利息和本金合计为f元。n”,money);else if (y=2)money=money+0。0033012*y;printf(到期时利息和本金合计为%f元.n”,money);else if (y=3)money=money+0。00345*12y;printf(到期时利息和本金合计为%f元。n,money);else if (y=5)money=money+0.0037512y;printf(”到期时利息
17、和本金合计为f元。n,money);else if (y=8)money=money+0.00420*12y;printf(到期时利息和本金合计为f元。n”,money);else printf(没有这种存款方式!);return 0;199从键盘输入一个学生的分数, 要求实现这样的判断功能: 如果分数大于100,输出”Input error! 如果分数介于100到90之间, 输出”Very Good!” 如果分数介于80到90只,输出”Good!” 如果分数介于70到80之间,输出”Middle 如果分数介于60到70之间, 输出”Pass” 如果分数小于60,输出No Pass! 。要求必
18、须使用if-elseif 结构实现。#include stdio。hvoid main()int score;printf(”your score:);scanf(d”,score);if(score80) printf(”Good!n); else if (score70) printf(”Middlen”); else if(score60) printf(”Passn”); else printf(No Pass!n”);200判断一个学生成绩的“优、良、中、差”: 假如从键盘输入的字母是A,输出评语“You are Excellent!”; 如果输入B,输出评语“You are wel
19、l!; 如果输入C,输出评语“You are passing!”; 如果输入D,输出评语“You are not passing!。 如果输入的不是这四个字母,则出现提示“Input error!” 请编写一个程序,实现该判断功能。要求必须使用switch-case 结构实现。#include void main()char grade;printf(Please input a grade:);scanf(”c,grade);switch(grade)case A:printf(You are Excellent!n”);break;case B:printf(You are well!n”
20、);break;case C:printf(You are passing!n);break;case D:printf(”You are not passing!n”);break;default:printf(”Input error!n);211输入一个整数,判断该数是奇数还是偶数。要求必须使用if-else 结构实现。include stdio.hvoid main()int x;printf(Please input a number:”);scanf(d,&x);if(x2=0)printf(”ou shun);else printf(”ji shun”);247从键盘接收三个整数
21、,分别存放在变量a,b,c 中,编程求出最小数.XXXXXX#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);249从键盘接收三个整数,分别存在变量x,y,z 中.编程输出最大数。#include stdio.hvoid main()int x,y,z,max;printf(Please input 3 numbers
22、:”);scanf(d,%d,d,&x,&y,&z);if(xy)max=x;else max=y; if(maxz) printf(”max=dn”,max); else printf(max=dn,z);253从键盘接收一个字符,如果是字母,输出其对应的ASCII码,如果是数字,按原样输入,否则给出提示信息“输入错误!。#include stdio。hvoid main()char c;printf(”Please input a char:);c=getchar();if(c=a&c=A&c=Z)printf(%dn”,c);else if(c=0&c=9)printf(cn,c);el
23、se printf(”输入错误!n”);279个人所得税计算,应纳税款的计算公式如下:收入税率收入收入1000元的部分53000元收入2000元的部分10%6000元收入3000元的部分15收入6000元的部分20输入某人的收入,计算出应纳税额及实际得到的报酬。,要求必须使用ifelse 结构完成。include stdio.hvoid main()float i,n,tax; /定义收入,实际收入,个人所得税/printf(”Please input your income:”);scanf(f”,&i);if(i1000&i2000&i=3000)tax=i*0.1;n=itax;prin
24、tf(”个人所得税=%。1f 实际报酬=.2fn,tax,n);else if(i3000&i=6000)tax=i0。15;n=itax;printf(”个人所得税=%。1f 实际报酬=。2fn,tax,n);else if(i6000)tax=i0。2;n=itax;printf(”个人所得税=.1f 实际报酬=.2fn,tax,n);else printf(”error!n”);320输入一个字符,判断它是否是小写字母,是小写字母,则将它转换成大写字母,如果不是,则不转换,然后输出所得到的字符.#include”stdio.h”Void main() Char c; Printf(“输入
25、一个字符:”); Scanf(“c”,&c); If (c=a&c=z) Printf(“%cn”,c32); Else printf(“cn,c);难度2154编一通用函数avernum,计算含有n个数据的一维数组的平均值,并统计此数组中大于平均值的数据的个数; 主函数中定义含有100个元素的数组x,xI=200*cos(I0.875)(I=0,1,299),调用上述函数,输出此数组的平均值及大于平均值的数据的个数。 -0。851949 49(注:此程序不允许使用全局变量,不允许在avernum函数中输出)#include ”stdio.h”#include math.h”define N
26、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; i+) xi=200*cos(i*0.875); aver=avernum(x, N, 0
27、); m=avernum(x, N, aver); printf(aver=fnm=fn”,aver, m); 155编一通用函数avermax,计算含有n个数据的一维数组的平均值,并求出此数组中大于平均值的数据之和;主函数中定义含有300个元素的数组x,xI=10* cos (3.0+I*I) / 5) (I=0,1,2299),调用上述函数,输出此数组的平均值及大于平均值的数据之和。 -0。220814 912.784553(注:此程序必须使用while 语句,不允许使用全局变量,不允许在avermax 函数中输出)include stdio.hinclude math。h”define
28、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((3.0+ii)/5); i+; aver
29、=avernum(x, N, 0); m=avernum(x, N, aver); printf(aver=fnm=fn”,aver, m); 156编一通用函数maxsub,求出含有n 个数据的一维数组的最大值及其所在位置(即下标);主函数中定义含有300 个元素的数组y,yI=10* cos ((3.0+I*I) / 5)(I=0,1,2R-R299),调用上述函数,输出此数组的最大值及其所在位置。(注:此程序必须使用for 语句,不允许使用全局变量,不允许在maxsub 函数中输出)9。99927,0。00000include ”stdio.h#include math。hdefine
30、N 300double maxsub(double x, double n, double ave) double max; int i,j=0; if(ave=0) max=x; for(i=1; in; i+) if(max*(x+i) max=*(x+i); j+; return max; else return j; void main() double yN, m, aver; int i; for(i=0; iN; i+) yi=10cos(3.0+ii)/5); aver=maxsub(y, N, 0); m=maxsub(y, N, aver); printf(”aver=%f
31、nm=%fn”,aver, m); 158编一函数,统计一维整数组小于数组元素平均值的元素的个数;主函数定义x50,xi=600cos(i*0.35), 调用函数,输出小于数组元素平均值的元素的个数。必须使用while 语句。 27。000000include 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);v
32、oid main()float xN;int i=0; while(im)m=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);162求一维实型数组中最大元素。要求:主函数中定义含有300个元素的数组x, xi=10* cos ((3.0+ii ) /5) (i=0,1,2299),调用自定义函数qmax求出最大元素,然后在主函数中输出结果。要求必须使用 while 语句实现。include”math。hincludestdio.hdefine 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