logo资料库

Cprimer plus第六版编程练习答案.pdf

第1页 / 共78页
第2页 / 共78页
第3页 / 共78页
第4页 / 共78页
第5页 / 共78页
第6页 / 共78页
第7页 / 共78页
第8页 / 共78页
资料共78页,剩余部分请下载后查看
C  Primer  Plus  Sixth  Edition  Programming  Exercise  Selected  Answers   Chapter  2  Programming  Exercises    PE  2-­‐1   /* Programming Exercise 2-1 */ #include 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 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 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 int main(void) { int toes; toes = 10; printf("toes = %d\n", toes); 1
/* Programming Exercise 2-8 */ #include 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 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; } C  Primer  Plus  Sixth  Edition  Programming  Exercise  Selected  Answers   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   PE  3-­‐4   PE  3-­‐6   /* Programming Exercise 3-4 */ #include 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; } 2
C  Primer  Plus  Sixth  Edition  Programming  Exercise  Selected  Answers   /* Programming Exercise 3-6 */ #include 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 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 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 #include int main(void) { float ot_f = 1.0 / 3.0; double ot_d = 1.0 / 3.0; 3
C  Primer  Plus  Sixth  Edition  Programming  Exercise  Selected  Answers   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 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 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; } 4
C  Primer  Plus  Sixth  Edition  Programming  Exercise  Selected  Answers   PE  5-­‐5   /* Programming Exercise 5-5 */ #include 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 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 #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; } 5
/* pe6-3.c */ /* this implementation assumes the character codes */ /* are sequential, as they are in ASCII. */ #include 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 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   C  Primer  Plus  Sixth  Edition  Programming  Exercise  Selected  Answers   PE  6-­‐3   /* pe6-8.c */ #include 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): "); } 6
C  Primer  Plus  Sixth  Edition  Programming  Exercise  Selected  Answers   PE  6-­‐11   return 0; } /* pe6-11.c */ #include #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 #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 #define SIZE 8 int main(void) { double arr[SIZE]; double arr_cumul[SIZE]; int i; 7
C  Primer  Plus  Sixth  Edition  Programming  Exercise  Selected  Answers   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 #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 int main(void) { char ch; int sp_ct = 0; int nl_ct = 0; int other = 0; 8
分享到:
收藏