《C语言经典例题-复习(共12页).doc》由会员分享,可在线阅读,更多相关《C语言经典例题-复习(共12页).doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上C语言经典例题编写一个程序,输入a、b、c三个值,输出其中最大值。#includeint main(void)int a, b,c;scanf(%d%d%d,&a,&b,&c);int x;if(ab)if(ac) x=a;else x=c;else if(bc) x=b;else x=c;printf(%d,x);return 0;要将China译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母例如,字母A后面第4个字母是EE代替A。请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,C、h、i、n、a,经过运算,输出变换后的密码
2、。#includeint main(void)char c1,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%cn,c1,c2,c3,c4,c5);return 0;设圆半径r,圆柱高h 求圆周长C1、圆面积Sa、圆球表面积Sb、圆球体积Va、圆柱体积Vb。用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后一位数字。请编程序。 PI3.14#includeint main(void)double r,h,C1,Sa,Sb,Va,Vb,PI;PI=3.14;sca
3、nf(%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=%.1fnSa=%.1fnSb=%.1fnVa=%.1fnVb=%.1fn,C1,Sa,Sb,Va,Vb);return 0;输入一个华氏温度,要求输出摄氏温度。公式为 c=5(F-32)/9 输出要求有文字说明,取2位小数。#includeint main(void)double c,F;scanf(%lf,&F);c=5*(F-32)/9; printf(c=%.2fn,c);return 0;有一个函数y= x x1| 2x
4、-1 1=x=10写一段程序,输入x,输出y#includeint main(void)double x,y;/printf( Enterx:n);scanf(%lf,&x);if(x=1&x10)y=2*x-1;elsey=3*x-11;printf(%.0fn,y);return 0;给出一百分制成绩,要求输出成绩等级A、B、C、D、E。 90分以上为A 80-89分为B 70-79分为C 60-69分为D 60分以下为E。必须使用switch语句#includeint main(void)int i,n;scanf(%d,&i);n=i/10;switch(n)case 9:case 1
5、0:printf(An);break;case 8:printf(Bn);break;case 7:printf(Cn);break;case 6:printf(Dn);break;default:printf(En);break;return 0;给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123#includeint main(void)long i,a,b,c,d,e;scanf(%ld,&i);if(i=1&i10)printf(1n%ldn%ldn,i,i);if(10=i&i100)a=i/10;b=i
6、%10;printf(2n%ld %ldn%ld%ldn,a,b,b,a);if(100=i&i1000)a=i/100;b=i%100/10;c=i%10;printf(3n%ld %ld %ldn%ld%ld%ldn,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(4n%ld %ld %ld %ldn%ld%ld%ld%ldn,a,b,c,d,d,c,b,a);if(10000=i&i)a=i/10000;b=i%10000/1000;c=i%10000%1
7、000/100;d=i%10000%1000%100/10;e=i%10000%1000%100%10;printf(5n%ld %ld %ld %ld %ldn%ld%ld%ld%ld%ldn,a,b,c,d,e,e,d,c,b,a);return 0;输入两个正整数m和n,求其最大公约数和最小公倍数。#includeint main(void)int m,n;int m_cup,n_cup,res;/ printf(Enter two integer:n);scanf(%d%d,&m,&n);if(m0&n0)m_cup=m;n_cup=n;res=m_cup%n_cup;while(re
8、s!=0)m_cup=n_cup;n_cup=res;res=m_cup%n_cup;printf(%d %d,n_cup,m*n/n_cup);else printf(Error!n);return 0;输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。#includeint main(void)/输入一行字符,分别统计出英文字符,数字,空格和其他字符的个数。char ch;int char_num=0,int_num=0,space_num=0,other_num=0;while(ch=getchar()!=n)/回车键结束输入,并且回车符不计入if(ch=a&ch=z|c
9、h=A)char_num+;else if(ch=0&ch=9)int_num+;else if(ch= )space_num+;elseother_num+;printf(%d %d %d %dn,char_num,int_num,space_num,other_num);return 0;求Sn=a+aa+aaa+aaaaa(有n个a)之值,其中a是一个数字。例如:2+22+222+2222+22222(n=5),n由键盘输入。#includeint main(void)int i,n,j;double s,t;t=0;/printf(enter n);scanf(%d,&n);for(i
10、=1;i=n;i+)s=0;for(j=1;j=i;j+)s=s*10+2;t=t+s;printf(%.f,t);return 0;求Sn=1!+2!+3!+4!+5!+n!之值,其中n是一个数字。#include int main(void) int a,b,c; int i,j,k; int s1=0,s2=0; float s3=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./k; sum=s1+s2+s3; p
11、rintf(%.2fn,sum); return 0; 打印出所有水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该本身。例如:153是一个水仙花数,因为153=13+53+33。 Output:#includeint main(void)int a,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%dn,a,b,c);return 0;有一分数序列: 2/1 3/2 5/3 8/5 13/8 21/13. 求出这个数列的前
12、N项之和,保留两位小数。#includemain() int m,i,j,a,n; float sum=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(%.2fn,sum); return 0; 一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。它在第N次落地时反弹多高?共经过多少米?保留两位小数#includeint main(void)int N,i;double M,s,a;scanf(%lf%d,&M,&N);s=M;a=M/2;if(N!=1)for(
13、i=2;i=N;i+)s=s+2*a;a=a/2;else s=M,a=M/2;printf(%.2f %.2f,a,s);return 0;猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第N天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。#includeint main(void)int i,n,s;s=1;/printf(n);scanf(%d,&n);for(i=1;in;i+)s=(s+1)*2;printf(%d,s);return 0;用筛法求N(=2
14、00)之内的素数。 需要定义数组#include#includeint main(void) int N,i,j,a200;scanf(%d,&N);for (i=2;i=N;i+)ai=1; for (i=2;isqrt(N);i+) if(ai) for(j=i+i;j=N;j+=i) aj=0; for(i=2;i=N;i+) if(ai) printf(%dn,i); printf(n); return 0;用选择法对10个整数从小到大排序。 需要定义数组#includeint main(void)int i,index,k,temp;int a10;for(i=0;i10;i+)sc
15、anf(%d,&ai);for(k=0;k10-1;k+)index=k;for(i=k+1;i10;i+)if(aiaindex) index=i;temp=aindex;aindex=ak;ak=temp;for(i=0;i10;i+)printf(%dn,ai);printf(n);return 0;求一个33矩阵对角线元素之和。 需要定义数组#include int main(void)int a33;int i,j,m,n;for(i=0;i3;i+) for(j=0;j3;j+) scanf(%d,&aij);m=a00+a11+a22;n=a02+a11+a20;printf(%
16、d %d,m,n);return 0;输入10个数字,然后逆序输出。需要定义数组#includeint main(void)int a10;int i=0;for(i;i=1;i-)printf(%d ,ai);printf(%d,a0);return 0;*所给字符串正序和反序连接,形成新串并输出#include #include #include int main() char a40,*p; int i,len,num=0; p=(char *)malloc(50); scanf(%s,p); len=strlen(p); for(i=0;i=0;i-) anum+=pi; anum=0
17、; printf(%sn,a); return 0; *角谷猜想: 日本一位中学生发现一个奇妙的“定理”,请角谷教授证明,而教授无能为力,于是产生角谷猜想。猜想的内容是:任给一个自然数,若为偶数除以2,若为奇数则乘3加1,得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1。请编程验证。 10/2=55*3+1=1616/2=88/2=44/2=22/2=1#includeint main(void)int n;scanf(%d,&n);while(n!=1)if(n%2=0)n=n/2;printf(%d/2=%dn,2*n,n);elsen=n*3+1;printf(%d
18、*3+1=%dn,(n-1)/3,n);return 0;输入一个正整数,输出它的所有质数的因子(如180的质数因子为2、2、3、3、5)#include #include int main() int num,i; scanf(%d,&num); if(num0) for(i=2; i=num; i+) while(num%i=0) num/=i; printf(%d ,i); return 0;编程,输入一个进制正整数,然后输出它所对应的八进制数。#include#includeint main() int a100,i,j,k,b; scanf(%d,&b); for(i=0;i=0;k
19、-) printf(%d,ak); 输入n个整数,将其中的奇数和偶数分别显示出来(1 n 30)#includeint main(void)int n,a30,b30,i,j=1,t=1,c30;scanf(%d,&n);for(i=1;i=n;i+)scanf(%d,&ci);for(i=1;i=n;i+)if(ci%2=0)aj=ci;j+;elsebt=ci;t+;for(i=1;it;i+)printf(%d,bi);if(it-1)printf( );printf(n);for(i=1;ij;i+)printf(%d,ai);if(ij-1)printf( );return 0;一个数如果恰好等于它的因子之和,这个数就称为完数。 例如,6的因子为1、2、3,而6=1+2+3,因此6是完数。 编程序找出N之内的所有完数,并按下面格式输出其因子:#includeint main(void)int n,i,j,count;scanf(%d,&n);for(i=2;i=n;i+)count=i;for(j=1;j=i/2;j+)if(i%j=0)count-=j;if(count=0)printf(%d its factors are ,i);for(j=1;j=i/2;j+)if(i%j=0)printf(%d ,j);printf(n);return 0;专心-专注-专业