1、最新C语言编程个人真情奉献答案1.4 小明上小学一年级了,老师已经教会了他们进行整数的 +、-、*、/、% 计算,下面老师开始出题,给出一个简单的算术表达式,请小明给出计算结果。输入:接受两个整数,每个整数之间使用空格分隔。例如输入格式为:123 444输出:分别输出进行+、-、*、/、*之后的运行结果。#include #include int main() int a, b,c,d,e,f,g; scanf(%d %d,&a,&b); g=a+b; c=a-b; d=a*b; e=a/b; f=a%b; printf(%dn,g); printf(%dn,c); printf(%dn,d)
2、; printf(%dn,e);printf(%dn,f); return 0;3.2钟面上的时针和分针之间的夹角总是在 0 度 359 度之间。举例来说,在十二点的时候两针之间的夹角为 0 度,而在六点的时候夹角为 180 度,在三点的时候为 90 度。本题要解决的是计算 0:00 到 12:00之间任意一个时间的夹角。输入:每组测试数据包含两个数字:第一个数字代表小时 ( 大于等于 0 小于等于 12) ,第二个数字代表分 ( 在区间 0, 59 上 ) 。输出:对应每组测试数据,用常用格式显示时间以及这个时候时针和分针间的最小夹角,精确到小数点后一位。友情提示:以表中心到12点的连线为基
3、准,分针每走1分钟是6度,时针与基准的夹角每个小时也是30度,从整点开始,每过1分钟时针再增加0.5度。 提示:时钟夹角计算公式|5.5m-30h|,h为时针,m为分针。求浮点型绝对值的函数为fabs,需要包含math.h头文件#include #include #include int main() int m,h; double a; scanf(%d%d,&h,&m); printf(At %d:%02d,h,m); a=fabs(5.5*m-30*h); if (a180) a=360-a; printf(the angle is %.1f degrees.n,a); return 0
4、;3.3如果已知圆柱的底面半径 r ,以及高 h ,则可计算出圆柱的侧面积 s=2rh ,体积 v= r 2 h 。其中 =3.1415926 输入 第一行输入圆柱的底面半径 r第二行输入圆柱的高 h 输出 s=,v= 要求 1. 所有变量都定义为双精度类型2. 结果精确到小数点后两位#include #include #include #define PI 3.1415926int main() double h,r,s,v; scanf(%lf%lf,&h,&r); s=2*PI*r*h; v=PI*r*r*h; printf(%6.2lf,v=%6.2lfn,s,v); return 0
5、;3.4 任意从键盘上输入一个三位正整数,要求正确地分离出它的个位、十位和百位,并分别在屏幕上输出。 比如输入的三位正整数#include #include #include #define PI 3.1415926int main() int a,b,c,d; scanf(%d,&a); b=a/100; c=a%100/10; d=a%100%10; printf(b=%d,c=%d,d=%d,b,c,d); return 0;3.5已知笼中有头h个,有脚f条,问笼中鸡兔各有多少只? 输入:头和脚的数目输出:兔子和鸡的数目(输出语句为:printf(rabbit=%d,chicken=%d
6、,rabbit,chicken);)Sample输入:10 20输出: rabbit=0,chicken=10#include #include #include #define PI 3.1415926int main()int h,f,a,b;scanf(%d%d,&h,&f);b=f/2-h;a=h-b;printf(%d,%d,a,b); return 0;4.1经常出国旅行的驴友都知道,需要时时了解当地的气温状况,但不少国家采用了不同的温度计量单位:有些使用华氏温度标准(F),有些使用摄氏温度(C)。现在,请你根据温度转换公式设计一个温度转换程序,可以进行温度转换。如果输入摄氏温度,
7、显示转换的华氏温度;如果输入华氏温度,显示转换的摄氏温度。温度转换的公式为:F(C95)32 ;C(F32)59 ;式中F-华氏温度,C-摄氏温度。输入: 第一个数据(1 或 2 )确定转换的类型:华氏转摄氏(1);摄氏转华氏(2);第二个数据是相应需要转换的温度值。 输出: 相应的转换后的温度值(保留小数点后 2 位)。(1法)#include #include #include #define PI 3.1415926int main() int c; double C,F,a; scanf(%d%lf,&c,&a); if(c=1) C=(a-32)*5/9; printf(%5.2f,
8、C); else if (c=2) F=(a*9/5)+32; printf(%5.2f,F); return 0;1. (2)法#include 2. intmain() 3. 4. inta; 5. doublef,c; 6. scanf(%d,&a); 7. if(a=1) 8. 9. scanf(%lf,&f); 10. c=(f-32)*5/9; 11. printf(TheCentigradeis%.2fn,c); 12. 13. 14. else 15. scanf(%lf,&c); 16. f=(c*9/5)+32; 17. printf(TheFahrenheitis%.2f
9、n,f); 18. return0; 19. 有一分段函数,y=f(x)。当x小于6时,y=x-12;当x大于等于6且小于15时,y=3x-1;当x大于等于15时,y=5x+9.从键盘上输入一个整数x,输出对应的y值。(1)法#include #include #include #define PI 3.1415926int main() int x,y; scanf(%d,&x); if(x=6&x15) y=3*x-1; else y=5*x+9; printf(%d,y); return 0;(2)法#include #include #include #define PI 3.1415
10、926int main() int x,y; scanf(%d,&x); if(x=6&x=15 ) y=5*x+9; printf(%d,y); return 0;4.4输入一个四位数,判断千位、百位、十位和个位数字之和是否为偶数,如果是,输出Yes,如果不是,输出No;如果不是四位数,输出Invalid data。#include #include int main() int a,b,c,d,e,f; scanf(%d,&a); if(a9999) printf(involide); else b=a/1000; c=a%1000/100; d=a%1000%100/10; e=a%10
11、00%100%10; f=b+c+d+e; if(f%2=0) printf(yes); if(f%2!=0) printf(no); return 0;4.5输入三角型的三条边,判断三角形的形状。假设输入的三边边长均0。输入:三角型的3条边的长度(int型)。输出:等边三角形:equilateral triangle.等腰三角形:isoceles triangle.不构成三角形:non-triangle.一般三角形:triangle.1. #include 2. #include 3. 4. intmain() 5. 6. floata,b,c; 7. scanf(%f%f%f,&a,&b,
12、&c); 8. if(a+bc|b+ca|c+ab) 9. printf(non-triangle.n); 10. elseif(a=b&b=c) 11. printf(equilateraltriangle.n); 12. elseif(a=b|b=c|a=c) 13. printf(isocelestriangle.n); 14. else15. printf(triangle.n); 16. return0; 17. 46一年有365天,有的月份有31天,有的有30天,2月份闰年的时候是29天,非闰年的时候是28天。现在要求从键盘上输入一个年份和月份,输出其对应的天数。 #include
13、 #include int main() int a,b,c,d,e,f; scanf(%d%d,&a,&b); if(b=1|b=3|b=5|b=7|b=8|b=10|b=12) printf(31); if(b=4|b=6|b=9|b=11) printf(30); if(b=2&a%4=0&a%100!=0|a%400=0) printf(29); if(b=2&a%4!=0|a%100=0) printf(28); return 0;4.7你去邮局给朋友寄礼物。发现邮局对邮寄包裹的费用是这样规定的:如果包裹长宽高任意一个尺寸超过米,或重量超过千克,不予邮寄;对可以邮寄的包裹每件收手续费
14、 0.2 元,不同重量的邮资按下表计算: 重量(千克) 收费标准(元) 小于 . 大于等于但不超过 . 大于等于但不超过 . 编写程序,输入包裹的长、宽、高尺寸和重量,输出所需的邮资(输出结果中包含两位小数即可),超出尺寸或重量的输出 Error” .#include #include int main()int d; float a,b,c,e,f; scanf(%f%f%f%d,&a,&b,&c,&d); if(a1|b1|c1|d30) printf(error); else if(d10) printf(%.2f,e,e=0.8*d+0.2); else if(d=10) printf
15、(%.2f,e,e=0.75*d+0.2); else printf(%.2f,e,e=0.7*d+0.2); return 0;4.9输入用数字(1-7)表示的星期几,输出星期几的英文表示,输入的数字有误,输出单词Error(回车)。 提醒:周一到周日必须都判断,单词拼法Sunday Saturday Friday Thursday Wednesday Tuesday Monday,另外还要对不合法的数据进行判断。1. #include 2. intmain() 3. 4. inta; 5. scanf(%d,&a); 6. switch(a) 7. 8. case1:printf(Mond
16、ayn);break; 9. case2:printf(Tuesdayn);break; 10. case3:printf(Wednesdayn);break; 11. case4:printf(Thursdayn);break; 12. case5:printf(Fridayn);break; 13. case6:printf(Saturdayn);break; 14. case7:printf(Sundayn);break; 15. default:printf(Errorn); 16. 17. return0; 18. 4.10我们将字符分为五类:大写字母、小写字母、数字、控制字符、其他
17、字符。编写程序,从键盘输入一个字符,输出字符所属的类型:大写字母时输出capital letters, 小写字母时输出small letters,数字是输出figures,其他字符时输出 others。#include int main() char c; c = getchar ( ); if (c = 0 & c = A & c = a & c = z) printf (small lettersn); else printf (othersn); return 0;5.3编写程序,输入n的值,求 :1-1/2+1/3-1/4+1/5-1/6+1/7-.+1/n (保留四位小数) #inc
18、lude #include #include int main() int b,c,n; float sum=0.0; scanf(%d,&n); for(b=1;b=n;b+) if (b%2=0) c=-1 ;else c=1; sum=sum+c*1.0/b; printf(%.4f,sum); return 0;5.4有一个分数序列:.,输入整数n,求出其前n项的和。 输出语句格式为:printf(sum=%16.10fn,s);#include int main()int n,i; float a=2.0,sum;int b=1,c;scanf(%d,&n);for (i=1;i=n
19、;i+)/控制第几项; sum+=a/b; c=b; b=a; a=c+b;printf(%16.10f,sum); return 0;5.5编写程序,从键盘输入整数 n , 求 e 的值 . e=1+1/1!+1/2!+1/3!+.+1/n! 注意:用 double 型数据计算输出语句:printf(e=%16.10fn,e); #include int main()int n; double a, b=1,c,d ,e=1.0; scanf(%d,&n); for(a=1;a=n;a+) e=e+1.0/(b*a); b=b*a; printf(%16.10fn,e); return 0;
20、5.6输入两个正整数m和n,求它们的最大公约数和最小公倍数比如,输入m和n的值分别为14和21,则最大公约数为7,最小公倍数为42。#include #include int main() long int m,i,j,k,n; scanf(%d%d,&m,&n); if(m=n) for(i=m;i=m;i-) if(m%i=0&n%i=0) break; printf(%ldn,i ); j=m/i*n; printf(%ld,j); else for(i=n;i=n;i-) if(n%i=0&m%i=0) break; printf(%dn,i ); j=m/i*n; printf(%d
21、,j); return 0;5.7输出所有的水仙花数。所谓的水仙花数是指一个3位数,其各位数字立方和等于该数本身。例如153是一水仙花数,因为153=13+53+33输出语句:printf(%dn,n);#include int main() int a,b,c,n=100; for (n=100&n1000) a=n/100; b=n%100/10; c=n%100%10; if(n=a*a*a+b*b*b+c*c*c) printf(%dn,n); return 0;5.8一个数如果恰好等于它的因子之和,这个数就称为完数。例如,6的因子为1,2,3,且6=1+2+3,因此6是完数,从键盘上
22、输入一个正整数,判断其是否为完数。如果是,则按照如下格式输出。比如,输入6,则输出Yes,its factors are 1 2 3;如果输入8,则输出No#include int main() int a,b,c,n,s=0; scanf(%d,&n); for(a=1; an; a+) if(n%a=0) s=s+a; if(s=n) printf(yes) ; for(b=1; bn; b+) if(n%b=0) printf(%d,b); else printf(no); return 0;5.9输入两个正整数m和n,求出m,n区间的所有素数#include int main() in
23、t a,b,c,n,m,s=0; scanf(%d%d,&m,&n); if(mn) for(a=m; a=n; a+) for(b=2;ba;b+) if(a%b=0) break;if(b=a) printf(%d,a); else for(a=n; a=m; a+) for(b=2;ba;b+) if(a%b=0) /if(a%b!=0) /printf(%d,a); break; /(则输出111111111111.。121212.。1313.。202020.。) if(b=a) printf(%d,a);/ return 0;5.10输入一个数,判断是否为回文数,如果是,输出Yes,
24、否则输出No(121逆序121,即为回文数)#include int main() int a,b,c,n,m,s=0; scanf(%d,&n); / for(a=1;a=1;a+)可用for循环,也可用式子循环。 /此处不可用,因为无需连续运算,故只用式子循环即可。 b=n; while(b!=0) /do / /while(b!=0);效果一样; a=b%10; b=b/10; s=s*10+a; if(s=n) printf(yes); else if(s!=n) printf(no); return 0;5.11有一只猴子,第一天摘了若干个桃子 ,当即吃了一半,但还觉得不过瘾 ,就又多吃了一个。第2天早上又将剩下的桃子吃掉一半,还是觉得不过瘾,就又多吃了两个。以后每天早上都吃了前一天剩下的一半加天数个(例如,第5天吃了前一天剩下的一半加5个)。到第n天早上再想吃的时候,就只剩下一个桃子了。输入:天数n输出:第一天的桃子个数,输出语句为printf(Themonkeygot%dpeachsinfirstday.n,sum);Smaple:Input:5OutputThemonkeygot114peachsi
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1