《上机题及答案.》由会员分享,可在线阅读,更多相关《上机题及答案.(28页珍藏版)》请在金锄头文库上搜索。
1、1温度转换 描述 已知华氏温度到摄氏温度的转换公式为:摄氏温度= (华氏温度- 32)5/9,写程序将给定的华氏温度转换为摄氏温度输出 输入说明 只有一个整数,表示输入的华氏温度 输出说明 输出一个表示摄氏温度的实数,小数点后保留2位有效数字,多余部分四舍五入 输入样例 50 输出样例 10.00 2计算球体重量 描述 已知铁的比重是7.86,金的比重是19.3。写一个程序,分别计算出给定直径的铁球与金球的质量,假定PI=3.1415926 输入说明 输入两个整数,分别表示铁球与金球的直径(单位为毫米) 输出说明 输出两个浮点数,分别表示铁球与金球的质量(单位为克),小数点后保留3位小数,两个
2、浮点数之间用空格分隔 输入样例 100 100 输出样例 4115.486 10105.456 提示 #includeint main()double Fe=7.86,Au=19.3,Pi=3.1415926;int m,n;float M1,M2;scanf(%d %d,&m,&n);/注意,要使输出的两个数据中间无逗号,“”之间要无逗号,下面也如此M1=(4.0/3)*Pi*m/2*m/2*m/2*Fe/1000;M2=(4.0/3)*Pi*n/2*n/2*n/2*Au/1000;printf(%.3f %.3f,M1,M2);return 0; 3阶梯电价计费 描述 电价分三个档次,0,
3、110度电,每度电0.5元;(110,210度电,超出110部分每度电0.55元,超过210度电,超出210部分每度电0.70元,给出一个家庭一月用电量,请计算出应缴的电费(四舍五入,保留小数点后两位小数)。 输入说明 第一行为1个整数m(100 m 0),表示有多少组数据。 其后一行为m个正实数,表示m个用电量数据 输出说明 一行输出1个电费数据(四舍五入保留2位小数)后,换行。 输入样例 3100 200 329.75 输出样例 50.00104.50193.82 (1)自己的#includedouble fare(double m)double n;if(m=0&m110)if(m=21
4、0)n=0.5*110+0.55*(m-110);else n=0.5*110+0.55*(210-110)+0.70*(m-210);return n;int main () int a,b; double c; scanf(%d,&a); for(b=0;ba;b+) scanf(%lf,&c); printf(%.2fn,fare(c);return 0;(2)别人的# include double money(double x)if(x=100&x110&x210)return 0.5*110+0.55*100+0.7*(x-210);int main ()int a,b;double
5、 c;scanf(%d,&a);for(b=0;ba;b+)scanf(%lf,&c);printf(%.2fn,money(c);return 0;4计算某月天数 描述 每个月的1,3,5,7,8,10,12月有31天,4,6,9,11月有30天,闰年2月29天,其他年份2月28天,给定年份和月份求该月的天数 输入说明 多组数据,输入数据第一行为整数n(n100),表示有几组数据数据,其后为n行,每行表示一组数据,每组数据由两个正整数a和b构成,a表示年份,b表示月份,a和b之间用空格分隔 输出说明 根据年份和月份计算该月天数并输出,每输出一个天数后换行 输入样例 32000 32011 5
6、2008 2 输出样例 313129程序问题:输入时年份和月份在同一行,按空格分开,不能按回车换行1别人的#includevoid tianshu(int x,int y) if(y=1|y=3|y=5|y=7|y=8|y=10|y=12)printf(%dn,31);else if(y=4|y=6|y=9|y=11)printf(%dn,30); else if(x%4=0&x%100!=0|x%400=0)&y=2) printf(%dn,29); else if(y=2) printf(%dn,28);int main() int a,b,m,n;scanf(%d,&n);for (m=
7、1;m=n;+m) scanf(%d %d,&a,&b);tianshu(a,b);return 0; 2 自己的#includeint main()int a,b;scanf(%dn,&a);for(b=0;ba;b+)int year,month,days;scanf(%d %d,&year,&month);switch(month)case 2: if(year%4=0&year%100!=0|year%400=0)days=29;elsedays=28;break;case 1:case 3:case 5:case 7:case 8:case 10:case 12:days=31;br
8、eak;case 4:case 6:case 9: case 11:days=30;break;printf(%dn,days);return 0; 5计算整数各位数字之和 描述 假设n是一个由最多9位数字(d9, , d1)组成的正整数。编写一个程序计算n的每一位数字之和 输入说明 有多组数据,输入数据第1行为整数m(m100),表示有多少组数据,其后一行m个正整数 输出说明 对每一个整数n输出它的各位数字之和后换行 输入样例 36 3704 170498 输出样例 61429 1别人的# include void sum(int a) int x,y; int sum=0; for(x=1
9、00000000;x0;x=x/10) y=a/x; a=a-y*x; sum+=y; printf(%dn,sum);int main() int m,n,x; scanf(%d,&m); for(n=1;n=m;+n) scanf(%d,&x); sum(x);return 0;2自己的#includeint main()int m,a;scanf(%d,&m);for(a=1;a0;x=x/10)y=n/x;sum+=y;n=n-x*y;printf(%dn,sum);return 0; 6完数 描述 请写一个程序,给出指定整数范围a,b内的所有完数,0ab10000。一个数如果恰好等于
10、除它本身外的所有因子之和,这个数就称为完数。例如6是完数,因为6=123 输入说明 只有一组数据,即一行上的两个整数a和b,a和b之间用空格分隔 输出说明 输出a,b内的所有完数,每个数字占一行 输入样例 1 10 输出样例 6 1别人的#include#includeint wanshu (int n)int m;intsum=0;for(m=1;mn;+m)if(n%m=0) sum+=m;if(n=sum)return 1;elsereturn 0;int main()int m,n,i;scanf(%d %d,&m,&n);for(i=m;i=n;+i)if(wanshu(i)=1)p
11、rintf(%dn,i);return 0;2自己的#includevoid wanshu(int n)int m,sum=0;for(m=1;mn;m+)if(n%m=0)sum+=m;if(sum=n)printf(%dn,n);int main()int a,b,n;scanf(%d %d,&a,&b);for(n=a;n=b;n+)wanshu(n);printf(n);return 0;# include int main()int a,b,m,x,sum=0; scanf(%d %d,&a,&b);for(x=a;x=b;x+) for(m=1;mx;m+) if(x%m=0) sum+=m;if(sum=x)printf(%dn,x); return 0;7最大公约数 描述 最大公约数