《C语言作业题整理.doc》由会员分享,可在线阅读,更多相关《C语言作业题整理.doc(25页珍藏版)》请在金锄头文库上搜索。
1、1. 第一次1.1. 编写一程序,通过键盘输入一华氏温度,将其转换为摄氏温度后输出。 公式为c=5/9(f 32)#include stdio.hmain()float f=0,h=0;printf(请输入华氏温度:);scanf(%f,&f);printf(转化为摄氏温度为:);h=(float)5/9*(f-32);printf(%.2fn,h);1.2. 通过键盘输入一小写字母,将其转换为大写字母输出,并输出该大写字母的后一位字母和前一位字母(如果输入该大写字母为A,则其前一位字母为Z;如果输入该大写字母为Z,则其后一位字母为A)。#include stdio.hmain()char c
2、h1,ch2,ch3,ch;printf(请输入一个小写字母:n);while(scanf(%c,&ch),ch122)printf(您输入的符号不是小写字母,请重新输入一个小写字母:n);printf(其对应的大写字母和前后的大写字母分别为:n);if(ch=a)ch2=ch-32;ch1=ch2+25;ch3=ch2+1;else if(ch=z)ch2=ch-32;ch1=ch2-1;ch3=ch2-25;else ch2=ch-32;ch1=ch2-1;ch3=ch2+1;printf(%c,%c,%cn,ch1,ch2,ch3);1.3. 通过键盘输入一个两位的整数,试编写程序将其个
3、位与十位分别以字符的方式输出。输出形式为:“the input number is 你输入的整数,the tens is 十位数字,the units is 个位数字。”如果输入的整数不正确,则输出“wrong input”#include stdio.hmain()int a,b1,b2;printf(请输入一个两位正整数:n);scanf(%d,&a);if(a=100)printf(输入不符合要求);elseb1=a%10;b2=a/10;printf(十位数是:%cn个位数是:%cn,b2+0,b1+0);1.4. 给定方程ax2+bx+c=0,试编写程序根据键盘输入实数a、b、c,能
4、输出其根,要求:如果该方程有两个不同的根,则输出形式为the Answer of ax2+bx+c=0 is x1=根1,x2=根2如果该方程有两个相同的根,则输出形式为the Answer of ax2+bx+c=0 is x1=X2=根如果该方程无解,则输出形式为the Answer of ax2+bx+c=0 is none,其中a、b、c均为键盘输入,输出结果保留两位小数。#include stdio.h#include math.hmain()float a,b,c,disc,x1,x2;scanf(%f,%f,%f,&a,&b,&c);disc=b*b-4*a*c;if(disc=
5、0)x1=x2=-b/(2*a);printf(the Answer of ax2+bx+c is x1=x2=%.2fn,x1);else if(disc0)x1=(-b+sqrt(disc)/(2*a);x2=(-b-sqrt(disc)/(2*a);printf(the Answer of ax2+bx+c is x1=%.2f,x2=%.2fn,x1,x2);elseprintf(the Answer of ax2+bx+c=0 is nonen);2. 第二次2.1. 求1/3+3/5+5/7+前20项之和。(本题要求分别以goto,for,do .while,while四种循环语句
6、实现)#include int main()int i;float s=0;for(i=1;i=20;i+)s+=(float)(2*i-1)/(2*i+1);printf(s=%fn,s);return 0;#include int main()int p,r,n,m;printf(n,m:); scanf(%d,%d,&n,&m);if(p=n*m)while(m!=0)r=n%m;n=m;m=r;printf(最大公约数是%dn,n);printf(最小公倍数是%dn,p/n);return 0;#includevoid main()int s,i,j;int a;printf(请输入一
7、个数:n);scanf(%d,&a); for(i=1;i=a;i+)s=0;for(j=1;ji;j+)if(i%j=0)s=s+j;if(i=s)printf(完全数%d=,i);for(j=1;ji;j+)if(i%j=0)printf(%d+,j);printf(b n);2.2. 输入两个正整数,求其最小公倍数。#include int main ()int n;printf(请输入你的学号:n);scanf(%d,&n);if(n%2=0)int i,j,k=3,s=1;for (i=1;i8;i+)for(j=0;jk;j+) printf( );for(j=0;js;j+) p
8、rintf(*);printf(n);if(i4)k-;s=s+2;elsek+;s=s-2;elseint m,a,b;printf(请输入任意一个正整数:n);scanf(%d,&m);for(a=1;a=m;a+)for(b=1;b=m;b+) printf(* ); printf(n);return 0;2.3. 如果一个正整数的所有因子之和等于该正整数,则称这个正整数为完全数。编写程序读入n,输出不超过n的全部完全数。如6=1+2+328=1+2+4+7+14#includevoid main()int s,i,j;int a;printf(请输入一个数:n);scanf(%d,&a
9、); for(i=1;i=a;i+)s=0;for(j=1;ji;j+)if(i%j=0)s=s+j;if(i=s)printf(完全数%d=,i);for(j=1;ji;j+)if(i%j=0)printf(%d+,j);printf(b n);2.4. 将学号对2取模(即取余),值为0的同学完成编写程序利用星号打印出菱形图案;否则完成编写程序利用星号打印出正方形图案。#include int main ()int n;printf(请输入你的学号:n);scanf(%d,&n);if(n%2=0)int i,j,k=3,s=1;for (i=1;i8;i+)for(j=0;jk;j+) p
10、rintf( );for(j=0;js;j+) printf(*);printf(n);if(i4)k-;s=s+2;elsek+;s=s-2;elseint m,a,b;printf(请输入任意一个正整数:n);scanf(%d,&m);for(a=1;a=m;a+)for(b=1;b=m;b+) printf(* ); printf(n);return 0;3. 第三次3.1. 已知 y=2x3 -3x4 +6x5 -4x+50 ,从 x=0 到 x=2 ,每隔 0.2 计算,并输入正整数n,将 y 的值进行排序后由小到大输出前n项和后n项(如输入5,则输出前5项和后5项,即最小的5个y值
11、及最大的5个y值)。#includemain()int i, j, k, h, l, n;float x, t, y11;i=0;for(x=0;x2.1;x=x+0.2)yi=2*x*x*x-3*x*x*x*x+6*x*x*x*x*x-4*x+50; i=i+1;printf(请输入一个1-11以内正整数n);scanf(%d,&n);if(0n&n12)for(l=0;ln-1;l+)for(j=1;jyj)t=yj-1; yj-1=yj; yj=t;printf(最小的%d个y值是nn,n);for(k=0;kn;k+)printf(%fnn,yk);printf(最大的%d个y值是nn,n);for(h=11-n;h11;h+)printf(%fnn,yh);else printf(您输入的数字超出规定范围n);3.2. 输入一个班10个学生的成绩,统计各分数段0,60),60,70),70,80),80,90),90-100的人数。#includemain()int i, a=0, b=0, c=0, d=0, e=0;float g10;printf(请输入10个学生的成绩,输入完成请按回车键n);for(i=0;i10;i+)scanf(%f,&gi);for(i=0;i10;i+) if(0=gi&gi60) a+;else i