您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C语言经典例题-复习
C语言经典例题编写一个程序,输入a、b、c三个值,输出其中最大值。#includestdio.hintmain(void){inta,b,c;scanf(%d%d%d,&a,&b,&c);intx;if(ab){if(ac)x=a;elsex=c;}else{if(bc)x=b;elsex=c;}printf(%d,x);return0;}要将China译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母.例如,字母A后面第4个字母是E.E代替A。请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,'C’、'h’、'i’、'n’、'a’,经过运算,输出变换后的密码。#includestdio.hintmain(void){charc1,c2,c3,c4,c5;c1='C';c2='h';c3='i';c4='n';c5='a';c1+=4;c2+=4;c3+=4;c4+=4;c5+=4;printf(%c%c%c%c%c\n,c1,c2,c3,c4,c5);return0;}设圆半径r,圆柱高h求圆周长C1、圆面积Sa、圆球表面积Sb、圆球体积Va、圆柱体积Vb。用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后一位数字。请编程序。PI=3.14#includestdio.hintmain(void){doubler,h,C1,Sa,Sb,Va,Vb,PI;PI=3.14;scanf(%lf%lf,&r,&h);C1=2*PI*r;Sa=PI*r*r;Sb=4*PI*r*r;Va=4*PI*r*r*r/3;Vb=Sa*h;printf(C1=%.1f\nSa=%.1f\nSb=%.1f\nVa=%.1f\nVb=%.1f\n,C1,Sa,Sb,Va,Vb);return0;}输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9输出要求有文字说明,取2位小数。#includestdio.hintmain(void){doublec,F;scanf(%lf,&F);c=5*(F-32)/9;printf(c=%.2f\n,c);return0;}有一个函数y={xx1|2x-11=x10\3x-11x=10写一段程序,输入x,输出y#includestdio.hintmain(void){doublex,y;//printf(Enterx:\n);scanf(%lf,&x);if(x1){y=x;}else{if(x=1&&x10){y=2*x-1;}else{y=3*x-11;}}printf(%.0f\n,y);return0;}给出一百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。90分以上为A80-89分为B70-79分为C60-69分为D60分以下为E。必须使用switch语句#includestdio.hintmain(void){inti,n;scanf(%d,&i);n=i/10;switch(n){case9:case10:printf(A\n);break;case8:printf(B\n);break;case7:printf(C\n);break;case6:printf(D\n);break;default:printf(E\n);break;}return0;}给出一个不多于5位的整数,要求1、求出它是几位数2、分别输出每一位数字3、按逆序输出各位数字,例如原数为321,应输出123#includestdio.hintmain(void){longi,a,b,c,d,e;scanf(%ld,&i);if(i=1&&i10)printf(1\n%ld\n%ld\n,i,i);if(10=i&&i100){a=i/10;b=i%10;printf(2\n%ld%ld\n%ld%ld\n,a,b,b,a);}if(100=i&&i1000){a=i/100;b=i%100/10;c=i%10;printf(3\n%ld%ld%ld\n%ld%ld%ld\n,a,b,c,c,b,a);}if(1000=i&&i10000){a=i/1000;b=i%1000/100;c=i%1000%100/10;d=i%1000%100%10;printf(4\n%ld%ld%ld%ld\n%ld%ld%ld%ld\n,a,b,c,d,d,c,b,a);}if(10000=i&&i100000){a=i/10000;b=i%10000/1000;c=i%10000%1000/100;d=i%10000%1000%100/10;e=i%100000%10000%1000%100%10;printf(5\n%ld%ld%ld%ld%ld\n%ld%ld%ld%ld%ld\n,a,b,c,d,e,e,d,c,b,a);}return0;}输入两个正整数m和n,求其最大公约数和最小公倍数。#includestdio.hintmain(void){intm,n;intm_cup,n_cup,res;//printf(Entertwointeger:\n);scanf(%d%d,&m,&n);if(m0&&n0){m_cup=m;n_cup=n;res=m_cup%n_cup;while(res!=0){m_cup=n_cup;n_cup=res;res=m_cup%n_cup;}printf(%d%d,n_cup,m*n/n_cup);}elseprintf(Error!\n);return0;}输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。#includestdio.hintmain(void){//输入一行字符,分别统计出英文字符,数字,空格和其他字符的个数。charch;intchar_num=0,int_num=0,space_num=0,other_num=0;while((ch=getchar())!='\n')//回车键结束输入,并且回车符不计入{if(ch='a'&&ch='z'||ch='Z'&&ch='A'){char_num++;}elseif(ch='0'&&ch='9'){int_num++;}elseif(ch==''){space_num++;}else{other_num++;}}printf(%d%d%d%d\n,char_num,int_num,space_num,other_num);return0;}求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字。例如:2+22+222+2222+22222(n=5),n由键盘输入。#includestdio.hintmain(void){inti,n,j;doubles,t;t=0;//printf(entern);scanf(%d,&n);for(i=1;i=n;i++){s=0;for(j=1;j=i;j++){s=s*10+2;}t=t+s;}printf(%.f,t);return0;}求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字。#includestdio.hintmain(void){inta,b,c;inti,j,k;ints1=0,s2=0;floats3=0,sum=0;scanf(%d%d%d,&a,&b,&c);for(i=1;i=a;i++){s1=s1+i;}for(j=1;j=b;j++){s2=s2+j*j;}for(k=1;k=c;k++){s3=s3+1.000000/k;}sum=s1+s2+s3;printf(%.2f\n,sum);return0;}打印出所有水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该本身。例如:153是一个水仙花数,因为153=1^3+5^3+3^3。Output:#includestdio.hintmain(void){inta,b,c,i;for(i=100;i=999;i++){a=i/100;b=i%100/10;c=i%100%10;//*求出水仙花数每位的数值*//if((a*a*a+b*b*b+c*c*c)==i)printf(%d%d%d\n,a,b,c);}return0;}有一分数序列:2/13/25/38/513/821/13......求出这个数列的前N项之和,保留两位小数。#includestdio.hmain(){intm,i,j,a,n;floatsum=0;scanf(%d,&n);i=2;j=1;for(m=1;m=n;m++){sum+=(float)(i)/j;a=i;i=i+j;j=a;}printf(%.2f\n,sum);return0;}一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。它在第N次落地时反弹多高?共经过多少米?保留两位小数#includestdio.hintmain(void){intN,i;doubleM,s,a;scanf(%lf%d,&M,&N);s=M;a=M/2;if(N!=1){for(i=2;i=N;i++){s=s+2*a;a=a/2;}}elses=M,a=M/2;printf(%.2f%.2f,a,s);return0;}猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第N天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。#includestdio.hintmain(void){inti,n,s;s=1;//printf(n);scanf(%d,&n);for(i=1;in;i++){s=(s+1)*2;}printf(%d,s);return0;}用筛法求N(=200)之内的素数。需要定义数组#includestdio.h#includemath.hintmain(void){intN,i,j,a[200];scanf(%d,&N);for(i=2;i=N;i++)a[i]=1;for(i=2;isqrt(N);i++)if(a[i])for(j=i+i;j=N;j+=i)a[j]=0;for(i=2;i=N;i++)if(a[i])printf(%d\n,i);printf(\n);return0;}用选择法对10个整数从小到大排序。需要定义数组#includestdio.hintmain(void){inti,index,k,temp;inta[10];for(i=0;i10;i++)scanf(%d,&a[i]);for(k=0;k10-1;k++){index=k;for(i=k+1;i10;i++)if(a[i]a[index])index=i;temp=a[index];a[index]=a[k];a[k]=temp;}for(i=0;i10;i++)printf(%d\n,a[i]);printf(\n);return0;}求一个3×3矩阵对角线元素之和。需要定义数组#includestdio.hintmain(void){inta[3][3];inti,j,m,n;for(i=0;i3;i++)for(j=0;j3;j++)scanf(%d,&a[i][j]);m=a[0][0]+a[1][1]+a[2][2];n=a[0][2]+a[1][1]+a[2][0];printf(%d%d,m,n);return0;}输入10个数字,然后逆序输出。需要定义数组#includestdio.hintmain(void){inta[10];inti=0;for(i;i10;i++)scanf(%d,&a[i]);f
本文标题:C语言经典例题-复习
链接地址:https://www.777doc.com/doc-6356301 .html