何钦铭-C语言程序设计(第3版)部分课后习题参考答案.docx
何钦铭C语言程序设计(第3版)课后习题参考答案习题11对 C 语言来说,下列标识符中哪些是合法的,哪些是不合法的?total, _debug, Large&Tall, Counter1, begin_解答:合法标识符:total, _debug, Counter1;不合法标识符:Large&Tall, begin_。2改写本章 1.4 节中的流程图 1.2,求 1100 中能被 6 整除的所有整数的和。解答:3改写本章 1.4 节中的程序,求 1100 中能被 6 整除的所有整数的和,并在编程环境中验证该程序的运行结果。解答:#include <stdio.h>int main(void)int i, sum = 0;for(i = 1; i <= 100; i+)if (i % 6 = 0)sum = sum + i;printf("%d", sum); return 0;4对于给定的整数 n(n1),请设计一个流程图判别 n 是否为一个素数(只能被 1 和自己整除的整数),并分析该流程图中哪些是顺序结构、哪些是分支结构与循环结构。解答: 在流程图中,分支结构和循环结构如图 1.2 所示,自上而下的 2 个实线框和 2 个虚线组成了顺序结构。习题21 求整数均值:输入 4 个整数,计算并输出这些整数的和与平均值,其中平均值精确到小数点后 1 位。试编写相应程序。解答:#include <stdio.h>int main (void)int num1, num2, num3, num4;double average, sum;scanf ("%d%d%d%d", & num1, & num2, & num3, & num4);sum = num1+ num2+ num3 + num4;average = sum / 4;printf ("Sum = %.0f; Average = %.1fn", sum, average);return 0;2 阶梯电价:为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量 50 千瓦时(含 50 千瓦时)以内的,电价为 0.53 元/千瓦时;超过 50 千瓦时的,超出部分的用电量,电价上调 0.05 元/千瓦时。输入用户的月用电量(千瓦时),计算并输出该用户应支付的电费(元)。试编写相应程序。解答:#include <stdio.h>int main (void)double cost, e;scanf ("%lf", &e);if(e < 0)printf ("Invalid Value!n");elseif (e <= 50)cost = 0.53 * e;elsecost = 0.53 * 50 + (e - 50) * 0.58;printf ("cost = %.2fn", cost);return 0;解答:#include <stdio.h>int main (void)int i, m, n;double sum;scanf ("%d%d", &m, &n);if (m > 0 && m <= n)sum = 0;for (i = m; i <= n; i+)sum = sum + i * i + 1.0 / i;printf ("sum = %.6fn", sum);return 0;解答:#include <stdio.h>int main (void)int flag, i, n;double item, sum;scanf ("%d", &n);sum = 0;flag = 1;for (i = 1; i <= n; i+)item = flag * 1.0 * i / (2 * i - 1);sum = sum + item;flag = -flag;printf ("%.3fn", sum);return 0;解答:#include <stdio.h>#include <math.h>int main (void)int i,n;double sum;scanf ("%d",&n);sum = 0;for (i = 1; i <= n; i+)sum = sum + sqrt(i);printf ("sum = %.2fn", sum);return 0;解答:#include <stdio.h>double fact (int n);int main (void)int i, n;double sum;scanf ("%d", &n);if(n <= 12)sum = 0;for (i = 1; i <= n; i+)sum = sum + fact (i);printf ("%.0fn", sum);return 0;double fact (int n)int i;double product;product=1;for (i = 1; i <= n; i+)product = product * i;return product;习题3习题4习题5习题6习题7一、 选择题12345678DDDCCCCB二、 填空题1、02、 i=1 xi-13、 -124、 (1)2 (2)35、 j>0 或者j>=1 i6、 aji!=aij found=1习题8习题9习题10习题11习题12