您好,欢迎访问三七文档
1.第一次1.1.编写一程序,通过键盘输入一华氏温度,将其转换为摄氏温度后输出。公式为c=5/9(f-32)#includestdio.hmain(){floatf=0,h=0;printf(请输入华氏温度:);scanf(%f,&f);printf(转化为摄氏温度为:);h=(float)5/9*(f-32);printf(%.2f\n,h);}1.2.通过键盘输入一小写字母,将其转换为大写字母输出,并输出该大写字母的后一位字母和前一位字母(如果输入该大写字母为A,则其前一位字母为Z;如果输入该大写字母为Z,则其后一位字母为A)。#includestdio.hmain(){charch1,ch2,ch3,ch;printf(请输入一个小写字母:\n);while(scanf(%c,&ch),ch97||ch122){printf(您输入的符号不是小写字母,请重新输入一个小写字母:\n);}printf(其对应的大写字母和前后的大写字母分别为:\n);if(ch=='a'){ch2=ch-32;ch1=ch2+25;ch3=ch2+1;}elseif(ch=='z'){ch2=ch-32;ch1=ch2-1;ch3=ch2-25;}else{ch2=ch-32;ch1=ch2-1;ch3=ch2+1;}printf(%c,%c,%c\n,ch1,ch2,ch3);}1.3.通过键盘输入一个两位的整数,试编写程序将其个位与十位分别以字符的方式输出。输出形式为:“theinputnumberis你输入的整数,thetensis十位数字,theunitsis个位数字。”如果输入的整数不正确,则输出“wronginput”#includestdio.hmain(){inta,b1,b2;printf(请输入一个两位正整数:\n);scanf(%d,&a);if(a10||a=100){printf(输入不符合要求);}else{b1=a%10;b2=a/10;printf(十位数是:%c\n个位数是:%c\n,b2+'0',b1+'0');}}1.4.给定方程ax^2+bx+c=0,试编写程序根据键盘输入实数a、b、c,能输出其根,要求:如果该方程有两个不同的根,则输出形式为theAnswerofax^2+bx+c=0isx1=根1,x2=根2如果该方程有两个相同的根,则输出形式为theAnswerofax^2+bx+c=0isx1=X2=根如果该方程无解,则输出形式为theAnswerofax^2+bx+c=0isnone,其中a、b、c均为键盘输入,输出结果保留两位小数。#includestdio.h#includemath.hmain(){floata,b,c,disc,x1,x2;scanf(%f,%f,%f,&a,&b,&c);disc=b*b-4*a*c;if(disc==0){x1=x2=-b/(2*a);printf(theAnswerofax^2+bx+cisx1=x2=%.2f\n,x1);}elseif(disc0){x1=(-b+sqrt(disc))/(2*a);x2=(-b-sqrt(disc))/(2*a);printf(theAnswerofax^2+bx+cisx1=%.2f,x2=%.2f\n,x1,x2);}else{printf(theAnswerofax^2+bx+c=0isnone\n);}}2.第二次2.1.求1/3+3/5+5/7+…前20项之和。(本题要求分别以goto,for,do...while,while四种循环语句实现)#includestdio.hintmain(){inti;floats=0;for(i=1;i=20;i++){s+=(float)(2*i-1)/(2*i+1);}printf(s=%f\n,s);return0;}#includestdio.hintmain(){intp,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(最大公约数是%d\n,n);printf(最小公倍数是%d\n,p/n);return0;}#includestdio.hvoidmain(){ints,i,j;inta;printf(请输入一个数:\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.输入两个正整数,求其最小公倍数。#includestdio.hintmain(){intn;printf(请输入你的学号:\n);scanf(%d,&n);if(n%2==0){inti,j,k=3,s=1;for(i=1;i8;i++){for(j=0;jk;j++)printf();for(j=0;js;j++)printf(*);printf(\n);if(i4){k--;s=s+2;}else{k++;s=s-2;}}}else{intm,a,b;printf(请输入任意一个正整数:\n);scanf(%d,&m);for(a=1;a=m;a++){for(b=1;b=m;b++)printf(*);printf(\n);}}return0;}2.3.如果一个正整数的所有因子之和等于该正整数,则称这个正整数为完全数。编写程序读入n,输出不超过n的全部完全数。如6=1+2+328=1+2+4+7+14#includestdio.hvoidmain(){ints,i,j;inta;printf(请输入一个数:\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.4.将学号对2取模(即取余),值为0的同学完成编写程序利用星号打印出菱形图案;否则完成编写程序利用星号打印出正方形图案。#includestdio.hintmain(){intn;printf(请输入你的学号:\n);scanf(%d,&n);if(n%2==0){inti,j,k=3,s=1;for(i=1;i8;i++){for(j=0;jk;j++)printf();for(j=0;js;j++)printf(*);printf(\n);if(i4){k--;s=s+2;}else{k++;s=s-2;}}}else{intm,a,b;printf(请输入任意一个正整数:\n);scanf(%d,&m);for(a=1;a=m;a++){for(b=1;b=m;b++)printf(*);printf(\n);}}return0;}3.第三次3.1.已知y=2x^3-3x^4+6x^5-4x+50,从x=0到x=2,每隔0.2计算,并输入正整数n,将y的值进行排序后由小到大输出前n项和后n项(如输入5,则输出前5项和后5项,即最小的5个y值及最大的5个y值)。#includestdio.hmain(){inti,j,k,h,l,n;floatx,t,y[11];i=0;for(x=0;x2.1;x=x+0.2){y[i]=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;jn-l;j++){if(y[j-1]y[j]){t=y[j-1];y[j-1]=y[j];y[j]=t;}}}printf(最小的%d个y值是\n\n,n);for(k=0;kn;k++)printf(%f\n\n,y[k]);printf(最大的%d个y值是\n\n,n);for(h=11-n;h11;h++)printf(%f\n\n,y[h]);}elseprintf(您输入的数字超出规定范围\n);}3.2.输入一个班10个学生的成绩,统计各分数段[0,60),[60,70),[70,80),[80,90),[90-100]的人数。#includestdio.hmain(){inti,a=0,b=0,c=0,d=0,e=0;floatg[10];printf(请输入10个学生的成绩,输入完成请按回车键\n);for(i=0;i10;i++)scanf(%f,&g[i]);for(i=0;i10;i++){if(0=g[i]&&g[i]60)a++;elseif(60=g[i]&&g[i]70)b++;elseif(70=g[i]&&g[i]80)c++;elseif(80=g[i]&&g[i]90)d++;elseif(90=g[i]&&g[i]=100)e++;elseprintf(输入的成绩有问题\n);}printf(0-60分人数为%d\n,a);printf(60-70分人数为%d\n,b);printf(70-80分人数为%d\n,c);printf(80-90分人数为%d\n,d);printf(90-100分人数为%d\n,e);}3.3.求任意输入的5个数中的最大值、最小值和平均值,并求出有多少个数超过平均值。#includestdio.hmain(){inti,j,k,l,num=0;floatave,t,g[5];printf(请输入5个数,输入完成请按回车键\n);for(i=0;i5;i++)scanf(%f,&g[i]);for(j=0;j5;j++){for(k=1;k5;k++){if(g[k-1]g[k]){t=g[k-1];g[k-1]=g[k];g[k]=t;}}}ave=(g[0]+g[1]+g[2]+g[3]+g[4])/5.0;for(l=0;l5;l++){if(g[l]ave)num++;}printf(5个数中最大值是%f\n,g[4]);printf(5个数中最小值是%f\n,g[0]);printf(5个数的平均值是%f\n,ave);printf(有%d个数超过平均值\n,num);}4.第四次4.1.一个学习小组有5个人,每个人有三门课的考试成绩。求小组分科的平均成绩和各同学平均成绩;同时将各位同学的平均成绩按照从高到低的顺序排名后输出其姓名、平均成绩以及排序号。张王李赵周ath8061598576C7565638777Eng9271709085#includestdio.h#includestring.h#includemath.hmain(){charnames[5][5]={{张},{王},{李},{赵},{周}};charitems[3][5];charname[5];intgrade[5][3]={{80,75,92},{61,65,71},{59,63,70},{85,87,90},{76,77,85}};floatavg1[3],avg2[5],temp;inti,j;intsum;strcpy(names[0],张);strcpy(names[1],王);strcpy(names[2],李);strcpy(names[3],赵);strcpy(names[4],周);/*for(i=0;i5;i++)gets(names[i]);*/strcpy(items[0],Math);strcpy(items[1],C);str
本文标题:C语言作业题整理
链接地址:https://www.777doc.com/doc-5205259 .html