c语言习题及答案爱课程mooc_第1页
c语言习题及答案爱课程mooc_第2页
c语言习题及答案爱课程mooc_第3页
c语言习题及答案爱课程mooc_第4页
c语言习题及答案爱课程mooc_第5页
已阅读5页,还剩95页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章includestdio、h>{printfhelloworldn");}无输出提示信息:"helloworld!\n"dintmain{printf("helloworld!\n");}}输出样例:息:lloworldnhellohitnhelloeveryonen输入样例:输出样例:orldhitloeveryoneintmain{printf("helloworld!\n");printf("hellohit!\n");printf("helloeveryone!\n");}}计算半圆弧的周长及半圆面积(3分)无的面积输出格式:"Area=%f\n"半圆弧的周长输出格式:"circumference=%f\n"输入样例:intmain{printfAreafn,R*R*PI/2);printf("circumference=%f\n",2*R*PI/2);}}无输出格式:"volume=%、3f\n"输入样例:输出样例:intmain{}pleaseinputxandy:输入提示信息:"pleaseinputxandy:\n"result%、2f\n"输入样例:输出样例:intmain{printf("pleaseinputxandy:\n");floatx,y;scanf("%f,%f",&x,&y);wy}}y1b输入提示信息:"Inputx:\n"逆序数输出格式:"y=%d\n"逆序数拆分后的输出格式:"a=%d,b=%d\n"平方与的输出格式:"result=%d\n"输入样例:输出样例:intmain{printf("Inputx:\n");scanf("%d",&x);{x}inta,b,c,d;dx%10;printf("y=%d\n",d*1000+c*100+b*10+a);printf("a=%d,b=%d\n",d*10+c,b*10+a);printf("result=%d\n",(b*10+a)*(b*10+a)+(d*10+c)*(d*10+c));}}大写(如:Tom)。同时输出组成该英文名的所有英文字符在26个英文字母中的序号。例:nputyourEnglishnametomt0c输入提示信息:"inputyourEnglishname:\n"写的英文姓名的输出格式:"%c%c%c\n"输入样例:输出样例:intmain{printf("inputyourEnglishname:\n");chara,b,c;scanf("%c%c%c",&a,&b,&c);printf("%c%c%c\n",a+'A'-'a',b,c);printf("%c:%d\n",a,a-'a'+1);printf("%c:%d\n",b,b-'a'+1);printf("%c:%d\n",c,c-'a'+1);}}计算体指数(3分)ightweight=140nputweightheightnheightghtdn输入样例:输出样例:intmain{printf("inputweight,height:\n");scanf("%d,%d",&x,&y);printf("weight=%d\n",x*2);}sum=12,sub=12,multi=0thesecondoperateriszero!sum=-27,sub=-19,multi=92dev=5、75,mod=-3输入提示信息:"pleaseinputn:\n"数的输出格式:"%d,%d\n"法、减法、乘法的输出格式:"sum=%d,sub=%d,multi=%d\n"输入样例:输出样例:{mxyprintf("pleaseinputn:\n");scanf("%d",&m);y=m%100;printf("%d,%d\n",x,y);printf("sum=%d,sub=%d,multi=%d\n",x+y,x-y,x*y);ify{}printf("thesecondoperateriszero!\n");}苏,浙江内北京,天津,河北,,河南,安微,湖南,福建,广东,编写程序,从键盘输入邮件的目的区域编码与重量,计算并输出运费,计算结果保留2位小数。计Price:%5、2f\n"输入样例:输出样例:#include<math、h>intmain{floatweight,price,x1,x2;scanf("%d,%f",&area,&weight);if(weight<=1){}x2=ceil(weight-1);}if(area>0&&area<=4){switchareacase(0):price=x1*10+x2*3;break;case(1):price=x1*10+x2*4;break;case(2):price=x1*15+x2*5;break;ricexxbreakcase(4):price=x1*15+x2*10;break;}}else{printf("ErrorinArea\n");rintfPricen}}}r2563:1000-9999rr6:10-99r3:0-9r输入提示信息:"Pleaseenterthenumber:\n"间判断:d0-9999\n"d999\n"d9\n"dn示信息:"error!\n"输入样例:输出样例:intmain{printf("Pleaseenterthenumber:\n");scanf("%d",&x);输入样例:if(x>=1000&&x<=9999)printf("%d:1000-9999\n",x);elseif(x>=0&&x<=9)printf("%d:0-9\n",x);elseif(x>=10&&x<=99)printf("%d:10-99\n",x);elseif(x>=100&&x<=999)printf("%d:100-999\n",x);elseprintf("error!\n");}}c↙输入提示信息:"Pleaseenterthecoefficientsa,b,c:\n"errorn"4,youhaveenter3-bitsnumber输出样例:intmain{floata,b,c,x1,x2,m;printf("Pleaseenterthecoefficientsa,b,c:\n");scanff%f,%f",&a,&b,&c);m=b*b-4*a*c;ifm{printferror\n");}x1=(-b+sqrt(m))/(2*a);x2=(-b-sqrt(m))/(2*a);}}例:orduhaveenterbitsnumber6,youhaveenter2-bitsnumberuhaveenterbitsnumberyouhaveenterbitsnumberyouhaveenterbitsnumber:"%c"输入提示信息:"Inputyourpassword:\n"如果输入的就是数字,输出格式为:"%c,youhaveenter%d-bitsnumber\n"不就是数字,输出提示信息:"error\n"输入样例:输出样例:}}i})e<=v888e>=SL(}{{5↙21125:5bitsr-12234:5bits输入提示信息:"Pleaseenterthenumber:\n"判断该整数共有几位:"%d:%dbits\n"输入样例:输出样例:intmain(){printf("Pleaseenterthenumber:\n");scanf("%d",&x);for(y=1;x/=10;y++);printf("%d:%dbits\n",n,y);}}检测输入数据中奇数与偶数的个数(4分)是-1,则程序输出"over!"。否则。用户每输入一个数据,输出该数据就是奇数还就是偶数,直到用户输入-1为止,分别rThetotalnumberofoddis4Thetotalnumberofevenis2rrofoddisofevenis输入提示信息:"Pleaseenterthenumber:\n"第一个数据就就是-1,输出格式:"over!\n":"%d:odd\n"格式:"%d:even\n"输入数据中奇数的个数统计:"Thetotalnumberofoddis%d\n"输入数据中偶数的个数统计:"Thetotalnumberofevenis%d\n"输入样例:输出样例:intmain(){ints,odd=0,even=0;printf("Pleaseenterthenumber:\n");scanf("%d",&s);if(s==-1&&odd==0&&even==0)printf("over!\n");elseif(s%2!=0&&s!=-1){printf("%d:odd\n",s);odd++;}elseif(s%2==0){printf("%d:even\n",s);even++;}elseeven+=0;}while(s!=-1);printf("Thetotalnumberofoddis%d\n",odd);printf("Thetotalnumberofevenis%d\n",even);}}es反弹次数:"%dtimes:\n"utn输入样例:输出样例:intmain(){imeifloateach=0,sum=0,h=100;printf("input:\n");scanf("%d",&time);for(i=0;i<time;i++){sum+=h;achhsum+=each;}printf("%dtimes:\n",time);}程序存在错误,请将其修改正确。并按照下面给出的运行示例检查程序。include<stdio、h>3.{score11.grade='A’;adeBadeCadeDadeEeaseinputscoreeaseinputscorescoreeaseinputscoregrade:Aeaseinputscoregrade:Beaseinputscoregrade:Ceaseinputscoregrade:Deaseinputscoregrade:E输入提示信息:"Pleaseinputscore:\n"输入错误提示信息:"Inputerror!\n"grade%c\n"(注意:%c前面有一个空格)输入样例:输出样例:}a程序运行结果示例:um输入样例:输入样例:输出样例:intmain(){inta,n,sum=0,tem=1;printf("Inputa,n:\n");scanf("%d,%d",&a,&n);for(i=1;i<=n;i++){sum+=(a*tem);tem=tem*10+1;}printf("sum=%d\n",sum);}}序的运行结果示例:menwomenchildren30Inputyear,month:输出样例:intmain(){intwoman,man,kid;for(woman=0;woman<=12;woman++){for(man=0;man<=9;man++){kid=36-man-woman;anwomankidprintf("men=%d,women=%d,children=%d\n",man,woman,kid);}}}}编程输出某年某月有多少天(考虑闰年)。(5分)Inputyear,month:015,3↙sInputyear,month:015,4↙sInputyear,month:016,2↙Inputyear,month:2015,13↙rror息:"Inputyear,month:\n"示信息:"Inputerror!\n"snsnsnintisleap(intn);intmain(){printfInputyearmonthn;scanf("%d,%d",&year,&month);switch(month){case1:casecaseaseasecase0:case12:printf("31days\n");break;ecaseasecase11:printf("30days\n");break;case2:if(isleap(year)){printf("29days\n");break;}else{printf("28days\n");break;}default:printf("Inputerror!\n");}}intisleap(intn){ifnn|n%400==0)eturn}递归法计算游戏人员的年龄(4分)"Theperson'sageis%u\n"The_person's_age_is_18The_person's_age_is_28unsignedintAge(unsignedintage);intmain(){unsignedintn=0;scanf("%ud",&n);printf("Theperson'sageis%u\n",Age(n));}unsignedintAge(unsignedintn){ifnreturn10;returnAge(n-1)+2;}}魔术师猜数(4分)观众计算错误,魔术师给出的结论:"Thesumyoucalculatediswrong!\n"观众计算正确,魔术师给出的结论:"Thenumberis%d\n"alculatediswrongThe_number_is_443请直接拷贝粘贴上面给出的输入、输出提示信息与格式控制字符串!intMagic(intm);intmain(){scanf("%d",&m);if(Magic(m))printf("Thenumberis%d\n",Magic(m));printf("Thesumyoucalculatediswrong!\n");}intMagic(intn){for(m=100;m<1000;m++){c=m%10;if((a*122+b*212+c*221)==n)nm}}}"%d%d%d""Theresultis%d\n"The_result_is_12Theresultis_-2与格式控制字符串!intmid(inta,intb,intc);intmain(){scanf("%d%d%d",&a,&b,&c);printf("Theresultis%d\n",mid(a,b,c));}intmid(inta,intb,intc){intm[3]={a,b,c};for(i=0;i<2;i++)for(j=i;j<=2;j++)if(m[j]>m[i])tmj];i}returnm}}还原算术表达式(4分)输入样例:输出样例:XYZintmid(inta,intb,intc);intmain(){for(x=0;x<9;x++)for(y=0;y<9;y++)for(z=0;z<9;z++)if((x*100+y*110+z*12)==532)printfX%d,Y=%d,Z=%d\n",x,y,z);}计算礼炮声响次数(4分)次,C舰每隔7秒放1次。假设各炮手对时间的掌握非常准确,请编程计算观众总共可以听到几次礼炮声。输入样例:输出样例:!intmain{tnfor(t=0;t<=140;t++){if(t%5==0&&t<=21*5){ntinue}if(t%6==0&&t<=21*6){ntinue}if(t%7==0&&t<=21*7){ntinue}}printf("n=%d",n);兔子生崽问题(4分)假设一对小兔的成熟期就是一个月,即一个月可长成成兔,那么如果每对成兔每个月都可以生一对小兔,一对新生的小兔从第二个月起就开始生兔子,试问从一对兔子开始繁殖,一年以后可有多少对兔子(即当年12月份总计有多少对兔子,含成兔与小兔)?请编程求解该问题。d"输入样例:输出样例:intcreat(intn);intmain{alifor(i=1;i<=12;i++)printf("%4d",creat(i+1));printfnTotaldncreat3));}intcreat(intn){if(n==1||n==2)eturnreturncreat(n-1)+creat(n-2);抓交通肇事犯(4分)一辆卡车违犯交通规则,撞人后逃跑。现场有三人目击事件,但都没记住车号,只记下车号的一些特征。甲说:牌照的前两位数字就是相同的;乙说:牌照的后两位数字就是相同的,但与前两位不同;丙就是位数学家,她说:四位的车号刚好就是一个整数的平方。现在请根据以上线索帮助警方找出车号以便尽快破案。k=1000*i+100*i+10*j+j格式:无输入样例:输出样例:intmain{intab,c,d,i,j;for(i=31;i<100;i++){j=i*i;dj0;if(a==b&&c==d&&a!=c)printf("k=%d,m=%d\n",j,i);}}}检验并打印幻方矩阵。(4分)如果就是幻方矩阵,输出提示信息:"Itisamagicsquare!\n"输出:"%4d"(换行使用"\n")如果不就是幻方矩阵,输出提示信息:"Itisnotamagicsquare!\n"23_5_7_14_16_13_20_22tisamagicsquare**17**24***1**8**15**23***5***7**14**16***4***6**13**20**22**10**12**19**21***3**11**18**25***2***91_0_1_6_13_1_1_1_11_1_1_1_19_1_7_1_1Itisnotamagicsquare!!intjudge();jintm[5][5]={0};intmain{for(i=0;i<5;i++)for(j=0;j<5;j++)scanf("%d",&m[i][j]);if(judge()){printf("Itisamagicsquare!\n");for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%4d",m[i][j]);rintfn}}printf("Itisnotamagicsquare!\n");}intjudge(){intlr0;ints[5]={0},t[5]={0};for(i=0;i<5;i++)for(j=0;j<5;j++){s[i]+=m[i][j];t[j]+=m[i][j];if(i==j)l+=m[i][j];if(i+j==4)r+=m[i][j];}if(l!=r)return0;fori;i<5;i++)if(s[i]!=l||t[i]!=l)return0;return}ISBN识别码判断(4分)xxN位数下:BN62-4↙62-7↙62-4请直接拷贝粘贴上面给出的输入、输出提示信息与格式控制字符串!输入样例:输入样例:intij=0;intmain{chars[14],d[14];intm[9]={0};intn0,l=0;getssns-48;for(i=0;s[i]!='\0';i++){if(s[i]!='-'){sij++;}}for(j=1;j<=9;j++){//printf("%4d",m[j-1]-48);l+=(m[j-1]-48)*j;}flnintfRight{strncpy(d,s,12);d[12]=l+48;d[13]='\0';printfs",d);}摘苹果(4分)100110130200140150156187197149↙49021010215314711013018288113↙6入包括两行数据:注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息与格式控制字符串!intmain(){intm[10]={0};ntijnfor(i=0;i<10;i++)scanf("%d",&m[i]);scanf("%d",&n);for(i=0;i<10;i++)if(m[i]<=n+30)j++;printfdj;}}求最大素数(4分)输入样例:输出样例:intjudge(intn);intmain(){intm;intj,l=0,sum=0;for(j=500;j>0;j--){if(judge(j))}for(j=0;j<10;j++){sum+=m[j];printf("%6d",m[j]);}printf("\nsum=%d\n",sum);}intjudge(intn){for(i=2;i<=sqrt((double)n);i++){ifn%i==0)}return}}字符串逆序(4分)字符数组作函数参数编程,利用一个数组实现字符串(允许输入带空格的字符串)的逆序存放。要求如下:evoidInversecharstr输入提示信息:"Inputastring:\n"示信息:"Inversedresults:\n"输入样例:输出样例:#definemaxn80voidInverse(charstr[]);intmain(){charstr[maxn];printf("Inputastring:\n");getsstrprintfInversedresultsn");}voidInverse(charstr[]){charch;intlen=strlen(str),i;for(i=0;i<len/2;i++){chstr[i];str[i]=str[len-i-1];str[len-i-1]=ch;}}第十章水手分椰子(4分)输入样例:输出样例:!check(intn){for(i=0;i<5;i++){ifn=1)}return}intmain{for(i=6;i<10000;i++){fchecki{printf("y=%d\n",i);}}}找最值(4分)intFindMaxintnumintnintpMaxPospMaxPos最大值所在的下标程序运行结果示例:234592891278↙Max92,Position=4,Min=-1,Position=0提示信息:"Input10numbers:\n"输出结果:"Max=%d,Position=%d,Min=%d,Position=%d\n"输入样例:输出样例:!intFindMax(intnum[],intn,int*pMaxPos);intFindMin(intnum[],intn,int*pMinPos);intnum[10];inti,maxdex=0,mindex=0;intmain(){maxminprintf("Input10numbers:\n");for(i=0;i<10;i++)scanf("%d",&num[i]);max=FindMax(num,10,&m);min=FindMin(num,10,&n);printf("Max=%d,Position=%d,Min=%d,Position=%d\n",m,max,n,min);}intFindMax(intnum[],intn,int*pMaxPos){*pMaxPos=num[0];for(i=1;i<n;i++)if(num[i]>*pMaxPos){*pMaxPos=num[i];}xdex}intFindMin(intnum[],intn,int*pMinPos){*pMinPos=num[0];for(i=1;i<n;i++)if(num[i]<*pMinPos){*pMinPos=num[i];}urnmindex}}星期查找(4分)任意输入英文的星期几,通过查找如图所示的星期表,输出其对应的数字,若查到表尾,仍未找到,则输出错误提示信息。目所求。is:"Pleaseenterastring:\n"了,输出:"%sis%d\n"Notfoundn"输入样例:输出样例:#definemax50intmain{charweek[7][10]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};intiflag0;charfind[max];printf("Pleaseenterastring:\n");gets(find);for(i=0;i<7;i++)if(strcmp(week[i],find)==0){flag=1;}ifflag)printf("Notfound!\n");printf("%sis%d\n",find,i);}}杨辉三角形(4分)1111113614111111112345613614201516输入提示信息:"Inputn(n<=10):\n"式:"%4d""\n"输入样例:输出样例:!intmain{inti,j,a[10][10];printf("Inputn(n<=10):\n");scanf("%d",&n);for(i=0;i<n;i++)for(j=0;j<n;j++){ai][0]=1;ai[i]=1;}for(i=2;i<n;i++)for(j=1;j<=i-1;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=0;i<n;i++){for(j=0;j<=i;j++)printf("%4d",a[i][j]);rintfn}}找数组最值(4分)voidInputArray(int*p,intm,intn);↙2↙ol提示信息:"Inputm,n:\n"数组维数:"%d,%d"提示信息:"Input%d*%darray:\n""%d""max=%d,row=%d,col=%d\n"输入样例:输出样例:voidInputArray(int(*p)[10],intm,intn);intFindMax(int(*p)[10],intm,intn,int*pRow,int*pCol);jintnum[10][10];intmain{tmaxintpRowrowint*pCol=&col;printf("Inputm,n:\n");scanf("%d,%d",&m,&n);printf("Input%d*%darray:\n",m,n);InputArray(num,m,n);max=FindMax(num,m,n,pRow,pCol);printf("max=%d,row=%d,col=%d\n",max,row,col);}intFindMax(int(*p)[10],intm,intn,int*pRow,int*pCol){inttem=p[0][0];for(i=0;i<m;i++)for(j=0;j<n;j++)if(p[i][j]>tem){tem=p[i][j];}}voidInputArray(int(*p)[10],intm,intn){for(i=0;i<m;i++)for(j=0;j<n;j++)scanf("%d",&p[i][j]);}}n行n-1遍检查操作,在每一遍执行时,对数组中剩余的尚未排好序的元较,若排在后面的数小于排在前面的数,则交换其位置,这样每一遍操作中都将参与比较的数中Sortingresults:0123456789输入数据个数提示:"Inputn:"输入数据提示:"Input%dnumbers:"输出提示:"Sortingresults:":"%4d"输入样例:输出样例:jintnum[10000];voidS*m,int*n);intmain{printf("Inputn:");scanf("%d",&n);printf("Input%dnumbers:",n);for(i=0;i<n;i++)scanf("%d",&num[i]);for(i=0;i<n-1;i++)for(j=i;j<n;j++)if(num[j]<num[i])S[j],&num[i]);printf("Sortingresults:");for(i=0;i<n;i++)printf("%4d",num[i]);}voidS*m,int*n){tem=*m;}}删除字符串中与某字符相同的字符(4分)行结果示例:dgetchar()函数输入字符串的提示信息:"Inputastring:\n"个字符的提示信息:"Inputacharacter:\n"出格式:"Results:%s\n"输入样例:输出样例:#definemaxn1000voiddelete_string(charstr[],charch);intmain{charm[maxn],l[maxn];charn;printf("Inputastring:\n");gets(m);printf("Inputacharacter:\n");rdelete_string(m,n);printf("Results:%s\n",m);}voiddelete_string(charstr[],charch){for(i=j=0;str[i]!='\0';i++)ifstri=ch)str[j++]=str[i];strj='\0';}}求最大数与最小数的最大公约数(4分)↙输入提示信息:"Input10numbers:\n":"maxNum=%d\n":"minNum=%d\n":"%d"输入样例:输出样例:#definemaxn10voidS*m,int*n);intgcd(intx,inty);intijintnum[maxn];intmain{maxminprintf("Input10numbers:\n");for(i=0;i<10;i++)scanf("%d",&num[i]);for(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论