上机题及答案Word格式.docx
- 文档编号:14079422
- 上传时间:2022-10-18
- 格式:DOCX
- 页数:5
- 大小:21.91KB
上机题及答案Word格式.docx
《上机题及答案Word格式.docx》由会员分享,可在线阅读,更多相关《上机题及答案Word格式.docx(5页珍藏版)》请在冰豆网上搜索。
输入样例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);
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;
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))。
其后一行为m个正整数,表示m个整数。
输出说明 一行输出数列对应数据,换行。
小数点后保留6位有效数字,多余部分四舍五入。
输入样例3358 输出样例 12 #includedoublefun(intn){returnn==1?
1:
1/(1+fun(n-1));
} intmain(){inta,b,c;
b 10水仙花数 描述 水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。
。
定义一个函数intfun(inta,intb),计算区间[a,b]或[b,a]的水仙花数。
每行表示一组数据,每组数据两个整数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&
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(){
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上机 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)