c语言习题及答案-爱课程.docx

上传人:李司机 文档编号:7214066 上传时间:2024-06-29 格式:DOCX 页数:41 大小:87.05KB
返回 下载 相关 举报
c语言习题及答案-爱课程.docx_第1页
第1页 / 共41页
c语言习题及答案-爱课程.docx_第2页
第2页 / 共41页
c语言习题及答案-爱课程.docx_第3页
第3页 / 共41页
c语言习题及答案-爱课程.docx_第4页
第4页 / 共41页
c语言习题及答案-爱课程.docx_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《c语言习题及答案-爱课程.docx》由会员分享,可在线阅读,更多相关《c语言习题及答案-爱课程.docx(41页珍藏版)》请在三一办公上搜索。

1、C语言习题及答翥一爱课程37页)V/本页仅作为文档封面,使用时请直接删除即可-内页可以根据需*调整合适字体及大力、-第一章通目内容,使用Printfo在屏幕上输出hclIoworld!提示:includeOintr113n()IprintfChelIoorld!nw);return0:),入格式:无出格式:掠出提示信息:FelloMorld!r入样例:,出样例;helIoorId!#includeOintmain()(printf(helIoworld!n);return0;I在屏幕上输出多行信息(3分)目内加使用printfO杀效在屏幕上Ifi出以下多行信息:beIIoworld!hello

2、hit!beIIoeveryone!提示:在NintfOiS数中转义字符4n,表示换行。入*摘出提示信忠:helIoworld!n*hellohit!n-,hlIoeveryone!n*ItAWflilftttlW9lhelloorId!beIIohit!helloeveryone!#incIudeOintmain()(printf(helIoworld!n):printf(heIIohit!n):printf(he11oeveryone!n);return0;I计算半圆遢的周长及半圆面积(3分)目内叁,编程并输出半径,=的率的长段少举的g,1的取值为.要求半径r和不必须利用*M表示.入搐式:

3、无出格式,举圆的面积馆出格式:Are=fn*半圆退的周长殿出格式:-CirCUitference=SfnIftAWMtAr”;circurwfercnco=#incIudeOdefinePl#defineRi11tmainO(printfC,Area=fn,R*R*PI2);printf(circumference=%fn,2*R*PI2);returnO;计算长方体体积(3分)目内4h编程并检出长、宽.高的长方体的体现.要求长方体的长,宽、高必加利用5t1f表示.入吟无出播长方体的体积峥出格式:、。1皿,3八於入神例,出程例,SincIudeOintmain()(constfloatl=;c

4、onstfloatx=;constfloaty=:printf(volume=%.3fn,l*y):returnO;第三章计算两个数的平方和(3分)目内容:从盘设入两个实站:,编程计算并徜出它们的平方加,要求使用教学语数po8y)计算平方值,输出结果保留2位小散,提示I使用数学语钛需妾在程序中加入培泽陵处理命令*nclMeO以下为程序的毓出示例:pleaseinputXandy:.Uresult=入格式:%f.%f输入提示恰息:pleasenutxandy:n*侬出格式,resu1t=.2n-A*Mh出弊例,#incIudeOSincludeintmain()(printf(pleaseinp

5、utandy:n);floatx,y;scanf(-%f.%f,&x,&y):printf(result=%.2fntpow(x.2)+pow(y.2):returnO;逆序数的拆分计算(3分)目内Ih从键就编入一个4位似的H,编程计算并编出它佐,:军效前的正负号;.例如,输入-1234.彩略负号,由1234分高出其千位1、百位2、十位3、个位4.然后计算4”OOo3-100+2MaH=4321,并埼出4321.再将得到的逆序数Q21拆分为IW2位仁正匕43和21,计答并渝出拆分后的两个数的平方Ia的结果,以下是程序的输出示例:Inputx:7234”*4321-43.b=21rcsult=2

6、290入格大:W输入提示信息:InputXn逆序数编出格式:尸Wn”逆厚效拆分后的埔黑格式:W.b=3n”平方和的撤出格式:rewlt=Vin”人神倒,出棒例,#includeintmain()(printf(Inputx:n);intx;SCanf(Fd”,Sx):if(x:Tont:20o:15G:13入格式:*Ac输入提示5息:spotyourEneliShneme:n首字母大写的英文拄名的喊出格式:%cVcn姓名中每个字母在26个英文字母中的序号的愉出格式:“乳:刎入神例,SincludeOintmain()(printf(inputyourEngIishname:n);chara,b

7、.c;scanf(%c%cc,&a.&b.&c);printf(%c%c%cn,a+A-,a.b.c):printf(cdn,a.a-,a+1);printf(%cdn.b,b-a,+1);printf(%cdn.c.c-,a,+1):return0:计算体指数(3分)目内Ih从St宝岭入茎人的身离(以米为单位.知17ke)和体4(以公斤为单位.如70公斤),将身离(以来为单位,如)和体重(以斤为尊位.如14。斤)愉比在屏幕上,并按照以下公式计算并检出体指数,要求结祟保劭到小数点后2位.假设体重为-公斤,身高为h朱,则体指或的计算公式为:t=wh2以下是程序的检出示例:inputeiht.ho

8、ichi:70.174weight=140height=t=人格式:,%d.%d出格式,馅入提示信息:inputeiuht.height:(注意:在height和逗号之间有一个空格)体重摘出格式:Jeight=WVT身高愉出格式:height=、.2fn体指数输出格式;F=V2fn出律倒,#incIudeintmain()int.y:printf(inputweight.height:n):scanf(dd.&x.&y):printf(weight=%dn,x*2);printf(height=%.2fn,y/;printf(t=%.2fn,(y*(y/):return0:第四章数位拆分(4分

9、)目内加从波盘上输入一个4值的整我八角写程序将其拆分为*2位的整数a和b,计算并出拆分后的两个数的,、*、。、MM运算的结果,例如E4321.设柝分后的两个物散为a.b,则a=-43b=-21.除法运算结果要求鞫烧到小数点后2位.求余和除法运算35要考虑除数为。的情况.即如果拆分后3:0.则输出提示5息thesecond。Perateri8Zeror程序的运行结祟示例1:pleaseinputn:120012.0sm=12.SUb=I2.ut=0thesecondoperateriszero!程序的运行结果示例2:pleaseinputn:-2304-23.-45u11-27.三ub-19.u

10、11i=92dev=,mod-3入*:r摘入提示信息:-PIC6CinPUtn:n柝分后的两个整数的编出格式:MWn加法减法、柒法的发出格式:FMk1.sub=XtgiIt,*除法和求余的输出格式:fev=V2f.md*l除数为0的提示IS意:thesecondOPerateriszero!11Att例,#includeOmain()(i11tmlx,y;printf(pleaseinputn:n):scanf(-%dH.&m):x=m100;y=m%100;printf(d,dn.y):printf(sum=d,sub=d,multi=Hdn,x+y,-y,x*y);if(y!=0)prin

11、tf(dev=.2f.mod=%dn,(float)xy,xy):)elseprintf(thesecondoperateriszero!n):I快递费用计兜(4分)日内喜,上海市的某快递公司根据投送目的地距离公司的远近.将全国划分成5个区域;0区1区2区3区4区同城临近两省1500公里(含)以内15002500公里2500公里以上上海江苏,浙江北京,天津,河北,辽宁,河南,安徽,陕西,湖北,江西,湖南,福建,广东,山西。吉林,辽宁,甘痢,四川,重庆,错海,广西,云南,海南,内蒙古,黑龙江,贵州。新疆,西藏。快递费按能件或量计算,由起重费用、城承费用两部分构成:(1) 起竟iit)1公斤按起重

12、,我计算(不足1公斤,按1公斤计算),超过计更的第量,按公斤(不足1公斤,按1公斤计W)收取续堂费;(2) 同城起返资费10元,康津3元/公斤;(3) *往1区(江浙两省)的邮件,起也资费10元,续版4元;(4) 寄往其她地区的邢怦,起重资蜷统一为15元,而续版部分.不同区域价格不同:2区的煤痴5元/公斤,3区的煤南元/公斤.4区的续宣10元/公斤.编写程序,从S!盘的入就件的目的区域蜗码和变量,计算并附出运费,计算结柒保顼2位小数.提示:续重部分不足一公斤.按1公斤计算.因此,如包良重量公斤:1公斤为起宝.刎余的公斤算续重,不足1公斤按1公斤计算.公斤折合慎重为2公斤,如果也应大于0、区域峭

13、号不能超出0-4的范围.程序运行结果示例1:4. Price;程序运行结果示例2:5. *ErrornAreaPrice.# 人格式:用逗号分隔的两个数字,第一个表示区域,第二个是函;Fdf即尔价格的检出格式:Pns.%n-区域错误的提示信息:ErrorinArean# 入神倒,IttbIHIi# includeO# icIudeOintmain()(intarea;floatweight,price.1.x2:scanf(Sd,%f,&area.Weight);if(weight0&area=4)switch(area)case(0):price=x1*1O+x2*3:break;cased

14、):price=1*10+x2*4:break:case(2):pric=1*15+x2*5;break;case(3):price=1*15+2*;break;Ilcase(4):price=1*15+2*10jbreak:Iprintf(Price:n-.price);)elseprintf(ErrorinArean);printf(Price:n);)return0:数据区间判断(5分)目内叁,从破盘籁入一个型的正gn(已知:(Kn10000,摘写程序判断落在那个区问,如JR用户的人的效Jg不在指立的花国里,程序输出-error!.例如,瞬入265,则该数鼠于区间Ia)-999程序运行结

15、果示例1:Pleaseenterther%mtxr:25632563:1000-9999程序运行结果示例2:PleaseenterIhenunbr:156/156:I(XA999程序运行结果示例3:Pleaseenterthe11utbjr:3636:10-99程序运行结果示例4:Pleaseenterthe11u11br:33:0-9程序运行结果示例51Pleaseentertrxmbjr:1823/error!w即g渝人提示信息:tPIcascenterthenurbcrn*输出的区间判断:d:1000-999911%d:100-99911-%d:10-99n,*%d:0-9n治入错误提示

16、信息:“f3!n-入修例,出制加#includeIfincIudeOintmain()(intx;printf(Pleaseenterthenumber:n);scanf(%d1&x);if(x=1000&x=0Ux=10&x=100&x=999)printf(%d:100-999n,x);elseprintf(error!n);return0:)计算一元二次方程的根(3分)目内喜,根娓下面给出的求根公式,计算并输出一元二次方程1r+c=()的两个实,要求箱确到小敷点后4位其中*btc的值由用户从键盘侑入.如祟用户伯入的系数不满足求卖粮的要求,蛭出错误提示Xrror!”.-bb2-4acb,y

17、b2-Aac2=2a2a2a程序运行结果示例1:PIcascentertheCoCfficicnt,ab.c:x1=x2=程序运行结果示例2;Pleaseenterthecoefficients8.b.:2.6.14x1=x2=程序运行结果示例3;Plcascenterthecoefficientsab.c,2.1.6w,error!人格式:%f.%f.%f即尔输入提示信息:Pleaseenterthecoefficientsa.b.cAn输出格式:1=x2=%11摘入错误提示信erer!n-A棒例,出律例,# incIude# includeintmain()(b,c:n):floata.b

18、.c,x1,x2.m:printf(Pleaseenterthecoefficientsa.scanf(-f,%f,&b,&c);m=b*b-4*a*c:if(11KO)printf(error!n):)elsex1=(-b+sqrt(m)(2*a);x2=(-b-sqrt(m)(2*a);printf(x1=,2=%n,x1,x2):)return0:AXIJ.6位密码输入检测(3分)目内加从微盘输入6位仅由It字09也成的密码.用户每输入一个电码并按回车城后,程序妗出判断:MJR是数字,则原样地出该奴字,并提示用户目前已经输入了几位密封,同时维续输入下一位密码;否则,程序堤示crror,并

19、让用户维埃输入下一位定码,直到用户输入的宓码全部是数字为止.以下为程序的运行结果示例:Inputyourpassord.11.youhaveenter1-bit5nubcr66.youMveenter2-bitnwrbraerrordYerror444.youhaveenter3-bitsnurber66,youhaveenter4-bit三nuber88.youhaveenter5-bitnubr22.youhaveenter6-bit三11uber入*效宇宇符输入格式:cIftlMCAt沧入提示信息:Inputyourpassword:n如果5ft入的是故字.瑜出格式为:c.youhave

20、enter-btsnunbcr11如果输入的不是数字,油出提示信息IFrrorVr出样9h#includeOintmain()(chara;inti=0;printf(Inputyourpassword:n):whiIe(i=48&a=57)(printf(Sc.youhaveenter%d-bitsnumbern.a.+i);)elseprintf(errorn):getchar():)return0;判断一个整型数据有几位(4分)日内加从Sr盘嫁入一个整型数据编写程序判联该整鼓共有几位.例如,从8!盘i入整8U6644.该整数共有5位.程序运行结果示例1;Plcascenterthe11u

21、nbsr:2112521125:5bits程序运行SS果示例2:Pleaseenterthenunbcr:72234/-12234.5bits入格式:%r出播式iIfi入提示信息:PIeaSeenterthenuberin判断该整Bl共有几位:Mbit三11*AM倒,出律倒,#includeOintmain()intx,y,n;printf(Pleaseenterthenumber:n);SCanf(Fd”,&x);n=:for(y=1:x/=10;y+);printf(Sd:Wbitsn,n,y);return0:检测输入数据中奇数和偶数的个数(4分)目内加从微盘籁入一系列JE做,饰入T表示

22、临入结束(-1本身不是摘入的数据).海写程序判断洽入敷抠中IWit的个如果用户输入的第一个数据就Sbl.则程序治出“。VC八”。否则,用户每嫁入一个数格,油出该数旭是奇数还是倡数,H到用户瞬入T为止,分别统计用户输入致密中奇效和儒数的个数.程序运行错祟示例1:Plea三eenterthenu11ber:11:0crrn用户输入的第一个数?S就是-1,编出格式Iov!n奇数的喊出格式:Sd.oddr供Sl的端出格式:“tevenn帕入敬?8中奇数的个数姣计:Thetotalninterofoddisd11*摘入敢空中低敛的个敛统计;ThetotalnwrtcrofevenisSdnWW9I出拌例

23、#includeOintmain()ints.odd=0,even=0;printf(Pleaseenterthenumber:n);doscanf(Fd”.&s):if(s=-1&odd=0&even=0)printf(over!n);elseif(s%2!=0&s!=-1)(printf(%d:oddn*,s);odd+;)elseif(s%2=0)printf(%d:evenn-,s);even+;)elseeven+=0;whiIe(s!=-1);printf(ThetotaInumberofoddisdn,odd);printf(ThetotalnumberofevenisSdn.e

24、ven):return0;计算球的反弹高度(4分)自内叁,一个球从ICO来高度自由落下,每次落地后反跳回原高度的一半.再落下井反附.求它在,6次和缁IOjfcS地时.分Sg过了多少米次齐10次反舞分要求计算结果保留到小效点后3位,用户从建盘输入出要计费的第n次n=15).input:545times:WHte累示a2,inputIOir10times入M:Jib*式,反弹次数:dnwAn第。次反弹共经过多少米:f.3fr第。次的反弹高度:、.3fn输入提示信息:Jnout:MtMHh出样倒,#includeOintmain()(inttime,i:floateach=0.s三n=0,h=100

25、:printf(inputrn);scanf(d,&time);for(i=0;itime;i+)sum+=h:h=2:each=h;sum+=each;printf(dtimes:n.time);printf(S.3fn*,sum-each);printf(S.3fn,each):return0;第六章程序改错(5分)下面代码的功能是将百分制成装特换为5分制成纹,具体功里是:加果用户人的墨非法字种不在HE偈内的M(融入的H*1O2.-45).RIW序出4,intscore;5.charerd;6.printf(*Peaseinputscore*);7.sca11f(d*.&score);8.

26、if(score100)9.printf(Inputrror!n)10.elseIf(score=W)11grade三A*;12ClSCif(score三80)13grad=B,;14.elseif(score=70)15.grade三C;16elseif(score三60)17.gr皿=D:18.else19.grade=E:20printf(*gradc:%cn*,grade):21return0:遑行”示例1,Pleaseinputscore8Inputerror!Pleaseinputscore-12,Inputerror!PIeaseinputscore230Inputerror!P

27、leaseinputscore.92gradeA叫途向果示仅2,Pleaseinputscore.B8gradeB3Pleaseinputscore73gradeCU遂行第累示例4,Pleaseinputscore65gradeDPleaseinputscore.27gradeE入MA:w出格式,洎人提示信息:,Plcascinputscore:nM输入错误提示信息:Inputrror!11,愉出格式IZrade:AnMeM前面有一个空IaMtMMh出梯倒#includeintmain()intscore,m=0;chargrade;printf(Pleaseinputscore:nn);do

28、m=scanf(%d.&score):gtchar();if(m!=1score100)printf(Inputerror!nPleaseinputscore:n):m=0:while(m=0);if(score=90)grade=A:elseif(score=80)grade=B,:elseif(score=70)grade=,C,;elseif(score=60)grade=D;elsegrade=,E;printf(grade:cn.grade):return0:编程计算a+aa+aaa+aaa(n个a)的值(4分)日内容8货程计算aaaaaaWa(n个的值,n和R的值由钻盘输入.例如,

29、当44a=2.表示计算222+222,2222的值,程序运行结果示例:Inputa.n:2.4GW246B入格式:HM(先的入a.后龄!入Q输入提示信息I-InoUt矶n:if输出格式:s5FMdnMdn#incIudeOintmain()(inta.n,sum=0,tem=1:printf(Inputa.n:n):scanf(%d.%d.Sa.4n);inti;for(i=1;i=n;i+)(sum+=(a*tem);tem=tm*10*1;)printf(sum=Sdn,sum);return0:搬砖问邈(4分)目内容,36块玲,34人排,男栩4.女报3,两个小孩拾一块储,要求一次施完,问

30、男人、女人和小孩各箱多少人请用究举法编程求解。程序的运行结祟示例:Inen=3.ocnen3,childre11=30mend.stmcn,d.children=dno人梯倒,#includeOintmain()intwoman,man,kid;for(wxnan=0;wocnan=12;woman+)for(man=0:mannth):switch(month)case1:case3:case5:case 7:case 8:case10:case12:printf(31daysn*);break;case4:case6:case9:case11:printf(,30daysnw);break

31、;case2:if(isleap(year)(printf(29daysn):break;IelsePrirTtf(28daysn,);break;)default:printf(Inputerror!n):)return0:Iintisleap(intn)if(n%100!=0&n%4=0n%400=0)return1;elsereturn0;第七章递归法计算游戏人员的年龄(4分)目内容:有n个人囹坐在一起,问第n个人多大年纪,他说比第11-1个人大2岁;问第n-1个人,钝说比第n-2个人大2岁.问第3个人.他说比第2个人大2岁;问第2个人.他说比第1个人大2岁.第1个人说自己10岁,问第。

32、个人多大年纪.*fi*SUnalCnedIntCoaputAc(uncndIntn);提示:递归公式(=D(1)10a&e()=Iage(-1)+2入:%r出播式I-Thepersoneaea%un# 入神例1,5# 出样例1,ThepersonsaeiS18Wtt210/1tmwM2Th_preon8_ee_i8_28注意:为避免出现格式精误.请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!(注意:在治出中,“丁代女空格,如果五技将上段示例粘贴到代码中,应将其替换为空格.)# includeOunsignedintAge(unsignedintage);intmain()unsi

33、gnedintn=0;scanf(ud.&n);printf(Thepersonsageis%un.Age(n):return0:unsignedintAge(unsignedint)(if(n=1)return10;elsereturnAge(n-1)+2;)魔术师猜数(4分)目内容:在一种空内互动游戏中,魔术师要卷位观众心里想一个三位数abc(.b.C分别是百位、十位和个位敛字),然后魔术师让观众心中记下act、ba%bca、cab.Cba五个被以及这5个数的和值.只要观众说出这个和是多少,则魔术帏一定能猜出观众心里想的原数abc是多少.例如.观众甲说他计算的和值是1999,则魔术师立即说

34、出他想的数是443,而观众乙说他计算的和值是1998,则魔木麻说:你算错了!”.语懈程模抱这个数字魔术游戏,要求用函Bl实现,a*S8i11lhi(i11t)(其中那代刘及众计旗第人就:W却*式,观众计为精深,魔术传给出的结论:*ThesunyoMlCuIatediswronerisdr入律例1,1998wfTKesunyoucalculatediswo11r!*M2,1999出神例2,Th_fXnbr_i8_443注意:为i免出现格式错误.请直接拷贝粘贴上语给出的始入、愉冬提示信息和格式控制字符串!(注意:在拍出中,:代炭空格,如果直技将上段示例站M到代码中,应将其替换为空格.)#inclu

35、deOintMagic(intm);intmain()(intm;scanf(Sd.&m);if(Magic(m)printf(Thenumberis%dn,Magic(m):elseprintf(Thesumyoucalculatediswrong!n):return0:intMagicCintn)(intm;inta.b.c:for(m=100;m1000;m+)a=m100;c=m%10:b=(m-a*100)10;if(a*122+b*212+c*221)=n)returnm;)return0;寻找中位数(4分)目内加蛙写一个函数返回三个整效中的中间数.函数原型:intm1d(.nt.

36、intb.intc);功能是返回a.b.C三数中大小位于中间的一个SU入%dd%d“出松大,Theresultisdn入*MNh12618 出警倒1,Th_result_is_12 入棒例2,T7-2 出警例2.Th_re$ult_i$_-2注意:为重免出现格式12误,请JI接拷贝粘贴上套给出的输入、输出极示信息和格式控泵字符串!(注意:在侬出中,“”代表空格.如祟连接将上段示例玷贴到代码中,应将其带接为空格.) includeOintmid(inta.intb,intc);intmain()inta.b.c;scanf(-%d%d%d.&a,&b.&c);printf(Theresultis%dn,mid(a,b,c):return0:intmid(inta.intb.intc)intj,irt:intm3=(a.b.c);for(i=0;i2;i+)for(j=i:jmi)t=mj:mj=mi:mi=t:Ireturn111:还原算术表达式(4分)日内城与程序求以下算式中XYZ的值.XYZ+YZZ532入g出楂式,-X=M1Y=MZ=MYn

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号