收藏 分销(赏)

C-Primer-Plus第6版编程练习答案(已下载).doc

上传人:快乐****生活 文档编号:2629095 上传时间:2024-06-03 格式:DOC 页数:67 大小:368.54KB 下载积分:14 金币
下载 相关 举报
C-Primer-Plus第6版编程练习答案(已下载).doc_第1页
第1页 / 共67页
C-Primer-Plus第6版编程练习答案(已下载).doc_第2页
第2页 / 共67页


点击查看更多>>
资源描述
(完整版)C Primer Plus第6版编程练习答案(已下载) Chapter 2 Programming Exercises PE 2—。‐1 /* Programming Exercise 2-1 */ #include <stdio.h〉 int main(void) { printf("Gustav Mahler\n”); printf("Gustav\nMahler\n"); printf("Gustav ”); printf(”Mahler\n"); return 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 = 101; agedays = 365 * ageyears; printf("An age of %d years is %d days。\n”, ageyears, agedays); 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—。‐6 /* Programming Exercise 2-6 */ #include 〈stdio.h〉 int main(void) { int toes; toes = 10; printf("toes = %d\n”, toes); printf("Twice toes = %d\n", 2 * toes); printf("toes squared = %d\n”, toes * toes); return 0; } /* or create two more variables, set them to 2 * toes and toes * toes */ PE 2-。‐8 /* Programming Exercise 2—8 */ #include 〈stdio。h〉 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(”one\n”); two(); printf(”three\n”); } void two(void) { printf(”two\n"); } Chapter 3 Programming Exercises PE 3—.‐2 /* Programming Exercise 3-2 */ #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; } PE 3-.‐4 /* Programming Exercise 3-4 */ #include 〈stdio。h> int main(void) { float num; printf(”Enter a floating—point value: ”); scanf("%f”, &num); printf(”fixed—point notation: %f\n”, num); printf(”exponential notation: %e\n", num); printf(”p notation: %a\n”, num); 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("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; } Chapter 4 Programming Exercises PE 4—。‐1 /* Programming Exercise 4—1 */ #include 〈stdio.h> int main(void) { char fname[40]; char lname[40]; printf(”Enter your first name: ”); scanf("%s", fname); printf("Enter your last name: ”); scanf("%s”, lname); printf("%s, %s\n”, lname, fname); return 0; } PE 4-。‐4 /* Programming Exercise 4-4 */ #include <stdio.h〉 int main(void) { float height; char name[40]; printf(”Enter your height in inches: "); scanf("%f”, &height); printf(”Enter your name: ”); scanf(”%s", name); printf("%s, you are %。3f feet tall\n”, name, height / 12。0); return 0; } PE 4-。‐7 /* Programming Exercise 4-7 */ #include 〈stdio。h〉 #include <float。h〉 int main(void) { float ot_f = 1。0 / 3.0; double ot_d = 1。0 / 3.0; printf(” float values: ”); printf("%.4f %。12f %。16f\n", ot_f, ot_f, ot_f); printf(”double values: ”); printf(”%。4f %。12f %。16f\n", ot_d, ot_d, ot_d); printf("FLT_DIG: %d\n”, FLT_DIG); printf("DBL_DIG: %d\n", DBL_DIG); return 0; } Chapter 5 Programming Exercises PE 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 = minutes / minperhour; mins = minutes % minperhour; printf("%d minutes = %d hours, %d minutes\n”, minutes, hours, mins); printf(”Enter next minutes value (0 to quit): "); scanf("%d", &minutes); } printf("Bye\n"); return 0; } PE 5-.‐3 /* Programming Exercise 5-3 */ #include <stdio.h> int main(void) { const int daysperweek = 7; int days, weeks, day_rem; printf(”Enter the number of days: "); scanf(”%d", &days); while (days 〉 0) { weeks = days / daysperweek; day_rem = days % daysperweek; printf("%d days are %d weeks and %d days。\n”, days, weeks, day_rem); printf("Enter the number of days (0 or less to end): "); scanf("%d", &days); } printf(”Done!\n”); 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(”sum = %d\n", 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 showCube(double x) { printf("The cube of %e is %e。\n", x, x*x*x ); } Chapter 6 Programming Exercises PE 6—­‐1 /* pe6-1.c */ /* this implementation assumes the character codes */ /* are sequential, as they are in ASCII。 */ #include <stdio。h> #define SIZE 26 int main( void ) { char lcase[SIZE]; int i; for (i = 0; i < SIZE; i++) lcase[i] = 'a’ + i; for (i = 0; i 〈 SIZE; i++) printf(”%c”, lcase[i]); 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 start; char end; for (end = let; end 〉= 'A'; end——) { for (start = let; start 〉= end; start--) printf("%c”, start); printf("\n”); } return 0; } PE 6-。‐6 /* pe6—6.c */ #include 〈stdio。h> int main( void ) { int lower, upper, index; int square, cube; printf("Enter starting integer: "); scanf("%d", &lower); printf("Enter ending integer: "); scanf(”%d", &upper); printf(”%5s %10s %15s\n", ”num", ”square”, "cube”); for (index = lower; index 〈= upper; index++) { square = index * index; cube = index * square; printf("%5d %10d %15d\n”, index, square, cube); } return 0; } PE 6-。‐8 /* pe6—8.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(”(%。3g - %。3g)/(%。3g*%。3g) = %。5g\n", n, m, n, m, res); printf("Enter next pair (non-numeric to quit): ”); } return 0; } PE 6—.‐11 /* pe6—11.c */ #include <stdio.h〉 #define SIZE 8 int main( void ) { int vals[SIZE]; int i; printf("Please enter %d integers.\n", SIZE); for (i = 0; i < SIZE; i++) scanf("%d", &vals[i]); printf(”Here, in reverse order, are the values you entered:\n"); for (i = SIZE — 1; i 〉= 0; i-—) printf(”%d ", vals[i]); printf("\n”); return 0; } PE 6-.‐13 /* pe6-13。c */ /* This version starts with the 0 power */ #include <stdio.h> #define SIZE 8 int main( void ) { int twopows[SIZE]; int i; int value = 1; /* 2 to the 0 */ for (i = 0; i 〈 SIZE; i++) { twopows[i] = value; value *= 2; } i = 0; do { printf("%d ", twopows[i]); i++; } while (i < SIZE); printf("\n”); return 0; } PE 6-­‐14 /* pe—14.c */ /* Programming Exercise 6—14 */ #include <stdio。h> #define SIZE 8 int main(void) { double arr[SIZE]; double arr_cumul[SIZE]; int i; printf("Enter %d numbers:\n”, SIZE); for (i = 0; i < SIZE; i++) { printf("value #%d: ", i + 1); scanf("%lf", &arr[i]); /* or scanf("%lf”, arr + i); */ } arr_cumul[0] = arr[0]; /* set first element */ for (i = 1; i < SIZE; i++) arr_cumul[i] = arr_cumul[i-1] + arr[i]; for (i = 0; i < SIZE; i++) printf("%8g ”, arr[i]); printf(”\n”); for (i = 0; i < SIZE; i++) printf("%8g ”, arr_cumul[i]); printf(”\n"); return 0; } PE 6—。‐16 /* pe6-16。c */ #include 〈stdio.h> #define RATE_SIMP 0.10 #define RATE_COMP 0。05 #define INIT_AMT 100.0 int 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 values after %d years:\n", years); printf("Daphne: $%。2f\n”, daphne); printf(”Deidre: $%。2f\n", deidre); return 0; } Chapter 7 Programming Exercises PE 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()) != '#’) { if (ch == ' ') sp_ct++; else if (ch == ’\n') nl_ct++; else other++; } printf("spaces: %d, newlines: %d, others: %d\n”, 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; double sumodd = 0.0; int ct_odd = 0; while (scanf("%d", &n) == 1 && n != 0) { if (n % 2 == 0) { sumeven += n; ++ct_even; } else // n % 2 is either 1 or —1 { sumodd += n; ++ct_odd; } } printf("Number of evens: %d”, ct_even); if (ct_even > 0) printf(" average: %g", sumeven / ct_even); putchar('\n’); printf("Number of odds: %d", ct_odd); if (ct_odd > 0) printf(” average: %g", sumodd / ct_odd); putchar(’\n'); printf(”\ndone\n"); return 0; } PE 7-­‐5 /* Programming Exercise 7-5 */ #include <stdio.h〉 int main(void) { char ch; int ct1 = 0; int ct2 = 0; while ((ch = getchar()) != ’#') { switch(ch) { case '.’ : putchar(’!'); ++ct1; break; case '!’ : putchar('!’); putchar('!’); ++ct2; break; default : putchar(ch); } } printf("%d replacement(s) of . with !\n", ct1); printf(”%d replacement(s) of ! with !!\n”, 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 tier #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 * 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 — taxes; printf(”gross: $%.2f; taxes: $%。2f; net: $%。2f\n”, gross, taxes, net); return 0; } PE 7—。‐9 /* Programming Exercise 7-9 */ #include <stdio。h> #include <stdbool。h〉 int main(void) { int limit; int num; int div; bool numIsPrime; // use int if stdbool.h not available printf(”Enter a positive integer: ”); while (scanf("%d", &limit) == 1 && limit 〉 0) { if (limit > 1) printf(”Here are the prime numbers up through %d\n", limit); else printf(”No primes。\n"); for (num = 2; num <= limit; num++) { for (div = 2, numIsPrime = true; (div * div) 〈= num; div++) if (num % div == 0) numIsPrime = false; if (numIsPrime) printf("%d is prime.\n”, num); } printf("Enter a positive integer (q to quit): "); } printf("Done!\n”); return 0; } PE 7—。‐11 /* pe7—11.c */ /* Programming Exercise 7-11 */ #include 〈stdio。h〉 #include <ctype.h> int main(void) { const double price_artichokes = 2。05; const double price_beets = 1.15; const double price_carrots = 1。09; const double DISCOUNT_RATE = 0.05; const double under5 = 6。50; const double under20 = 14.00; const double base20 = 14。00; const double extralb = 0.50; char ch; double lb_artichokes = 0; double lb_beets = 0; double lb_carrots = 0; double lb_temp; double lb_total; double cost_artichokes; double cost_beets; double cost_carrots; double cost_total; double final_total; double discount; double shipping; pr
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服