2021年C语言程序设计(第3版)何钦铭颜晖第2章C语言编写程序.docx

上传人:Che****ry 文档编号:4661879 上传时间:2021-10-23 格式:DOCX 页数:19 大小:66.54KB
返回 下载 相关 举报
2021年C语言程序设计(第3版)何钦铭颜晖第2章C语言编写程序.docx_第1页
第1页 / 共19页
2021年C语言程序设计(第3版)何钦铭颜晖第2章C语言编写程序.docx_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《2021年C语言程序设计(第3版)何钦铭颜晖第2章C语言编写程序.docx》由会员分享,可在线阅读,更多相关《2021年C语言程序设计(第3版)何钦铭颜晖第2章C语言编写程序.docx(19页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、精品word 可编辑资料 - - - - - - - - - - - - -第 2 章C 语言编写程序【练习2-1 】输出短句( Programming in C is fun!):在屏幕上显示一个短句 “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 e

2、ven 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 );试编写相应程序

3、;解答:#include int main(void)double celsius、fahr;printf(Enter fahr:n); scanf(%lf、&fahr); celsius=5.0*(fahr-32)/9;第 1 页,共 10 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -printf(celsius=%.2lfn、celsius);return 0;【 练 习 2-5 】 算 术 表 达 式 5*(fahr-32)/9能 改 写 成 5(fahr-32)/9吗 ? 为 什 么 ? 如 果 将 其 改 写

4、为 5/9*(fahr-32) ,会影响运算结果吗?解答:5(fahr-32)/9不为合法的C表达式,由于不能省略运算符* ; 5/9*(fahr-32)的值为 0 ;【练习 2-6 】一个物体从 100米的高空自由落下,编写程序,求它在前3秒内下落的垂直距离;设重力加速度为10m/s 2;解答:#include int main(void)double h、g=10、t=3;h=1/2*g*t*t; printf(h=%fn、h);return 0;【练习2-7 】输入 提示和 输入 语句 的顺 序应当 如何 支配 ?例 2-5中, scanf(%d%d%lf、&money、 &year、&

5、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 3【练习2-8 】 运算摄氏温度:输入华氏温度,输出对应

6、的摄氏温度,运算公式同例 2-3 ;试编写相应程序;解答:#include int main(void)int celsius、 fahr;Printf(“Input fahr:”); scanf(%d、 &fahr);celsius = 5 * (fahr - 32) / 9; printf(celsius = %dn、 celsius);第 2 页,共 10 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -return 0;【练习 2-9 】整数四就运算:输入2个正整数,运算并输出它们的和.差.积.商;试编写相应程序;解

7、答:#include int main (void)double m、n;printf(Enter m:n); scanf(%lf、&m); printf(Enter n(n.=0):n);scanf(%lf、&n); printf(m+n=%.0lfn、m+n); printf(m-n=%.0lfn、m-n); printf(m*n=%.0lfn、m*n); printf(m/n=%.2lfn、m/n);return 0;【练习 2-10 】运算分段函数(判定x 为否不为 0):输入 x ,运算并输出以下分段函数 f(x)的值(保留 1 位小数);试编写相应程序;x 0y=f(x)=0 x=

8、0解答:#include int main(void)double x、y;printf(Enter x:n); scanf(%lf、&x); if(x.=0)y=1/x;elsey=0;printf(y=f(%lf)=%.1lfn、x、y); return 0;第 3 页,共 10 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -【练习 2-11 】运算分段函数(判定x 为否小于 0):输入 x ,运算并输出以下分段函数 f(x)的值(保留 2位小数);可包含头文件math.h ,并调用 sqrt()函数求平方根,调用po

9、w() 函数求幂;试编写相应程序;x2+2x+x0 y=f(x)=x0解答:#include #include int main(void)double x、 y;printf(“Input x:”);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 】输出华氏 - 摄氏温度转换表:输入两个整数 lower 和 upper ,输出一张华氏 - 摄氏温度转换表,华氏温度的取值范畴为 lower、 upper ,

10、每次增加2F,运算公式同例 2-6 ;试编写相应程序;解答:#include int main(void)int lower、 upper; double celsius、 fahr;printf(“Input lower and upper:”); scanf(%d%d、 &lower、 &upper);if(lower=upper)printf(“fahrcelsiusn”); for(fahr = lower; fahr = upper; fahr = fahr + 2)celsius = 5 * (fahr - 32.0)/9 ; printf(%3.0f %6.1fn、 fahr、

11、celsius);第 4 页,共 10 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -elseprintf(“Invalid Value.n”);return 0;【练习 2-13 】求给定序列前n 项和( 1+1/2+1/3+):输入一个正整数n ,运算序列 1+1/2+1/3+的前 n 项之和;试编写相应程序;解答:#include int main(void)int i、 n; double sum;printf(“ Input n:” );scanf(%d、 &n); sum = 0;for(i = 1; i =

12、n; i+)sum = sum + 1.0 / i; printf(sum = %.6fn、 sum);return 0;【练习 2-14 】求给定序列前n 项和( 1+1/3+1/5+):输入一个正整数n ,运算序列 1+1/3+1/5+的前 n 项之和;试编写相应程序;解答:#include int main(void)int i、 n; double sum;printf(“ Input n:” );scanf(%d” 、&n); sum = 0;for(i = 1; i = n; i+)sum = sum + 1.0/(2*i-1); printf(sum = %.6fn、 sum);

13、return 0;【练习 2-15 】求给定序列前n 项和( 1-1/4+1/7-1/10):输入一个正整数n ,第 5 页,共 10 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -运算序列 1-1/4+1/7-1/10+1/13-1/16的前 n 项之和;试编写相应程序;解答:#include int main(void)int flag、 i、 n、 denominator; double item、 sum;printf(“ Input n:”);scanf(%d、 &n); sum = 0;flag = 1;den

14、ominator = 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 】执行以下程序段后, sum的值 ; for (i = 1; i = 10; i+)sum = 0;sum = sum + i;解答: sum 的值为 10 ;2.5 生成乘方表与阶乘表【练习 2-17 】生成 3 的乘方表:输入一个正整数 n,生成一张 3

15、 的乘方表,输出 3 o到 3.的值;可包含头文件 math.h、 并调用幂函数运算 3 的乘方;试编写相应程序;解答:#include #include int main(void)int i、 n;double mypow;printf(“Input n:”);scanf(%d、 &n);第 6 页,共 10 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -for(i = 0; i = n; i+) mypow = pow(3、 i);printf(pow(3、%d) = %.0fn、 i、 mypow);return

16、0;【练习2-18 】求组合数:依据以下公式可以算出从n个不同元素中取出m 个元素( mn)的组合数;输入两个正整数m 和 n (mn),运算并输出组合数;要求定义和调用函数fact(n)运算 n. ,函数类型为 double ;解答:#include double fact(int n); int main(void)int m、 n; double s;printf(“Input m and n:”); scanf(%d%d、 &m、 &n);s = fact(n)/(fact(m) * fact(n-m); printf(result = %.0fn、 s);return 0;doubl

17、e fact(int n)int i;double product;product = 1;for(i = 1;i = n; i+) product = product * i;return product;习题 21求整数均值:输入4 个整数,运算并输出这些整数的和与平均值,其中平均值精确到小数点后1 位;试编写相应程序;解答:#include 第 7 页,共 10 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -int main(void)double num1、 num2、num3、num4、;printf(Input

18、 num1、 num2、 num3 and num4:”); scanf(%lf%lf%lf%lf、 &num1、 &num2、&num3、&num4); printf(sum=%.0lfn、 num1+ num2+ num3+num4); printf(average= %.1lfn、 (num1+num2+num3+num4)/4);return 0;2. 阶梯电价: 为了提倡居民节省用电, 某省电力公司执行“阶梯电价”, 安装一户一表的居民用户电价分两个“阶梯”:月用电量 50 千瓦时(含 50 千瓦时) 以内的,电价为 0.53 元/ 千瓦时;超过 50 千瓦时,超出的用电量电价上调

19、0.05 元/ 千瓦时;输入用户的月用电量(千瓦时) ,运算并输出该用户应支付的电费(元);试编写相应程序;解答:#include int main(void)double cost、 e; printf(Input e:);scanf(%lf、 &e); if(e = 50)cost = 0.53 * e;elsecost = 0.53 * 50 + (e - 50) * 0.58;printf(cost = %.2fn、 cost);return 0;n位小数;试编写相应程序解答:#include int main(void)int i、 m、 n; double sum;第 8 页,共

20、10 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -printf(Input m and n:) ; scanf(%d%d、 &m、 &n);sum = 0;for(i = m; i = n; i+)sum = sum + i * i + 1.0 / i; printf(sum = %.6fn、 sum);return 0;4 求 交 错 序 列 前n项 和 : 输 入 一 个 正 整 数n , 计 算 交 错 序 列1-2/3+3/5-4/7+5/9-6/11+的前 n 项之和;试编写相应程序;解答:#include i

21、nt main(void)int flag、 i、 n; double item、 sum;printf(“ Input n:” );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(sum = %.3fn、 sum);return 0;h.h ,并调用 sqrt( )函数求平方根;试编写相应程序;解答:#include #include int main(void)int i、 n; dou

22、ble sum;printf(Input n:);第 9 页,共 10 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -scanf(%d、 &n); sum = 0;for(i = 1; i = n; i+)sum = sum + sqrt(ii);printf(sum = %lffn、 sum);return 0;6. 求给定序列前 n 项和( 1!+2!+):输入一个正整数n ,求 e=1!+2!3!+n!的值;要求定义和调用fact (n)运算 n!,函数类型为 double ;试编写相应程序;解答:#include

23、double fact(int n); int main(void)int i、 n; double sum;printf(Input n:);scanf(%d、 &n); sum = 0;for(i = 0; i = n; i+)sum = sum + fact(i); printf(sum = %.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;第 10 页,共 10 页 - - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com