上机题及答案.docx

上传人:b****4 文档编号:1160323 上传时间:2022-10-18 格式:DOCX 页数:5 大小:21.91KB
下载 相关 举报
上机题及答案.docx_第1页
第1页 / 共5页
上机题及答案.docx_第2页
第2页 / 共5页
上机题及答案.docx_第3页
第3页 / 共5页
上机题及答案.docx_第4页
第4页 / 共5页
上机题及答案.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

上机题及答案.docx

《上机题及答案.docx》由会员分享,可在线阅读,更多相关《上机题及答案.docx(5页珍藏版)》请在冰豆网上搜索。

上机题及答案.docx

上机题及答案

上机题及答案

      1温度转换描述  已知华氏温度到摄氏温度的转换公式为:

摄氏温度=(华氏温度-32)×5/9,写程序将给定的华氏温度转换为摄氏温度输出  输入说明  只有一个整数,表示输入的华氏温度  输出说明  输出一个表示摄氏温度的实数,小数点后保留2位有效数字,多余部分四舍五入  输入样例50  输出样例    2计算球体重量    描述  已知铁的比重是,金的比重是。

写一个程序,分别计算出给定直径的铁球与金球的质量,假定PI=  输入说明  输入两个整数,分别表示铁球与金球的直径  输出说明  输出两个浮点数,分别表示铁球与金球的质量,小数点后保留3位小数,两个浮点数之间用空格分隔  输入样例100100  输出样例  提示    #includeintmain(){  doubleFe=,Au=,Pi=;intm,n;    1  floatM1,M2;  scanf(\%d\注意,要使输出的两个数据中间无逗号,“”之间要无逗号,下面也如此  M1=(/3)*Pi*m/2*m/2*m/2*Fe/1000;M2=(/3)*Pi*n/2*n/2*n/2*Au/1000;printf(\return0;}    3阶梯电价计费    描述  电价分三个档次,[0,110]度电,每度电元;(110,210]度电,超出110部分每度电元,超过210度电,超出210部分每度电元,给出一个家庭一月用电量,请计算出应缴的电费。

  输入说明  第一行为1个整数m,表示有多少组数据。

其后一行为m个正实数,表示m个用电量数据  输出说明  一行输出1个电费数据后,换行。

  输入样例3  100200  输出样例    自己的#include  doublefare(doublem){doublen;if(m>=0&&m110){if(m    2  n=*110+*(210-110)+*(m-210);}returnn;}  intmain(){  inta,b;  doublec;  scanf(\  for(b=0;b  scanf(\  printf(\}return0;}  别人的  #include  doublemoney(doublex){if(x>=100&&x110&&x210)return*110+*100+*(x-210);}  intmain(){  inta,b;doublec;  scanf(\for(b=0;b  scanf(\  printf(\}  return0;}  4计算某月天数    描述  3  每个月的1,3,5,7,8,10,12月有31天,4,6,9,11月有30天,闰年2月29天,其他年份2月28天,给定年份和月份求该月的天数  输入说明  多组数据,输入数据第一行为整数n,表示有几组数据数据,其后为n行,每行表示一组数据,每组数据两个正整数a和b构成,a表示年份,b表示月份,a和b之间用空格分隔  输出说明  根据年份和月份计算该月天数并输出,每输出一个天数后换行  输入样例3  200032011520082  输出样例313129  程序问题:

输入时年份和月份在同一行,按空格分开,不能按回车换行1别人的  #include  voidtianshu(intx,inty){  if(y==1||y==3||y==5||y==7||y==8||y==10||y==12)  printf(\elseif(y==4||y==6||y==9||y==11)  printf(\  elseif((x%4==0&&x0!

=0||x@0==0)&&y==2)  printf(\  elseif(y==2)  printf(\}  intmain()    4  {  inta,b,m,n;scanf(\for(m=1;m  #includeintmain(){inta,b;scanf(\for(b=0;b  5计算整数各位数字之和    5

  

        描述  假设n是一个最多9位数字组成的正整数。

编写一个程序计算n的每一位数字之和  输入说明  有多组数据,输入数据第1行为整数m,表示有多少组数据,其后一行m个正整数  输出说明  对每一个整数n输出它的各位数字之和后换行  输入样例3  63704170498  输出样例61429  1别人的  #includevoidsum(inta){intx,y;  intsum=0;  for(x=100000000;x>0;x=x/10)  {  y=a/x;  a=a-y*x;  sum+=y;  }  printf(\}  intmain(){  intm,n,x;  scanf(\      6  for(n=1;n  2自己的  #includeintmain(){intm,a;scanf(\for(a=1;a0;x=x/10){  y=n/x;  sum+=y;  n=n-x*y;}printf(\}return0;}    6完数    描述  请写一个程序,给出指定整数范围[a,b]内的所有完数,0  只有一组数据,即一行上的两个整数a和b,a和b之间用空格分隔      7  输出说明  输出[a,b]内的所有完数,每个数字占一行  输入样例110  输出样例6    1别人的  #include#includeintwanshu(intn){intm;  intsum=0;  for(m=1;m  if(n==sum)return1;elsereturn0;}  intmain(){  intm,n,i;  scanf(\for(i=m;i  if(wanshu(i)==1)printf(\}  return0;}  2自己的  #includevoidwanshu(intn){  intm,sum=0;    8  for(m=1;m  #includeintmain(){inta,b,m,x,sum=0;  scanf(\for(x=a;x  7最大公约数描述  最大公约数指某几个整数共有因子中最大的一个,最大公约数具有如下性质,gcd(a,0)=agcd(a,1)=1  因此当两个数中有一个为0时,gcd是不为0的那个整数,当两个整数互质时最大公约数为  9  1。

  定义函数:

intgcd(inta,intb),返回两个参数的最大公约数。

并写一个主函数调用该函数,实验各种输入参数情况。

  输入说明  多组数据,每组数据同一行的两个正整数a和b构成,a和b之间用空格分隔,当a和b都为0时表示输入结束  输出说明  对每组数据输出其最大公约数后换行  输入样例241263500  输出样例261  输入实例:

241263500    #includeintgcd(inta,intb){intn;if(a==0&&b==0)return0;if(a==0)returnb;if(b==0)returna;for(n=(a>b?

b:

a);a%n!

=0||b%n!

=0;n--);returnn;}  intmain(){inta,b;while

(1)//也可写为for{    10

  

      scanf(\if(a==0&&b==0)  break;  printf(\}return0;}    8角谷定理    描述测试,  角谷定理:

输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1。

经过如此有限次运算后,总可以得到自然数值1。

求经过多少次可得到自然数1。

如:

例如数据22的变化过程:

221134175226134020105168421,数据变化次数为16。

  可用迭代法或递归法实现。

  输入说明  第一行1个整数m,表示有多少组数据。

其后一行为m个正整数,表示m个数据。

  输出说明  一行输出1个数据变换次数后,换行  输入样例3  223343  输出样例162730    #includeintjg(intn){statici=0,m;++i;if(n==1){m=i;i=0;returnm;    11  }else{if(n%2==0)  n=n/2;else  n=n*3+1;jg(n);}}  intmain(){inta,b,n;scanf(\for(b=0;b  9递归数列    描述  下列给定程序中,用递归实现函数fun,其功能是:

根据整型参数n,计算如下公式的值。

A

(1)=1,A

(2)=1/(1+A

(1)),A(3)=1/(1+A

(2)),?

?

,A(n)=1/(1+A(n-1))。

  输入说明  第一行1个整数m,表示有多少组数据。

其后一行为m个正整数,表示m个整数。

  输出说明  一行输出数列对应数据,换行。

小数点后保留6位有效数字,多余部分四舍五入。

  输入样例3358  输出样例      12    #includedoublefun(intn){returnn==1?

1:

1/(1+fun(n-1));}  intmain(){inta,b,c;scanf(\for(b=0;b  10水仙花数  描述  水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。

定义一个函数intfun(inta,intb),计算区间[a,b]或[b,a]的水仙花数。

  输入说明  第一行1个整数m,表示有多少组数据。

每行表示一组数据,每组数据两个整数a和b构成,计算[a,b]或[b,a]间的水仙花数,a和b之间用空格分隔。

  输出说明  输出区间[a,b]或[b,a]的水仙花数数量,换行。

  输入样例2  310004005000  输出样例42    #include#include    13  enum{num=100};intfun(inta,intb){intk,c,d[num],i,m=0,sum=0;if(a=100&&a0;k++)  c*=10;for(i=0;i  intmain(){inta,b,m;scanf(\while(m--){scanf(\printf(\}return0;}    11歌德巴赫猜想描述  编写函数isPrime(longn),说明如下:

函数的功能是判断给定的正整数n是否为素数,函数的返回值1/0表示n是/不是素数。

  编写main()函数,调用isPrime()验证歌德巴赫猜想:

任意一个大偶数都能分解为两个素数的和。

  输入说明  第一行1个整数m,表示有多少组数据。

其后一行为m个正偶数,表示m  14  个数据。

  输出说明  每行输出2个数据表示分解的素数,换行。

  输入样例21020  输出样例37317    #includeintisprime(longn){intm;if(n  intmain(){

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 营销活动策划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1