




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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=0;i-)printf(%c,ci);3( * )已知 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;cc&a+cb&b+ca) printf(area=%f,a
2、rea);1/18页眉else 1 printf(no);5( * )编程求出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 (n0) printf(n0,error!);else if(n=0|n=1) f=1;else f=fac(n-1)*n;return(f);main()int h,s=0
3、,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/18页眉 2 6( * )从键盘输入两个整数,输出其和,差,积,商。7( * )输入若干个自然数,对奇数从大到小排序,对偶数从小到大排序,输出两种结果。maxji(int a,int n) int i,j,k,t;for(i=0;in-1;i+)k=i;for(j=i+1;jn;j+)if
4、(akaj) k=j;if (k!=i)t=ak;ak=aj;aj=t;#define N 10main()int cN,i,j;for(i=0;i=0;i-)if(ci%2=0)printf(%5d,ci);printf(n);for(i=0;iN;i+)if(ci%2!=0)printf(%5d,ci);8( * )求出0 999 之间的所有“水仙花数”并输出。“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如; 153 1 53 ,则 153 是一个“水仙花数” 。程序 1: main()int i,j,k,a;for(i=1;i=9;i+)for(j=0;j=9;j+)
5、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()3/18页眉int m,i,j,k,a;for(m=101;i=999;m+)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(
6、* )有人想将手中一张面值100 元的人民币换成5 元、1元、 0.5元面值的零钱100张,以上三种面值的零钱至少有一张,问共有几种换法。请编程实现。程序 1: main()int i,j,k,n=0;for(i=1;i19;i+)for(j=1;j95;j+)for(k=1;k94;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()
7、int i, a,n;long sum=0, b=1,c=1;scanf(%d,%d,&a,&n);for(i=1;i=n;i+)sum+=a*c;程序 3: main()b*=10;c+=b;long int sn=0,k=a;printf(%ld,sum);int a,i,j;scanf(%d,&a);程序 2:main()for(i=1;i=5;i+) k=10*k+a;4/18sn=sn+k;printf(%ldn,sn);页眉 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+)k=10*k+a
8、; 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;j4-i;j+)printf( );for(k=0;k=2*i;k+)printf(*);printf(n);14( * )用近似公式求自然对数的底e 的值。e 1+1!+11+ +2!3!#includemath.hmain()float i,j,e,p=1.0,sum=0.0;for(i=1;i10 ;i+)for(j=1;j=i;j+)p=p*j;sum=sum+1.0/p;p
9、=1.0;e=i+sum;5/18页眉printf(%fn,e);15( * )请编程,用scanf()函数输入三个字符,对这三个字符各加一个整数1 后,用putchar()函数输出,且每输出一个字符换一行。16( * )请编程,用scanf()函数输入三个整数,输出其中不大不小的那个数,输出宽度为五位。int findmid(int i,int j,int k)int n; 5 if(ij) n=i;i=j;j=n;if(ik) 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);p
10、rintf(%dn,n);17( * )编程实现输出所有1100 之间能被9 整除余 2 的数。18( * )编写一程序实现如下功能:输入1、 2、 3、 4、5、 6、 7(分别对应星期一至星期日)中的任何一个数,便能输出与之对应的英文名称。如输入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); brae
11、k;case 5:printf( fridayn); break;case 6:printf(saturdayn); break;case 7:printf(sundayn); break;defult: printf(errorn);19 (*) 编一程序,对于给定的一个百分制成绩,输出相应的5 分制成绩。设:90 分以上6/18页眉为 A, 8089 分为 B,7079 分为 C, 6069 分为 D, 60 分以下为 E。(用 switch 语句实现)。main()int s,score;scanf(%d,&score);s=score/10;switch(s)case 10:print
12、f(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(En);break;default:printf(error);20( * )试编程:判断输入的正整数是否既是5,又是7 的整数倍数。若是则输出yes ;否则输出no。21( * )一个数如果却好等于它的因子之和,这个数就称为“完数”。例如, 6 的因子为1、 2、3,而 6=1+2+3,因此 6
13、是“完数”。编程序找出100 之内的所有完数,并按下列格式输出其因子:6 its factors are 1,2,3main()int m,i,s;for(m=2;m1000;m+) s=0;for(i=1; im ;i+)if(m%i=0) s=s+i;if (m=s) printf(%3d its factors are ,m); for(i=1;im;i+) if(m%i=0) printf(%4d,i);printf(n);7/18页眉22( * )输入 5 对整数,请输出每对数中较大者main()int i,j,a52;for(i=0;i=4;i+)for(j=0;j=1;j+)sc
14、anf(%d,&aij);for(i=0;iai0)printf(%4dn,ai1);elseprintf(%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(%5d,bij);printf(“n ”);24 (*)求
15、一个一维数组的最大值,最小值和平均值(主函数调用并输出)。程序 1:程序 2:main()float max(int n,float a)void make();int i;int a10,i;float max;extern int max,min;max=a0;extern float aver;for(i=0;in;i+)for(i=0;i10;i+)if(maxai) max=ai;scanf(%d,&ai);8/18make(a,10);printf(max=%d,min=%d,aver=%.2f,max,min,aver);页眉return(max);float min(int n
16、,float a) int i;float min;min=a0;for(i=0;iai) min=ai;return(min);float aver(int n,float a) int i;float sum=0,aver; 7 for(i=0;in;i+)sum=sum+ai;aver=sum/n;return(aver);#includemath.hmain() int i;float m,n,a5,c;for(i=0;i5;i+)scanf(%f,&ai);m=max(5,a);n=min(5,a);c=aver(5,a);printf(%5f%5f%5fn,m,n,c);25(*
17、)编写函数,求一个不超过五位的十进制整数各位数值的和。(如:输入2634,输出 15) #includemath.hmain() int i,a5,m,n=0; scanf(%d,&m); for(i=0;i=4;i+)9/18页眉ai=m%10;n=n+ai;m=m-ai*10;printf(%5d,ai);printf(n);printf(%d,n);26( * )编程求出一个3x3 矩阵的最大和最小元素及其下标。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=ma
18、x=a00; 8 for(i=0;i=2;i+)for(j=0;jmax) max=aij;m1=I;n1=j;else if(aijmin)min=aij;m2=i;n2=j;printf(max=%d,%3d,%3d,min=%d,%3d,%3d,max,m1,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;i30;i+
19、,j+)chs2j=chs1i;chs229=0;printf(%s,chs2);28 ( * )求一个 3x3 矩阵的对角线元素之和。main() int i,j,sum1=0,sum2=0,a33;10/18页眉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
20、,p,r;scanf(%d,%d,&a,&b);if(ab) 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(ab)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 个元素 , 从终端输入第10 个数 , 要求按原来排序
21、的规律将它插入数组中。(该数比第一个数大,比第九个数小)#define N 10main()int b,i,n,aN=1,5,7,11,15,19,23,28,31;scanf(%d,&b);for(i=0;ib) n=i;break;for(i=(N-2);i=n;i-)11/18页眉ai+1=ai;an=b;for(i=0;iN;i+)printf(%5d,ai);31( * )请编写程序,输出以下扬辉三角形(要求输出10 行 ) 。11 11 2 1133114641:# define M10# define N10main()int aMN,i,j;for(i=0;iM;i+)for(
22、j=0;j=i;j+)if(j=0|j=i)aij=1;elseaij=ai-1j-1+ai-1j;for(i=0;iM;i+)for(j=0;j=i;j+)printf(%4d,aij);printf(n);32( * )从键盘输入少于50 个的整数,其值在0 和 4 之间(包括0 和4),用 -1作为输入结束标志,统计每个整数的个数。请编程实现。33 (*) 从键盘输入两个字符串a 和 b,要求不用库函数到串 a 中;如果b 的长度小于5,则把 b 的所有元素都连接到main()strcat 把串 b 的前五个字符连接 a 中,请编程实现。 char a50,b10,*p1,*p2; in
23、t i,j;scanf( “%s%s”,a,b); n=strlen(a);for(p1=a+n,p2=b;p1=a+(n+4);p1+,p2+)*p1 =*p2;12/18页眉if(*p2= =0) break;*p1=0;printf(“%s”,a);34(* )编写函数,在一个一维数组中查找指定值,若找到则返回该数值的下标,否则返回 -1 。要求用指针变量传递数组首地址。 main()float a10=1,2,3,4,5,6,7,8,9,10;float b;int i;scanf(%f,&b);for(i=0;i=10) printf(-1);printf(n);35( * )写一程
24、序,要求用户在键盘上输入一个整数,并把每位数字转换为英文。例如:输入 1024 时,输出 One Zero Two Fourmain() long int n;int m,i=0,c10;scanf(%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( ); br
25、eak;case 3: printf(three);printf( );break;case 4: printf(four);printf( );break;case 5: printf(five);printf( );break;13/18页眉case 6: printf(six);printf( ); break;case 7: printf(seven);printf( ); break;case 8: printf(eight);printf( ); break;case 9: printf(nine);printf( ); break;default:printf(no);36(*
26、)A 数组中有8 个元素,从第6 个元素开始将数组后三个元素移到数组开头。A数组元素为:26985374移动后数组变为:37426985#define N 8main()int a8=2,6,9,8,5,3,7,4;int i, j,t;for(i=0;i8;i+)printf(%5d,ai);printf(n);for(j=0;j=0;i-)ai+1=ai;a0=t;for(i=0;i8;i+)printf(%5d,ai);例如:37( * )按如下格式打印输出乘法口诀表:1 1=112=2 2 2=41 9=9 2 9=18 3 9=27 9 9=8138( * )请将 n 个整数按升序重
27、新放在原数组中,操作时不得另开辟数组。39( * )输入若干学生一门功课的成绩,统计各分数段的人数。凡不及格(60 分以下)都由一个计数器来统计,其它以10 分作为一个数段,100 分作为一个分数段。main()int a10;int i,j,t,p;for(i=0;i10;i+)scanf(%d,&ai);for(i=0;i9;i+)14/18页眉p=i;for(j=i+1;jaj)p=j;if(p!=j)t=ai;ai=ap;ap=t;for(i=0;i10;i+)printf(%5d,ai);40( * ) 编写函数,给定一个数,删除数组中与之相等的元素,返回值为删除后数组中的元素个数。
28、main()float a10,t;int s,b6=0,i;for(i=0;i10;i+)scanf(%f,&ai);i=0;while(i10)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 0: b5+; break;for(i=0;i=5;i+)printf(%2d,bi);41. ( * )输入一个整数,判断它能否被3、 5、
29、7 整除,并输出以下信息之一:15/18页眉能同时被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;i10;i+)printf(“%5d”,ai);printf(“n”);scanf( “%d”,&m);for(i=0;i=10) prin
30、tf(“no”); 43( * )给出年、月、日,计算出该日是该年的第几天。44( * )求 3 至 50 之间所有素数之和,用子函数判断是否为素数。#include main()int m,k,i,s=0;for (m=3;m50;m+)k=sqrt(m);for(i=2;i=k+1) s=s+m ;printf(%5dn,s);45( * )不用 strcpy函数,实现两个字符串的复制( 形参用指针变量) 。46( * )从键盘输入10 个数,将其中最小的数与第一个数对换,最大的数与最后一个数对换,实现从小到大的排序。(用指针实现)47( * )编制程序。在主函数中输入a、b、 c 三个数,在子函数中用指针法将a、b、 c排序(最大数放在a 变量中,最小数放在c 变量着),在主函数中输出。48( * ) 输入三个字符串,按由小到大的顺序输出。(用字符指针实现) 。49( * ) 请编程, 从键盘输入6 名学生的5 门成绩, 分别统计每个学生的平均成绩。(在主函数中输入输出,子函数求平均成绩)50( *
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年地质版(2024)小学体育与健康二年级全一册《安全游泳防溺水》教学设计
- 2025合作伙伴项目合作合同
- 小矮人讲解题目及答案
- 常德消防素质考试题库及答案
- 消防安全常识题目及答案
- 现象及原理分析题目答案
- 2025知识产权许可与转让合同
- 沧州高中地理会考试卷及答案
- 沧州地理生物考试卷子及答案
- 2025涂料采购合同范本
- 应急管理局项目管理办法
- 2025年职业指导师考试试卷:职业指导师职业指导
- 竞彩销售培训
- 国防科普活动方案
- 藻类分子机制解析与调控网络构建-洞察阐释
- 柴油运输配送管理制度
- T/CAPA 009-2023面部埋线提升技术操作规范
- 助教合同协议书范本
- DB3707T 120-2024无特定病原凡纳滨对虾种虾循环水养殖技术规范
- 2025光伏项目施工合同范本
- 阶梯定价合同协议
评论
0/150
提交评论