写在前面:同学们,编程真的很有趣,当你绞尽脑汁编出了一道难题时。
在经过编译,连接,点击运行后,屏幕上终于显示了正确的答案与格式,从心中油然而生的一种成就感十分的美妙。
下面的那些程序都是我自己编程、调试后没有任何错误,并能得到正确的结果才发布的,若有任何疑问可以联系本人。
因本人能力有限,有所纰漏在所难免,望大家批评指正!课后习题P67 3.7 要将“China”译成密码,密码规律是:用原来的字母后面第四个字母代替原来的字母。
例如,字母“A”后面第四个字母是“E”,用“E”代替“A”。
因此,“China”应译为“Glmre”。
请编一程序,用初赋值的方法使c1、c2、c3、c4、c5这五个变量的值分别为‘C’、‘h’、‘i’、‘n’、‘a’,经过运算,使c1、c2、c3、c4、c5分别变为‘G’、‘l’、‘m’、‘r’、‘e’,并输出。
#include <stdio.h>void main(){char c1,c2,c3,c4,c5;c1='C',c2='h',c3='i',c4='n',c5='a';printf("%c,%c,%c,%c,%c\n",c1+4,c2+4,c3+4,c4+4,c5+4);}P89 4.8 设圆半径r=1.5,圆柱高h=3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积。
用scanf输入数据,输出计算结果,输出时按要求有文字说明,取小数点后两位数字。
#include <stdio.h>void main(){float r,d,s,sq,v,vd,h;printf("请输入半径r与圆柱高h\n");scanf("%f,%f",&r,&h);d=2*r*3.14;s=3.14*r*r;sq=4*3.14*r*r;v=(4*3.14*r*r*r)/3;vd=2*3.14*r*h;printf("周长为%5.2f\n圆面积为%5.2f\n球表面积为%5.2f\n球体积为%5.2f\n圆柱体积为%5.2f\n",d,s,sq,v,vd);}P89 4.9 输入一个华氏温度,要求输出摄氏温度。
公式为:c=(5*(f-32))/9。
输出时要有文字说明,取2位小数。
#include <stdio.h>void main(){float c,f;printf("请输入华氏温度f\n");scanf("%f",&f);c=(5*(f-32))/9;printf("当华氏温度为%5.2f时,摄氏温度为%5.2f\n",f,c);} P111 5.4 有三个整数a,b,c,由键盘输入,输出其中最大的数。
#include <stdio.h>void main(){int a,b,c,temp;printf("请输入三个整数a,b,c\n");scanf("%d,%d,%d",&a,&b,&c);if(a>b){temp=a;if(a>c);else if(c>a)temp=c;}else if(b>a){temp=b;if(b>c);else if(c>b)temp=c;}printf("%d\n",temp);}P111 5.5 有一个函数 {x x<1y={2x-1 1<=x<10{3x-11 x>=10写一段程序,输入x值,输出y值。
#include <stdio.h>void main(){float x,y;printf("请输入x的值\n");scanf("%f",&x);if(x<1)y=x;else if(x>=1&&x<10)y=2*x-1;else if(x>=10)y=3*x-11;printf("%f\n",y);}P111 5.6 给出一个百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’‘E’。
90分以上为‘A’,80-89分为‘B’,70-79分为‘C’,60-69分为‘D’,60分一下为‘E’。
#include <stdio.h>void main(){float score;printf("请输入分数score\n");scanf("%f",&score);if(score>=90)printf("A\n");else if(score>=80&&score<90)printf("B\n");else if(score>=70&&score<80)printf("C\n");else if(score>=60&&score<70)printf("D\n");else if(score<60)printf("E\n");}P112 5.7 给一个不多于5位的正整数,要求:①求出它是几位数;②分别求出每一位数字③按逆序输出每一位数字#include <stdio.h>void main(){int x;printf("请输入一个不超过五位的正整数\n");scanf("%d",&x);if(x/10000>=1&&x/10000<10){printf("位数为5\n");printf("%d,%d,%d,%d,%d\n",x/10000,x%10000/1000,x%1000/100,x%100 /10,x%10);printf("%d,%d,%d,%d,%d\n",x%10,x%100/10,x%1000/100,x%10000/1000,x/10000);}else if(x/1000>=1&&x/1000<10){printf("位数为4\n");printf("%d,%d,%d,%d\n",x/1000,x%1000/100,x%100/10,x%10);printf("%d,%d,%d,%d\n",x%10,x%100/10,x%1000/100,x/1000);}else if(x/100>=1&&x/100<10){printf("位数为3\n");printf("%d,%d,%d\n",x/100,x%100/10,x%10);printf("%d,%d,%d\n",x%10,x%100/10,x/100);}else if(x/10>=1&&x/10<10){printf("位数为2\n");printf("%d,%d\n",x/10,x%10);printf("%d,%d\n",x%10,x/10);}else if(x/1>=0&&x/1<10){printf("位数为1\n");printf("%d\n",x);printf("%d\n",x);}}P112 5.8企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?#include <stdio.h>void main(){float i,bouns;printf("请输入利润i\n");scanf("%f",&i);if(i<=100000)bouns=i*0.1;else if(i>100000&&i<=200000)bouns=100000*0.1+(i-100000)*0.075;else if(i>200000&&i<=400000)bouns=200000*0.1+(i-200000)*0.05;else if(i>400000&&i<=600000)bouns=400000*0.1+(i-400000)*0.03;else if(i>600000&&i<=1000000)bouns=600000*0.1+(i-600000)*0.015;else if(i>1000000)bouns=1000000*0.1+(i-1000000)*0.01;printf("应发奖金总数为%10.2f\n",bouns);}P112 5.9 输入4个整数,要求按由小到大的顺序输出#include <stdio.h>void main(){int a,b,c,d,t;printf("请输入四个数字a,b,c,d\n");scanf("%d,%d,%d,%d",&a,&b,&c,&d);if(b<a){t=a;a=b;b=t;}if(c<a){t=a;a=c;c=t;}if(d<a){t=a;a=d;d=t;}if(c<b){t=b;b=c;c=t;}if(d<b){t=b;b=d;d=t;}if(d<c){t=c;c=d;d=t;}printf("%d,%d,%d,%d\n",a,b,c,d);}P129 6.1 输入两个正整数m和n,求其最大公约数和最小公倍数。