2017 mooc C语言 第七周(2) 答案

上传人:s9****2 文档编号:431487752 上传时间:2023-07-25 格式:DOCX 页数:14 大小:22.33KB
返回 下载 相关 举报
2017 mooc C语言 第七周(2) 答案_第1页
第1页 / 共14页
2017 mooc C语言 第七周(2) 答案_第2页
第2页 / 共14页
2017 mooc C语言 第七周(2) 答案_第3页
第3页 / 共14页
2017 mooc C语言 第七周(2) 答案_第4页
第4页 / 共14页
2017 mooc C语言 第七周(2) 答案_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《2017 mooc C语言 第七周(2) 答案》由会员分享,可在线阅读,更多相关《2017 mooc C语言 第七周(2) 答案(14页珍藏版)》请在金锄头文库上搜索。

1、递归法计算游戏人员的年龄题目内容:有n个人围坐在一起,问第n个人多大年纪,他说比第n-1个人大2岁;问第 n-1个人,他说比第n-2个人大2岁,.,问第3个人,他说比第2个人大2岁; 问第2个人,他说比第1个人大2岁。第1个人说自己10岁,问第n个人多大 年纪。递归函数原型:unsignedintComputeAge(unsignedintn);提示:计算年龄的递归公式为:输入格式:“u”输出格式:“Thepersonsageis%u n”输入样例1:5/输出样例1:The_persons_age_is_18输入样例2:10/输出样例2:The_persons_age_is_28#includ

2、e unsignedintComputeAge(unsignedint n);intmain()unsignedint age;scanf(%u, &age);printf(The persons age is %un, ComputeAge(age);return0;unsignedintComputeAge(unsignedint n)if(n =1)return10;elsereturnComputeAge(n - 1)+2;递归法计算两个数的最大公约数1题目内容:利用最大公约数的性质计算。对正整数a和b,当ab时,若a中含有与b相同 的公约数,则a中去掉b后剩余的部分a-b中也应含有与

3、b相同的公约数,对 a-b和b计算公约数就相当于对a和b计算公约数。反复使用最大公约数的上述 性质,直到a和b相等为止,这时,a或b就是它们的最大公约数。这三条性质, 也可以表示为:性质1如果ab,则a和b与a-b和b的最大公约数相同,即Gcd(a,b)=Gcd(a-b,b)性质2如果ba,则a和b与a和b-a的最大公约数相同,即Gcd(a,b)=Gcd(a,b-a)性质3如果a=b,则a和b的最大公约数与a值和b值相同,即Gcd(a,b)=a=b程序运行结果示例1:Inputa,b:16,24/8程序运行结果示例2:Inputa,b:-2,- 8/Inputerror!输入提示信息:”Inp

4、uta,b:”输入格式:”d,%d”输出格式:输出最大公约数:”dn”输入错误提示信息:Inputerror! n”#include intGcd(inti, int j);intmain()int a, b;int c;printf(Input a,b:);scanf(%d,%d, &a, &b);c = Gcd(a, b);if (c = 1)printf(Input error!n);elseprintf(%dn, c);return0;intGcd(inti, int j)if (i=0 | j j)returnGcd(i - j, j);elsereturnGcd(i, j - i)

5、;寻找中位数vl.O题目内容:编写一个函数返回三个整数中的中间数。函数原型为:intmid(inta,intb,intc);函数功能是返回a,b,c三数中大小位于中间的那个数。输入格式:“d%d%d”输出格式:”Theresultis%d n”输入样例1:12618/输出样例1:The_result_is_12输入样例2:-97- 2/输出样例2:The_result_is_-2#include intmid(int a,int b,int c);intmain()inti, j, k;scanf(%d%d%d,&i, &j, &k);printf(The result is %dn, mid

6、(i, j, k);return0;intmid(int a,int b,int c)return b;elsereturnmid(b, c, a);还原算术表达式1题目内容:编写程序求以下算式中XYZ的值,其中两数XYZ与YZZ相加的和n(99vnv1000 )的值要求从键盘输入。XYZ+ YZZ三位数N程序运行结果示例1:Inputn(nvlOOO):532/X=3,Y=2,Z=1程序运行结果示例2:Inputn(nvlOOO):977/Invalid输入提示:”Inputn(nv1OOO): n”输入格式:“d”输出格式:”X=%d,Y=%d,Z=%dn”计算不成功(无解)的输出提示:”

7、Invalidn”特别注意 x5ory5orz5;#include void Resolution(inti);intmain()int n;printf(Input n(n1000):n);scanf( %d , &n);Resolution(n);return0;void Resolution(inti)int find =0;intx,y, z;for(x =1;x=9;x+)for(y =1;y=9;y+)for(z =1;z =9;z+)if(z *2 + (y + z) *10 + (x +y) *100 = i)printf(X=%d,Y=%d,Z=%dn,x, y, z);fi

8、nd =1;break;if(!find)printf(Invalidn);谐均值计算题目内容:两数值的谐均值可以这样计算:首先对两数值的倒数取平均值,最后再取倒数。 编写一个带有两个double参数的函数,计算这两个参数的谐均值。函数原型为:doubleCalculate(doublex,doubley);程序运行结果示例1:Inputtwodoubles:34/1/(1/x+1/y)/2)=3.429程序运行结果示例2:Inputtwodoubles:6.53.8/1/(1/x+1/y)/2)=4.796输入提示信息:Inputtwodoubles: n”输入格式:“lf%lf”输出格式:

9、”1/(1/x+1/y)/2)=%0.3f n”(注意:等号的两边各有一个空格)#include doubleCalculate(doublex,double y);intmain()double x, y;printf(Input two doubles:n);scanf(%lf%lf, &x, &y);printf(1/(1/x+1/y)/2) = %0.3fn, Calculate(x, y);return0;doubleCalculate(doublex,double y)return1.0 / (1.0 / x +1.0 / y) /2);输出指定行列数的字符题目内容:编写一个函数,

10、函数原型:voidChline(charch,intcolumn,introw);该函数的3个参数是一个字符和两个整数。字符参数是需要输出的字符。第一个 整数说明了在每行中该字符输出的个数,而第二个整数指的是需要输出的行数。 编写一个调用该函数的程序。程序运行结果示例1:inputachar:k/inputcolumnandrow:23/kkkkkk程序运行结果示例2:inputachar:a/inputcolumnandrow:32/aaaaaa字符输入提示信息:inputachar: n”行列数输入提示信息:inputcolumnandrow: n输入格式:“c”“d%d”输出格式:”c”

11、#include voidChline(charch, int column, int row);intmain()char c;int col, r;printf(input a char:n);scanf(%c, &c);printf(input column and row:n );scanf(%d%d, &col, &r);Chline(c, col, r);return0;voidChline(charch, int column, int row)inti, j;for (i =0; i row; i+)for (j =0; j column; j+)printf(%c, ch);

12、printf(n);题目内容:在一种室内互动游戏中,魔术师要每位观众心里想一个三位数abc (a、b、c分 别是百位、十位和个位数字),然后魔术师让观众心中记下acb、bac、bca、cab、 cba五个数以及这5个数的和值。只要观众说出这个和是多少,则魔术师一定能 猜出观众心里想的原数abc是多少。例如,观众甲说他计算的和值是1999,则 魔术师立即说出他想的数是443,而观众乙说他计算的和值是1998,则魔术师 说:“你算错了 ! ”。请编程模拟这个数字魔术游戏。要求用函数实现,函数原型为:intMagic(intm);其中形参m代表观众计算的和值。输入格式:”d”输出格式:观众计算错误,

13、魔术师给出的结论:Thesumyoucalculatediswrong! n”观众计算正确,魔术师给出的结论:”Thenumberis%d n”输入样例1:1998/输出样例1:The_sum_you_calculated_is_wrong!输入样例2:1999/输出样例2:The_number_is_443计算礼炮声响次数题目内容:在海军节开幕式上,有A、B、C三艘军舰要同时开始鸣放礼炮各21响。已知A舰每隔5秒放1 次, B舰每隔6秒放1 次, C舰每隔7秒放1次。假设各炮手对时间的掌握非常准确,请编程计算观众总共可以听到几次礼炮声。输入格式:无输出格式:”n=%d”#include intmain()int a, b, count =21 *3;for (a =5; a =21 *5; a = a +5)if (a %30 =0)count-;if (a %35 =0)count-;for (b =7; b =21 *7; b = b +7)if (b %42 =0)count-;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 电气技术

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号