版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
哈工大C語言程序設(shè)計精髓MOOC慕課6-12周編程題答案哈工大C語言程序設(shè)計精髓MOOC慕課6-12周編程題答案哈工大C語言程序設(shè)計精髓MOOC慕課6-12周編程題答案哈工大C語言程序設(shè)計精髓MOOC慕課6-12周編程題答案編制僅供參考審核批準生效日期地址:電話:傳真:郵編: "/*下面代碼的功能是將百分制成績轉(zhuǎn)換為5分制成績,具體功能是:如果用戶輸入的是非法字符或者不在合理區(qū)間內(nèi)的數(shù)據(jù)(例如輸入的是a,或者102,或-45等),則程序輸出Inputerror!,并允許用戶重新輸入,直到輸入合法數(shù)據(jù)為止,并將其轉(zhuǎn)換為5分制輸出。目前程序存在錯誤,請將其修改正確。并按照下面給出的運行示例檢查程序。*/#include<>#include<>intmain(){charscore[100];intflag=0,i,s;chargrade;printf(""Pleaseinputscore:\n"");while(1){flag=0;scanf(""%s"",score);for(i=0;i<strlen(score);i++){if(score[i]>='0'&&score[i]<='9'){continue;}else{flag=1;break;}}s=atoi(score);if(s<0||s>100||flag==1){printf(""Inputerror!\n"");printf(""Pleaseinputscore:\n"");continue;}else{break;}}s=atoi(score);if(s>=90){grade='A';}elseif(s>=80){grade='B';}elseif(s>=70){grade='C';}elseif(s>=60){grade='D';}else{grade='E';}printf(""grade:%c\n"",grade);return0;}" "#include<>#include<>intmain(){intn,a,i,j;doublep=0,q=0;printf(""Inputa,n:\n"");scanf(""%d,%d"",&a,&n);for(i=1;i<=n;i++){for(j=0,p=0;j<i;j++){p=p+a*pow(10,j);}q=p+q;}printf(""sum=%.0f\n"",q);return0;}" "/*n塊磚(27<n<=77),36人搬,男搬4,女搬3,兩個小孩抬一塊磚,要求一次搬完,問男人、女人和小孩各需多少人請用窮舉法編程求解,n的值要求從鍵盤輸入。輸出結(jié)果按照男人數(shù)量升序給出(見下面示例3)。程序的運行結(jié)果示例1:Inputn(27<n<=77):28↙men=0,women=4,children=32程序的運行結(jié)果示例2:Inputn(27<n<=77):36↙men=3,women=3,children=30程序的運行結(jié)果示例3:Inputn(27<n<=77):60↙men=2,women=14,children=20men=7,women=7,children=22men=12,women=0,children=24輸入提示:""Inputn(27<n<=77):\n""輸入格式:""%d""輸出格式:""men=%d,women=%d,children=%d\n""*/#include""""main(){printf(""Inputn(27<n<=77):\n"");longn,i,t,s=0;scanf(""%d"",&n);inta,b,c;for(a=0;4*a<=n;a++)for(b=0;4*a+3*b<=n;b++)for(c=0;4*a+3*b+c/2<=n;c+=2)if(4*a+3*b+c/2==n&&c%2==0&&a+b+c==36){printf(""men=%d,women=%d,children=%d\n"",a,b,c);}}" "#include<>intmain(){intyear,month,day;printf(""Inputyear,month:\n"");scanf(""%d,%d"",&year,&month);switch(month){case1:day=31;break;case2:day=28;break;case3:day=31;break;case4:day=30;break;case5:day=31;break;case6:day=30;break;case7:day=31;break;case8:day=31;break;case9:day=30;break;case10:day=31;break;case11:day=30;break;case12:day=31;break;default:day=-1;printf(""Inputerror!\n"");}if((year%4==0&&year%100!=0||year%400==0)&&month==2)day=29;if(day!=-1)printf(""%ddays\n"",day);return0;}" "#include<>unsignedintComputeAge(unsignedintn){}main(){inti,j,k,s=23,n,c,age;scanf(""%d"",&n);printf(""Theperson'sageis%u\n"",8+2*n);}" "#include<>intgys(inta,intb){intr;r=a%b;if(r==0)returnb;elsereturngys(b,r);}main(){printf(""Inputa,b:"");inta,b;scanf(""%d,%d"",&a,&b);if(a<=0||b<=0){printf(""Inputerror!\n"");}elseprintf(""%d\n"",gys(a,b));}" "#include<>intmedian(inta,intb,intc){if(a<b){if(b<c){returnb;}else{returna<cc:a;}程序運行結(jié)果示例1:Inputn:28212Repeateddigit!程序運行結(jié)果示例2:Inputn:12345↙Norepeateddigit!輸入提示:""Inputn:\n""輸入格式:""%ld""輸出格式:有重復(fù)數(shù)字,輸出信息:""Repeateddigit!\n""沒有重復(fù)數(shù)字,輸出信息:""Norepeateddigit!\n""*/#include<>intmain(){intlog[10]={0},a[100];intb,i=0,n,c,d;printf(""Inputn:\n"");scanf(""%d"",&n);while(n!=0){b=n%10;n/=10;a[i]=b;i++;}a[i]=n;intflag=0;for(c=0;c<i;c++)for(d=c+1;d<i;d++){if(a[c]==a[d]){flag=1;break;}}str[i]!=str[i+1],則計數(shù)器重新初始化為1。遍歷結(jié)束時,函數(shù)返回max的值。程序運行結(jié)果示例1:Inputastring:55↙5:5程序運行結(jié)果示例2:Inputastring:sgf222257↙2:4輸入提示信息:""Inputastring:\n""輸入格式:用gets()輸入字符串輸出格式:""%c:%d\n""*/#include<>#include<>intmain(){chara[80];intb,i,j,t=1,tl,num=0;printf(""Inputastring:\n"");gets(a);for(i=0;i<strlen(a);i++){t=1;for(j=i+1;j<strlen(a);j++){if(a[j]==a[i]){t++;}}if(i==0){tl=t;}else{if(t>tl){tl=t;num=i;}}}printf(""%c:%d\n"",a[num],tl);}" "/*從鍵盤輸入一串字符(假設(shè)字符數(shù)少于8個),以回車表示輸入結(jié)束,編程將其中的數(shù)字部分轉(zhuǎn)換為整型數(shù)并以整型的形式輸出。函數(shù)原型為intMyatoi(charstr[]);其中,形參數(shù)組str[]對應(yīng)用戶輸入的字符串,函數(shù)返回值為轉(zhuǎn)換后的整型數(shù)。解題思路的關(guān)鍵是:1)判斷字符串中的字符是否是數(shù)字字符;2)如何將數(shù)字字符轉(zhuǎn)換為其對應(yīng)的數(shù)字值;3)如何將每一個轉(zhuǎn)換后的數(shù)字值加起來形成一個整型數(shù)。程序運行結(jié)果示例1:Inputastring:7hg09y↙709程序運行結(jié)果示例2:Inputastring:9w2k7m0↙9270程序運行結(jié)果示例3:Inputastring:happy↙0輸入提示信息:""Inputastring:""輸入格式:""%7s""輸出格式:""%d\n""*/#include<>#include<>#include<>intMyatoi(charstr[]){inti,j;for(i=0,j=0;str[i]!='\0';i++){if(str[i]>='0'&&str[i]<='9'){str[j]=str[i];j++;}}str[j]='\0';returnatoi(str);}intmain(){chars[7];printf(""Inputastring:"");scanf(""%7s"",s);printf(""%d"",Myatoi(s));printf(""\n"");return0;}" "/*輸入n個整數(shù)(n從鍵盤輸入,假設(shè)n的值不超過100),按奇偶數(shù)分成兩組并輸出。輸出兩行,第一行為所有奇數(shù),第二行為所有偶數(shù),保持數(shù)據(jù)的相對順序與輸入順序相同。函數(shù)原型如下所示:voidSeperate(inta[],intn);
ame);printf(""Inputfinalscore:"");scanf(""%d"",&stu[i].finalScore);printf(""Inputclassscore:"");scanf(""%d"",&stu[i].classScore);getchar();printf(""Classcadreornot(Y/N):"");scanf(""%c"",&stu[i].work);getchar();printf(""StudentsfromtheWestornot(Y/N):"");scanf(""%c"",&stu[i].west);getchar();printf(""Inputthenumberofpublishedpapers:"");scanf(""%d"",&stu[i].paper);stu[i].scholarship=0;if(stu[i].finalScore>80&&stu[i].paper>=1)stu[i].scholarship+=8000;if(stu[i].finalScore>85&&stu[i].classScore>80)stu[i].scholarship+=4000;if(stu[i].finalScore>90)stu[i].scholarship+=2000;if(stu[i].finalScore>85&&stu[i].west=='Y')stu[i].scholarship+=1000;if(stu[i].classScore>80&&stu[i].work=='Y')stu[i].scholarship+=850;printf(""name:%s,scholarship:%d\n"",stu[i].name,stu[i].scholarship);}intts=stu[0].scholarship,k;for(i=1;i<n;i++){if(ts<stu[i].scholarship){k=i;}}printf(""%sgetthehighestscholarship%d\n"",stu[k].name,stu[k].scholarship);/*1)院士獎學金:期末平均成績高于80分(>80),并且在本學期內(nèi)發(fā)表1篇或1篇以上論文的學生每人均可獲得8000元;2)五四獎學金:期末平均成績高于85分(>85),并且班級評議成績高于80分(>80)的學生每人均可獲得4000元;3)成績優(yōu)秀獎:期末平均成績高于90分(>90)的學生每人均可獲得2000元;4)西部獎學金:期末平均成績高于85分(>85)的西部省份學生每人均可獲得1000元;5)班級貢獻獎:班級評議成績高于80分(>80)的學生干部每人均可獲得850元;*/return0;}" "/*請編寫一個簡單的23根火柴游戲程序,實現(xiàn)人跟計算機玩這個游戲的程序。為了方便程序自動評測,假設(shè)計算機移動的火柴數(shù)不是隨機的,而是將剩余的火柴根數(shù)對3求余后再加1來作為計算機每次取走的火柴數(shù)。如果計算機打算移走的火柴數(shù)等于剩下的火柴數(shù),則將計算機打算移走的火柴數(shù)減1。但是計算機不可以不取,剩下的火柴數(shù)為1時,必須取走1根火柴。假設(shè)游戲規(guī)則如下:1)游戲者開始擁有23根火柴棒;2)每個游戲者輪流移走1根、2根或3根火柴;3)誰取走最后一根火柴為失敗者。程序運行結(jié)果示例1:Gamestart!Note:themaximumnumberis3Pleaseenterthenumberofmatchesyouaremoving:5↙Thenumberyouenterediswrong,pleasere-enter!Pleaseenterthenumberofmatchesyouaremoving:3↙Thenumberofmatchesyouaremovingis:3Thenumberofmatchesleftis:20Thenumberofmatchesthathavebeenmovedbythecomputeris:3Thenumberofmatchesleftis:17Pleaseenterthenumberofmatchesyouaremoving:1↙Thenumberofmatchesyouaremovingis:1Thenumberofmatchesleftis:16Thenumberofmatchesthathavebeenmovedbythecomputeris:2Thenumberofmatchesleftis:14Pleaseenterthenumberofmatchesyouaremoving:2↙Thenumberofmatchesyouaremovingis:2Thenumberofmatchesleftis:12Thenumberofmatchesthathavebeenmovedbythecomputeris:1Thenumberofmatchesleftis:11Pleaseenterthenumberofmatchesyouaremoving:3↙Thenumberofmatchesyouaremovingis:3Thenumberofmatchesleftis:8Thenumberofmatchesthathavebeenmovedbythecomputeris:3Thenumberofmatchesleftis:5Pleaseenterthenumberofmatchesyouaremoving:1↙Thenumberofmatchesyouaremovingis:1Thenumberofmatchesleftis:4Thenumberofmatchesthathavebeenmovedbythecomputeris:2Thenumberofmatchesleftis:2Pleaseenterthenumberofmatchesyouaremoving:1↙Thenumberofmatchesyouaremovingis:1Thenumberofmatchesleftis:1Thenumberofmatchesthathavebeenmovedbythecomputeris:1Thenumberofmatchesleftis:0Congratulations!Youwon!程序運行結(jié)果示例2:332131游戲開始提示信息:""Gamestart!\n""""Note:themaximumnumberis3\n""提示游戲者輸入移動的火柴數(shù):""Pleaseenterthenumberofmatchesyouaremoving:\n""游戲者輸入錯誤數(shù)據(jù)的提示信息:""Thenumberyouenterediswrong,pleasere-enter!\n""輸入格式:""%d""輸出格式:輸出被游戲者移動的火柴數(shù):""Thenumberofmatchesyouaremovingis:%d\n""輸出被計算機移動的火柴數(shù):""Thenumberofmatchesthathavebeenmovedbythecomputeris:%d\n""輸出被游戲者或計算機移動后剩余的火柴數(shù):""Thenumberofmatchesleftis:%d\n""游戲者獲勝的輸出提示信息:""Congratulations!Youwon!\n""游戲者失敗的輸出提示信息:""I'msorry.Youlost!\n""*/#include<>main(){printf(""Gamestart!\nNote:themaximumnumberis3\n"");inti,j,k,s=23,n,c;while(1){printf(""Pleaseenterthenumberofmatchesyouaremoving:\n"");scanf(""%d"",&n);if(n<=3&&n>=1&&n<=s){;}else{printf(""Thenumberyouenterediswrong,pleasere-enter!\n"");continue;}s-=n;printf(""Thenumberofmatchesyouaremovingis:%d\nThenumberofmatchesleftis:%d\n"",n,s);if(s>0){if(s==3){c=2;}elseif(s==2){c=1;}elseif(s==1){c=1;}else{c=s%3+1;}s-=c;printf(""Thenumberofmatchesthathavebeenmovedbythecomputeris:%d\nThenumberofmatchesleftis:%d\n"",c,s);if(s==0){printf(""Congratulations!Youwon!\n"");break;}}elseif(s==0){printf(""I'msorry.Youlost!\n"");break;}}}" "/*題目內(nèi)容:請輸入星期幾的第一個字母(不區(qū)分大小寫)來判斷一下是星期幾,如果第一個字母一樣,則繼續(xù)判斷第二個字母(小寫),否則輸出“dataerror”。程序運行結(jié)果示例1:pleaseinputthefirstletterofsomeday:S↙pleaseinputsecondletter:u↙sunday程序運行結(jié)果示例2:pleaseinputthefirstletterofsomeday:F↙friday程序運行結(jié)果示例2:pleaseinputthefirstletterofsomeday:h↙dataerror第一個字母的輸入提示信息
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 社會保險管理與法律規(guī)制
- 節(jié)能減排部管理之道
- 地下電纜溝挖機租賃合同協(xié)議書
- 2025公路陸運貨物運輸合同模板
- 教育機構(gòu)行政人員聘用協(xié)議
- 川省水利事業(yè)單位聘用合同條款
- 收款銷售操作規(guī)程
- 道路改造工程監(jiān)督意見書
- 企業(yè)銷售合同管理準則
- 建筑工程公司員工招聘合同樣本
- 小學語文課堂提問有效性策略研究方案
- 物業(yè)上門維修收費標準
- ATS技術(shù)交流(新型發(fā)動機智能恒溫節(jié)能冷卻系統(tǒng))100318
- 手術(shù)區(qū)皮膚的消毒和鋪巾ppt課件
- 2022年度培訓工作總結(jié)
- 應(yīng)急照明裝置安裝施工方法
- DB34∕T 4057-2021 中小河流防汛特征水位分析規(guī)程
- E5015焊條成分設(shè)計及焊接性能分析
- 壓力管道驗收資料表格(共38頁)
- 明天會更好歌詞
- 年產(chǎn)500萬平米電極箔及6.5萬噸凈水劑建設(shè)項目可行性研究報告模板-拿地申請立項
評論
0/150
提交評論