




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言编程题 1.( *)求分数序列:1/2,2/3,3/5,5/8,8/13,13/21前 20 项的和。 mai n() float i=1,j=2,t=0,s ,n ,m; for(n=1; n=0;i-) prin tf(%c,ci); 3. (*)已知 abc+cba=1333,其中 a、b、c 均为一位数,例如:617+716=1333, 518+815=1333, 试编程求出符合这一规律的a、b、c,并输出结果。 mai n() i nt a,b,c,x,y; for(a=1;a=9;a+) for(b=0;b=9;b+) for(c=1;cc else prin tf( no)
2、; 1 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,n; for(n=1;n
3、=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; 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 10 main() 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. (*)求出0999之间的所有“水仙花数”并输出。“水仙花数”是指一个三位数, 其各位数字的立方和确好等于该数本身,如;153= 1 + 5+ 3 ,则153是一个“水仙花数”。 程序 1 : main() int i,j,k,a; for(i=1;i=9;i
5、+) 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+) 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
6、) ;请编写 aad 函数,计算两个实数 a 和 b 的和, 并返回和值。 11. (*)有人想将手中一张面值 1 00元的人民币换成 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 n+; prin tf(%d, n); 是一个数字,例如 12. (*)求 Sn=a+aa+aaa+aaaa+aaaaa勺前 5 项之和,其中 a 2+22+222
7、+2222+22222 程序 1: main() int i, a,n; long sum=0, b=1,c=1; sea nf(%d,%d, for(i=1;i=n ;i+) sum+=a*c; b*=10;c+=b; prin tf(%ld,sum); 程序 2: main() long int sn=0,k=0; int a,i,j; sea nf(%d, for(i=1;i=5;i+) for(j=1;j=i;j+) k=10*k+a; sn=sn+k; k=0; prin tf(%ldn,s n); 程序 3: main() lo ng int sn=0,k=a; int a,i,j
8、; sea nf(%d, for(i=1;i=5;i+) k=10*k+a; sn=sn+k; prin tf(%ldn,s n); 4 . 13. (*)编程输出如下图形(不能仅用 printf语句): mai n() int i,k,j; for(i=0;i=4;i+) for(j=0;j4-i;j+) printf(); for(k=0;k=2*i;k+) prin tf(*); prin tf(n); 14. (*)用近似公式求自然对数的底e的值 1丄 2!3! e 1+1!+ #includemath.h main() float i,j,e,p=1.0,sum=0.0; for(i
9、=1;i10 ;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 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)
10、; main() int i,j,k,n; scanf(%d%d%d, n=findmid(i,j,k); printf(%dn,n); 17 .( *)编程实现输岀所有 1100之间能被9整除余2的数。 1 8(* )编写一程序实现如下功能:输入 1、2、3、4、5、6、7(分别对应星期一至星 期日)中的任何一个数,便能输岀与之对应的英文名称。如输入 1 ,则输岀 Monday。 main() char day; scanf(%c, swith(day) case 1:printf( mondayn);break; case 2:printf(tuesdayn); break; case 3
11、:printf(wednsdayn); break; case 4:printf(thursdayn); braek; case 5:printf( fridayn); break; case 6:printf(saturdayn); break; case 7:printf(sundayn); break; defult: printf(errorn); 19(*) 编一程序,对于给定的一个百分制成绩,输出相应的5分制成绩。设: 90分以 上为 A8089 分为 B, 7079 分为 C, 6069 分为 D,60 分以下为 E。(用 switch 语句实现)。 main() int s,s
12、core; scanf(%d, 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(En);break; default:printf(error); 20 ( * )试编程:判断输入的正整数是否既是 5,又是 7的整数倍数。若是则输出 yes; 否则输出 no。
13、 21( * )一个数如果却好等于它的因子之和,这个数就称为“完数”。例如,6 的因子为 1、2、3,而 6=1+2+3 ,因此 6 是“完数”。编程序找出 100 之内的所有完数,并按下列格式输出其因子:6 its factors are 1,2,3 main() 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); 22( *
14、)输入 5 对整数,请输出每对数中较大者 main() int i,j,a52; for(i=0;i=4;i+) for(j=0;j=1;j+) scanf(%d, for(i=0;iai0) prin tf(%4dn,ai1); else prin tf(%4dn,ai0); .6 . 23 . ( * )编程将一个3x3矩阵转置(行列互换)后输岀。 mai n() int i,j, a33,b33; for(i=0;i=2;i+) for(j=0;j=2;j+) scan f(%d, for(i=0;i=2;i+) for(j=0;j=2;j+) print( %5d ,aij); bji
15、=aij; prin tf(n); for(j=0;j=2;j+) for(i=0;i=2;i+) prin tf(%5d,bij); printf(“n ”); 24. (*)求一个一维数组的最大值,最小值和平均值(主函数调用并输出)。 程序2: mai n() void make(); int a10,i; extern int max,mi n; exter n float aver; for(i=0;i10;i+) sca nf(%d, make(a,10); pr in tf(max=%d,mi n=%d,aver=%.2f,max,mi n,aver); int max, min;
16、 float aver; void make(i nt a,i nt n) int i; float sum; max=min=a0; sum=a0; for(i=1;i n;i+) if(max ai) mi n=ai; sum+=ai;pri ntf(%f,sum); 程序1 : float max(i nt n float a) int i; float max; max=a0; for(i=0;i n ;i+) if(maxai) max=ai; return(max); float min (i nt n float a) int i; float min; min=a0; for(
17、i=0;i ai) min=ai; return(mi n); float aver(i nt n, float a) int i; aver=(float)sum/n; float sum=0,aver; 7 for(i=0;in;i+) sum=sum+ai; aver=sum/n; return(aver); #includemath.h main() int i; float m,n,a5,c; for(i=0;i5;i+) scanf(%f, m=max(5,a); n=min(5,a); c=aver(5,a); printf(%5f%5f%5fn,m,n,c); 25 ( * )
18、编写函数,求一个不超过五位的十进制整数各位数值的和。(如:输入2634,输出 15) #includemath.h main() int i,a5,m,n=0; scanf(%d, 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矩阵的最大和最小元素及其下标。 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, min=max=a
19、00; . 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); m个字符 27(* )有一个字符串,包含 n 个字符,编写一个函数,将此字符串中从第 开始的全部字符复制成另一个字符串。 main() char chs230=0,chs130=this is my first C program; int i,j,m; scanf(%d, for(i=m,j
20、=0;i30;i+,j+) chs2j=chs1i; chs229=0; printf(%s,chs2); 28 (* )求一个 3x3 矩阵的对角线元素之和。 main() int i,j,sum1=0,sum2=0,a33; for(i=0;i=2;i+) for(j=0;j=2;j+) scanf(%d, 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()
21、 int a,b,t,p,r; scanf(%d,%d, if(ab) t=a;a=b;b=t; p=a*b; while(b!=0) r=a%b;a=b;b=r; printf( “%5d%5”d,a,p/a); 9 main() int a,b,m,n,i,t; scanf( “%d%”d, if(ab)t=a;a=b;b=t; m=a;n=b; for(i=1;i=n;i+) if(m%i=0)break; printf(%5d,a*b/i); 30(* )一个已按从小到大的顺序排序的数组,有9 个元素,从终端输入第 10 个数, 要求按原来排序的规律将它插入数组中。 (该数比第一个数大
22、,比第九个数小) #define N 10 main() int b,i,n,aN=1,5,7,11,15,19,23,28,31; scanf(%d, for(i=0;ib) n=i;break; for(i=(N-2);i=n;i-) ai+1=ai; an=b; for(i=0;iN;i+) printf(%5d,ai); 31(* )请编写程序,输出以下扬辉三角形 ( 要求输出 10行)。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 # define M 10 # define N 10 main() int aMN,i,j; for(i=0;iM;i+) for(j=
23、0;j=i;j+) if(j=0|j=i) aij=1; else aij=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,要求不用库函数strcat把串b的前五个字符连 接 到串a中;如果b的长度小于5,则把b的所有元素都连接到a中,请编程实现。 main() char a50,b10,*p1,*p2; int
24、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() float a10=1,2,3,4,5,6,7,8,9,10; float b; int i; scanf(%f, for(i=0;i=10) printf(-1); printf(n); 35
25、(* )写一程序, 要求用户在键盘上输入一个整数, 并把每位数字转换为英文。 例如: 输入 1024时,输出 One Zero Two Four main() long int n; int m,i=0,c10; scanf(%ld, do m=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: print
26、f(two);printf( ); 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( ); break; case 8: printf(eight);printf( ); break; case 9: printf(nine);printf( ); break; def
27、ault: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 8 main() 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 X仁1
28、1 X 2=2 2 X 2=4 I I I 1 X 9=9 2 X 9=18 3 X 9=27 9 X 9=81 38. (* )请将n个整数按升序重新放在原数组中,操作时不得另开辟数组。 39. (* )输入若干学生一门功课的成绩,统计各分数段的人数。凡不及格(60 分以下) 都由一个计数器来统计,其它以 10分作为一个数段, 100分作为一个分数段。 main() int a10; int i,j,t,p; for(i=0;i10;i+) scanf(%d, for(i=0;i9;i+) p=i; for(j=i+1;jaj)p=j; if(p!=j) t=ai;ai=ap;ap=t; f
29、or(i=0;i10;i+) printf(%5d,ai); 40.( * ) 编写函数,给定一个数,删除数组中与之相等的元素,返回值为删除后数组中 的元素个数。 main() float a10,t; int s,b6=0,i; for(i=0;i10;i+) scanf(%f, 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: cas
30、e 3: case 2: case 1: case 0: b5+; break; for(i=0;i=5;i+) printf(%2d,bi); 41. (* )输入一个整数,判断它能否被 3、5、7整除,并输出以下信息之一: 能同时被 3、5、7 整除; 能被其中两个数(说明哪两个数)整除; 只能被其中一个整除(说明哪个数); 不能被 3、5、7 任何一个整除。 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
31、”, for(i=0;i=10) printf( 42 ( * )有 10个数已按由小到大的顺序存放在一个整型数组中,从键盘输入一个数, 找出该数是数组中的第几个元数,如果该数不在数组中,则打印出“无此数” 。 “%5d”,i+1);break; 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门成绩,分别统计每个学生的平均成绩。 (在主函数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新建公司薪酬管理制度
- 物业劳务人员管理制度
- 汽车店铺收银管理制度
- 维修厂质量管理制度
- 建立研发项目管理制度
- 篮球cba管理制度
- 娃哈哈公司员工管理制度
- 二级计算机备考材料盘点题及答案
- 危险化学品管理制度
- 村卫生室设备管理制度
- UPS电源管理系统升级
- 浙江省杭州市上城区2021-2022学年五年级下学期期末数学试卷
- 生命周期环境因素(ISO14001)
- 国家中小学智慧教育平台培训专题讲座
- 顶管顶力计算
- 农村医生个人工作简历表
- 回顾性中医医术实践资料(医案)表
- 专题04命题定理定义(四大题型)
- 部编版二年级道德与法治下册《试种一粒籽》教案及教学反思
- 2023版教科版二年级下册科学课堂作业本参考答案
- 2023-2024学年湖北省恩施市小学语文六年级期末评估测试题附参考答案和详细解析
评论
0/150
提交评论