ImageVerifierCode 换一换
格式:DOC , 页数:26 ,大小:44KB ,
资源ID:3853722      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/3853722.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(面向对象程序设计C山师习题答案资料.doc)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

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

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、 √

2、 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、 运行该程序的输出结果如下所示。 6, 11 5、 运行该程序输出如下结果。 5! +4! +3! +2! +1! =153 6、 运行该程序输出如下结果。 6,6,6 7、 运行该程序输出如下结果。 sum 1=13 sum 2=18 sum 3=23 8、 运行该程序输出如下结果。 72

3、0 9、 运行该程序输出如下结果: a=5,b=8 a=8,b=5 10、 运行该程序输出结果如下所示。 10 11、 运行该程序输出结果如下所示。 ff(double):88.18 ff(int):97 12、 运行该程序输出结果如下所示。 1 12 123 1234 四、 按下列要求编程, 并上机验证。 1、 分析: 该程序有3个函数: main(),sum()和average()。主函数main()中包含有如下操作: 输入15个浮点数放在一个数组中, 使用循环语句从键盘上输入值, 接着分别调用sum()函数求15个浮点数之和, 调用average()函数求

4、15个浮点数的平均值, 最后将15个浮点数的和值与平均值输出显示。 程序如下: #include double s, sum(double b[],int n),average(int n); void main( ) { double a[15]; cout<<”Input 15 doubles:”; for(int i=0;i<15;i++) cin>>a[i]; s=sum(a,15); double ave=average(15); cout<<”SUM=”<

5、uble sum(double b[],int n) { double sum=0; for(int i=0;i<15;i++) sum+=b[i]; return sum; } double average(int n) { return s/n; } 2、 分析: 先将10个int型数从键盘上输入, 并放在一个int型数组中。接着, 在数组中将重复的数组元素去掉。其方法是在比较中发现有重复的就用数组中最末元素替换, 同时更新数组元素个数。最后, 将数组中的元素使用排序函数sort()进行排序, 并输出显示最后排好序的数组元素。 排序函数sort()是按照”冒泡”排

6、序的算法进行编程的。 程序的内容如下所示。 #include void main() { int a[10],n=10; void sort(int b[ ],int n); cout<<”Input 10integer:”; for(int i=0;i>a[i]; for(i=0;i

7、<<””; cout<<”\n”; } void sort(int b[ ],int n) { for(int i=1;i

8、y()函数, 计算出这一天是该年的第几天, 计算时按非闰年计算, 即2月份28天。然后, 再判断该年是否是闰年, 而且该月是否是大于2月。如果是闰年, 且月份又大于2月, 则计算的天数加1。最后将其结果输出显示。 计算闰年的函数 leap()是按照闰年的定义, 使用逻辑表示式返回。闰年时返回1, 否则返回0。 指定的每月的总天数的数组进行相加计算, 这时2月份按28天计算, 将每月天数存放在一个数组中, 使该数组的下标与月份数相同。例如, 5月4日, 计算天数时如下所示。     days_month[1]+days_month[2]+days_month[3]+days_month[4]

9、4;并将这个表式值返回。 程序内容如下所示。 #include int sum_day(int,int),leap(int); void main() { int year,month,day; cout<<"请输入一个日期(yy mm dd):"; cin>>year>>month>>day; int days=sum_day(month,day); if(leap(year)&&month>2) days++; cout<<"是这一年的第"<

10、) { static int days_month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; for(int i=1;i

11、include #include void fun(char[]); void main( ) { char s[80]; cout<<”请输入一个字符串:”; cin>>s; cout<<”反序前:”<

12、 } 该程序输出如下信息。 请输入一个字符串: abcdefgh 输出结果如下所示。 反序前: abcdefgh 反序后: hgfedcba 5、 分析: 由于十六制数的表示中, 除了有数字0~9, 还有6个字母a,b,c,d,e,f.因此输入十六进制数时, 应采用char型, 将它存放在一个字符数组中。然后, 调用一个转换函数htoi(), 将输入的字符型数组中的十六进制数转换为十进制的。在转换函数中, 应考虑到下述3类不同字符的转换方法: ( 1) 数字字符‘0’至‘9’; ( 2) 小写字母‘a’至‘f’; ( 3) 大写字母‘A’至‘F’。 程序内容如下所示

13、 #include int htoi(char); void main( ) { int htoi(chars[ ]); cout<<”输入一个十六进制数:”; char s1[20]=” ”; cin.read(s1,20); cout<=’0’&&s[i]<=’9’)

14、 n=n*16+s[i]-‘0’; if(s[i]>=’a’&&s[i]<=’f’) n=n*16+s[i]-‘a’+10; if(s[i]>=’A’&&s[i]<=’F’) n=n*16+s[i]-‘A’+10; } return n; } 6、 #include char *fun1(int); int fun2( ); char s[10]; void main( ) { int number; cout<<”输入一个5位的整型数;”; cin>>number; cout<<”整型数加空格后为:”<

15、

16、 while(s[i++]) n++; return n; } 运行该程序显示如下信息: 输入一个5位的整型数: 87654 输出结果如下所示: 整型数加空格后为: 8 7 6 5 4 加空格后字符串长度为: 9 7、 分析: 首先定义一个char型数组name[5] [10]用来存放5个学生的姓名, 再定义一个int型数组score[5] [4]来存放5个学生的4门功课成绩, 再定义一个数组al[5]用来存放用来存放每个学生的总成绩。该程序将有4个函数组成。   ( 1) 主函数main( ) , 包括所有定义的数组, 并赋初值。先调用求每个学生4门功课的

17、总分的函数all_scor( ) , 经过for循环将每个学生功课总分显示在屏幕上, 同时存放在数组al[5]中。   再调用求每个学生4门功课平均成绩的函数aver_scor经过for街环将每个学生功课的平均成绩输出显示在屏幕上。   最后, 用计算5个学生中总分最高的函数high_scor( ) , 经过返回最高分, 并经过传址调用获得最高分学生下标序号, 用来输出该学生的姓名。   ( 2) 算学生的总分函数all_scor( ),该函数有一个参数, 它是一族数组, 返回值为int型变量, 即返回该学生4门功课的总分。   ( 3) 算学生平均分函数aver_scor(), 该函

18、数有一个数组参数, 返回值为double型量。该函数调用了all_scor函数。   ( 4) 求出最高总分及该总分对应的下标值函数high_scor()。该函数有两个参数: 一个是数组, 另一个是int*型指针。该函数返回值为int型量。   程序内容如下所示。 #include int all_scor(int a[]),high_scor(int a[],int *i); double aver_scor(int sc[]); void main( ) { char name[ ][10]={”Ma”,”Wang”,”Li”,”Huang”,”K

19、ang”}; int score[][4]={{89,86,75,90},{91,82,75,80},{78,93,85,80},{90,79,95,85},{68,75,81,83}}; int a1[5]; cout<<”每个学生功课的总分:”; for(int i=0;i<5;i++) cout<<(a1[i]=all_scor(score[i]))<<” ”; cout<<” 每个学生功课的平均成绩:”; for(i=0;i<5;i++) cout<<' '<

20、n); cout<<”\n学生姓名:”<

21、 return a[0]; } 执行该程序后, 输出结果如下所示。 每个学生功的总分: 340 328 336 349 307 每个学生功的平均成绩: 85 82 84 87.25 76.75 学生姓名: Huang  最高分: 349 8、 分析: 首先从键盘上输入一个n位整数( n>1) 。然后, 调用转换函数convert()将n位整数转换成字符串, 其长度为n。 转换函数convert()定义为递归函数。递归条件如下所示。 if((a=n/10)!=0) convert(a); 其中, 是一个待处理的为整数, 是一个型变量。当是1位整数时, 体将不被执行。当为2位

22、整数时, 执行体, 这时为1位整数。依次类推。 程序内容如下所示。 #include void main() { int num; void convert(int); cout<<”输出一个整数:”; cin>>num; cout<<”输出的字符串是:”; convert(num); cout<<’ \n’; } void convert(int n) { int a; if((a=n/10)!=0) convert(a); char c=n%10+’0’; cout<

23、 1357 输出的字符串是: 1357 9、 double distance(int xl,int yl,int x2,int y2) { double s; s=sprt((x1-x2)*( x1-x2) +(y1-y2)*(y1-y2); return s; } double distance(double xl,double yl,double y2) { double s; s=sprt(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2); return s; } 这里, 前一个distance( ) 函数是用来计算两个 int型数的点间距

24、离, 而后一个distance( ) 函数是用来计算两个double型数的点间距离。计算两个点间距离公式如下所示。 s=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)) 程序内容如下所示。 #include #include void main( ) { double distance(int ,int,int,int),distance(double, double, double, double); int x1=5,y1=8,x2=12,y2=15; double xd1=1.5,yd1=5.2,xd

25、2=3.7,yd2=4.6; cout<<”两个int型数的点间距离:”; double disi=distance(x1,y1,x2,y2); cout<

26、uble distance(double a1, double b1,double a2, double b2) { return sqrt((a1-a2)*(a1-a2)+(b1-b2)*(b1-b2)); } 10、 该程序中三次使用字符串处理函数strcat()将4个已知的字符串连接成一个新的字符串。 程序内容如下所示。 #include #include char s[ ][5]={”abcd”,”efgh”,”ijkl”,”mnop”}; void main( ) { strcat(s[0],s[1]); str

27、cat(s[0],s[2]); strcat(s[0],s[3]); cout< int fun(int n=2); int power(int ,int) void main() { cout<

28、out<=6) , 将它表示为i与j之和。n=i+j; 当i和j都为素数时则为所求。

29、 程序内容如下所示。 #include int prime(int); void main( ) { int prime(int); int n; cout<<”输出一个大于等于6的偶数: ”; cin>>n; int i,j; cout<<”两个素数之和的全部可能\n ”; for(i=2;i

30、 if(n==j) return 1; else return 0; } 运行该程序输出下列信息。 输入一个大于等于6的偶数: 126 输出结果如下所示。 两个素数之和的所有可能: N=13+133 N=17+109 N=19+107 N=23+103 N=29+97 N=37+89 N=43+83 N=47+79 N=53+73 N=59+6 13、 #include char_count(char *s,char letter) { int count=0; while(*s) if(*s++

31、letter) count++; return (count); } void main() { char str[100],c; cout<<"input a string:"; cin>>str; cout<< "input a letter:"; cin>>c; cout<<"the count is:"< int pattern_index(char substr[],char str[]) { int i,j,

32、k; for(i=0;str[i];i++) for(j=i,k=0;(str[j]==substr[k])||(substr[k]=='?');j++,k++) if(!substr[k+1]) return(i); return(0); } void main() { char *substring,*string; int same; substring="???gram"; string="this program return index of substring"; same=pattern_index(substring ,string); if (same) cout<<"子串起始位置: "<

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服