CPrimerPlus課后答案_第1頁
CPrimerPlus課后答案_第2頁
CPrimerPlus課后答案_第3頁
CPrimerPlus課后答案_第4頁
CPrimerPlus課后答案_第5頁
已閱讀5頁,還剩85頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、answers for programming exercises in c primer plus, 5rd edition, by stephen pratachapter 2pe 2-1/* programming exercise 2-1 */#include <stdio.h>int main(void) printf("anton brucknern"); printf("antonnbrucknern"); printf("anton "); printf("brucknern"); re

2、turn 0;pe 2-3/* programming exercise 2-3 */#include <stdio.h>int main(void) int ageyears; /* age in years */ int agedays; /* age in days */ /* large ages may require the long type */ ageyears = 44; agedays = 365 * ageyears; printf("an age of %d years is %d days.n", ageyears, agedays)

3、; return 0;pe 2-4/* programming exercise 2-4 */#include <stdio.h>void jolly(void);void deny(void);int main(void) jolly(); jolly(); jolly(); deny(); return 0;void jolly(void) printf("for he's a jolly good fellow!n");void deny(void) printf("which nobody can deny!n");pe 2-

4、5/* programming exercise 2-5 */#include <stdio.h>int main(void) int toes; toes = 10; printf("toes = %dn", toes); printf("twice toes = %dn", 2 * toes); printf("toes squared = %dn", toes * toes); return 0;/* or create two more variables, set them to 2 * toes and toe

5、s * toes */pe 2-6/* programming exercise 2-6 */#include <stdio.h>void once();void main(void)once();once();once();printf("n");once();once();printf("n");once();printf("n");void once()printf("smile!");pe 2-7/* programming exercise 2-7 */#include <stdio.h

6、>void one_three(void);void two(void);int main(void) printf("starting now:n"); one_three(); printf("done!n"); return 0;void one_three(void) printf("onen"); two(); printf("threen");void two(void) printf("twon");chapter 3pe 3-2/* programming exercise

7、 3-2(1) */#include <stdio.h>int main(void) int ascii; printf("enter an ascii code: "); scanf("%d", &ascii); printf("%d is the ascii code for %c.n", ascii, ascii); return 0;/* programming exercise 3-2(2) */#include <stdio.h>int main(void)int num;printf(&q

8、uot;please enter a num:");scanf("%d",&num);printf("the code for the num is %cn",num);return 0;pe 3-3/* programming exercise 3-3 */#include <stdio.h>int main(void)printf("a");printf("alarm and print a line of wordn");return 0;pe 3-4/* programming

9、 exercise 3-4(1) */#include <stdio.h>int main(void) float num; printf("enter a floating-point value: "); scanf("%f", &num); printf("fixed-point notation: %fn", num); printf("exponential notation: %en", num); return 0;/* programming exercise 3-4(2) */

10、#include <stdio.h>int main(void)long float a;a=21.290000;printf("the input is %lf or %le.n",a,a);return 0;pe 3-5/* programming exercise 3-5 */#include <stdio.h>int main(void)long int age;printf("please enter your age:n");scanf("%d",&age);printf("you

11、r age equals to %lf seconds.n",age*3.156e7);return 0;pe 3-6/* programming exercise 3-6 */#include <stdio.h>int main(void) float mass_mol = 3.0e-23; /* mass of water molecule in grams */ float mass_qt = 950; /* mass of quart of water in grams */ float quarts; float molecules; printf("

12、enter the number of quarts of water: "); scanf("%f", &quarts); molecules = quarts * mass_qt / mass_mol; printf("%f quarts of water contain %e molecules.n", quarts, molecules); return 0;pe 3-6/* programming exercise 3-7 */#include <stdio.h>int main(void)float height

13、;printf("please enter your height:n");scanf("%fg",&height);printf("your height equals to %f cm.n",height*2.54);return 0;chapter 4pe 4-1/* programming exercise 4-1 */#include <stdio.h>int main(void) char fname40; char lname40; printf("enter your first name

14、: "); scanf("%s", fname); printf("enter your last name: "); scanf("%s", lname); printf("%s, %sn", lname, fname); return 0;pe 4-4/* programming exercise 4-4 */#include <stdio.h>int main(void) float height; char name40; printf("enter your height

15、in inches: "); scanf("%f", &height); printf("enter your name: "); scanf("%s", name); printf("%s, you are %.3f feet talln", name, height / 12.0); return 0;pe 4-6/* programming exercise 4-6 */#include <stdio.h>#include <float.h>int main(void

16、) float ot_f = 1.0 / 3.0; double ot_d = 1.0 / 3.0; printf(" float values: "); printf("%.4f %.12f %.16fn", ot_f, ot_f, ot_f); printf("double values: "); printf("%.4f %.12f %.16fn", ot_d, ot_d, ot_d); printf("flt_dig: %dn", flt_dig); printf("dbl_d

17、ig: %dn", dbl_dig); return 0;chapter 5pe 5-1/* programming exercise 5-1 */#include <stdio.h>int main(void) const int minperhour = 60; int minutes, hours, mins; printf("enter the number of minutes to convert: "); scanf("%d", &minutes); while (minutes > 0 ) hours

18、= minutes / minperhour; mins = minutes % minperhour; printf("%d minutes = %d hours, %d minutesn", minutes, hours, mins); printf("enter next minutes value (0 to quit): "); scanf("%d", &minutes); printf("byen"); return 0;pe 5-3/* programming exercise 5-3 */#

19、include <stdio.h>int main(void) const int daysperweek = 7; int days, weeks, day_rem; printf("enter the number of days: "); scanf("%d", &days); weeks = days / daysperweek; day_rem = days % daysperweek; printf("%d days are %d weeks and %d days.n", days, weeks, d

20、ay_rem); return 0;pe 5-5/* programming exercise 5-5 */#include <stdio.h>int main(void) /* finds sum of first n integers */ int count, sum; int n; printf("enter the upper limit: "); scanf("%d", &n); count = 0; sum = 0; while (count+ < n) sum = sum + count; printf(&quo

21、t;sum = %dn", sum); return 0;pe 5-7/* programming exercise 5-7 */#include <stdio.h>void showcube(double x);int main(void) /* finds cube of entered number */ double val; printf("enter a floating-point value: "); scanf("%lf", &val); showcube(val); return 0;void showc

22、ube(double x) printf("the cube of %e is %e.n", x, x*x*x );chapter 6pe 6-1/* pe6-1.c */* this implementation assumes the character codes */* are sequential, as they are in ascii. */#include <stdio.h>#define size 26int main( void ) char lcasesize; int i; for (i = 0; i < size; i+) lc

23、asei = 'a' + i; for (i = 0; i < size; i+) printf("%c", lcasei); printf("n"); return 0;pe 6-3/* pe6-3.c */* this implementation assumes the character codes */* are sequential, as they are in ascii. */#include <stdio.h>int main( void ) char let = 'f' char s

24、tart; char end; for (end = let; end >= 'a' end-) for (start = let; start >= end; start-) printf("%c", start); printf("n"); return 0;pe 6-5/* pe6-5.c */#include <stdio.h>int main( void ) int lower, upper, index; int square, cube; printf("enter starting int

25、eger: "); scanf("%d", &lower); printf("enter ending integer: "); scanf("%d", &upper); printf("%5s %10s %15sn", "num", "square", "cube"); for (index = lower; index <= upper; index+) square = index * index; cube = in

26、dex * square; printf("%5d %10d %15dn", index, square, cube); return 0;pe 6-7/* pe6-7.c */#include <stdio.h>int main( void ) double n, m; double res; printf("enter a pair of numbers: "); while (scanf("%lf %lf", &n, &m) = 2) res = (n - m) / (n * m); printf(&

27、quot;(%.3g - %.3g)/(%.3g*%.3g) = %.5gn", n, m, n, m, res); printf("enter next pair (non-numeric to quit): "); return 0;pe 6-10/* pe6-10.c */#include <stdio.h>#define size 8int main( void ) int valssize; int i; printf("please enter %d integers.n", size); for (i = 0; i &

28、lt; size; i+) scanf("%d", &valsi); printf("here, in reverse order, are the values you entered:n"); for (i = size - 1; i > 0; i-) printf("%d ", valsi); printf("n"); return 0;pe 6-12/* pe6-12.c */* this version starts with the 0 power */#include <stdio

29、.h>#define size 8int main( void ) int twopowssize; int i; int value = 1; /* 2 to the 0 */ for (i = 0; i < size; i+) twopowsi = value; value *= 2; i = 0; do printf("%d ", twopowsi); i+; while (i < size); printf("n"); return 0;pe 6-13/* pe-13.c */* programming exercise 6-1

30、3 */#include <stdio.h>#define size 8int main(void) double arrsize; double arr_cumulsize; int i; printf("enter %d numbers:n", size); for (i = 0; i < size; i+) printf("value #%d: ", i + 1); scanf("%lf", &arri); /* or scanf("%lf", arr + i); */ arr_cu

31、mul0 = arr0; /* set first element */ for (i = 1; i < size; i+) arr_cumuli = arr_cumuli-1 + arri; for (i = 0; i < size; i+) printf("%8g ", arri); printf("n"); for (i = 0; i < size; i+) printf("%8g ", arr_cumuli); printf("n"); return 0;pe 6-15/* pe6-15.

32、c */#include <stdio.h>#define rate_simp 0.10#define rate_comp 0.05#define init_amt 100.0int main( void ) double daphne = init_amt; double deidre = init_amt; int years = 0; while (deidre <= daphne) daphne += rate_simp * init_amt; deidre += rate_comp * deidre; +years; printf("investment

33、values after %d years:n", years); printf("daphne: $%.2fn", daphne); printf("deidre: $%.2fn", deidre); return 0;chapter 7pe 7-1/* programming exercise 7-1 */#include <stdio.h>int main(void) char ch; int sp_ct = 0; int nl_ct = 0; int other = 0; while (ch = getchar() != &

34、#39;#') if (ch = ' ') sp_ct+; else if (ch = 'n') nl_ct+; else other+; printf("spaces: %d, newlines: %d, others: %dn", sp_ct, nl_ct, other); return 0;pe 7-3/* programming exercise 7-3 */#include <stdio.h>int main(void) int n; double sumeven = 0.0; int ct_even = 0;

35、double sumodd = 0.0; int ct_odd = 0; while (scanf("%d", &n) = 1 && n != 0) if (n % 2 = 1) sumodd += n; +ct_odd; else sumeven += n; +ct_even; printf("number of evens: %d", ct_even); if (ct_even > 0) printf(" average: %g", sumeven / ct_even); putchar('n

36、'); printf("number of odds: %d", ct_odd); if (ct_odd > 0) printf(" average: %g", sumodd / ct_odd); putchar('n'); printf("ndonen"); return 0;pe 7-5 /* programming exercise 7-5 */#include <stdio.h>int main(void) char ch; int ct1 = 0; int ct2 = 0; whil

37、e (ch = getchar() != '#') switch(ch) case '.' : putchar('!'); +ct1; break; case '!' : putchar('!'); putchar('!'); +ct2; break; default : putchar(ch); printf("%d replacements of . with !n", ct1); printf("%d replacements of ! with !n"

38、, ct2); return 0;pe 7-7 /* programming exercise 7-7 */#include <stdio.h>#define basepay 10 /* $10 per hour */#define basehrs 40 /* hours at basepay */#define overtime 1.5 /* 1.5 time */#define amt1 300 /* 1st rate tier */#define amt2 150 /* 2st rate tier */#define rate1 0.15 /* rate for 1st ti

39、er */#define rate2 0.20 /* rate for 2nd tier */#define rate3 0.25 /* rate for 3rd tier */int main(void) double hours; double gross; double net; double taxes; printf("enter the number of hours worked this week: "); scanf("%lf", &hours); if (hours <= basehrs) gross = hours *

40、 basepay; else gross = basehrs * basepay + (hours - basehrs) * basepay * overtime; if (gross <= amt1) taxes = gross * rate1; else if (gross <= amt1 + amt2) taxes = amt1 * rate1 + (gross - amt1) * rate2; else taxes = amt1 * rate1 + amt2 * rate2 + (gross - amt1 - amt2) * rate3; net = gross - tax

41、es; printf("gross: $%.2f; taxes: $%.2f; net: $%.2fn", gross, taxes, net); return 0;pe 7-9 /* programmming exercise 7-9 */#include <stdio.h>#define no 0#define yes 1int main(void) long num; /* value to be checked */ long div; /* potential divisors */ long lim; /* limit to values */ in

42、t prime; printf("please enter limit to values to be checked; "); printf("enter q to quit.n"); while (scanf("%ld", &lim) = 1 && lim > 0) for (num = 2; num <= lim; num+) for (div = 2, prime = yes; (div * div) <= num; div+) if (num % div = 0) prime = n

43、o; /* number is not prime */ if (prime = yes) printf("%ld is prime.n", num); printf("please enter another limit; "); printf("enter q to quit.n"); return 0;pe 7-11 /* pe7-11.c */* programming exercise 7-11 */#include <stdio.h>#include <ctype.h>int main(void)

44、const double price_artichokes = 1.25; const double price_beets = 0.65; const double price_carrots = 0.89; const double discount_rate = 0.05; char ch; double lb_artichokes; double lb_beets; double lb_carrots; double lb_total; double cost_artichokes; double cost_beets; double cost_carrots; double cost

45、_total; double final_total; double discount; double shipping; printf("enter a to buy artichokes, b for beets, "); printf("c for carrots, q to quit: "); while (ch = getchar() != 'q' && ch != 'q') if (ch = 'n') continue; while (getchar() != 'n

46、9;) continue; ch = tolower(ch); switch (ch) case 'a' : printf("enter pounds of artichokes: "); scanf("%lf", &lb_artichokes); break; case 'b' : printf("enter pounds of beets: "); scanf("%lf", &lb_beets); break; case 'c' : printf(

47、"enter pounds of carrots: "); scanf("%lf", &lb_carrots); break; default : printf("%c is not a valid choice.n"); printf("enter a to buy artichokes, b for beets, "); printf("c for carrots, q to quit: "); cost_artichokes = price_artichokes * lb_arti

48、chokes; cost_beets = price_beets * lb_beets; cost_carrots = price_carrots * lb_carrots; cost_total = cost_artichokes + cost_beets + cost_carrots; lb_total = lb_artichokes + lb_beets + lb_carrots; if (lb_total <= 0) shipping = 0.0; else if (lb_total < 5.0) shipping = 3.50; else if (lb_total <

49、; 20) shipping = 10.0; else shipping = 8.0 + 0.1 * lb_total; if (cost_total > 100.0) discount = discount_rate * cost_total; else discount = 0.0; final_total = cost_total + shipping - discount; printf("your order:n"); printf("%.2f lbs of artichokes at $%.2f per pound:$ %.2fn",

50、lb_artichokes, price_artichokes, cost_artichokes); printf("%.2f lbs of beets at $%.2f per pound: $%.2fn", lb_beets, price_beets, cost_beets); printf("%.2f lbs of carrots at $%.2f per pound: $%.2fn", lb_carrots, price_carrots, cost_carrots); printf("total cost of vegetables:

51、$%.2fn", cost_total); if (cost_total > 100) printf("volume discount: $%.2fn", discount); printf("shipping: $%.2fn", shipping); printf("total charges: $%.2fn", final_total); return 0;chapter 8pe 8-1 /* programming exercise 8-1 */#include <stdio.h>int main(void) int ch; int ct = 0; while (ch = getchar() != eof) ct+; printf("%d characters readn", ct); return 0;pe 8-3 /* programming exercise 8-3 */* using ctype.h eliminates need to assume ascii coding */#include <stdio.h>#include <ctyp

溫馨提示

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

評論

0/150

提交評論