您好,欢迎访问三七文档
第6章判断与循环6-1输入一个正整数n,求(1)nii1(2)ni1i1(保留4位小数)(3)n!(注意计算结果的数据类型)(4)nii1!6-2输入两个正整数m和n,求nmiii)1(26-3输入一个正整数n,计算(1)7151311的前n项之和;(2)7453321的前n项之和;(3)1117141211的前n项之和。6-4编写程序,显示如下输出:(1)1(2)*****22****333***4444**55555*6-5使用格里高利公式71513114求π的近似值,要求精确到最后一项的绝对值小于10-4。6-6在下列输入中,统计英文字母个数、数字个数和其他字符个数(1)输入10个字符;(2)输入一串字符,以回车(即换行符)作为结束符,不统计换行符;(3)输入若干字符,以“*”作为结束符(可换行),不统计“*”和换行符。6-7输入一个正整数n,再输入n个学生的成绩(实数),计算平均分,并输出最高分和最低分,并统计不及格的人数和及格人数的比例。6-8输入n个正整数,输出其中偶数的平均数(结果四舍五入为整数),以及奇数的个数。6-9输入一个整数(长整形)(1)统计该整数的位数。例如:输入17623,输出5。(2)将其逆序输出。例如:输入17623,输出32671。(提示:使用取模运算来抽取最后一个数字,将该整数除以10,就可以把n个数字的数变为n-1个数字的数值。)(3)计算各位数字的和(如输入的整数为123,则各位数字的和为1+2+3=6)。6-10输出100以内的全部素数,每行输出5个。6-11将一个大于1的正整数分解成质因数,例如输入90,输出90=2*3*3*5。(提示:不必判断因数是否为质数,如何做?)6-12输出2~1000的所有“完数”。所谓“完数”是指该数等于其所有因子(除了这个数本身)的和,例如6=1+2+3。6-13打印出所有的“水仙花数”。所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=13+53+33。6-14找出1~99之间的全部“同构数”。所谓“同构数”是指这样的数:它出现在其平方数的右边,例如:5出现在其平方数25的右边,25出现在其平方数625的右边,5和25都是同构数。6-15百元买百鸡。已知公鸡5元一只,母鸡3元一只,小鸡1元三只。问用100元买100只鸡,那么公鸡、母鸡和小鸡各多少只?(提示,不止一个解)。6-16输入两个整数lower和upper,输出一张华氏-摄氏温度转换表,华氏温度的取值范围是[lower,upper]。计算公式如下:9)32(5fc式中:c表示摄氏温度,f表示华氏温度。(1)表中每行的华氏温度依次递增1oF;(2)表中每行的华氏温度依次递增2oF。6-17输入一个正整数n,输出一张2的乘方表,显示20~2n的值。(1)调用pow()函数实现(注意:pow函数的类型为double);(2)不调用pow()函数实现。6-18输入一个正整数n(n15)s,输出一张n的阶乘表,显示0!~n!的值;6-19根据下列公式计算从n个不同元素中抽取m个元素(mn)的组合数。)!(!!mnmnCmn编写程序,输入2个正整数m和n(mn),计算并输出组合数。(注意变量的数据类型)6-20输出21世纪所有的闰年。6-21用一张一元票1分、2分和5分的硬币(至少各一枚),问有几种换法?每种换法中1分、2分和5分的硬币各有多少?6-22两个乒乓球队进行比赛,各出3个人。甲队为a、b、c三个人,乙队为x、y、z三个人。已经抽签决定比赛名单。有人向队员打听比赛的名单。A说他不和x比,c说他不和x、z比。编写程序找出3对比赛选手的名单。6-23编写程序,显示如下的二维平方根表(即给出0.0~9.0之间的任意数的平方根)。例如,x为2.1的平方根,而y为3.9的平方根。数学0.00.10.2……0.90.01.02.0x3.0y……9.06-24弗洛伊德三角形如下:123456789101112131415…………………………91(1)编写程序,显示如上形式的弗洛伊德三角形;(2)修改该程序,显示如下形式的弗洛伊德三角形:101101010110101……6-25查询自动售货机中商品的价格。假设自动售货机出售4种商品:薯片(crisps)、爆米花(popcorn)、巧克力(chocolate)和可乐(cola),售价分别为3.00元、2.50元、4.00元和3.50元。在屏幕上显示以下菜单(编号和选项):[1]Selectcrisps[2]Selectpopcorn[3]Selectchocolate[4]Selectcola[0]Exit用户可以连续查询商品的价格,当查询次数超过5次时,自动退出查询;不到5次时,用户可以选择退出。当用户输入编号1~4,显示相应商品的价格(保留2位小数);输入0,退出查询;输入其他编号,显示价格为0。6-26验证哥德巴赫猜想:任何一个大于6的偶数均可表示为2个素数之和。例如6=3+3,8=3+5,…,18=7+11。要求将6~100之间的偶数都表示为两个素数之和,输出是一行输出5组。6-27一个球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,球它在第10次落地时,共经过多少米?第10次反弹多高?6-28(中国古典算术问题)某工地需要搬运砖块,已知男人一次搬3块,女人一人搬2块,小孩两人搬1块。用45人正好搬45块砖,问有多少种搬法?6-29猴子吃桃问题:猴子第一天摘下若干桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃了前一天剩下的一半零一个。到第十天想再吃时,发现只剩下一个桃子了。求第一天共摘下多少个桃子?(提示:采用逆向思维)6-30有4名专家对4款赛车进行评论:(1)A说:2号赛车是最好的;(2)B说:4号赛车是最好的;(3)C说:3号赛车不是最好的;(4)D说:B说错了。事实上,只有一款赛车是最好的,而且只有一名专家说对了,其他3个人都说错了。编程输出最好的赛车编号。第6章判断与循环6-31输入一个正整数n,求(1)nii1(2)ni1i1(保留4位小数)(3)n!(注意计算结果的数据类型)(4)nii1!Program(1)main(){intn,i;longsum=0;clrscr();printf(Pleaseinputn:);scanf(%d,&n);for(i=1;i=n;i++)sum+=i;printf(Thesumis%ld.\n,sum);}OutputPleaseinputn:10/*input*/Thesumis55.Program(2)main(){intn,i;doublesum=0;clrscr();printf(Pleaseinputn:);scanf(%d,&n);for(i=1;i=n;i++)sum+=1.0/i;printf(Thesumis%.4lf.\n,sum);}OutputPleaseinputn:10/*input*/Thesumis2.9290.Program(3)main(){intn,i;longf=1;clrscr();printf(Pleaseinputn:);scanf(%d,&n);for(i=2;i=n;i++)f*=i;printf(%d!=%ld\n,n,f);}OutputPleaseinputn:10/*input*/10!=3628800.Program(4)main(){intn,i,j;longf,sum;clrscr();printf(Pleaseinputn:);scanf(%d,&n);for(j=1,sum=0;j=n;j++){for(i=2,f=1;i=j;i++)f*=i;sum+=f;}printf(Thesumis%ld.\n,sum);}OutputPleaseinputn:5/*input*/Thesumis153.6-32输入两个正整数m和n,求nmiii)1(2Programmain(){intm,n,i;floatsum=0;clrscr();printf(Pleaseinputmandn:);scanf(%d%d,&m,&n);for(i=m;i=n;i++)sum+=i*i+1.0/i;printf(Thesumis%.2f.\n,sum);}OutputPleaseinputmandn:47/*input*/Thesumis126.76.6-33输入一个正整数n,计算(1)7151311的前n项之和;(2)7453321的前n项之和;(3)1117141211的前n项之和。Program(1)main(){intn,i=1;floatsum=0;clrscr();printf(Pleaseinputn:);scanf(%d,&n);while(i=n){sum+=1.0/(2*i-1);i++;}printf(Thesumis%.2f.\n,sum);}OutputPleaseinputn:10/*input*/Thesumis2.13.Program(2)#includemath.hmain(){intn,i=0,numerator=1,denominator=1;floatsum=0;clrscr();printf(Pleaseinputn:);scanf(%d,&n);do{sum+=1.0*numerator/denominator;i++;numerator=pow(-1,i)*(i+1);denominator+=2;}while(in);printf(Thesumis%.2f.\n,sum);}OutputPleaseinputn:10/*input*/Thesumis0.38.Program(3)main(){intn,i,denominator;floatsum;clrscr();printf(Pleaseinputn:);scanf(%d,&n);for(i=1,denominator=1,sum=0;i=n;i++){sum+=1.0/denominator;denominator+=i;}printf(Thesumis%.2f.\n,sum);}OutputPleaseinputn:10/*input*/Thesumis2.17.6-34编写程序,显示如下输出:(1)1(2)*****22****333***4444**55555*Program(1)main(){inti,j,n;clrscr();printf(Pleaseinputthenumberofrows:(lessthan10));scanf(%d,&n);for(i=1;i=n;i++){for(j=1;j=i;j++)printf(%d,i);printf(\n);}}Program(2)main(){inti,j,n;clrscr();printf(Pleaseinputthenumberofrows:(lessthan10));scanf(%d,&n);for(i=1;i=n;i++){for(j=1;ji;j++)printf();for(j=1;j=n-i+1;j++)printf(*);printf(\n);}}6-35使用格里高利公式71513114求π的近似值,要求精确到最后一项的绝对值小于10-4。Program#includemath.h#defineERROR1E-4main(){intn,sign=1,denominator=1;floatitem=1,sum=0;clrscr();while(1){sum+=sign*item;sign=sign*-1;denominator+=2;item=1.0
本文标题:第六章参考答案
链接地址:https://www.777doc.com/doc-1766508 .html