资源预览内容
第1页 / 共61页
第2页 / 共61页
第3页 / 共61页
第4页 / 共61页
第5页 / 共61页
第6页 / 共61页
第7页 / 共61页
第8页 / 共61页
第9页 / 共61页
第10页 / 共61页
亲,该文档总共61页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
C语言程序设计及实验指导练习及习题参考答案1.3 习题参考答案1对C语言来说,下列标识符中哪些是合法的,哪些是不合法的?total, _debug, Large&Tall, Counter1, begin_解答:Large&Tall不合法,其余都合法。sum = 0i = 1i = 100?i能被6整除?sum = sum + ii = i + 1打印 sum真真假假2改写本章1.4 节中的流程图1.2,求1100 中能被6 整除的所有整数的和。解答如下图3改写本章1.4 节中的程序,求1100 中能被6 整除的所有整数的和,并在编程环境中验证该程序的运行结果。解答:#include 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;运行结果:8161.4 实验指导教材参考答案一、编程示例:略二、调试示例:略三、改错题改正下列程序中的错误,在屏幕上显示以下3行信息。(源程序error01_2.cpp)*Welcome*源程序(有错误的程序)1 #include 2 int mian( void )3 4 printf(*n);5 printf( Welcomen)6printf(*n);78 return 0;9 改错汇总:错误行号: 2 正确语句: int main( void )错误行号: 5 正确语句: printf( Welcomen);四、编程题1在屏幕上显示一个短句“What is a computer?”。解答:#include int main(void )printf(What is a computer?n);return 0;2在屏幕上显示下列图形。*解答:参见2.3.1 节中的练习2-33在屏幕上显示下列图形。AA AA解答:#include int main(void )printf( An);printf(A An);printf( An);return 0;2.3 练习与习题参考答案2.3.1 练习参考答案2-1 编写程序,在屏幕上显示一个短句“Programming in C is fun!”。解答:#include int main(void)printf(Programming in C is fun!n);return 0;2-2 下列语句的运行结果是什么?与例2-2 的运行结果有何不同?为什么?printf(Programming is fun. And Programming in C is even more fun!n);解答:运行结果:Programming is fun. And Programming in C is even more fun!例2-2 的运行结果分2 行显示。原因在于,例2-2 中在每条输出语句的结尾都采用了n换行。2-3 编写程序,在屏幕上显示如下图案。*解答:#include int main(void)printf(* * * *n * * *n * *n *n);return 0;2-4 编写程序,求华氏温度 150F 对应的摄氏温度(计算公式同例2-3)。解答:#include int main(void)int celsius, fahr;fahr = 150;celsius = 5*(fahr 32)/9;printf(fahr = %d, celsius = %dn, fahr, celsius);return 0;2-5 算术表达式5*(fahr-32)/9 能改写成5(fahr-32)/9 吗?为什么?如果将其改写为5/9*(fahr-32),会影响运算结果吗?解答:5(fahr-32)/9 不是合法的C 表达式,因为不能省略运算符*;5/9*(fahr-32)的值为0。2-6 一个物体从100 米的高空自由落下,编写程序,求它在前3秒内下落的垂直距离。设重力加速度为10m/s2。解答:#include int main(void)double height;height = 0.5 *10 *3 *3;printf(height = %.2fn, height);return 0;2-7 输入提示和输入语句的顺序应该如何安排?例2-5 中,scanf(%d%d%lf, &money, &year,&rate) 能改写为scanf(%d%lf%d, &money, &year, &rate) 吗? 为什么? 能改写为scanf(%d%lf%d, &money, &rate, &year) 吗?如果可以,其对应的输入数据是什么?解答:输入提示在前,输入语句在后。不能改写为scanf(%d%lf%d, &money, &year, &rate),因为%lf 与整型变量money 不匹配,%d 与浮点型变量rate 不匹配。与scanf(%d%lf%d, &money, &rate, &year)对应的输入数据为:1000 0.025 32-8 编写程序,输入华氏温度,输出对应的摄氏温度,计算公式同例2-3。解答:#include int main(void)int celsius, fahr;scanf(%d, &fahr);celsius = 5 * (fahr - 32) / 9;printf(celsius = %dn, celsius);return 0;2-9 编写程序,输入3 个整数,计算并输出它们的平均值。解答:#include int main(void)int a, b, c;double average;scanf(%d%d%d, &a, &b, &c);average = (a + b + c) * 1.0 / 3;printf(average = %.2fn, average);return 0;2-10 编写程序,输入x,计算并输出下列分段函数f(x)的值(保留3 位小数)。解答:#include int main(void)double x, y;scanf(%lf, &x);if(x != 0)y = 1 / x;elsey = 0;printf(f(%.2f) = %.3fn, x, y);return 0;2-11 编写程序,输入x,计算并输出下列分段函数f(x)的值(保留2 位小数),请调用sqrt函数求平方根,调用pow 函数求幂。 解答:#include #include int main(void)double x, y;scanf(%lf, &x);if(x = 0)y = sqrt(x);elsey = pow(x,5) + 2*x +1/x;printf(f(%.2f) = %.2fn, x, y);return 0;2-12 编写程序,输入2 个整数lower 和 upper,输出一张华氏摄氏温度转换表,华氏温度的取值范围是lower, upper,每次增加2F,计算公式同例2-7。解答:#include int main(void)int lower, upper;double celsius, fahr;scanf(%d%d, &lower, &upper);printf(fahr celsiusn);for(fahr = lower; fahr = upper; fahr = fahr + 2)celsius = 5 * (fahr - 32.0)/9 ;printf(%3.0f %6.1fn, fahr, celsius);return 0;2-13 编写程序,输入一个正整数n,求。解答:#include int main(void)int i, n;double sum;scanf(%d, &n);sum = 0;for(i = 1; i = n; i+)sum = sum + 1.0 / i;printf(sum = %.6fn, sum);return 0;2-14 编写程序,输入一个正整数n,计算 的前 n 项之和。解答:#include int main(void)int i, n;double sum;scanf(%d, &n);sum = 0;for(i = 1; i = n; i+)sum = sum + 1.0/(2*i-1);printf(sum = %.6fn, sum);return 0;2-15 编写程序,输入一个正整数n,计算的前 n 项之和。解答:#include int main(void)int flag, i, n, denominator;double item, sum;scanf(%d, &n);sum = 0;flag = 1;denominator = 1;for(i = 1; i = n; i+)item = flag * 1.0/denominator;sum = sum + item;flag = -flag;denominator = denominator + 3;printf(sum = %.3fn, sum);return 0;2-16 编写程序,输入两个正整数m 和n,计算 m! + n!。解答:#includeint main(void)int i, m, n;double fm, fn;scanf(%d%d, &m, &n);fm = 1;for(i = 1; i = m; i+)fm = fm * i;fn = 1;for (i = 1; i = n; i+)fn = fn * i;printf(%d! +
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号