2022年面向对象程序设计C山师第五章习题答案 .pdf
《2022年面向对象程序设计C山师第五章习题答案 .pdf》由会员分享,可在线阅读,更多相关《2022年面向对象程序设计C山师第五章习题答案 .pdf(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 / 12 第五章习题答案一、选择填空 1、A 2、D 3、B 4、 D 5、D 6 、C 7、C 8、D 9、C 10、A 11 、B 12、C 13、A 14、D 15、C 二、判断下列描述的正确性,对者划,错者划。 1、 2、 3、 4、 5、 6、 7、 8、 9、 10、 11、 12、 13、 14、 15、 16、 17、 18、 19、 20、三、分析下列程序的输出结果。1、运行该程序输出如下结果。5 8 11 14 2、运行该程序输出如下结果。25 3、该程序输出如下结果。10+2+1=13 20+2+2=24 30+2+3=35 40+2+4=46 4、运行该程序的输出结
2、果如下所示。6,11 5、运行该程序输出如下结果。5!+4!+3!+2!+1!=153 6、运行该程序输出如下结果。6,6,6 7、运行该程序输出如下结果。sum 1=13 sum 2=18 sum 3=23 8、运行该程序输出如下结果。720 9、运行该程序输出如下结果:a=5,b=8 a=8,b=5 10、运行该程序输出结果如下所示。10 11、运行该程序输出结果如下所示。ff(double):88.18 ff(int):97 12、运行该程序输出结果如下所示。1 12 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 12 页2 /
3、 12 123 1234 四、按下列要求编程,并上机验证。1、分析:该程序有3 个函数: main(),sum()和 average()。主函数main()中包含有如下操作:输入15 个浮点数放在一个数组中,使用循环语句从键盘上输入值,接着分别调用sum()函数求15 个浮点数之和,调用average()函数求15 个浮点数的平均值,最后将15 个浮点数的和值与平均值输出显示。程序如下:#include double s, sum(double b,int n),average(int n) 。void main( ) double a15 。cout ” Input 15 doubles:”
4、。for(int i=0 。iai 。s=sum(a,15)。double ave=average(15)。cout ” SUM= ” s , ”AVERAGE= ” aveendl。 double sum(double b,int n) double sum=0。for(int i=0 。i15 。i+) sum+=bi 。return sum。 double average(int n) return s/n。 2、分析:先将10 个 int 型数从键盘上输入,并放在一个int 型数组中。接着,在数组中将重复的数组元素去掉。其方法是在比较中发现有重复的就用数组中最末元素替换,同时更新数组元
5、素个数。最后,将数组中的元素使用排序函数sort()进行排序,并输出显示最后排好序的数组元素。排序函数sort()是按照 “ 冒泡 ” 排序的算法进行编程的。程序的内容如下所示。#include void main() int a10,n=10 。void sort(int b ,int n)。cout ” Input 10integer:”。for(int i=0 。iai 。for(i=0 。in。 i+) for(int j=i+1 。 jn。j+) if(ai=aj) aj=a- -n 。j-。 sort(a,n)。for(i=0 。in。i+) coutai ”。cout ”n” 。
6、 void sort(int b ,int n) for(int i=1 。in。i+) for(int j=0 。jn-i 。j+) if(bjbj+1) int t=bj 。bj=bj+1。bj+1=t 。 3、分析:该程序将包含一个主函数和两个被调函数:一个是计算某一年是否是闰年的函数 leap(),另一个是计算日期的函数sum_day()。主函数中,先从键盘上输入某天的年、月、日,存放在相应的变量year,month 和 day中。接着,调用sum_day()函数,计算出这一天是该年的第几天,计算时按非闰年计算,即2 月份 28 天。然后,再判断该年是否是闰年,并且该月是否是大于2 月
7、。如果是闰年,且月份又大于2 月,则计算的天数加1。最后将其结果输出显示。计算闰年的函数leap()是按照闰年的定义,使用逻辑表达式返回。闰年时返回1,否则返回 0。指定的每月的总天数的数组进行相加计算,这时2 月份按28 天计算,将每月天数存放在一个数组中,使该数组的下标与月份数相同。例如,5 月 4 日,计算天数时如下所示。days_month1+days_month2+days_month3+days_month4+4。并将这个表式值返回。程序内容如下所示。#include int sum_day(int,int),leap(int) 。void main() int year,mont
8、h,day。coutyearmonthday 。int days=sum_day(month,day) 。if(leap(year)&month2) days+。cout是这一年的第days 天n。 int sum_day(int month,int day) static int days_month13=0,31,28,31,30,31,30,31,31,30,31,30,31。for(int i=1 。imonth 。 i+) day+=days_monthi 。return day。 int leap(int year) int leap=year%4=0&year%100!=0|ye
9、ar%400=0。return leap。 当输入为1998 年 4 月 7 日时,输出信息如下所示。请输入一个日期(yyyy mm dd ):1998 4 7 是这一年的第97 天。4、#include #include void fun(char)。void main( ) char s80 。couts 。cout ”反序前 : ” sendl。fun(s)。cout ”反序后 : ” sendl。 void fun(char ss) int n=strlen(ss) 。for(int i=0 。in/2 。i+) char c=ssi。ssi=ssn-1-i 。ssn-1-i=c 。
10、精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 12 页5 / 12 该程序输出如下信息。请输入一个字符串:abcdefgh 输出结果如下所示。反序前: abcdefgh 反序后: hgfedcba 5、分析:由于十六制数的表示中,除了有数字09,还有6 个字母a,b,c,d,e,f.因此输入十六进制数时,应采用char 型,将它存放在一个字符数组中。然后,调用一个转换函数htoi() ,将输入的字符型数组中的十六进制数转换为十进制的。在转换函数中,应考虑到下述 3 类不同字符的转换方法:(1)数字字符 0至 9;(2)小写字母 a至f
11、 ;(3)大写字母 A至F。程序内容如下所示。#include int htoi(char) 。void main( ) int htoi(chars ) 。cout ”输入一个十六进制数: ”。char s120=” ”。cin.read(s1,20)。coutendl 。int n=htoi(s1) 。cout ”该数转换为十进制数” n= 0 &si= a &si= A &si= F ) n=n*16+si- A +10。 return n。 6、#include char *fun1(int)。int fun2( ) 。char s10。精选学习资料 - - - - - - - - -
12、 名师归纳总结 - - - - - - -第 5 页,共 12 页6 / 12 void main( ) int number 。coutnumber 。cout ”整型数加空格后为: ” fun1(number)endl 。cout ”加空格后字符串长度为: ” fun2()endl 。 char *fun1(int n) int a5 。a4=n%10 。a3=n/10%10 。a2=n/100%10 。a1=n/1000%10 。a0=n/10000 。for(int i=0,j=0 。i5。i+,j+=2) sj=char(ai+ 0)。sj+1=。 sj- 1= 0 。return
13、s。 int fun2() int n=0,i=0 。 while(si+) n+。 return n。 运行该程序显示如下信息:输入一个 5 位的整型数: 87654 输出结果如下所示:整型数加空格后为:8 7 6 5 4 加空格后字符串长度为:9 7、分析:首先定义一个char型数组name5 10 用来存放5 个学生的姓名,再定义一个 int 型数组 score5 4 来存放 5 个学生的 4 门功课成绩,再定义一个数组al5 用来存放用来存放每个学生的总成绩。该程序将有4 个函数组成。(1)主函数main(),包括所有定义的数组,并赋初值。先调用求每个学生4 门功课的总分的函数all_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年面向对象程序设计C山师第五章习题答案 2022 面向 对象 程序设计 第五 习题 答案
限制150内