




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、目錄第1章C語言編程4練習1.14練習1.24練習1.35第2章編程初步5習題2.15習題2.26習題2.37習題2.49第3章條件判斷10習題3.110習題3.212習題3.316習題3.418第4章循環(huán)20習題4.120習題4.221習題4.322習題4.422習題4.524第5章數(shù)組26習題5.126習題5.2281習題5.329習題5.430習題5.532第6章字符串和文本的應(yīng)用34習題6.134習題6.241習題6.343習題6.444第7章指針47習題7.147習題7.249習題7.351習題7.452第8章程序的構(gòu)造54習題8.154習題8.255習題8.357習題8.460第9
2、章函數(shù)再探65習題9.165習題9.266習題9.369習題9.471第10章基本輸入輸出操作722習題10.172習題10.273習題10.375習題10.476第11章構(gòu)造化數(shù)據(jù)78習題11.178習題11.282習題11.386習題11.491習題11.595第12章辦理文件99習題12.199習題12.2100習題12.3104習題12.4105第13章支持功能110習題13.1110習題13.2111習題13.31123C語言入門經(jīng)典(第4版)課后練習參照答案第1章C語言編程練習1.1編寫一個程序,用兩個printf()語句分別輸出自己的名字和地點。#includeintmain(v
3、oid)printf(姓名:小獅子n);printf(地點:月亮之上n);return0;練習1.2將上一個練習改正成全部的輸出只用一個printf()語句。#includeintmain(void)printf(姓名:小獅子n地點:月亮之上n);return0;4練習1.3編寫一個程序,輸出以下文本,格式以下所示:Itsfreezinginhere,hesaidcoldly.#includeintmain(void)printf(Itsfreezinginhere,hesaidcoldly.n);return0;第2章編程初步習題2.1編寫一個程序,提示用戶用英寸輸入一個距離,此后將該距離值
4、輸出為碼、英尺和英寸的形式。#include/*1碼=3英尺=36英寸*/intmain()floatlen_inch=0.0f;/英寸floatlen_foot=0.0f;/英尺floatlen_yard=0.0f;/碼5提示用戶用英寸輸入一個距離printf(請用英寸輸入一個距離:);scanf(%f,&len_inch);計算英尺len_foot=len_inch/12;計算碼len_yard=len_foot/3;輸出計算后的結(jié)果printf(%.2f英寸=%.2f英尺=%.2f碼n,len_inch,len_foot,len_yard);return0;習題2.2編寫一個程序,提示用
5、戶用英尺和英寸輸入一個房間的長和寬,然后計算并輸出頭積,單位是平方碼,精度為小數(shù)點后兩位數(shù)。#includeintmain()6floatlength_in_foot=0.0f;/房間的寬度單位英尺floatwidth_in_inch=0.0f;/房間的寬度單位英寸floatarea_in_yard=0.0f;/房間的面積單位平方碼提示用戶輸入房間的長度printf(請輸入房間的長度(單位:foot):);scanf(%f,&length_in_foot);提示用戶輸入房間的寬度printf(請輸入房間的寬度(單位:inch):);scanf(%f,&width_in_inch);計算房間的面
6、積1碼=3英尺=36英寸area_in_yard=(length_in_foot/3)*(width_in_inch/36);輸出房間的面積printf(房間的面積是:%.2f平方碼。n,area_in_yard);return0;習題2.3一個產(chǎn)品有兩個版本:其一是標準版,價錢是$3.5,其二是豪華版,價錢是$5.5。編寫一個程序,使用學到的知識提示用戶輸入產(chǎn)品的版本和數(shù)目,此后依據(jù)輸入的產(chǎn)品數(shù)目,計算并輸出價錢。7#includeintmain()floatprice_of_normal=3.5;/一般版單價floatprice_of_deluxe=5.5f;/豪華版單價intnumber
7、_of_normal=0;/一般版的數(shù)目intnumber_of_deluxe=0;/豪華版的數(shù)目floattotal_price=0.0f;/總價提示用戶輸入產(chǎn)品的數(shù)目printf(請輸入一般版的數(shù)目:);scanf(%d,&number_of_normal);printf(請輸入豪華版的數(shù)目:);scanf(%d,&number_of_deluxe);計算總價total_price=number_of_normal*price_of_normal+number_of_deluxe+price_of_deluxe;輸出總價printf(總價為:$%.2fn,total_price);8ret
8、urn0;習題2.4編寫一個程序,提示用戶從鍵盤輸入一個禮拜的薪資(以美元為單位)和工作時數(shù),它們均為浮點數(shù),此后計算并輸出每個小時的均勻時薪,輸出格式以下所示:Youraveragehourlypayrateis7dollarsand54cents.#includeintmain()floatsalary=0.0f;/一個禮拜的薪資(以美元為單位)floathours=0.0f;/工作時數(shù)floatsalary_per_hour=0.0f;/每個小時的均勻時薪提示用戶輸入一個禮拜的薪資printf(請輸入一個禮拜的薪資(以美元為單位):);scanf(%f,&salary);提示用戶輸入工作
9、時數(shù)printf(請輸入工作時數(shù):);scanf(%f,&hours);9計算每個小時的均勻時薪salary_per_hour=salary/hours;輸出結(jié)果printf(Youraveragehourlypayrateis%ddollarsand%dcents.n,(int)salary_per_hour,(int)(salary_per_hour*100)%100);return0;第3章條件判斷習題3.1編寫一個程序,第一給用戶以下兩種選擇:1)將溫度從攝氏度變換為華氏度。2)將溫度從華氏度變換為攝氏度。接著,程序提示用戶輸入溫度值,并輸出變換后的數(shù)值。從攝氏度變換為華氏度,可以乘以
10、1.8再加上32。從華氏度變換為攝氏度,可以先減去32后,再乘以5,除以9。#include#includeintmain()floattemperature=0.0f;/用戶輸入的溫度值10charch=0;floatresult=0.0f;/變換后的溫度值提示用戶都有哪一種變換方式printf(程序供給予下兩種變換方式:n);printf(A.將溫度從攝氏度變換為華氏度nB.將溫度從華氏度變換為攝氏度n);提示用戶輸當選擇的變換方式printf(請選擇變換方式(AorB):);scanf(%c,&ch);if(tolower(ch)=a)printf(請輸入溫度值:);scanf(%f,&
11、temperature);result=temperature*1.8+32;printf(%.2f攝氏度=%.2f華氏度n,temperature,result);elseif(tolower(ch)=b)printf(請輸入溫度值:);scanf(%f,&temperature);11result=(temperature-32)*5/9;printf(%.2f華氏度=%.2f攝氏度n,temperature,result);elseprintf(選擇錯誤n);return0;習題3.2編寫一個程序,提示用戶輸入3個整數(shù)值,分別代表月、日、年。比方用戶輸入了12、31、2003,程序就以3
12、1stDecember2003的格式輸出該日期。必然在日期值的后邊加上th、nd、st和rd。比方1st、2nd、3rd、4th、11th、12th、13th、14th、21st、22nd、23rd、24th。#includeintmain()intyear=0;intmonth=0;intday=0;12/定義一個代表12個月份的列舉種類,列舉器值從1開始enumMonthJanuary=1,February,March,April,May,June,July,August,September,October,November,December;提示用戶輸入月、日、年printf(請輸入月、
13、日、年:);scanf(%d%d%d,&month,&day,&year);輸出日if(day31)printf(輸入日期有誤);elseif(day%10=1&day!=11)printf(%dst,day);elseif(day%10=2&day!=12)printf(%dnd,day);elseif(day%10=3&day!=13)13printf(%drd,day);elseprintf(%dth,day);輸出月switch(month)caseJanuary:printf(January);break;caseFebruary:printf(February);break;cas
14、eMarch:printf(March);break;caseApril:printf(April);break;14caseMay:printf(May);break;caseJune:printf(June);break;caseJuly:printf(July);break;caseAugust:printf(August);break;caseSeptember:printf(September);break;caseOctober:printf(October);break;caseNovember:printf(November);break;caseDecember:15prin
15、tf(December);break;default:printf(輸入月份有誤);break;輸出年printf(%dn,year);return0;習題3.3編寫一個程序,依據(jù)從鍵盤輸入的一個數(shù)值,計算總價(單價是$5),數(shù)值超出30的折扣是10%,數(shù)值超出50的折扣是15%。#includeintmain()floatunit_price=5.0f;/商品單價floatdiscount=0.0f;/商品折扣intnumber=0;/商品數(shù)目16提示用戶輸入商品數(shù)目printf(請輸入商品數(shù)目:);scanf(%d,&number);計算折扣if(number=30)discount=0.
16、0f;elseif(number=50)discount=0.1f;elsediscount=0.15f;輸出總價printf(商品的總價為:%.2fn,number*unit_price*(1-discount);return0;17習題3.4改正本章最后的計算器例子,讓用戶選擇輸入y或Y,以履行另一個計算,輸入n或N就結(jié)束程序。(注意:這需要適用goto語句,下一章將介紹一個更好的方法。)#includeintmain()doublenumber1=0.0;doublenumber2=0.0;charoperation=0;charchoice=0;begin:printf(Enterth
17、ecaculationn);scanf(%lf%c%lf,&number1,&operation,&number2);switch(operation)case+:printf(=%lfn,number1+number2);break;18case-:printf(=%lfn,number1-number2);break;case*:printf(=%lfn,number1*number2);break;case/:if(number2=0)printf(nnaDivisionbyzeroerror!n);elseprintf(=%lfn,number1/number2);break;case
18、%:if(long)number1=0)printf(nnaDivisionbyzeroerror!n);elseprintf(=%ldn,(long)number1%(long)number2);break;default:printf(nnaIllegaloperation!n);break;19printf(Doyouwanttocontinue?(yorn):);scanf(%c,&choice);/注意:%c前面的空格不可以去掉if(choice=y|choice=Y)gotobegin;return0;第4章循環(huán)習題4.1編寫一個程序,生成一個乘法表,其大小由用戶輸入來決定。比方,
19、假如表的大小是4,該表就有4行4列。行和列標志為14.表中的每一個單元格都包括隊列之積,所以第三行第4列的單元格包括12。#includeintmain()intnum_row=0;intnum_col=0;printf(請輸入行數(shù)和列數(shù):);scanf(%d%d,&num_row,&num_col);20printf();for(inti=1;i=num_col;i+)printf(%3d,i);printf(n);for(inti=1;i=num_row;i+)printf(%-4d,i);for(intj=1;j=num_col;j+)printf(%3d,i*j);printf(n);
20、return0;習題4.2編寫一個程序,為0127之間的字符碼輸出可打印的字符。輸出每個字符碼和它的符號,這兩個字符占一行。列要對齊(提示:可以使用在ctype.h中申明的isgraph()函數(shù),確立哪個字符是可以打印的)。21#include#includeintmain()for(inti=0;i=127;i+)if(isgraph(i)printf(%d%cn,i,i);return0;習題4.3擴展上一題,給每個空白字符輸出對應(yīng)的名稱,比方newline,space,tab等。此題略習題4.4使用嵌套循環(huán)輸出一個用星號繪制的盒子,與程序4.2近似,可是它的寬和高由用戶輸入。#inclu
21、de22intmain()intheight=0;intwidth=0;printf(請輸入盒子的寬和高:);scanf(%d%d,&width,&height);for(inti=1;i=height;i+)for(intj=1;j=width;j+)if(i=1|i=height)printf(*);elseif(j=1|j=width)printf(*);23elseprintf();printf(n);return0;習題4.5改正程序4.7的猜謎游戲,在玩家猜錯數(shù)字后,可以用一個選項讓玩家連續(xù)玩下去,且想玩多久就玩多久。#include#include#include#include
22、intmain()intchosen=0;intguess=0;intlimit=20;24charanother_game=Y;srand(time(NULL);chosen=1+rand()%limit;printf(nThisisaguessinggame.nIhavechosenanumberbetween1and20whichyoumustguess.n);doprintf(nEnteraguess:);scanf(%d,&guess);if(guess=chosen)printf(nYouguessedit!n);return0;if(guess20)printf(nIsaidbe
23、tween1and20.n);25elseprintf(nSorry.%diswrong.n,guess);printf(nDoyouwanttoplayagain(y/n)?);scanf(%c,&another_game);while(toupper(another_game)=Y);return0;第5章數(shù)組習題5.1編寫一個程序,從鍵盤上讀入5個double種類的值,將它們儲蓄到一個數(shù)組中。計算每個值的倒數(shù)(值x的倒數(shù)是1.0/x),將結(jié)果儲蓄到另一個數(shù)組中。輸出這些倒數(shù),并計算和輸出倒數(shù)的總和。#includeintmain()doubleoriginal5=0.0;doublere
24、sult5=0.0;doublesum=0.0;26for(inti=0;i,i+1);scanf(%lf,&originali);for(inti=0;i5;i+)resulti=1.0/originali;for(inti=0;i5;i+)printf(result%d=%lfn,i,resulti);sum+=resulti;printf(sum=%lfn,sum);return0;27習題5.2定義一個數(shù)組data,它包括100個double種類的元素。編寫一個循環(huán),將以下的數(shù)值序列儲蓄到數(shù)組的對應(yīng)元素中:1/(2*3*4)1/(4*5*6)1/(6*7*8).upto1/(200*2
25、01*202)編寫另一個循環(huán),計算:data0-data1+data2-data3+.-data99將這個結(jié)果乘以4.0,加3.0,輸出最后的結(jié)果。#includeintmain()doubledata100=0.0;doublesum=0.0;doubleresult=0.0;for(inti=1;i=100;i+)datai-1=1.0/(2*i)*(2*i+1)*(2*i+2);for(inti=0;i100;i+)sum+=(i%2?-1:1)*datai;28result=sum*4.0+3.0;printf(計算結(jié)果為:%lfn,result);return0;習題5.3編寫一個程
26、序,從鍵盤上讀入5個值,將它們儲蓄到一個float類型的數(shù)組amounts中。創(chuàng)立兩個包括5個long元素的數(shù)組dollars和cents。將amounts數(shù)組元素的整數(shù)部分儲蓄到dollars的對應(yīng)元素中,amounts數(shù)組元素的小數(shù)部分儲蓄到cents中,只保留兩位數(shù)字(比方:amounts1的值是2.75,則把2儲蓄到dollars1中,把75儲蓄cents1中)。以錢幣格式輸出這兩個long種類數(shù)組的值(如$2.75)。#includeintmain()floatamounts5=0.0f;longdollars5=0L;longcents5=0L;for(inti=0;i,i+1);
27、29scanf(%f,&amountsi);for(inti=0;i5;i+)dollarsi=(long)amountsi;centsi=(long)(amountsi*100)%100;for(inti=0;i5;i+)printf($%ld.%ldn,dollarsi,centsi);return0;習題5.4定義一個double種類的二維數(shù)組data115。用2.03.0的值初始化第一列元素(每步增添0.1)。假如行中的第一個元素值是x,轉(zhuǎn)行的其余元素值分別是1/x,x2,x3和x?。輸出數(shù)組中的值,每一行放在一行上,每一列要有標題。#include#includeintmain()3
28、0doubledata115=0.0;for(inti=0;i11;i+)datai0=(1+0.1*i);for(inti=0;i11;i+)datai1=1/datai0;for(intj=2;j5;j+)dataij=pow(datai0,i);printf();for(inti=0;i5;i+)printf(%02d,i+1);31printf(n);for(inti=0;i11;i+)printf(%02d,i+1);for(intj=0;j5;j+)printf(%6.2lf,dataij);printf(n);return0;習題5.5編寫一個程序,計算隨意多個班級的學生的均勻分
29、。該程序應(yīng)讀取全部班級里學生的全部成績,再計算均勻值。給每個班級輸出每個學生的均勻分,以及班級的均勻分。#include#defineCLASS_NUM2#defineSTUDENT_NUM2#defineCOURSE_NUM232intmain()intscoreCLASS_NUMSTUDENT_NUMCOURSE_NUM=0;intaverage_class=0;intaverage_student=0;for(inti=0;iCLASS_NUM;i+)for(intj=0;jSTUDENT_NUM;j+)for(intk=0;k,i,j,k);scanf(%d,&scoreijk);fo
30、r(inti=0;iCLASS_NUM;i+)average_class=0;for(intj=0;jSTUDENT_NUM;j+)33average_student=0;for(intk=0;kCOURSE_NUM;k+)average_class+=scoreijk;average_student+=scoreijk;printf(Class%02dStudent%02d的均勻分是%.2fn,i,j,average_student*1.0/COURSE_NUM);printf(Class%02d的均勻分是%.2fn,i,average_class*1.0/STUDENT_NUM/COURS
31、E_NUM);return0;第6章字符串和文本的應(yīng)用習題6.1編寫一個程序,從鍵盤上讀入一個小于1000的正整數(shù),此后創(chuàng)立并輸出一個字符串,說明該整數(shù)的值。比方,輸入941,程序產(chǎn)生的字符串是“Ninehundredandfortyone?!?includevoidone2nineteen(intn)34switch(n)case1:printf(one);break;case2:printf(two);break;case3:printf(three);break;case4:printf(four);break;case5:printf(five);break;case6:printf(
32、six);break;case7:printf(seven);35break;case8:printf(eight);break;case9:printf(nine);break;case10:printf(ten);break;case11:printf(eleven);break;case12:printf(twelve);break;case13:printf(thirteen);break;case14:printf(fourteen);break;36case15:printf(fifteen);break;case16:printf(sixteen);break;case17:pr
33、intf(seventeen);break;case18:printf(eighteen);break;case19:printf(nineteen);break;default:printf(one2nineteen操作失敗);break;37voidfun(intn)switch(n)case20:printf(twenty);break;case30:printf(thirty);break;case40:printf(fourty);break;case50:printf(fifty);break;case60:printf(sixty);break;case70:printf(sev
34、enty);break;case80:38printf(eighty);break;case90:printf(ninety);break;default:printf(fun履行犯錯);break;voidfun2(intn)if(n20)one2nineteen(n);elseif(n100)if(n%10=0)fun(n);39elsefun(n-n%10);printf(-);one2nineteen(n%10);voidint2str(intn)if(n100)fun2(n);elseif(n1000)if(n%100=0)one2nineteen(n/100);printf(hun
35、dred);40elseone2nineteen(n/100);printf(hundredand);fun2(n%100);intmain()for(inti=1;i,i);int2str(i);printf(n);return0;習題6.2編寫一個程序,輸入一系列單詞,單詞之間以逗號切割,此后提取這些單詞,并將它們分行輸出,刪除頭尾的空格。比方,假如輸入是41John,Jack,Jill輸出將是:JohnJackJill#include#include#includeintmain()charsequence100=0;boolfirst=true;printf(請輸入一系列單詞,單詞之間
36、以逗號分開:n);if(fgets(sequence,sizeof(sequence),stdin)=NULL)printf(輸入過程犯錯n);return1;else42for(inti=0;i100&sequencei!=0;i+)if(isalpha(sequencei)first=true;printf(%c,sequencei);elseif(first)first=false;printf(n);printf(n);return0;習題6.3編寫一個程序,從一組最罕有5個字符串的數(shù)組里,輸出隨意精選的一個字符串。#include43intmain()chararr50=Hello,
37、HelloWorld,HelloWorld,HelloWorld!;printf(%sn,arr2);return0;習題6.4回文是正讀反讀均同樣的句子,忽視空白和標點符號。比方,“Madam,ImAdam”和“Arewenodrawnonward,wefew?Drawnonwardtonewera?都”是回文。編寫一個程序,確立從鍵盤輸入的字符串是不是回文。#include#include#include#includeintmain()44charsequence100=0;unsignedlonghead=0;unsignedlonglast=0;boolflag=true;printf
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖北中醫(yī)藥大學《預(yù)防醫(yī)學綜合設(shè)計》2023-2024學年第二學期期末試卷
- 2025年重慶市安全員《A證》考試題庫
- 成都工業(yè)學院《數(shù)字電視節(jié)目編導與制作》2023-2024學年第二學期期末試卷
- 西寧城市職業(yè)技術(shù)學院《城市傳播》2023-2024學年第二學期期末試卷
- 上海交通大學《單片機原理及其應(yīng)用》2023-2024學年第二學期期末試卷
- 內(nèi)蒙古大學《材料化學與物理》2023-2024學年第二學期期末試卷
- 西安海棠職業(yè)學院《風景園林制圖》2023-2024學年第二學期期末試卷
- 襄陽職業(yè)技術(shù)學院《設(shè)計基礎(chǔ)(1)》2023-2024學年第二學期期末試卷
- 河南藝術(shù)職業(yè)學院《形體基訓》2023-2024學年第二學期期末試卷
- 隴南師范高等??茖W?!渡锇踩c實驗室安全》2023-2024學年第二學期期末試卷
- QSB快速反應(yīng)看板
- 初中信息技術(shù)備課組工作計劃8篇
- 售后維修服務(wù)單模板
- (中職)電子技術(shù)基礎(chǔ)與技能(電子信息類)教案
- 汪小蘭有機化學課件(第四版)3
- 減少電力監(jiān)控系統(tǒng)告警信息上傳方法的研究(QC成果)
- 交易商協(xié)會非金融企業(yè)債務(wù)融資工具發(fā)行注冊工作介紹
- 《人與環(huán)境》課程教學大綱
- 班組長管理能力提升培訓(PPT96張)課件
- 深圳市城市用地分類表
- 內(nèi)蒙古自治區(qū)小額貸款公司試點管理實施細則
評論
0/150
提交評論