版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言编程题1(*)求分数序列:1/2,2/3,3/5,5/8,8/13,13/21. 前20项的和。 main() float i=1,j=2,t=0,s,n,m; for(n=1;n<=20;n+) s=i/j,m=i,i=j,j=m+j,t=t+s; printf("t=%f",t); 2(*)从键盘输入一个字符串,再将其逆序输出。(如:输入abcde,输出edcba) main() int i; char c10; scanf("%s",c); for(i=9;i>=0;i-) printf("%c",ci); 3
2、(*)已知abc+cba=1333,其中a、b、c均为一位数,例如:617+716=1333, 518+815=1333,试编程求出符合这一规律的a、b、c,并输出结果。 main() int a,b,c,x,y; for(a=1;a<=9;a+) for(b=0;b<=9;b+) for(c=1;c<=9;c+) x=100*a+10*b+c; y=100*c+10*b+a; if(x+y=1333) printf("x=%d,y=%d",x,y); 4(*)利用海伦公式求三角形面积,三边长a,b,c由键盘输入。若输入的三边长不能构成三角形,输出相应提示
3、信息。海伦公式如下:其中s=(a+b+c)/2三角形面积= #include"math.h" main() float a,b,c,s,area; scanf("%f,%f,%f",&a,&b,&c); s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c);1 / 20 if(a+b>c&&a+c>b&&b+c>a) printf("area=%f",area); else1 printf("no"); 5(*
4、)编程求出1!+2!+3!+8!+9!+10!的值并输出。 程序1: main() int i,j; double p=1, sum=0; for(i=1;i<=10;i+) for(j=1;j<=i;j+) p=p*i; sum=sum+p;p=1.0; printf("sum=%f",sum); 程序2:float fac(n)int n;float f;if (n<0) printf("n<0,error!");else if(n=0|n=1) f=1;else f=fac(n-1)*n;return(f);main()in
5、t h,s=0,n; for(n=1;n<=4;n+) h=fac(n); s=s+h; printf("s=1!+2!+.+10!=%dn",s); 程序3: main() int i; double p=1, sum=0; for(i=1;i<=10;i+) p=p*i; sum=sum+p; printf("sum=%f",sum); 2 6(*)从键盘输入两个整数,输出其和,差,积,商。7(*)输入若干个自然数,对奇数从大到小排序,对偶数从小到大排序,输出两种结果。 maxji(int a,int n) int i,j,k,t; fo
6、r(i=0;i<n-1;i+)k=i;for(j=i+1;j<n;j+) if(ak<aj) k=j; if (k!=i)t=ak;ak=aj;aj=t; #define N 10 main() int cN,i,j; for(i=0;i<N;i+) scanf("%d",&ci); maxji(c,N); for(i=N-1;i>=0;i-) if(ci%2=0) printf("%5d",ci); printf("n"); for(i=0;i<N;i+) if(ci%2!=0) prin
7、tf("%5d",ci); 8(*)求出0999之间的所有“水仙花数”并输出。“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153153 ,则153是一个“水仙花数”。程序1: main()int i,j,k,a;for(i=1;i<=9;i+)for(j=0;j<=9;j+)for(k=0;k<=9;k+)if(i*i*i+j*j*j+k*k*k=100*i+10*j+k)printf("%d%d%dn",i,j,k);程序:main()int m,i,j,k,a;for(m=101;i<=999;m+)
8、i=m/100; j=(m-m*100)/10;3 k=m%10;if(i*i*i+j*j*j+k*k*k=m)printf("%dn",m);9(*)试编程:判断输入的正整数是否既是5,又是7的整数倍数。若是则输出yes;否则输出no。10(*)已有函数调用语句c=add(a,b);请编写aad函数,计算两个实数a和b的和,并返回和值。11(*)有人想将手中一张面值100元的人民币换成5元、1元、0.5元面值的零钱100张,以上三种面值的零钱至少有一张,问共有几种换法。请编程实现。程序1: main()int i,j,k,n=0;for(i=1;i<19;i+)fo
9、r(j=1;j<95;j+)for(k=1;k<94;k+)if(5*i+j+0.5*k=100&&i+j+k=100)printf("%d,%d,%dn",i,j,k);n+;printf("%d",n);12(*)求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,例如:2+22+222+2222+22222 程序1:main()int i, a,n; long sum=0, b=1,c=1;scanf("%d,%d",&a,&n);for(i=1;i<=
10、n;i+)程序3:main() long int sn=0,k=a;int a,i,j; scanf("%d",&a); for(i=1;i<=5;i+) k=10*k+a; sn=sn+k; printf("%ldn",sn); sum+=a*c;b*=10;c+=b;printf("%ld",sum); 程序2:main() long int sn=0,k=0;int a,i,j; scanf("%d",&a); for(i=1;i<=5;i+) for(j=1;j<=i;j+
11、) k=10*k+a;4 sn=sn+k; k=0; printf("%ldn",sn); 13(*)编程输出如下图形(不能仅用printf语句): * * * * * * * * * * * * * * * * * * * * * * * *main()int i,k,j;for(i=0;i<=4;i+) for(j=0;j<4-i;j+) printf(" "); for(k=0;k<=2*i;k+) printf("*"); printf("n"); 14(*)用近似公式求自然对数的底e的值
12、。 e1+1!+ + +#include"math.h" main() float i,j,e,p=1.0,sum=0.0; for(i=1;i<10 ;i+) for(j=1;j<=i;j+) p=p*j; sum=sum+1.0/p; p=1.0; e=i+sum; printf("%fn",e); 15(*)请编程,用scanf()函数输入三个字符,对这三个字符各加一个整数1后,用putchar()函数输出,且每输出一个字符换一行。16(*)请编程,用scanf()函数输入三个整数,输出其中不大不小的那个数,输出宽度为五位。 int f
13、indmid(int i,int j,int k)int n;5 if(i<j) n=i;i=j;j=n;if(i<k) n=i;else if(j>k) n=j;else n=k;return(n); main()int i,j,k,n;scanf("%d%d%d",&i,&j,&k);n=findmid(i,j,k);printf("%dn",n);17(*)编程实现输出所有1100之间能被9整除余2的数。18(*)编写一程序实现如下功能:输入1、2、3、4、5、6、7(分别对应星期一至星期日)中的任何一个数
14、,便能输出与之对应的英文名称。如输入1,则输出Monday。 main()char day;scanf("%c",&day);swith(day)case '1':printf(" mondayn");break; case '2':printf("tuesdayn"); break; case '3':printf("wednsdayn"); break; case '4':printf("thursdayn"); bra
15、ek; case '5':printf(" fridayn"); break; case '6':printf("saturdayn"); break;case '7':printf("sundayn"); break; defult: printf("errorn");19(*)编一程序,对于给定的一个百分制成绩,输出相应的5分制成绩。设:90分以上为A,8089分为B,7079分为C,6069分为D,60分以下为E。(用switch语句实现)。 main()int
16、 s,score;scanf("%d",&score);s=score/10;switch(s)case 10:printf("An");break; case 9:printf("An");break; case 8:printf("Bn");break; case 7:printf("Cn");break; case 6:printf("Dn");break; case 5: case 4: case 3: case 2: case 1:printf("
17、En");break; default:printf("error"); 20(*)试编程:判断输入的正整数是否既是5,又是7的整数倍数。若是则输出yes;否则输出no。21(*)一个数如果却好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。编程序找出100之内的所有完数,并按下列格式输出其因子: 6 its factors are 1,2,3main()int m,i,s; for(m=2;m<1000;m+) s=0; for(i=1; i<m ;i+) if(m%i=0) s=s+i; if
18、 (m=s) printf("%3d its factors are ",m); for(i=1;i<m;i+) if(m%i=0) printf("%4d",i); printf("n"); 22(*)输入5对整数,请输出每对数中较大者 main()int i,j,a52;for(i=0;i<=4;i+) for(j=0;j<=1;j+) scanf("%d",&aij); for(i=0;i<=4;i+) if(ai1>ai0) printf("%4dn"
19、;,ai1); else printf("%4dn",ai0); 6 23(*)编程将一个3x3矩阵转置(行列互换)后输出。 main()int i,j, a33,b33;for(i=0;i<=2;i+)for(j=0;j<=2;j+)scanf("%d",&aij);for(i=0;i<=2;i+)for(j=0;j<=2;j+)print(“%5d”,aij);bji=aij; printf('n');for(j=0;j<=2;j+)for(i=0;i<=2;i+)printf("
20、%5d",bij);printf(“n”);24(*)求一个一维数组的最大值,最小值和平均值(主函数调用并输出)。程序2:main()void make(); int a10,i; extern int max,min; extern float aver; for(i=0;i<10;i+) scanf("%d",&ai); make(a,10); printf("max=%d,min=%d,aver=%.2f",max,min,aver); int max,min; float aver; void make(int a,int
21、 n) int i; float sum;max=min=a0; sum=a0; for(i=1;i<n;i+) if(max<ai) max=ai; if(min>ai) min=ai; sum+=ai;printf("%f",sum); aver=(float)sum/n; 程序1:float max(int n,float a)int i;float max;max=a0;for(i=0;i<n;i+)if(max<ai) max=ai;return(max);float min(int n,float a) int i;float mi
22、n;min=a0;for(i=0;i<n;i+)if(min>ai) min=ai;return(min);float aver(int n,float a) int i;float sum=0,aver;7 for(i=0;i<n;i+)sum=sum+ai;aver=sum/n;return(aver);#include"math.h"main() int i;float m,n,a5,c;for(i=0;i<5;i+)scanf("%f",&ai);m=max(5,a);n=min(5,a);c=aver(5,a);
23、printf("%5f%5f%5fn",m,n,c);25(*)编写函数,求一个不超过五位的十进制整数各位数值的和。(如:输入2634,输出15) #include"math.h"main() int i,a5,m,n=0;scanf("%d",&m);for(i=0;i<=4;i+)ai=m%10;n=n+ai;m=m-ai*10;printf("%5d",ai);printf('n');printf("%d",n);26(*)编程求出一个3x3矩阵的最大和最小元
24、素及其下标。 main()int i,j,max,min,a33,m1,n1,m2,n2; for(i=0;i<=2;i+) for(j=0;j<=2;j+) scanf("%d",&aij); min=max=a00;8 for(i=0;i<=2;i+) for(j=0;j<=2;j+) if(aij>max) max=aij;m1=I;n1=j; else if(aij<min) min=aij;m2=i;n2=j; printf("max=%d,%3d,%3d,min=%d,%3d,%3d",max,m1
25、,n1,min,m2,n2); 27(*)有一个字符串,包含n 个字符,编写一个函数,将此字符串中从第m个字符开始的全部字符复制成另一个字符串。 main()char chs230=0,chs130="this is my first C program"int i,j,m;scanf("%d",&m);for(i=m,j=0;i<30;i+,j+)chs2j=chs1i;chs229='0'printf("%s",chs2); 28(*)求一个3x3矩阵的对角线元素之和。 main() int i,j,
26、sum1=0,sum2=0,a33;for(i=0;i<=2;i+)for(j=0;j<=2;j+)scanf("%d",&aij);for(i=0;i<=2;i+)for(j=0;j<=2;j+)if(i=j) sum1+=aij;if(i+j)=2) sum2+=aij;printf("%5d%5d",sum1,sum2); 29(*)从键盘输入两个整数,输出其最大公约数和最小公倍数。 程序1: main()int a,b,t,p,r;scanf("%d,%d",&a,&b);if(
27、a<b) t=a;a=b;b=t;p=a*b;while(b!=0)r=a%b;a=b;b=r;printf(“%5d%5d”,a,p/a);9 main() int a,b,m,n,i,t; scanf(“%d%d”,&a,&b);if(a<b)t=a;a=b;b=t;m=a;n=b;for(i=1;i<=n;i+)if(m%i=0)&&(n%i=0) printf("%5dn",i);break;printf("%5d",a*b/i);30(*)一个已按从小到大的顺序排序的数组,有9个元素,从终端输入
28、第10个数,要求按原来排序的规律将它插入数组中。(该数比第一个数大,比第九个数小) #define N 10main()int b,i,n,aN=1,5,7,11,15,19,23,28,31;scanf("%d",&b);for(i=0;i<N-1;i+)if(ai>b) n=i;break;for(i=(N-2);i>=n;i-)ai+1=ai;an=b;for(i=0;i<N;i+)printf("%5d",ai);31(*)请编写程序,输出以下扬辉三角形( 要求输出10行)。 1 1 1 1 2 1 1 3 3 1
29、 1 4 6 4 1: # define M 10 # define N 10 main() int aMN,i,j; for(i=0;i<M;i+) for(j=0;j<=i;j+) if(j=0|j=i) aij=1; else aij=ai-1j-1+ai-1j; for(i=0;i<M;i+) for(j=0;j<=i;j+) printf("%4d",aij); printf("n"); 32(*)从键盘输入少于50个的整数,其值在0和4之间(包括0和4),用-1作为输入结束标志,统计每个整数的个数。请编程实现。33(*
30、)从键盘输入两个字符串a和b,要求不用库函数strcat把串b的前五个字符连接到串a中;如果b的长度小于5,则把b的所有元素都连接到a中,请编程实现。 main() char a50,b10,*p1,*p2; int i,j; scanf(“%s%s”,a,b); n=strlen(a); for(p1=a+n,p2=b;p1<=a+(n+4);p1+,p2+)*p1=*p2; if(*p2= =0) break; *p1=0;printf(“%s”,a);34(*)编写函数,在一个一维数组中查找指定值,若找到则返回该数值的下标,否则返回-1。要求用指针变量传递数组首地址。 main()
31、float a10=1,2,3,4,5,6,7,8,9,10;float b;int i;scanf("%f",&b);for(i=0;i<10;i+)if(b=ai)printf("%dn",i);break;if(i>=10) printf("-1");printf("n");35(*)写一程序,要求用户在键盘上输入一个整数,并把每位数字转换为英文。例如:输入1024时,输出One Zero Two Fourmain() long int n; int m,i=0,c10;scanf(&qu
32、ot;%ld",&n);dom=n%10;i+;ci=m;printf("%5d%5d%5dn",i,m,ci);while (n/=10)>0);while(i>=1)i-;switch(ci+1)case 0: printf("zero");printf(" ");break;case 1: printf("one");printf(" "); break; case 2: printf("two");printf(" "
33、); break;case 3: printf("three");printf(" ");break;case 4: printf("four");printf(" ");break;case 5: printf("five");printf(" ");break;case 6: printf("six");printf(" "); break;case 7: printf("seven");printf("
34、; "); break;case 8: printf("eight");printf(" "); break;case 9: printf("nine");printf(" "); break;default:printf("no");36(*)A数组中有8个元素,从第6个元素开始将数组后三个元素移到数组开头。例如:A数组元素为:2 6 9 8 5 3 7 4 移动后数组变为:3 7 4 2 6 9 8 5#define N 8main()int a8=2,6,9,8,5,3,7,4;
35、int i, j,t;for(i=0;i<8;i+) printf("%5d",ai);printf("n");for(j=0;j<3;j+) t=aN-1;for(i=N-2;i>=0;i-)ai+1=ai;a0=t;for(i=0;i<8;i+)printf("%5d",ai);37(*)按如下格式打印输出乘法口诀表: 1×1=1 1×2=2 2×2=4 1×9=9 2×9=18 3×9=27 9×9=81 38(*)请将n个整数按升序重
36、新放在原数组中,操作时不得另开辟数组。39(*)输入若干学生一门功课的成绩,统计各分数段的人数。凡不及格(60分以下)都由一个计数器来统计,其它以10分作为一个数段,100分作为一个分数段。 main()int a10;int i,j,t,p;for(i=0;i<10;i+)scanf("%d",&ai);for(i=0;i<9;i+)p=i;for(j=i+1;j<10;j+)if(ap>aj)p=j;if(p!=j)t=ai;ai=ap;ap=t;for(i=0;i<10;i+)printf("%5d",ai);
37、40(*) 编写函数,给定一个数,删除数组中与之相等的元素,返回值为删除后数组中的元素个数。 main()float a10,t;int s,b6=0,i;for(i=0;i<10;i+) scanf("%f",&ai);i=0;while(i<10)s=(int)ai/10;i+;switch(s)case 10:b0+; break;case 9:b1+; break;case 8:b2+; break;case 7:b3+; break;case 6:b4+;break;case 5:case 4:case 3:case 2:case 1:case
38、 0: b5+; break;for(i=0;i<=5;i+)printf("%2d",bi);41.(*)输入一个整数,判断它能否被3、5、7整除,并输出以下信息之一:能同时被3、5、7整除;能被其中两个数(说明哪两个数)整除;只能被其中一个整除(说明哪个数);不能被3、5、7任何一个整除。42(*)有10个数已按由小到大的顺序存放在一个整型数组中,从键盘输入一个数,找出该数是数组中的第几个元数,如果该数不在数组中,则打印出“无此数”。 main() int a10= 2,4,6,8,10,12,14,16,18,20; int i,t,j,m; for(i=0;i
39、<10;i+) printf(“%5d”,ai); printf(“n”); scanf(“%d”,&m); for(i=0;i<10;i+) if(m=ai)printf(“%5d”,i+1);break; if(i>=10) printf(“no”); 43(*)给出年、月、日,计算出该日是该年的第几天。44(*)求3至50之间所有素数之和,用子函数判断是否为素数。 #include <math.h> main() int m,k,i,s=0; for (m=3;m<50;m+) k=sqrt(m); for(i=2;i<=k;i+) if (m%i=0) break; if(i>=k+1) s=s+m ; printf("%5dn",s); 45(*)不用strcpy函数,实现两个字符串的复制(形参用指针变量)。46(*)从键盘输入10个数,将其中最小的数与第一个数对换,最大的数与最后一个数对换,实现从小到大的排序。(用指针实现)47(*)编制程序。在主函数中输入a、b、c三个数,在子函数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年国际足球赛事场地租赁合同
- 2024年建筑施工劳务承包简约合同样本
- 2024桩基础工程专业分包合同模板
- 2024代理合同样式
- 2024技术参股合作协议书
- 2024版药品代理合同
- 二手房交易合同
- 店面承租协议书范本
- 2024项目开发全过程专项法律服务合同
- 2024常用合作合同范本
- 2020建设工程造价数据存储标准
- 港口散装液体危险化学品港口经营人的装卸管理人员从业资格考试
- 人教版 六级上册数学 四单元《比》(省级作业设计大赛作品)
- 供应商年度评价内容及评分表
- 政府信息公开工作学习辅导
- 2023-2024学年湖北省武汉市洪山区九年级(上)期中数学试卷(含解析)
- 甄嬛传英语剧本之滴血认亲
- 《我的手机我做主》的主题班会
- 高能效电机与电机系统节能技术
- 第六章 混料(配方)设计
- 面神经炎临床路径
评论
0/150
提交评论