还剩48页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
第一章
1.1题目内容使用printf在屏幕上输出helloworld!提示#include stdio.hintmain{printfhelloworld!\n;return0;}输入格式:无输出格式输出提示信息helloworld!\n输入样例输出样例helloworld!#includestdio.hintmain{printfhelloworld!\n;return0;}
1.2在屏幕上输出多行信息(3分)题目内容使用printf函数在屏幕上输出以下多行信息helloworld!hellohit!helloeveryone!提示在printf函数中转义字符‘\n’表示换行输入格式:输出格式输出提示信息helloworld!\nhellohit!\nhelloeveryone!\n输入样例输出样例helloworld!hellohit!helloeveryone!#includestdio.hintmain{printfhelloworld!\n;printfhellohit!\n;printfhelloeveryone!\n;return0;}
1.3计算半圆弧的周长及半圆面积(3分)题目内容编程并输出半径r=
5.3的半圆弧的周长及该半圆的面积,的取值为
3.14159要求半径r和必须利用宏常量表示输入格式:无输出格式半圆的面积输出格式 Area=%f\n半圆弧的周长输出格式 circumference=%f\n输入样例输出样例Area=
44.123632circumference=
16.650427#includestdio.h#definePI
3.14159#defineR
5.3intmain{printfArea=%f\nR*R*PI/2;printfcircumference=%f\n2*R*PI/2;return0;}
1.4计算长方体体积(3分)题目内容编程并输出长
1.
2、宽
4.
3、高
6.4的长方体的体积要求长方体的长、宽、高必须利用const常量表示输入格式:无输出格式长方体的体积输出格式volume=%.3f\n输入样例输出样例#includestdio.hintmain{constfloatl=
1.2;constfloatx=
4.3;constfloaty=
6.4;printfvolume=%.3f\nl*x*y;return0;}第三章
3.1计算两个数的平方和(3分)题目内容从键盘读入两个实数,编程计算并输出它们的平方和,要求使用数学函数powxy计算平方值,输出结果保留2位小数提示使用数学函数需要在程序中加入编译预处理命令#includemath.h以下为程序的输出示例pleaseinputxandy:
1.
23.4↙result=
13.00输入格式:%f%f输出格式输入提示信息pleaseinputxandy:\n输出格式result=%.2f\n输入样例输出样例#includestdio.h#includemath.hintmain{printfpleaseinputxandy:\n;floatxy;scanf%f%fxy;printfresult=%.2f\npowx2+powy2;return0;}
3.2逆序数的拆分计算(3分)题目内容从键盘输入一个4位数的整数,编程计算并输出它的逆序数(忽略整数前的正负号)例如,输入-1234,忽略负号,由1234分离出其千位
1、百位
2、十位
3、个位4,然后计算4*1000+3*100+2*10+1=4321,并输出4321再将得到的逆序数4321拆分为两个2位数的正整数43和21,计算并输出拆分后的两个数的平方和的结果以下是程序的输出示例Inputx:-1234↙y=4321a=43b=21result=2290输入格式:%d输出格式输入提示信息Inputx:\n逆序数输出格式y=%d\n逆序数拆分后的输出格式a=%db=%d\n平方和的输出格式result=%d\n输入样例输出样例#includestdio.hintmain{printfInputx:\n;intx;scanf%dx;ifx=0{x=-x;}intabcd;a=x/1000;b=x/100%10;c=x/10%10;d=x%10;printfy=%d\nd*1000+c*100+b*10+a;printfa=%db=%d\nd*10+cb*10+a;printfresult=%d\nb*10+a*b*10+a+d*10+c*d*10+c;return0;}
3.3拆分英文名(3分)题目内容从键盘输入某同学的英文名(小写输入,假设学生的英文名只包含3个字母如:tom),编写程序在屏幕上输出该同学的英文名,且首字母大写(如:Tom)同时输出组成该英文名的所有英文字符在26个英文字母中的序号以下为程序的输出示例inputyourEnglishname:tom↙Tomt:20o:15m:13输入格式:%c%c%c输出格式输入提示信息inputyourEnglishname:\n首字母大写的英文姓名的输出格式%c%c%c\n姓名中每个字母在26个英文字母中的序号的输出格式%c:%d\n输入样例输出样例#includestdio.hintmain{printfinputyourEnglishname:\n;charabc;scanf%c%c%cabc;printf%c%c%c\na+A-abc;printf%c:%d\naa-a+1;printf%c:%d\nbb-a+1;printf%c:%d\ncc-a+1;return0;}
3.4计算体指数(3分)题目内容从键盘输入某人的身高(以厘米为单位,如174cm)和体重(以公斤为单位,如70公斤),将身高(以米为单位,如
1.74m)和体重(以斤为单位,如140斤)输出在屏幕上,并按照以下公式计算并输出体指数,要求结果保留到小数点后2位假设体重为w公斤,身高为h米,则体指数的计算公式为 以下是程序的输出示例inputweightheight:70174↙weight=140height=
1.74t=
23.12输入格式:%d%d输出格式输入提示信息inputweightheight:\n 注意在height和逗号之间有一个空格体重输出格式weight=%d\n身高输出格式height=%.2f\n体指数输出格式t=%.2f\n输入样例输出样例#includestdio.hintmain{intxy;printfinputweightheight:\n;scanf%d%dxy;printfweight=%d\nx*2;printfheight=%.2f\ny/
100.0;printft=%.2f\nx/y/
100.0*y/
100.0;return0;}第四章
4.1数位拆分v
2.0(4分)题目内容从键盘上输入一个4位数的整数n,编写程序将其拆分为两个2位数的整数a和b,计算并输出拆分后的两个数的加、减、乘、除和求余运算的结果例如n=-4321设拆分后的两个整数为ab,则a=-43b=-21除法运算结果要求精确到小数点后2位求余和除法运算需要考虑除数为0的情况,即如果拆分后b=0则输出提示信息thesecondoperateriszero!程序的运行结果示例1pleaseinputn:1200↙120sum=12sub=12multi=0thesecondoperateriszero!程序的运行结果示例2pleaseinputn:-2304↙-23-4sum=-27sub=-19multi=92dev=
5.75mod=-3输入格式:%d输出格式输入提示信息pleaseinputn:\n拆分后的两个整数的输出格式%d%d\n加法、减法、乘法的输出格式sum=%dsub=%dmulti=%d\n除法和求余的输出格式dev=%.2fmod=%d\n除数为0的提示信息thesecondoperateriszero!\n输入样例输出样例#includestdio.hmain{intmxy;printfpleaseinputn:\n;scanf%dm;x=m/100;y=m%100;printf%d%d\nxy;printfsum=%dsub=%dmulti=%d\nx+yx-yx*y;ify!=0{printfdev=%.2fmod=%d\nfloatx/yx%y;}else{printfthesecondoperateriszero!\n;}}
4.2快递费用计算(4分)题目内容上海市的某快递公司根据投送目的地距离公司的远近,将全国划分成5个区域 快递费按邮件重量计算,由起重费用、续重费用两部分构成
(1)起重(首重)1公斤按起重资费计算(不足1公斤,按1公斤计算),超过首重的重量,按公斤(不足1公斤,按1公斤计算)收取续重费;
(2)同城起重资费10元,续重3元/公斤;
(3)寄往1区(江浙两省)的邮件,起重资费10元,续重4元;
(4)寄往其他地区的邮件,起重资费统一为15元而续重部分,不同区域价格不同2区的续重5元/公斤,3区的续重
6.5元/公斤,4区的续重10元/公斤编写程序,从键盘输入邮件的目的区域编码和重量,计算并输出运费,计算结果保留2位小数提示续重部分不足一公斤,按1公斤计算因此,如包裹重量
2.3公斤1公斤算起重,剩余的
1.3公斤算续重,不足1公斤按1公斤计算,
1.3公斤折合续重为2公斤如果重量应大于
0、区域编号不能超出0-4的范围程序运行结果示例
144.5↙Price:
55.00程序运行结果示例
253.2↙ErrorinAreaPrice:
0.00输入格式:用逗号分隔的两个数字,第一个表示区域、第二个是重量%d%f输出格式价格的输出格式Price:%
5.2f\n区域错误的提示信息ErrorinArea\n输入样例输出样例#includestdio.h#includemath.hintmain{intarea;floatweightpricex1x2;scanf%d%fareaweight;ifweight=1{x1=
1.0;}else{x1=
1.0;x2=ceilweight-1;}ifarea0area=4{switcharea{case0:price=x1*10+x2*3;break;case1:price=x1*10+x2*4;break;case2:price=x1*15+x2*5;break;case3:price=x1*15+x2*
6.5;break;case4:price=x1*15+x2*10;break;}printfPrice:%
5.2f\nprice;}else{printfErrorinArea\n;printfPrice:
0.00\n;}return0;}
4.3数据区间判断(5分)题目内容从键盘输入一个int型的正整数n(已知0n10000),编写程序判断n落在哪个区间如果用户输入的数据不在指定的范围里,程序输出error!例如,输入265,则该数属于区间100-999程序运行结果示例1Pleaseenterthenumber:2563↙2563:1000-9999程序运行结果示例2Pleaseenterthenumber:156↙156:100-999程序运行结果示例3Pleaseenterthenumber:36↙36:10-99程序运行结果示例4Pleaseenterthenumber:3↙3:0-9程序运行结果示例5Pleaseenterthenumber:10923↙error!输入格式:%d输出格式输入提示信息Pleaseenterthenumber:\n输出的区间判断%d:1000-9999\n%d:100-999\n%d:10-99\n%d:0-9\n输入错误提示信息error!\n输入样例输出样例#includestdio.h#includemath.hintmain{intx;printfPleaseenterthenumber:\n;scanf%dx;ifx=1000x=9999printf%d:1000-9999\nx;elseifx=0x=9printf%d:0-9\nx;elseifx=10x=99printf%d:10-99\nx;elseifx=100x=999printf%d:100-999\nx;elseprintferror!\n;return0;}
4.4计算一元二次方程的根v
2.0(3分)题目内容根据下面给出的求根公式,计算并输出一元二次方程的两个实根,要求精确到小数点后4位其中a,b,c的值由用户从键盘输入如果用户输入的系数不满足求实根的要求,输出错误提示 error!程序运行结果示例1Pleaseenterthecoefficientsabc:121↙x1=-
1.0000x2=-
1.0000程序运行结果示例2Pleaseenterthecoefficientsabc:261↙x1=-
0.1771x2=-
2.8229程序运行结果示例3Pleaseenterthecoefficientsabc:216↙error!输入格式:%f%f%f输出格式输入提示信息Pleaseenterthecoefficientsabc:\n输出格式x1=%
7.4fx2=%
7.4f\n输入错误提示信息error!\n输入样例输出样例#includestdio.h#includemath.hintmain{floatabcx1x2m;printfPleaseenterthecoefficientsabc:\n;scanf%f%f%fabc;m=b*b-4*a*c;ifm0{printferror!\n;}else{x1=-b+sqrtm/2*a;x2=-b-sqrtm/2*a;printfx1=%
7.4fx2=%
7.4f\nx1x2;}return0;}第五章
5.16位密码输入检测(3分)题目内容从键盘输入6位仅由数字0~9组成的密码用户每输入一个密码并按回车键后,程序给出判断如果是数字,则原样输出该数字,并提示用户目前已经输入了几位密码,同时继续输入下一位密码;否则,程序提示error,并让用户继续输入下一位密码直到用户输入的密码全部是数字为止以下为程序的运行结果示例Inputyourpassword:1↙1youhaveenter1-bitsnumber6↙6youhaveenter2-bitsnumbera↙errord↙error4↙4youhaveenter3-bitsnumber6↙6youhaveenter4-bitsnumber8↙8youhaveenter5-bitsnumber2↙2youhaveenter6-bitsnumber输入格式:数字字符输入格式%c输出格式输入提示信息Inputyourpassword:\n如果输入的是数字,输出格式为%cyouhaveenter%d-bitsnumber\n如果输入的不是数字,输出提示信息error\n输入样例输出样例#includestdio.hintmain{chara;inti=0;printfInputyourpassword:\n;whilei6{scanf%ca;ifa=48a=57{printf%cyouhaveenter%d-bitsnumber\na++i;}elseprintferror\n;getchar;}return0;}
5.2判断一个整型数据有几位v
1.0(4分)题目内容从键盘输入一个整型数据int型,编写程序判断该整数共有几位例如,从键盘输入整数16644该整数共有5位程序运行结果示例1Pleaseenterthenumber:21125↙21125:5bits程序运行结果示例2Pleaseenterthenumber:-12234↙-12234:5bits输入格式:%d输出格式输入提示信息Pleaseenterthenumber:\n判断该整数共有几位: %d:%dbits\n输入样例输出样例#includestdio.hintmain{intxyn;printfPleaseenterthenumber:\n;scanf%dx;n=x;fory=1;x/=10;y++;printf%d:%dbits\nny;return0;}
5.3检测输入数据中奇数和偶数的个数(4分)题目内容从键盘输入一系列正整数,输入-1表示输入结束(-1本身不是输入的数据)编写程序判断输入数据中奇数和偶数的个数如果用户输入的第一个数据就是-1,则程序输出over!否则用户每输入一个数据,输出该数据是奇数还是偶数,直到用户输入-1为止,分别统计用户输入数据中奇数和偶数的个数程序运行结果示例1Pleaseenterthenumber:1↙1:odd5↙5:odd8↙8:even9↙9:odd12↙12:even17↙17:odd-1↙Thetotalnumberofoddis4Thetotalnumberofevenis2程序运行结果示例2Pleaseenterthenumber:-1↙over!Thetotalnumberofoddis0Thetotalnumberofevenis0输入格式:%d输出格式输入提示信息Pleaseenterthenumber:\n用户输入的第一个数据就是-1,输出格式over!\n奇数的输出格式%d:odd\n偶数的输出格式%d:even\n输入数据中奇数的个数统计Thetotalnumberofoddis%d\n输入数据中偶数的个数统计Thetotalnumberofevenis%d\n输入样例输出样例#includestdio.hintmain{intsodd=0even=0;printfPleaseenterthenumber:\n;do{scanf%ds;ifs==-1odd==0even==0printfover!\n;elseifs%2!=0s!=-1{printf%d:odd\ns;odd++;}elseifs%2==0{printf%d:even\ns;even++;}elseeven+=0;}whiles!=-1;printfThetotalnumberofoddis%d\nodd;printfThetotalnumberofevenis%d\neven;return0;}
5.4计算球的反弹高度(4分)题目内容一个球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下并反弹......,求它在第5次和第10次落地时,分别共经过了多少米?第5次和第10次反弹分别是多高?要求计算结果保留到小数点后3位用户从键盘输入想要计算的第n次(n=15)程序运行结果示例1input:5↙5times:
287.
5003.125程序运行结果示例2input:10↙10times:
299.
6090.098输入格式:%d输出格式反弹次数%dtimes:\n第n次反弹共经过多少米%.3f\n第n次的反弹高度%.3f\n输入提示信息input:\n输入样例输出样例#includestdio.hintmain{inttimei;floateach=0sum=0h=100;printfinput:\n;scanf%dtime;fori=0;itime;i++{sum+=h;h/=2;each=h;sum+=each;}printf%dtimes:\ntime;printf%.3f\nsum-each;printf%.3f\neach;return0;}第六章
6.1程序改错v
2.0(5分)下面代码的功能是将百分制成绩转换为5分制成绩,具体功能是如果用户输入的是非法字符或者不在合理区间内的数据(例如输入的是a或者102,或-45等),则程序输出 Inputerror!,并允许用户重新输入直到输入合法数据为止,并将其转换为5分制输出目前程序存在错误,请将其修改正确并按照下面给出的运行示例检查程序#includestdio.h int main { int score; char grade; printfPlease input score:; scanf%d score; if score 0 || score 100 printfInput error!\n; else if score = 90 grade = A’; else if score = 80 grade = B; else if score = 70 grade = C; else if score = 60 grade = D; else grade = E; printfgrade:%c\n grade; return 0;}程序运行结果示例1Pleaseinputscore:a↙Inputerror!Pleaseinputscore:-12↙Inputerror!Pleaseinputscore:230↙Inputerror!Pleaseinputscore:92↙grade:A程序运行结果示例2Pleaseinputscore:88↙grade:B程序运行结果示例3Pleaseinputscore:73↙grade:C程序运行结果示例4Pleaseinputscore:65↙grade:D程序运行结果示例5Pleaseinputscore:27↙grade:E输入格式:%d输出格式输入提示信息Pleaseinputscore:\n输入错误提示信息Inputerror!\n输出格式grade:%c\n注意%c前面有一个空格输入样例输出样例#includestdio.hintmain{intscorem=0;chargrade;printfPleaseinputscore:\n;do{m=scanf%dscore;getchar;ifm!=1||score0||score100{printfInputerror!\nPleaseinputscore:\n;m=0;}}whilem==0;ifscore=90grade=A;elseifscore=80grade=B;elseifscore=70grade=C;elseifscore=60grade=D;elsegrade=E;printfgrade:%c\ngrade;return0;}
6.2编程计算 a+aa+aaa+…+aa…a(n个a)的值(4分)题目内容编程计算a+aa+aaa+…+aa…a(n个a)的值,n和a的值由键盘输入例如,当n=4a=2表示计算2+22+222+2222的值程序运行结果示例Inputan:24↙sum=2468输入格式: %d%d(先输入a,后输入n)输出格式 输入提示信息Inputan:\n输出格式sum=%ld\n%ld\n输入样例输出样例#includestdio.hintmain{intansum=0tem=1;printfInputan:\n;scanf%d%dan;inti;fori=1;i=n;i++{sum+=a*tem;tem=tem*10+1;}printfsum=%d\nsum;return0;}
6.3搬砖问题(4分)题目内容36块砖,36人搬,男搬4,女搬3,两个小孩抬一块砖,要求一次搬完,问男人、女人和小孩各需多少人?请用穷举法编程求解程序的运行结果示例men=3women=3children=30输入格式: 输出格式men=%dwomen=%dchildren=%d\n输入样例输出样例#includestdio.hintmain{intwomanmankid;forwoman=0;woman=12;woman++{forman=0;man=9;man++{kid=36-man-woman;if4*man+3*woman+
0.5*kid==36printfmen=%dwomen=%dchildren=%d\nmanwomankid;}}return0;}
6.4编程输出某年某月有多少天(考虑闰年)(5分)题目内容从键盘输入一个年份和月份,输出该月有多少天(考虑闰年),用switch语句编程程序运行结果示例1Inputyearmonth:20153↙31days程序运行结果示例2Inputyearmonth:20154↙30days程序运行结果示例3Inputyearmonth:20162↙29days程序运行结果示例4Inputyearmonth:20142↙28days程序运行结果示例5Inputyearmonth:201513↙Inputerror!输入格式: %d%d输出格式输入提示信息Inputyearmonth:\n输入错误提示信息Inputerror!\n输出格式 31days\n 30days\n 29days\n 28days\n 输入样例输出样例#includestdio.hintisleapintn;intmain{intyearmonth;printfInputyearmonth:\n;scanf%d%dyearmonth;switchmonth{case1:case3:case5:case7:case8:case10:case12:printf31days\n;break;case4:case6:case9:case11:printf30days\n;break;case2:ifisleapyear{printf29days\n;break;}else{printf28days\n;break;}default:printfInputerror!\n;}return0;}intisleapintn{ifn%100!=0n%4==0||n%400==0return1;elsereturn0;}第七章
7.1递归法计算游戏人员的年龄(4分)题目内容有n个人围坐在一起,问第n个人多大年纪,他说比第n-1个人大2岁;问第n-1个人,他说比第n-2个人大2岁.....问第3个人,他说比第2个人大2岁;问第2个人,他说比第1个人大2岁第1个人说自己10岁,问第n个人多大年纪递归函数原型unsignedintComputeAgeunsignedintn;提示递归公式输入格式:%u输出格式Thepersonsageis%u\n输入样例15↙输出样例1The_persons_age_is_18输入样例210↙输出样例2The_persons_age_is_28注意为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!(注意在输出中,“_”代表空格,如果直接将上段示例粘贴到代码中,应将其替换为空格)#includestdio.hunsignedintAgeunsignedintage;intmain{unsignedintn=0;scanf%udn;printfThepersonsageis%u\nAgen;return0;}unsignedintAgeunsignedintn{ifn==1return10;elsereturnAgen-1+2;}
7.2魔术师猜数(4分)题目内容在一种室内互动游戏中,魔术师要每位观众心里想一个三位数abc(a、b、c分别是百位、十位和个位数字),然后魔术师让观众心中记下acb、bac、bca、cab、cba五个数以及这5个数的和值只要观众说出这个和是多少,则魔术师一定能猜出观众心里想的原数abc是多少例如,观众甲说他计算的和值是1999,则魔术师立即说出他想的数是443,而观众乙说他计算的和值是1998,则魔术师说“你算错了!”请编程模拟这个数字魔术游戏要求用函数实现,函数原型intMagicintm;其中形参m代表观众计算的和值输入格式:%d输出格式观众计算错误,魔术师给出的结论Thesumyoucalculatediswrong!\n观众计算正确,魔术师给出的结论Thenumberis%d\n输入样例11998↙输出样例1The_sum_you_calculated_is_wrong!输入样例21999↙输出样例2The_number_is_443注意为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!(注意在输出中,“_”代表空格,如果直接将上段示例粘贴到代码中,应将其替换为空格)#includestdio.hintMagicintm;intmain{intm;scanf%dm;ifMagicmprintfThenumberis%d\nMagicm;elseprintfThesumyoucalculatediswrong!\n;return0;}intMagicintn{intm;intabc;form=100;m1000;m++{a=m/100;c=m%10;b=m-a*100/10;ifa*122+b*212+c*221==nreturnm;}return0;}
7.3寻找中位数v
1.0(4分)题目内容编写一个函数返回三个整数中的中间数函数原型intmidintaintbintc;功能是返回a,b,c三数中大小位于中间的一个数输入格式:%d%d%d输出格式Theresultis%d\n输入样例112618↙输出样例1The_result_is_12输入样例2-97-2↙输出样例2The_result_is_-2注意为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!(注意在输出中,“_”代表空格,如果直接将上段示例粘贴到代码中,应将其替换为空格)#includestdio.hintmidintaintbintc;intmain{intabc;scanf%d%d%dabc;printfTheresultis%d\nmidabc;return0;}intmidintaintbintc{intjit;intm
[3]={abc};fori=0;i2;i++forj=i;j=2;j++ifm[j]m[i]{t=m[j];m[j]=m[i];m[i]=t;}returnm
[1];}
7.4还原算术表达式(4分)题目内容编写程序求以下算式中XYZ的值输入格式: 输出格式X=%dY=%dZ=%d\n输入样例输出样例X=3Y=2Z=1注意为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!#includestdio.hintmidintaintbintc;intmain{intxyz;forx=0;x9;x++fory=0;y9;y++forz=0;z9;z++ifx*100+y*110+z*12==532printfX=%dY=%dZ=%d\nxyz;return0;}第八章
8.1计算礼炮声响次数(4分)题目内容在海军节开幕式上,有A、B、C三艘军舰要同时开始鸣放礼炮各21响已知A舰每隔5秒放1次,B舰每隔6秒放1次,C舰每隔7秒放1次假设各炮手对时间的掌握非常准确,请编程计算观众总共可以听到几次礼炮声输入格式:无输出格式n=%d输入样例输出样例注意为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!#includestdio.hintmain{inttn=0;fort=0;t=140;t++{ift%5==0t=21*5{n++;continue;}ift%6==0t=21*6{n++;continue;}ift%7==0t=21*7{n++;continue;}}printfn=%dn;return0;}
8.2兔子生崽问题(4分)题目内容假设一对小兔的成熟期是一个月,即一个月可长成成兔,那么如果每对成兔每个月都可以生一对小兔,一对新生的小兔从第二个月起就开始生兔子,试问从一对兔子开始繁殖,一年以后可有多少对兔子(即当年12月份总计有多少对兔子,含成兔和小兔)?请编程求解该问题参考答案依题意,兔子的繁殖情况如图所示图中实线表示成兔仍是成兔或者小兔长成成兔;虚线表示成兔生小兔观察分析此图可发现如下规律
(1)每月小兔对数=上个月成兔对数
(2)每月成兔对数=上个月成兔对数+上个月小兔对数综合
(1)和
(2)有每月成兔对数=前两个月成兔对数之和用fn(n=1,2,…)表示第n个月成兔对数,于是可将上述规律表示为如下递推公式输入格式:无输出格式每个月兔子对数的输出格式 %4d第12个月的兔子总数的输出格式 \nTotal=%d\n输入样例输出样例注意为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!#includestdio.hintcreatintn;intmain{inteachtotali;fori=1;i=12;i++printf%4dcreati+1;printf\nTotal=%d\ncreat13;return0;}intcreatintn{ifn==1||n==2return1;elsereturncreatn-1+creatn-2;}
8.3抓交通肇事犯(4分)题目内容一辆卡车违犯交通规则,撞人后逃跑现场有三人目击事件,但都没记住车号,只记下车号的一些特征甲说牌照的前两位数字是相同的;乙说牌照的后两位数字是相同的,但与前两位不同;丙是位数学家,他说四位的车号刚好是一个整数的平方现在请根据以上线索帮助警方找出车号以便尽快破案[提示]假设这个4位数的前两位数字都是i,后两位数字都是j,则这个可能的4位数k=1000*i+100*i+10*j+j式中,i和j都在0~9变化此外,还应使k=m*m,m是整数由于k是一个4位数,所以m值不可能小于31输入格式:无输出格式k=%dm=%d\n输入样例输出样例注意为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!#includestdio.hintmain{intabcdij;fori=31;i100;i++{j=i*i;a=j/1000;d=j%10;b=j%1000/100;c=j%100/10;ifa==bc==da!=cprintfk=%dm=%d\nji;}return0;}
8.4检验并打印幻方矩阵(4分)题目内容幻方矩阵是指该矩阵中每一行、每一列、每一对角线上的元素之和都是相等的从键盘输入一个5×5的矩阵并将其存入一个二维整型数组中,检验其是否为幻方矩阵,并将其按指定格式显示到屏幕上输入格式: %d输出格式如果是幻方矩阵,输出提示信息: Itisamagicsquare!\n矩阵元素的输出%4d(换行使用\n)如果不是幻方矩阵,输出提示信息: Itisnotamagicsquare!\n输入样例117_24_1_8_1523_5_7_14_164_6_13_20_2210_12_19_21_311_18_25_2_9输人样例中“_”代表空格输出样例1Itisamagicsquare!**17**24***1**8**15**23***5***7**14**16***4***6**13**20**22**10**12**19**21***3**11**18**25***2***9输出样例中“*”代表空格输入样例21_0_1_6_13_1_1_1_11_1_1_1_21_1_1_1_19_1_7_1_1输人样例中“_”代表空格输出样例2Itisnotamagicsquare!注意为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!输人样例中“_”代表空格,输出样例中“*”代表空格#includestdio.hintjudge;intij;intm
[5]
[5]={0};intmain{fori=0;i5;i++forj=0;j5;j++scanf%dm[i][j];ifjudge{printfItisamagicsquare!\n;fori=0;i5;i++{forj=0;j5;j++printf%4dm[i][j];printf\n;}}elseprintfItisnotamagicsquare!\n;return0;}intjudge{intl=0r=0;ints
[5]={0}t
[5]={0};fori=0;i5;i++forj=0;j5;j++{s[i]+=m[i][j];t[j]+=m[i][j];ifi==jl+=m[i][j];ifi+j==4r+=m[i][j];}ifl!=rreturn0;fori=0;i5;i++ifs[i]!=l||t[i]!=lreturn0;return1;}第九章
9.1ISBN识别码判断(4分)题目内容每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”就是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二个分隔符后的五位数字代表该书在该出版社的编号;最后一位为识别码 识别码的计算方法如下 首位数字乘以1加上次位数字乘以2……以此类推,用所得的结果mod11,所得的余数即为识别码,如果余数为10,则识别码为大写字母X例如ISBN号码0-670-82162-4中的识别码4是这样得到的对067082162这9个数字,从左至右,分别乘以1,2,...9再求和,即0×1+6×2+……+2×9=158,然后取158mod11的结果4作为识别码 你的任务是编写程序判断输入的ISBN号码中识别码是否正确,如果正确,则仅输出“Right”;如果错误,则输出你认为是正确的ISBN号码程序运行结果示例10-123-41562-4↙Right程序运行结果示例20-123-41562-7↙0-123-41562-4输入格式: 用gets输入字符串输入只有一行,是一个字符序列,表示一本书的ISBN号码(保证输入符合ISBN的格式要求)输出格式输入的ISBN号码的识别码正确,输出信息: Right输入的ISBN号码的识别码错误,按照规定的格式,输出正确的ISBN号码(包括分隔符“-”),输出格式%s注意为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!输入样例输入样例#includestdio.h#includestring.hinti=0j=0;intmain{chars
[14]d
[14];intm
[9]={0};intn=0l=0;getss;n=s
[12]-48;fori=0;s[i]!=\0;i++{ifs[i]!=-{m[j]=s[i];j++;}}forj=1;j=9;j++{//printf%4dm[j-1]-48;l+=m[j-1]-48*j;}l=l%11;ifl==nprintfRight;else{strncpyds12;d
[12]=l+48;d
[13]=\0;printf%sd;}return0;}
9.2摘苹果(4分)题目内容陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果苹果成熟的时候,陶陶就会跑去摘苹果陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目假设她碰到苹果,苹果就会掉下来程序运行结果示例1100110130200140150156187197149↙110↙4程序运行结果示例29021010215314711013018288113↙100↙6输入格式: %d输入包括两行数据 第1行包含10个100到200之间的整数(包括100和200,以厘米为单位),分别表示10个苹果到地面的高度两个相邻的整数之间用一个空格隔开 第2行只包括一个100到120之间的整数(包含100和120,以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度输出格式 %d注意为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!输入样例输出样例#includestdio.hintmain{intm
[10]={0};intij=0n;fori=0;i10;i++scanf%dm[i];scanf%dn;fori=0;i10;i++ifm[i]=n+30j++;printf%dj;return0;}
9.3求最大素数(4分)题目内容求500以内的10个最大素数及其和,并分别输出这10个最大素数及其和要求10个素数按从大到小的顺序输出输入格式: 无输出格式10个最大素数的输出格式%6d总和的输出格式\nsum=%d\n输入样例输出样例#includestdio.h#includemath.hintjudgeintn;intmain{intm
[500];intjl=0sum=0;forj=500;j0;j--{ifjudgejm[l++]=j;}forj=0;j10;j++{sum+=m[j];printf%6dm[j];}printf\nsum=%d\nsum;return0;}intjudgeintn{inti;fori=2;i=sqrtdoublen;i++{ifn%i==0return0;}return1;}
9.4字符串逆序(4分)题目内容用字符数组作函数参数编程,利用一个数组实现字符串(允许输入带空格的字符串)的逆序存放要求如下
(1)在主函数中从键盘输入字符串,字符串的最大长度为80个字符 调用Inverse函数将字符串逆序存放,然后在主函数中输出逆序后的字符串
(2)在子函数Inverse中实现字符串的逆序存放函数原型为 voidInversecharstr[];程序运行结果示例1Inputastring:abcde↙Inversedresults:edcba程序运行结果示例2Inputastring:hello↙Inversedresults:olleh输入格式: 用gets输入字符串输出格式输入提示信息Inputastring:\n输出提示信息Inversedresults:\n用puts输出字符串注意为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!输入样例输出样例#includestdio.h#includestring.h#definemaxn80voidInversecharstr[];intmain{charstr[maxn];printfInputastring:\n;getsstr;printfInversedresults:\n;Inversestr;putsstr;return0;}voidInversecharstr[]{charch;intlen=strlenstri;fori=0;ilen/2;i++{ch=str[i];str[i]=str[len-i-1];str[len-i-1]=ch;}}第十章
10.1水手分椰子(4分)题目内容五个水手在岛上发现一堆椰子,先由第1个水手把椰子分为等量的5堆,还剩下1个给了猴子,自己藏起1堆然后,第2个水手把剩下的4堆混合后重新分为等量的5堆,还剩下1个给了猴子,自己藏起1堆以后第
3、4个水手依次按此方法处理最后,第5个水手把剩下的椰子分为等量的5堆后,同样剩下1个给了猴子请用迭代法编程计算并输出原来这堆椰子至少有多少个输入格式: 无输出格式y=%d\n输入样例输出样例注意为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!#includestdio.hcheckintn{inti;fori=0;i5;i++{ifn%5!=1return0;n=n/5*4;}return1;}intmain{inti;fori=6;i10000;i++{ifchecki{printfy=%d\ni;break;}}return0;}
10.2找最值(4分)题目内容从键盘任意输入10个整数,用指针变量作函数参数编程计算最大值和最小值,并返回它们所在数组中的位置函数原型如下所示intFindMaxintnum[]intnint*pMaxPos;//函数返回最大值,pMaxPos返回最大值所在的下标intFindMinintnum[]intnint*pMinPos;//函数返回最小值,pMaxPos返回最小值所在的下标程序运行结果示例Input10numbers:-1234592891278↙Max=92Position=4Min=-1Position=0输入格式:%d输出格式提示信息Input10numbers:\n输出结果Max=%dPosition=%dMin=%dPosition=%d\n输入样例输出样例注意为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!时间限制500ms内存限制32000kb#includestdio.hintFindMaxintnum[]intnint*pMaxPos;intFindMinintnum[]intnint*pMinPos;intnum
[10];intimaxdex=0mindex=0;intmain{intmaxmin;intmn;printfInput10numbers:\n;fori=0;i10;i++scanf%dnum[i];max=FindMaxnum10m;min=FindMinnum10n;printfMax=%dPosition=%dMin=%dPosition=%d\nmmaxnmin;return0;}intFindMaxintnum[]intnint*pMaxPos{*pMaxPos=num
[0];fori=1;in;i++ifnum[i]*pMaxPos{*pMaxPos=num[i];maxdex=i;}returnmaxdex;}intFindMinintnum[]intnint*pMinPos{*pMinPos=num
[0];fori=1;in;i++ifnum[i]*pMinPos{*pMinPos=num[i];mindex=i;}returnmindex;}
10.3星期查找(4分)题目内容任意输入英文的星期几,通过查找如图所示的星期表,输出其对应的数字,若查到表尾,仍未找到,则输出错误提示信息提示用一个二维字符数组weekDay来存放如图所示的星期表的内容(字符串)输入待查找的字符串,然后在星期表中顺序查找与输入字符串相匹配的字符串找到的字符串在星期表数组中的第一维下标(行号)即为题目所求程序运行结果示例1Pleaseenterastring:Friday↙Fridayis5程序运行结果示例2Pleaseenterastring:Fruday↙Notfound!输入格式: 字符串输入采用gets函数输出格式输入提示信息Pleaseenterastring:\n找到了,输出%sis%d\n没找到,输出Notfound!\n输入样例输出样例注意为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!#includestdio.h#includestring.h#definemax50intmain{charweek
[7]
[10]={SundayMondayTuesdayWednesdayThursdayFridaySaturday};intiflag=0;charfind[max];printfPleaseenterastring:\n;getsfind;fori=0;i7;i++ifstrcmpweek[i]find==0{flag=1;break;}ifflag==0printfNotfound!\n;elseprintf%sis%d\nfindi;return0;}
10.4杨辉三角形(4分)题目内容编程打印具有如下形式的杨辉三角形,其中输出数据的行数n从键盘输入,并且n=10程序运行结果示例1Inputnn=10:5↙ 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1程序运行结果示例2Inputnn=10:7↙ 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1输入格式: %d输出格式输入提示信息Inputnn=10:\n输出数据格式%4d数据换行 \n输入样例输出样例注意为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!#includestdio.hintmain{intn;intija
[10]
[10];printfInputnn=10:\n;scanf%dn;fori=0;in;i++forj=0;jn;j++{a[i]
[0]=1;a[i][i]=1;}fori=2;in;i++forj=1;j=i-1;j++a[i][j]=a[i-1][j-1]+a[i-1][j];fori=0;in;i++{forj=0;j=i;j++printf%4da[i][j];printf\n;}}第十一章
11.1找数组最值(4分)题目内容按如下函数原型编程从键盘输入一个m行n列的二维数组,然后计算数组中元素的最大值及其所在的行列下标值其中,m和n的值由用户键盘输入已知m和n的值都不超过10voidInputArrayint*pintmintn;int FindMaxint*pintmintnint*pRowint*pCol;//函数返回最大值,pRow和pCol分别返回最大值所在的行列下标例如,程序的1次运行结果如下Inputn:34↙Input3*4array:1234↙5678↙90-1-2↙max=9row=2col=0输入格式:提示信息: Inputmn:\n输入数组维数%d%d提示信息: Input%d*%darray:\n输入数组元素%d输出格式max=%drow=%dcol=%d\n输入样例输出样例#includestdio.hvoidInputArrayint*p
[10]intmintn;intFindMaxint*p
[10]intmintnint*pRowint*pCol;intij;intnum
[10]
[10];intmain{intmn;intmax=0;introwcol;int*pRow=row;int*pCol=col;printfInputmn:\n;scanf%d%dmn;printfInput%d*%darray:\nmn;InputArraynummn;max=FindMaxnummnpRowpCol;printfmax=%drow=%dcol=%d\nmaxrowcol;return0;}intFindMaxint*p
[10]intmintnint*pRowint*pCol{inttem=p
[0]
[0];fori=0;im;i++forj=0;jn;j++ifp[i][j]tem{tem=p[i][j];*pRow=i;*pCol=j;}returntem;}voidInputArrayint*p
[10]intmintn{fori=0;im;i++forj=0;jn;j++scanf%dp[i][j];}
11.2冒泡排序(4分)题目内容采用冒泡法进行升序排序法的基本原理是对数组中的n个数执行n-1遍检查操作,在每一遍执行时,对数组中剩余的尚未排好序的元素进行如下操作对相邻的两个元素进行比较,若排在后面的数小于排在前面的数,则交换其位置,这样每一遍操作中都将参与比较的数中的最大的数沉到数组的底部,经过n-1遍操作后就将全部n个数按从小到大的顺序排好序了程序的某次运行结果如下Inputn:10↙Input10numbers:2934068751↙Sortingresults: 0 1 2 3 4 5 6 7 8 9输入格式:%d输出格式输入数据个数提示Inputn:输入数据提示Input%dnumbers:输出提示Sortingresults:输出格式%4d输入样例输出样例#includestdio.hintij;intnum
[10000];voidSwapint*mint*n;intmain{intn;printfInputn:;scanf%dn;printfInput%dnumbers:n;fori=0;in;i++scanf%dnum[i];fori=0;in-1;i++forj=i;jn;j++ifnum[j]num[i]Swapnum[j]num[i];printfSortingresults:;fori=0;in;i++printf%4dnum[i];return0;}voidSwapint*mint*n{inttem;tem=*m;*m=*n;*n=tem;}
11.3删除字符串中与某字符相同的字符(4分)题目内容在字符串中删除与某字符相同的字符,要求用字符数组作函数参数程序运行结果示例Inputastring:hellomyfriend!↙Inputacharacter:!↙Results:hellomyfriend输入格式:字符串输入用 gets函数单个字符输入用getchar函数输出格式输入字符串的提示信息 Inputastring:\n输入单个字符的提示信息 Inputacharacter:\n输出格式 Results:%s\n输入样例输出样例#includestdio.h#includestring.h#definemaxn1000voiddelete_stringcharstr[]charch;intmain{charm[maxn]l[maxn];charn;printfInputastring:\n;getsm;printfInputacharacter:\n;n=getchar;delete_stringmn;printfResults:%s\nm;return0;}voiddelete_stringcharstr[]charch{intij;fori=j=0;str[i]!=\0;i++ifstr[i]!=chstr[j++]=str[i];str[j]=\0;}
11.4求最大数和最小数的最大公约数(4分)题目内容从键盘输入10个正整数,求出最大数,最小数,以及他们的最大公约数要求用数组实现程序运行结果示例1Input10numbers:152356879410578192243↙maxNum=105minNum=1515程序运行结果示例2Input10numbers:331298754010↙maxNum=33minNum=0输入格式: %d输出格式输入提示信息Input10numbers:\n最大数输出格式maxNum=%d\n最小数输出格式minNum=%d\n最大公约数输出格式%d输入样例输出样例#includestdio.h#includestring.h#definemaxn10voidSwapint*mint*n;intgcdintxinty;intij=0;intnum[maxn];intmain{intmaxmin;printfInput10numbers:\n;fori=0;i10;i++scanf%dnum[i];fori=0;i9;i++forj=i;j10;j++ifnum[j]num[i]Swapnum[j]num[i];max=num
[9];min=num
[0];printfmaxNum=%d\nminNum=%d\nmaxmin;ifmax!=0min!=0printf%dgcdmaxmin;return0;}voidSwapint*mint*n{inttem;tem=*m;*m=*n;*n=tem;}intgcdintxinty{intm;ifxyreturngcdyx;ifx%y!=0returngcdyx%y;elsereturny;}第十二章
12.1百万富翁的换钱计划(4分)题目内容有一天,一位百万富翁遇到一个陌生人,陌生人找他谈一个换钱的计划,陌生人对百万富翁说“我每天给你10万元,而你第一天只需给我1分钱,第二天我仍给你10万元,你给我2分钱,第三天我仍给你10万元,你给我4分钱……你每天给我的钱是前一天的两倍,直到满一个月(30天)为止”,百万富翁很高兴,欣然接受了这个契约请编程计算在这一个月中陌生人总计给百万富翁多少钱,百万富翁总计给陌生人多少钱输入格式:无输出格式输出百万富翁给陌生人的钱 toStranger:%.2fyuan\n输出陌生人给百万富翁的钱 toRichman:%.2fyuan\n输入样例输出样例#includestdio.hintmain{doubleeach1=100000each2=
0.01sum1=0sum2=0;inti;fori=1;i=30;i++{sum1+=each1;sum2+=each2;each2*=2;}printftoStranger:%.2fyuan\nsum2;printftoRichman:%.2fyuan\nsum1;return0;}
12.2用计数控制的循环实现正数累加求和(4分)题目内容输入一些整数,编程计算并输出其中所有正数的和,输入负数时不累加,继续输入下一个数输入零时,表示输入数据结束要求最后统计出累加的项数程序运行结果示例Inputanumber:1↙Inputanumber:3↙Inputanumber:4↙Inputanumber:2↙Inputanumber:-8↙Inputanumber:-9↙Inputanumber:0↙sum=10count=4输入格式: %d输出格式输入提示信息 Inputanumber:\n输出格式 sum=%dcount=%d\n输入样例输出样例#includestdio.h#definem100000intmain{intnsum=0count=0;do{printfInputanumber:\n;ifn0{sum+=n;count++;}}whilescanf%dn==1n!=0;printfsum=%dcount=%d\nsumcount;return0;}
12.3平方根表(4分)题目内容按如下格式输出100以内整数的平方根表输入格式: 无输出格式输出表头: %7d输出每行的开头数字 %d输出第m行n列中的值%
7.3f输入样例输出样例#includestdio.h#includemath.hintij;intmain{fori=0;i10;i++printf%7di;putchar\n;fori=0;i10;i++{printf%di;forj=0;j10;j++printf%
7.3fsqrt10*i+j;printf\n;}return0;}
12.4最大公约数(4分)题目内容按照如下函数原型编写子函数计算正整数a和b的所有公约数第一次调用,返回最大公约数以后只要再使用相同参数调用,每次返回下一个小一些的公约数无公约数时函数CommonFactors返回-1,主函数中不输出任何信息函数原型: intCommonFactorsintaintb程序运行结果示例1Inputaandb:10050↙Commonfactor1is50Commonfactor2is25Commonfactor3is10Commonfactor4is5Commonfactor5is2Commonfactor6is1程序运行结果示例2Inputaandb:7-3↙输入格式: %d%d输出格式输出公约数 Commonfactor%dis%d\n输入提示信息Inputaandb:\n输入样例输出样例#includestdio.hintMaxCommonFactorintaintb;intCommonFactorsintaintb;intmain{intab;printfInputaandb:\n;scanf%d%dab;ifa0b0CommonFactorsab;return0;}intCommonFactorsintaintb{int*gcd=int*mallocsizeofint*512;inti;intindex=1;b=MaxCommonFactorab;fori=b;i0;i--ifa%i==0b%i==0gcd[index++]=i;gcd
[0]=index;fori=1;igcd
[0];++iprintfCommonfactor%dis%d\nigcd[i];returngcd;}intMaxCommonFactorintaintb{inttemp;ifa=0||b=0return-1;whileb!=0{temp=a%b;a=b;b=temp;}returna;}0区1区2区3区4区同城临近两省1500公里(含)以内1500——2500公里2500公里以上上海江苏,浙江北京,天津,河北,辽宁,河南,安微,陕西,湖北,江西,湖南,福建,广东,山西吉林,辽宁,甘肃,四川,重庆,青海,广西,云南,海南,内蒙古,黑龙江,贵州新疆,西藏。