面向对象程序设计C山师习题答案资料.doc

上传人:M****1 文档编号:561095960 上传时间:2023-08-10 格式:DOC 页数:26 大小:44KB
返回 下载 相关 举报
面向对象程序设计C山师习题答案资料.doc_第1页
第1页 / 共26页
面向对象程序设计C山师习题答案资料.doc_第2页
第2页 / 共26页
面向对象程序设计C山师习题答案资料.doc_第3页
第3页 / 共26页
面向对象程序设计C山师习题答案资料.doc_第4页
第4页 / 共26页
面向对象程序设计C山师习题答案资料.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《面向对象程序设计C山师习题答案资料.doc》由会员分享,可在线阅读,更多相关《面向对象程序设计C山师习题答案资料.doc(26页珍藏版)》请在金锄头文库上搜索。

1、资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。第五章习题答案一、 选择填空 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、 运行该程序输出如下结果。5811142、 运行该程序输出如下结果。253、 该程序输出如下结果。10+2+1=1320+

2、2+2=2430+2+3=3540+2+4=464、 运行该程序的输出结果如下所示。6, 115、 运行该程序输出如下结果。5! +4! +3! +2! +1! =1536、 运行该程序输出如下结果。6,6,67、 运行该程序输出如下结果。sum 1=13sum 2=18sum 3=238、 运行该程序输出如下结果。7209、 运行该程序输出如下结果: a=5,b=8a=8,b=510、 运行该程序输出结果如下所示。1011、 运行该程序输出结果如下所示。ff(double):88.18ff(int):9712、 运行该程序输出结果如下所示。1121231234四、 按下列要求编程, 并上机验

3、证。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:”;for(int i=0;iai;s=sum(a,15);d

4、ouble 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型数组中。接着, 在数组中将重复的数组元素去掉。其方法是在比较中发现有重复的就用数组中最末元素替换, 同时更新数组元素个数。最后, 将数组中的元素使用排序函数sort()进行排序, 并输出显示最后排好序的数组元

5、素。排序函数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”;void sort(int b ,int n)for(int i=1;in;i+) for(int j=0;jn-i;j+)if(bjbj

6、+1)int t=bj;bj=bj+1;bj+1=t;3、 分析: 该程序将包含一个主函数和两个被调函数: 一个是计算某一年是否是闰年的函数leap(),另一个是计算日期的函数sum_day()。主函数中, 先从键盘上输入某天的年、 月、 日, 存放在相应的变量year, month和day中。接着, 调用sum_day()函数, 计算出这一天是该年的第几天, 计算时按非闰年计算, 即2月份28天。然后, 再判断该年是否是闰年, 而且该月是否是大于2月。如果是闰年, 且月份又大于2月, 则计算的天数加1。最后将其结果输出显示。计算闰年的函数 leap()是按照闰年的定义, 使用逻辑表示式返回。

7、闰年时返回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,month,day;coutyearmonthday;int days=sum_day(month,day);if(leap(year)&month2

8、)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|year%400=0;return leap;当输入为1998年4月7日时, 输出信息如下所示。请输入一个日期( yyyy mm dd) :1998 4 7是这一年的第9

9、7天。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;该程序输出如下信息。请输入一个字符串: abcdefgh输出结果如下所示。反序前: abcdefgh反序后: hgfedcba5、 分析: 由于十六制数的表示中, 除了有数字09, 还有6个字母a,b,c,d,e,f

10、.因此输入十六进制数时, 应采用char型, 将它存放在一个字符数组中。然后, 调用一个转换函数htoi(), 将输入的字符型数组中的十六进制数转换为十进制的。在转换函数中, 应考虑到下述3类不同字符的转换方法: ( 1) 数字字符0至9; ( 2) 小写字母a至f; ( 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=

11、0&si=a&si=A&si=F) n=n*16+si-A+10;return n; 6、 #include char *fun1(int);int fun2( );char s10;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(

12、ai+0);sj+1= ;sj-1=0;return s;int fun2() int n=0,i=0; while(si+) n+; return n;运行该程序显示如下信息: 输入一个5位的整型数: 87654输出结果如下所示: 整型数加空格后为: 8 7 6 5 4加空格后字符串长度为: 97、 分析: 首先定义一个char型数组name5 10用来存放5个学生的姓名, 再定义一个int型数组score5 4来存放5个学生的4门功课成绩, 再定义一个数组al5用来存放用来存放每个学生的总成绩。该程序将有4个函数组成。( 1) 主函数main( ) , 包括所有定义的数组, 并赋初值。先调用求每个学生4门功课的总分的函数all_scor( ) , 经过for循环将每个学生功课总分显示在屏幕上, 同时存放在数组al5中。再调用求每个学生4门功课平均成绩的函数aver_scor经过for街环将每个学生功课的平均成绩输出显示在屏幕上。最后, 用计算5个学生中总分最高的函数high_scor( ) , 经过返回最高分, 并经过

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

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