C++程序设计课后习题答案1-4章.pdf

上传人:灯火****19 文档编号:135216024 上传时间:2020-06-13 格式:PDF 页数:89 大小:893.95KB
返回 下载 相关 举报
C++程序设计课后习题答案1-4章.pdf_第1页
第1页 / 共89页
C++程序设计课后习题答案1-4章.pdf_第2页
第2页 / 共89页
C++程序设计课后习题答案1-4章.pdf_第3页
第3页 / 共89页
C++程序设计课后习题答案1-4章.pdf_第4页
第4页 / 共89页
C++程序设计课后习题答案1-4章.pdf_第5页
第5页 / 共89页
点击查看更多>>
资源描述

《C++程序设计课后习题答案1-4章.pdf》由会员分享,可在线阅读,更多相关《C++程序设计课后习题答案1-4章.pdf(89页珍藏版)》请在金锄头文库上搜索。

1、C C 程序设计课后习题答案程序设计课后习题答案 第一章第一章 C 基础知识习题基础知识习题 1 1 判断下列标识符的合法性 sinbook5arry nameExample2 1main 1class cppa3x ymy name 答 合法的 sinbook namemainclass cpp a3 非法的 5arryExample2 1 1x ymy name 1 2假定有下列变量 int a 3 b 5 c 0 float x 2 5 y 8 2 z 1 4 char ch1 a ch2 5 ch3 0 ch4 求下列表达式的值 以及运算后表达式所涉及的各变量的值 x int y ax

2、 z b b b x b ch4 ch3 ch2 ch1 int y z int y int z a b int m 5 a char ch a int array 5 1 2 3 4 5 char s Hello 答 China 文字常量 const int n 10 常变量 int m 5 变量 a 文字常量 char ch a 变量 int array 5 1 2 3 4 5 变量 char s Hello 变量 1 4将下列算式或叙述用 C 表达式描述 1 2 x y x y ay 3 位于原点为圆心 a b 为半径的圆环中的点坐标 4 5 并且字符 ch 不为 0 答 pi 2 sq

3、rt asin x asin x c c x y x y pow a y x x y y a a ch2 cin get cin ch3 若从键盘输入 3 2 1 8 7 a b c 执行后各变量取值如何 注意 abc 三字符两两间有空格 答 a 是3 b 是2 x 是1 8 y 是7 ch1是 a ch2是空格 ch3是 b 1 7设有语句 int a b c d cin oct a b hex c dec d 若从键盘输入 23232323 执行后各变量的值用十进制表示各是多少 答 a 19 b 19 c 35 d 23 1 8对于习题1 7 若执行 cout a t hex b t oc

4、t c 课后习题答案 第二章基本控制结构程序设计习题第二章基本控制结构程序设计习题 一 基本概念与基础知识自测题 2 1程序阅读题 2 1 1设有说明 int a 3 b 100 下面的循环语句执行 1 次 执行后 a b 的值分别为 2 3 while b a 5 if b a 25 a elseb a 解答 本题检查学生整除的概念 跟踪 abb a循环次数b a 310033197 410025296 510020395 1510061385 1610061484 171005停 1 14 2 17 3 100 2 1 2设有说明 int x y n k 下面程序段的功能是备选答案中的 1

5、 当 n 10 x 10打印结果是 2 cin x n k 0 do x 2 k while k n y 1 x k 0 do y y y k while k n cout y endl 备选答案 A B C D 解答 第一个循环使 x 成为 y 成为 第二个循环使 y 成为 1 B 考虑整除 当 x 连除4次2以后即为0 所以 为0 2 1 2 1 3请看如下程序段 if num 1 cout Alpha else if num 2 cout Bata else if num 3 cout Gamma else cout Delta 当 num 的值分别为1 2 3时 上面程序段的输出分别为

6、 1 2 3 解答 检查条件语句与字符串输出概念 1 Alpha 2 Bata 3 Gamma 2 1 4执行下面程序段后 m 和 k 的值分别为 1 2 int m k for k 1 m 0 k 10 break if m 2 0 m 5 continue m 3 解答 注意 continue 语句的使用 初值m 0k 1 第1次循环后m 5k 2 第2次循环后m 2k 3 第3次循环后m 7k 4 第4次循环后m 4k 5 第5次循环后m 9k 6 第6次循环后m 6k 7 第7次循环后m 11k 8 第8次循环m 11结束k 8 k 未做 1 11 2 8 二 编程与综合练习题 2 2

7、有一个函数 编写程序 输入 x 输出 y 解 include using namespace std int main double x y cout x if x 1 y x else if x 10 y 2 x 1 else y 3 x 11 cout y y endl return 0 2 3设计程序将输入的百分制成绩转换为五分制输出 90分以上为5分 80 89分 为4分 70 79分为3分 60 69分为2分 60分以下为1分 解 10分一档用10进行整除获得 转换用开关语句实行 include using namespace std int main int mark result

8、 mark 是百分制成绩 result 是5分制 cout 请输入百分制成绩 mark if mark 0 cout 缺考 endl return 0 switch mark 10 case 9 case 10 result 5 cout 输出五分制成绩 result endl break case 8 result 4 cout 输出五分制成绩 result endl break case 7 result 3 cout 输出五分制成绩 result endl break case 6 result 2 cout 输出五分制成绩 result endl break case 5 case 4

9、 case 3 case 2 case 1 case 0 result 1 cout 输出五分制成绩 result endl break default cout 输入错误 endl return 0 2 4编程计算个人所得税 个人所得税率表如下 月收入1200元起征 超过起征 点500元以内部分税率5 超过500元到2 000元部分税率10 超过2 000元到 5 000元部分税率15 超过5 000元到20 000元部分税率20 超过20 000元到 40 000元部分税率25 超过40 000元到60 000元部分税率30 超过60 000元到 80 000元部分税率35 超过80 00

10、0元到100 000元部分税率40 超过100 000 元部分税率45 解 应该从最高税率段开始计算 分段叠加 先算两万元以上各段 每两万为一 档 采用 switch 语句 注意没有使用 break 语句 后面各低收入段 用 if 语句 也没有使用 else 这两种方法是对应的 第二要注意计算的入口处 收入减去该 段的下限 进行计算 以后各段都是完整的段 计算十分简单 include using namespace std int main double income tax 0 int k cout 请输入个人月收入 income if income 1200 cout 免征个人所得税 20

11、000 k income 20000 switch k default tax income 100000 0 45 income 100000 case 4 tax income 80000 0 40 income 80000 case 3 tax income 60000 0 35 income 60000 case 2 tax income 40000 0 30 income 40000 case 1 tax income 20000 0 25 income 20000 if income 5000 tax income 5000 0 20 income 5000 if income 2

12、000 tax income 2000 0 15 income 2000 if income 500 tax income 500 0 10 income 500 tax income 0 05 cout 应征所得税 tax endl return 0 2 5编程打印如下图形 解 难点在三角形左边的空格的控制 嵌套一个循环语句完成此任务 include using namespace std int main int i j for i 1 i0 j cout 三角形每行前部的空格 for j 1 j 2 i 1 j cout cout endl for i 1 i 3 i cout n re

13、turn 0 2 6编程输出下列图形 中间一行英文字母由输入得到 A B B B C C C C C D D D D D D D C C C C C B B B A 解 分上三角和下三角两部分分别处理左边的空格 include using namespace std int main char in int i j do cout in if in 97 小写改大写 while in90 int line in A for i 0 i0 j cout 前方空格 for j 1 j 2 i 1 j cout char i A cout 0 i 下三角 少一行 for j 0 j line i j

14、 cout for j 1 j 2 i 1 j cout char i 1 A cout endl return 0 2 7输入 n 求1 2 3 n 解 通常求和作为外循环 阶乘作为内循环 这里考虑到 n n n 1 利用 递推法运算速度大大提高 同时两者可合并为一个循环 本程序考虑了输入的健 壮性 include include using namespace std int main int n i jch 1 double result 0 result 是结果 cout 请输入正整数 n n if n 1 cout 输入错误 endl return 1 result 1 for i

15、2 i n i jch i jch 是 i 的阶乘 注意 n n n 1 这样可少一层循环 result jch cout result endl return 0 2 8猴子吃桃问题 猴子摘下若干个桃子 第一天吃了桃子的一半多一个 以后 每天吃了前一天剩下的一半多一个 到第十天吃以前发现只剩下一个桃子 问猴 子共摘了几个桃子 解 采用递推法 从最后一天逆推到第一天 9次循环 include using namespace std const int day 10 int main int i x 1 最后一天只有一个 for i 1 i day i x x 1 2 从一天前推到九天前 cou

16、t 开始共有桃子 x 个 n return 0 2 9从键盘输入一组非0整数 以输入0标志结束 求这组整数的平均值 并统计 其中正数和负数的个数 解 将这组整数放在整型数组中 一边输入一边求和及统计正数和负数的个数 平均数由和除以整数数量取得 include include using namespace std int main int stem 256 sum 0 pnum 0 nnum 0 i 0 cout 从键盘输入一组非0整数 以输入0标志结束 stem i while stem i 0 sum stem i 求和 if stem i 0 pnum 正数数量 else nnum 负数数量 i cin stem i if i cout 0个数 endl else cout 平均值 double sum pnum nnum endl 平均值习 惯不用整数 cout 正数个数 pnum endl cout 负数个数 nnum endl return 0 2 10编程找出1 500之中满足除以3余2 除以5余3 除以7余2的整数 解 中国古代数学问题 韩信点兵 采用穷举法 注意三个条

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

当前位置:首页 > 学术论文 > 管理论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号