1、C语言程序设计题集c语言程序设计题集(一)关于顺序结构、选择结构、循环结构的程序【程序1】编写程序,将10000秒转换成以“ XX时XX分XX秒”格式输出。#i ncludevstdio.hint mai n()int h,m,s,a;a=10000;h=10000/3600;m=(10000-h*3600)/60;s=10000-h*3600-m*60;printf(%d 时,d分,|秒,h,m,s);return 0;【程序2】输入1个字母,如果它是小写字母,则首先将其转换成大写字母,再输出该字母的前序字母、 该字母、该字母的后序字母,例如:输入 g,则输出FGH输入a,则输出ZAB输入M
2、则 输出LMN输入乙则输出YZA#in clude int mai n()char c1,c2,c3;sca nf(%c,&c1);if(c1=97&c1int mai n()float a,b,x;char c;sca nf(%f%c%f,&a,&c,&b);switch(c)case+:x=a+b;break;case-:x=a-b;break;case*:x=a*b;break;case/: if(b=0) prin tf(ivisoris zeron);else x=a/b;break;prin tf(%f,x);return 0;【程序4】输入十个整数,求其中的最大数、最小数及平均数
3、。#i ncludevstdio.hint mai n()int a,i,max, min;float ave;sca nf(%d,&a);max=min=a;ave=a;for(i=1;imax)max=a;else if(a#in cludevmath.h int main()double a,b,c,disc,x1,x2, p,q;scan f(%lf%lf%lf,&a,&b,&c);if(a=0)x1=x2=-c/b;prin tf(real roots:nx1=%7.2fnx2=%7.2fn,x1,x2);elsedisc=b*b-4*a*c;if(disc0)prin tf(Thi
4、s equati on has nt real rootsn);elsep=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1= p+q;x2=p-q;prin tf(real roots:nx1=%7.2fnx2=%7.2fn,x1,x2);return 0;【程序6】题目:输入任意学生的百分制成绩,要求输出成绩等级 A B、C D、E 90分以上为 A , 80-89分为 B , 70-79F分为 C , 60-69分为 D , 60分以下为 E。#in clude int main()int x;scan f(%d, &x);prin tf(Your score:);i
5、f(x=9 0& x=80& x=70& x=60& x=69) prin tf(D);else prin tf(E);return 0;【程序7】题目:输入一行字符,分别统计其中的英文字符,空格,数字字符和其他字符的个数是多少?#in clude int main() char c81;int n1=0, n2=0 ,n 3=0 ,n 4=0,i;printf( 输入一串字符n);gets(c);for(i=0;ci!=0;i+)if(ci=a&ci=0&ciint mai n()int a,b,c;printf( 输入某年某月某日n);sca nf(%d%d%d,&a,&b,&c);swi
6、tch(b-1)case 11:c=c+30;case 10:c=c+31;case 9:c=c+30;case 8:c=c+31;case 7:c=c+31;case 6:c=c+30;case 5:c=c+31;case 4:c=c+30;case 3:c=c+31;case 2:;case 1:c=c+31;if(a%4=0&a%100!=0|a%400=0)c=c+29;else c=c+28;printf(是| 年的第 %cR ,a,c);return 0;【程序9】题目:古典问题有一对兔子,从出生后第 3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不
7、死,问每个月的兔子总数为多少?请写出前 30个数。 程序分析:兔子的规律为Fib on acci序列1,1,2,3,5,8,13,21.找出其规律,即可解决问题。#in cludeint mai n()int f1=1,f2=1,f3;int i;prin tf(%dn%dn,f1,f2);for(i=1;i#in cludeint mai n()int n,r,i,a=0,w;for(n=101; *=200; n+)for(i=2,w=0;iv=sqrt (n );i+)if(n %i=0)w=1;if(w=0)prin tf(%dn, n);a=a+1; prin tf(%d,a);re
8、turn 0;【程序11】“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和153是一个“水仙花数”,因为153=1的三次方+ 5的三次方+ 3的三题目:打印出所有的 等于该数本身。例如: 次方。循环控制100-999个数,每个数分解出个位,十位,百位。程序分析:利用for#i ncludevstdio.hint mai n()int i,a,b,c;for(i=100;iint mai n()int n,m,r,tem p,p;printf( 输入两个整数n);sca nf(%d%d,&n,&m);if(nvm)te mp=n;n=m;m=te mp;p=n *m;while(m
9、!=0)r=n %m;n=m; m=r;prin tf( 它们的最大公约数为:d, n);prin tf( 它们的最小公倍数为:%d, p/n);return 0;【程序13】题目:求 1+2!+3!+.+20! 的和#i ncludevstdio.hint mai n()float s=0,t=1;int n;for(n=1; *=20; n+)t=t* n;s=s+t;prin tf(1!+2!+.+20!=%.0lfn,s);return 0;【程序14】题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。程序分析:用情况语句比较好,如果第一个字母
10、一样,则判断用情况语句或 if语句判断第二个字母。#i nclude int mai n()char ch;ch=getchar();switch(ch)case m: prin tf(today is Mon day.);break;case t:ch=getchar();if(ch=u) prin tf(today is Tuesday.);else if(ch=h) prin tf(today is Thursday.); break;case w: prin tf(today is Wedn esday.);break;case fprin tf(today is Friday.);b
11、reak;case s:ch=getchar(); if(ch=a) prin tf(today is Saturday.);else if(ch=u) prin tf(today is Sun day.); break;default :prin tf(error);return 0;【程序15】题目:八进制转换为十进制(或十六进制转换成十进制)。8进制#i nclude vstdio.hint mai n()int i,s,a;char c20;printf( 输入一个8进制数:);gets(c);s=0;for(i=0;ci!=0;i+)a=ci-48;/* 将字符转换成对应数字*/s=
12、s*8+a;printf(” 十进制数:%dn,s);return 0;16进制#i nclude int mai n()int i,s,a,w=0;char c20;printf( 输入一个16进制数:);gets(c);s=0;for(i=0;ci!=0;i+)if(ci=0&ci=A&ciint mai n()double a,b;printf(当月利润 n);sca nf(%lf,&a);if(a200000&a400000&a600000&a1000000)b=100000*0.1+(a-100000)*0.075;else if(a100000&a=200000)b=100000*
13、0.281+400000*0.015+(b-1000000)*0.01;printf( 奖金为 %.5lf 元,b);return 0;【程序17】输出1000以内的完数(一个数恰好等于其因子之和)。#i nclude int mai n()int i,a,j;for(i=1;i=1000;i+) a=0;for(j=1;j=i/2;j+)if(i%j=0) a=a+j;if(a=i) prin tf(%5d,i);return 0;(二)关于数组及函数的程序:【程序18】题目:将一个数组中的元素逆序输出。#i nclude int main() int a10,i;for(i=0;i=0;i
14、-)prin tf(%5d,ai);return 0;【程序19】题目:写一个函数,将一个3*3的整型矩阵转置。#i nclude int main()void zz(i nt x33);int a33,i,j;for(i=0;i3;i+)for(j=0;j3;j+)scan f(%d,&aij);zz(a);return 0;void zz(i nt x33) int i,j,y33; for(i=0;iv3;i+) for(j=0;j3;j+) yij=xji; for(i=0;i3;i+) for(j=0;j3;j+) prin tf(%5d,yij); prin tf(n);题目:输入
15、6行6列的矩阵a,然后1)输出矩阵a2).将对角线(指矩阵的左上角到右下角的对角线)之外的上三角的每个元素加 1,下三角中的每个元素减1,形成新的矩阵并输出。3).找出新矩阵a中绝对值最大的元素及其所在的行、列位置并输出。#i nclude int main()int a66,i,j,max,row,colum;for(i=0;iv6;i+)输入*/for(j=0;j6;j+)scan f(%d,&aij); /*for(i=0;i6;i+)for(j=0;j6;j+)prin tf(%5d,aij);prin tf(n);/*输出*/max=a00;for(i=0;i6;i+)for(j=0
16、;jmax)max=aij;row=i;colum=j;/*求最大值,行,列*/prin tf(max=%d,row=%d,colum=%dn,max,row,colum);return 0;【程序21】输出杨辉三角形。1 5 10 10 5 1#i nclude vstdio.h#defi ne N 10int mai n() int i,j,aNN;for (i=0;iN;i+)aii=1;ai0=1;for (i=2;iN;i+)for (j=1;j=i-1;j+) aij=ai-1j-1+ai-1j;for (i=0;iN;i+)for (j=0;jint mai n()int a6
17、= 1,3,6,7,9; int i,j,x,t;prin tf(i nsert data:);scan f(%d, &x);for(i=0;i5;i+)if(xi;j-) aj=aj-1;aj=x;prin tf(Now array a:n);for(i=0;i6;i+)prin tf(%4d,ai);prin tf(n);return 0;【程序23】题目:有15个数按照值的升序存放在一个数组中,输入一个数,要求用折半查找法找出该 数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数” 。已知15个数用赋初值的方法在程序中给出。要找的数用 sca nf函数输入。#i nclude
18、int mai n()int a15=1,3,6,7,9,12,14,15,17,19,20,22,23,34,45;int i=0,j=14,x,k;printf(find data:); scan f(%d, &x);k=(i+j)/2;while(x!=ak|i!=j)if(xak) j=k-1;else i=k+1;k=(i+j)/2;if(i=j) printf( 无此数 n);else prin tf(NO%5dn,k);return 0;【程序24】编写一个程序将两个字符串连接起来,不用 strcat函数。#i nclude int main() char s180,s240;i
19、nt i,j;prin tf(i np ut stri ng1:);sca nf(%s,s1);prin tf(i nput stri ng2:);sca nf(%s,s2);for(i=0;s1i!=0;i+)for(j=0;s2j!=0;i+,j+)s1i=0;prin tf(nThe new stri ng is:%sn,s1);return 0;【程序25】题目:设全班有40名同学,计算全班数学成绩的平均分,并统计低于平均分的人数。#defi ne N 40mai n()int classN;float sum, ave;int nu mber, i;sum=0;nu mber=0;p
20、rin tf( please en ter stude nt score);for ( i=0 ; iN ; i+ )sca nf(%d, & classi);sum += classi;ave= sum/N;for (i=0; iN; i+)if ( classiave)nu mber+;prin tf(the nu mber of lowed ave is %d, nu mber);【程序26】题目:写一个函数,求一个字符串的长度,在 main函数中输入字符串,并输出其长度。int main() int len gth(char p 20);int len;char str20;pnntf
21、(pl ease input a stri ng:n);gets(str);len=le ngth(str);prin tf(the stri ng has %d characters., n);return 0;int len gth(char p 20) int i;for(i=0; pi!=0;i+)return i;【程序27】题目:输入三个整数,按由小到大的顺序输出。? #i nclude ? int main()? void swap (i nt *p 1,i nt *p2);int n 1, n2, n3;int *p 1,* p2,* p3;prin tf(i nput three in teger n1,n2,n 3:);sca nf(%d,%d,%d,&n 1,&n2,&n 3);p1= &n1;p2=&n2;p3=&n3? if(n 1 n2) swap(p 1, p2);if(n
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1