C primer plus后編程練習(xí)答案完整_第1頁(yè)
C primer plus后編程練習(xí)答案完整_第2頁(yè)
C primer plus后編程練習(xí)答案完整_第3頁(yè)
C primer plus后編程練習(xí)答案完整_第4頁(yè)
C primer plus后編程練習(xí)答案完整_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、編程練習(xí)1您剛剛被MacroMuscle有限公司(Software for Hard Bodies)聘用。該公司要進(jìn)入歐洲市場(chǎng),需要一個(gè)將英寸轉(zhuǎn)換為厘米(1英寸=2.54 cm)的程序。他們希望建立的該程序可提示用戶輸入英寸值。您的工作是定義程序目標(biāo)并設(shè)計(jì)該程序(編程過(guò)程的第1步和第2步)?!拜斎胗⒋缰怠?>得到該值->轉(zhuǎn)換為厘米值->存儲(chǔ)->告知用戶已結(jié)束第二章 C語(yǔ)言概述編程練習(xí) 1編寫一個(gè)程序,調(diào)用printf()函數(shù)在一行上輸出您的名和姓,再調(diào)用一次printf()函數(shù)在兩個(gè)單獨(dú)的行上輸出您的名和姓,然后調(diào)用一對(duì)printf()函數(shù)在一行上輸出您的名和姓。輸出應(yīng)

2、如下所示(當(dāng)然里面要換成您的姓名):Anton BrucknerAntonBrucknerAnton Bruckner第一個(gè)輸出語(yǔ)句第二個(gè)輸出語(yǔ)句仍然是第二個(gè)輸出語(yǔ)句第三個(gè)和第四個(gè)輸出語(yǔ)句#include<stdio.h>int main(void) printf("He Jinn"); printf("Hen"); printf("Jinn"); printf("He Jinn"); return(0); 2編寫一個(gè)程序輸出您的姓名及地址。#include<stdio.h>int main

3、(void) printf("Name:He Jinn"); printf("Address:CAUCn"); return(0); 3編寫一個(gè)程序,把您的年齡轉(zhuǎn)換成天數(shù)并顯示二者的值。不用考慮平年( fractional year)和閏年(leapyear)的問(wèn)題。#include<stdio.h>int main(void) int age=22; printf("Age:%dn",age); printf("Day:%dn",age*356); return(0); 4編寫一個(gè)能夠產(chǎn)生下面輸出的程

4、序: For he's a jolly good fellow! For he's a jolly good fellow! For he's a jolly good fellow! Which nobody can deny! 程序中除了main()函數(shù)之外,要使用兩個(gè)用戶定義的函數(shù):一個(gè)用于把上面的夸獎(jiǎng)消息輸出一次:另一個(gè)用于把最后一行輸出一次。#include<stdio.h>void printf1(void);void printf2(void);int main(void) printf1(); printf1(); printf1(); pr

5、intf2(); return(0);void printf1(void) printf("For he's a jolly good fellow!n");void printf2(void) printf("Which nobody can deny!n"); 5編寫一個(gè)程序,創(chuàng)建一個(gè)名為toes的整數(shù)變量。讓程序把toes設(shè)置為10。再讓程序計(jì)算兩個(gè)toes的和以及toes的平方。程序應(yīng)該輸出所有的3個(gè)值,并分別標(biāo)識(shí)它們。#include<stdio.h>int main(void) int toes=10; int toes_

6、add; int toes_square; toes_add=toes+toes; toes_square=toes*toes; printf("toes=%dntoes_add=%dntoes_square=%dn",toes,toes_add,toes_square); return(0); 6編寫一個(gè)能夠產(chǎn)生下列輸出的程序:Smile ! Smile ! SmileSmile ! Smile !Smile ! 在程序中定義一個(gè)能顯示字符串smile卜一次的函數(shù),并在需要時(shí)使用該函數(shù)。#include<stdio.h>void display(void);i

7、nt main(void) display(); display(); display(); printf("n"); display(); display(); printf("n"); display(); printf("n"); return(0);void display(void) printf("Smile!"); 7編寫一個(gè)程序,程序中要調(diào)用名為one_three()的函數(shù)。該函數(shù)要在一行中顯示單詞"one",再調(diào)用two()函數(shù),然后再在另一行中顯示單詞"three&

8、quot;。函數(shù)two()應(yīng)該能在一行中顯示單詞"two"。main()函數(shù)應(yīng)該在調(diào)用one_three()函數(shù)之前顯示短語(yǔ)"starting now:",函數(shù)調(diào)用之后要顯示"done!"o這樣,最后的輸出結(jié)果應(yīng)如下所示:starting nowonetwothreedone !#include<stdio.h>void one_three(void);void two(void);int main(void) printf("starting now:n"); one_three(); printf(

9、"done!n"); return(0);void one_three(void) printf("Onen"); two(); printf("Threen");void two(void) printf("Twon");第三章 數(shù)據(jù)和C編程練習(xí) 1通過(guò)試驗(yàn)的方法(即編寫帶有此類問(wèn)題的程序)觀察系統(tǒng)如何處理整數(shù)上溢、浮點(diǎn)數(shù)上溢和浮點(diǎn)數(shù)下溢的情況。#include<stdio.h>int main(void) unsigned int a=4294967295; float b=3.4E38; floa

10、t c=b*10; float d=0.1234E-2; printf("%u+1=%un",a,a+1); printf("%e*10=%en",b,c); printf("%f/10=%fn",d,d/10); return(0); 2編寫一個(gè)程序,要求輸入一個(gè)ASCII碼值(如66),然后輸出相應(yīng)的字符。#include<stdio.h>int main(void) char a; scanf("%d",&a); printf("%cn",a); return(0);

11、3編寫一個(gè)程序,發(fā)出警報(bào)聲,并打印下列文字: Startled by the sudden sound, Sally shouted, "By the Great Pumpkin, what was that!"#include<stdio.h>int main(void) printf("aStartled by the sudden sound,Sally shouted,"By the Great pumpkin,what was that!"n"); return(0); 4編寫一個(gè)程序,讀入一個(gè)浮點(diǎn)數(shù),并分別以小

12、數(shù)形式和指數(shù)形式打印。輸出應(yīng)如同下面格式(實(shí)際顯示的指數(shù)位數(shù)也許因系統(tǒng)而不同): The input is 21.290000 or 2.129000e+001.#include<stdio.h>int main(void) float a; scanf("%f",&a); printf("The input is %f or %en",a,a); return(0);×l07S。編寫一個(gè)程序,要求輸入您的年齡,然后顯示該年齡合多少秒。#include<stdio.h>int main(void) float a

13、; printf("Please input your age:"); scanf("%f",&a); printf("Your age is %e secondsn",a*3.156E7); return(0);×10-23g,l夸脫水大約有950g。編寫一個(gè)程序,要求輸入水的夸脫數(shù),然后顯示這么多水中包含多少個(gè)水分子。#include<stdio.h>int main(void) float a; printf("Please input how much quarts the water

14、is:"); scanf("%f",&a); printf("%f quarts water has %e molecules.n",a,a*950/3E-23); return(0); 7. 1英寸等于2.54cm。編寫一個(gè)程序,要求輸入您的身高(以英寸為單位),然后顯示該身高值等于多少厘米。如果您愿意,也可以要求以厘米為單位輸入身高,然后以英寸為單位進(jìn)行顯示。#include<stdio.h>int main(void) float a; printf("Please input your height by

15、inches:"); scanf("%f",&a); printf("Your height is %fcm.n",a*2.54); return(0);第4章 字符串和格式化輸入/輸出編程練習(xí) 1編寫一個(gè)程序,要求輸入名字和姓氏,然后以“名字,姓氏”的格式打印。#include<stdio.h>int main(void) char surname20,firstname20; printf("Please input your firstname and surname:"); scanf("

16、;%s",firstname); scanf("%s",surname); printf("You are %s,%s.n",firstname,surname); return(0); 2編寫一個(gè)程序,要求輸入名字,并執(zhí)行以下操作: a把名字引在雙引號(hào)中打印出來(lái)。 b在寬度為20個(gè)字符的字段內(nèi)打印名字,并且整個(gè)字段引在引號(hào)內(nèi)。 c. 在寬度為20個(gè)字符的字段的左端打印名字,并且整個(gè)字段引在引號(hào)內(nèi)。 d在比名字寬3個(gè)字符的字段內(nèi)打印它。#include<stdio.h>#include<string.h>int main

17、(void) char name20; int width; printf("Please input your name:"); scanf("%s",name); printf("A:"%s"n",name); printf("B:"%20s"n",name); printf("C:"%-20s"n",name); width=strlen(name)+3; printf("D:"%*s"n"

18、,width,name);/*對(duì)應(yīng)width return(0); 3編寫一個(gè)程序,讀取一個(gè)浮點(diǎn)數(shù),并且首先以小數(shù)點(diǎn)記數(shù)法,然后以指數(shù)記數(shù)法打印之。輸出使用下列形式(在指數(shù)位置顯示的數(shù)字的位數(shù)可能會(huì)隨系統(tǒng)而不同):a. The input is 21.3 or 2.1e+001. b. The input is +21.290 or 2.129E+001.#include<stdio.h>int main(void) float a; printf("Please input a float:"); scanf("%f",&a); p

19、rintf("a.The input is %.1f or %.1en",a,a); printf("b.The input is %+.3f or %.3En",a,a); return(0); 4編寫個(gè)程序,要求輸入身高(以英寸為單位)和名字,然后以如下形式顯示: Dabney, you are 6.208 feet tall 使用float類型,使用/作為除號(hào)。如果您愿意,可以要求以厘米為單位輸入身高,并以米為單位進(jìn)行顯示。#include<stdio.h>int main(void) float height; char name20

20、; printf("Please input your height by inches:"); scanf("%f",&height); printf("Please input your name:"); scanf("%s",name); printf("%s,you are %f feet talln",name,height/12); return(0); 5.編寫一個(gè)程序,首先要求用戶輸入名字,然后要求用戶輸入姓氏。在一行打印輸入的姓名,在下行打印每個(gè)名字中字母的個(gè)數(shù)。把字母

21、個(gè)數(shù)與相應(yīng)名字的結(jié)尾對(duì)齊,如下所示: Melissa Honeybee 7 8然后打印相同的信息,但是字母?jìng)€(gè)數(shù)與相應(yīng)單詞的開始對(duì)齊。#include<stdio.h>#include<string.h>int main(void) char surname20,firstname20; printf("Please input your firstname and surname:"); scanf("%s",firstname); scanf("%s",surname); printf("%s %s

22、.n",firstname,surname); printf("%*d %*dn",strlen(firstname),strlen(firstname),strlen(surname),strlen(surname);/*對(duì)應(yīng)寬度變量 printf("%s %s.n",firstname,surname); printf("%-*d %-*dn",strlen(firstname),strlen(firstname),strlen(surname),strlen(surname);/*對(duì)應(yīng)寬度變量 return(0); 6

23、編寫一個(gè)程序,設(shè)置一個(gè)值為1.0/3.0的double類型變量和一個(gè)值為1.0/3.0的float類型變量。每個(gè)變量的值顯示三次:一次在小數(shù)點(diǎn)右側(cè)顯示4個(gè)數(shù)字,一次在小數(shù)點(diǎn)右側(cè)顯示12個(gè)數(shù)字,另一次在小數(shù)點(diǎn)右側(cè)顯示16個(gè)數(shù)字。同時(shí)要讓程序包括float.h文件,并顯示FLTDIG和DBL_DIG的值。1.0/3.0的顯示值與這些值一致嗎?#include<stdio.h>#include<float.h>int main(void) double a=1.0/3.0; float b=1.0/3.0; printf("double a=1.0/3.0:n&qu

24、ot;); printf("%.4en",a); printf("%.12en",a); printf("%.16enn",a); printf("float b=1.0/3.0:n"); printf("%.4fn",b); printf("%.12fn",b); printf("%.16fnn",b); printf("FLT_DIG:%dn",FLT_DIG); printf("DBL_DIG:%dn",DBL

25、_DIG); return(0); 7編寫一個(gè)程序,要求用戶輸入行駛的英里數(shù)和消耗汽油的加侖數(shù)。接著應(yīng)該計(jì)算和顯示消耗每加侖汽油行駛的英里數(shù),顯示方式是在小數(shù)點(diǎn)右側(cè)顯示一個(gè)數(shù)字。然后,根據(jù)l加侖約等于3.785升,l英里約等于1.609公里的規(guī)則,它應(yīng)該把每加侖英里數(shù)轉(zhuǎn)換成每100公里的升數(shù)(歐洲通用的燃料消耗表示法),并顯示結(jié)果,顯示方式是在小數(shù)點(diǎn)右側(cè)顯示一個(gè)數(shù)字(請(qǐng)注意,美國(guó)方案測(cè)量每單位距離消耗的燃料數(shù),而歐洲方案測(cè)量每單位燃料的行駛距離)。用符號(hào)常量表示兩個(gè)轉(zhuǎn)換系數(shù)(使用const或#define)。#include<stdio.h>#define GALLON 3.785

26、 /1 gallon = 2.785 litre#define MILE 1.609 /1 mile = 1.609 kilometerint main(void) float mile,gallon; printf("Please input miles and gallons:"); scanf("%f %f",&mile,&gallon); printf("Miles per gallon:%.1fn",mile/gallon); printf("Litres per 100 kilometre:%.1

27、fn",gallon*GALLON/(100*mile*MILE); return(0);第5章 運(yùn)算符、表達(dá)式和語(yǔ)句編程練習(xí) 1編寫一個(gè)程序。將用分鐘表示的時(shí)間轉(zhuǎn)換成以小時(shí)和分鐘表示的時(shí)間。使用#define或者const來(lái)創(chuàng)建一個(gè)代表60的符號(hào)常量。使用while循環(huán)來(lái)允許用戶重復(fù)鍵入值,并且當(dāng)鍵入一個(gè)小于等于0的時(shí)間時(shí)終止循環(huán)。#include<stdio.h>#define HOUR 60int main(void) int minutes; printf("Please input the minutes:"); scanf("%d

28、",&minutes); while(minutes>0) printf("%d hours and %d minutesn",minutes/HOUR,minutes%HOUR); printf("Please input the minutes:"); scanf("%d",&minutes); return(0); 2編寫一個(gè)程序,此程序要求輸入一整數(shù),然后打印出從(包括)輸入的值到(包括)比輸入的值大10的所有整數(shù)值(也就是說(shuō),如果輸入為5,那么輸出就從5到15)。要求在各個(gè)輸出值之間用空格、制

29、表符或換行符分開。#include<stdio.h>int main(void) int num,i=0; printf("Please input the number:"); scanf("%d",&num); while(i+<11) printf("%d ",num+); return(0); 3編寫一個(gè)程序,該程序要求用戶輸入天數(shù),然后將該值轉(zhuǎn)換為周數(shù)和天數(shù)。例如,此程序?qū)?8天轉(zhuǎn)換成2周4天。用下面的格式顯示結(jié)果: 使用一個(gè)while循環(huán)讓用戶重復(fù)輸入天數(shù);當(dāng)用戶輸入一個(gè)非正數(shù)(如0或-20)時(shí)

30、,程序?qū)⒔K止循環(huán)。#include<stdio.h>#define WEEK 7int main(void) int days; printf("Please input the days:"); scanf("%d",&days); while(days>0) printf("%d days are %d weeks,%d days.n",days,days/WEEK,days%WEEK); printf("Please input the days:"); scanf("%d

31、",&days); return(0); 4編寫一個(gè)程序讓用戶按厘米輸入一個(gè)高度值,然后,程序按照厘米和英尺英寸顯示這個(gè)高度值。允許厘米和英寸的值出現(xiàn)小數(shù)部分。程序允許用戶繼續(xù)輸入,直到用戶輸入一個(gè)非正的數(shù)值。程序運(yùn)行的示例如下面所示:Enter a height in centimeters: 182182.0 cm = 5 feet, 11.7 inchesEnter a height in centimeters(<=O to quit): 168168.0 cm = 5 feet, 6.1 inchesEnter a height in centimeters(

32、<=O to quit): 0bye#include<stdio.h>int main(void) float cm; printf("Enter a height in centimeters:"); scanf("%f",&cm); while(cm>0) printf("%.1f cm = %d feet, %.1f inchesn",cm,int(cm/INCH/12),cm/INCH-int(cm/INCH/12)*12); printf("Enter a height in cen

33、timeters(<=0 to quit):"); scanf("%f",&cm); printf("byen"); return(0); 5.改寫用來(lái)找到前20個(gè)整數(shù)之和的程序addemup.c(程序清單5.13)(如果您愿意,可以把a(bǔ)ddemup.c程序看成是一個(gè)計(jì)算如果您第一天得到$l,第二天得到$2,第三天得到$3,以此類推,您在20天里會(huì)掙多少錢的程序)。修改該程序,目的是您能交q地告訴程序計(jì)算將進(jìn)行到哪里。也就是說(shuō),用一個(gè)讀入的變量來(lái)代替20。#include<stdio.h>int main(void)

34、int count,sum,max; count=0; sum=0; printf("Please input the max:"); scanf("%d",&max); while(count+ < max) sum = sum + count; printf("sum = %dn",sum); return(0); 6.現(xiàn)在修改編程練習(xí)5中的程序,使它能夠計(jì)算整數(shù)平方的和(如果您喜歡,可以這樣認(rèn)為:如果您第一天得到$l,第二天得到$4,第三天得到$9,以此類推您將得到多少錢。這看起來(lái)像一個(gè)很好的買賣)。C沒(méi)有平方函數(shù)

35、,但是您可以利用n的平方是n*n的事實(shí)。#include<stdio.h>int main(void) int count,sum,max; count=0; sum=0; printf("Please input the max:"); scanf("%d",&max); while(count+<max) sum = sum + count * count; printf("sum = %dn",sum); return(0); 7編寫一個(gè)程序,該程序要求輸入一個(gè)float型數(shù)并打印該數(shù)的立方值。使用您自

36、己設(shè)計(jì)的函數(shù)來(lái)計(jì)算該值的立方并且將它的立方打印出來(lái)。main()程序把輸入的值傳遞給該函數(shù)。#include<stdio.h>float cube(float);int main(void) float number; printf("Please input the number:"); scanf("%f",&number); printf("The cube of %f is %fn",number,cube(number); return(0);float cube(float num) return(nu

37、m * num * num); 8編寫一個(gè)程序,該程序要求用戶輸入一個(gè)華氏溫度。程序以double類型讀入溫度值,并將它作為一個(gè)參數(shù)傳遞給用戶提供的函數(shù)Temperatures()。該函數(shù)將計(jì)算相應(yīng)的攝氏溫度和絕對(duì)溫度,并以小數(shù)點(diǎn)右邊有兩位數(shù)字的精度顯示這三種溫度。它應(yīng)該用每個(gè)值所代表的溫度刻度來(lái)標(biāo)識(shí)這3個(gè)值。下面是將華氏溫度轉(zhuǎn)換成攝氏溫度的方程: 通常用在科學(xué)上的絕對(duì)溫度的刻度是0代表絕對(duì)零,是可能溫度的下界。下面是將攝氏溫度轉(zhuǎn)換為絕對(duì)溫度的方程: Temperatures()函數(shù)使用const來(lái)創(chuàng)建代表該轉(zhuǎn)換里的3個(gè)常量的符號(hào)。main()函數(shù)將使用一個(gè)循環(huán)來(lái)允許用戶重復(fù)地輸入溫度,當(dāng)用戶輸入q或其他非數(shù)字值時(shí)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論