欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年面向对象程序设计山师第五章习题答案 .docx

    • 资源ID:79944844       资源大小:49.42KB        全文页数:21页
    • 资源格式: DOCX        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年面向对象程序设计山师第五章习题答案 .docx

    精品_精品资料_一、挑选填空第五章习题答案可编辑资料 - - - 欢迎下载精品_精品资料_1、A 2 、D 3 、B 4 、 D 5 、D6 、C 7 、C 8 、D 9 、C 10 、A11 、B 12 、C13、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=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、运行该程序输出结果如下所示.ffdouble:88.18ffint:9712、运行该程序输出结果如下所示.112可编辑资料 - - - 欢迎下载精品_精品资料_1231234四、按以下要求编程,并上机验证.1、分析:该程序有3 个函数: main,sum 和 average.主函数 main 中包含有如下操作:输入15 个浮点数放在一个数组中,使用循环语句从键盘上输入值,接着分别调用sum函数求 15 个浮点数之和,调用average函数求 15 个浮点数的平均值,最终将15 个浮点数的和值与平均值输出显示.程序如下:#include <iostream.h>double s, sumdouble b,int n,averageint n .void main double a15 .cout<< ” Input 15 doubles:.”forint i=0 .i<15 .i+ cin>>ai .s=suma,15.double ave=average15 .cout<< ” SUM=” <s<< , A<V<E”RAGE= ” <<ave<<endl.double sumdouble b,int ndouble sum=0 .forint i=0 .i<15 .i+ sum+=bi .return sum.double averageint nreturn s/n.2、分析:先将 10 个 int 型数从键盘上输入,并放在一个int 型数组中.接着,在数组中将重复的数组元素去掉.其方法是在比较中发觉有重复的就用数组中最末元素替换,同时更新数组元素个数.最终,将数组中的元素使用排序函数sort进行排序,并输出显示最终排好序的数组元素.排序函数 sort 是根据 “冒泡 ”排序的算法进行编程的.程序的内容如下所示.#include <iostream.h> void mainint a10,n=10 .void sortint b ,int n.cout<< ” Input 10integer.:”forint i=0 .i<n .i+可编辑资料 - - - 欢迎下载精品_精品资料_cin>>ai .fori=0 .i<n . i+forint j=i+1 . j<n .j+ ifai=ajaj=a- -n .j- .sorta,n.fori=0 .i<n .i+ cout<<ai << ”.”cout<< ”n”.void sortint b ,int nforint i=1 .i<n .i+ forint j=0 .j<n-i .j+ifbj<bj+1int t=bj .bj=bj+1.bj+1=t .3、分析:该程序将包含一个主函数和两个被调函数:一个是运算某一年是否是闰年的函数 leap, 另一个是运算日期的函数sum_day.主函数中,先从键盘上输入某天的年、月、日,存放在相应的变量year, month 和 day中.接着,调用 sum_day 函数,运算出这一天是该年的第几天,运算时按非闰年运算,即2 月份 28 天.然后,再判定该年是否是闰年,并且该月是否是大于2 月.假如是闰年,且月份又大于 2 月,就运算的天数加1.最终将其结果输出显示.运算闰年的函数leap是根据闰年的定义,使用规律表达式返回.闰年时返回1,否就返回 0.指定的每月的总天数的数组进行相加运算,这时2 月份按 28 天运算,将每月天数存放在一个数组中,使该数组的下标与月份数相同.例如,5 月 4 日,运算天数时如下所示.days_month1+days_month2+days_month3+days_month4+4.并将这个表式值返回.程序内容如下所示.#include <iostream.h>int sum_dayint,int,leapint.void mainint year,month,day .cout<<" 请输入一个日期 yy mm dd:" .可编辑资料 - - - 欢迎下载精品_精品资料_cin>>year>>month>>day .int days=sum_daymonth,day .ifleapyear&&month>2 days+.cout<<" 是这一年的第 "<<days<<" 天n".int sum_dayint month,int daystatic int days_month13=0,31,28,31,30,31,30,31,31,30,31,30,31.forint i=1 .i<month . i+ day+=days_monthi .return day.int leapint yearint leap=year%4=0&&year%100.=0|year%400=0.return leap.当输入为 1998 年 4 月 7 日时,输出信息如下所示.请输入一个日期( yyyy mm dd ) :1998 4 7是这一年的第97 天.4、#include <iostream.h> #include <string.h>voidfunchar.void main char s80 .cout<< ”请输入一个字符串: ”.cin>>s .cout<< ”反序前 : ” <s<<<endl .funs .cout<< ”反序后 : ” <s<<<endl .void funchar ssint n=strlenss .forint i=0 .i<n/2 .i+char c=ssi .ssi=ssn-1-i .ssn-1-i=c .可编辑资料 - - - 欢迎下载精品_精品资料_该程序输出如下信息.请输入一个字符串: abcdefgh输出结果如下所示.反序前: abcdefgh 反序后: hgfedcba5、分析:由于十六制数的表示中,除了有数字09,仍有 6 个字母 a,b,c,d,e,f.因此输入十六进制数时,应采纳char 型,将它存放在一个字符数组中.然后,调用一个转换函数htoi ,将输入的字符型数组中的十六进制数转换为十进制的.在转换函数中,应考虑到下述 3 类不同字符的转换方法:( 1)数字字符 0至9.( 2)小写字母 a至f.( 3)大写字母 A至F.程序内容如下所示.#include <iostream.h> int htoichar .void main int htoichars .cout<< ”输入一个十六进制数 : ”.char s120=.” ”cin.reads1,20 .cout<<endl .int n=htois1 .cout<< ”该数转换为十进制数 ” <n<<<endl .int htoichar s int n=0 .forint i=0 .si.=0.i+ifsi>= 0&&si<= 9 n=n*16+si- 0. ifsi>= a&&si<=f n=n*16+si- a+10 . ifsi>= A&&si<=F n=n*16+si- A+10.return n .6、#include <iostream.h>char*fun1int.int fun2 .char s10 .可编辑资料 - - - 欢迎下载精品_精品资料_void main int number .cout<< ”输入一个 5 位的整型数. ”.cin>>number .cout<< ”整型数加空格后为: ” <f<un1number<<endl .cout<< ”加空格后字符串长度为: ” <fu<n2<<endl .char *fun1int nint a5 .a4=n%10 .a3=n/10%10 .a2=n/100%10 .a1=n/1000%10 .a0=n/10000 .forint i=0,j=0.i<5 .i+,j+=2sj=charai+. 0可编辑资料 - - - 欢迎下载精品_精品资料_sj+1=.可编辑资料 - - - 欢迎下载精品_精品资料_sj- 1= 0. return s.int fun2int n=0,i=0 .whilesi+ 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(),通过返回最高分,并通过传址调用获得最高分同学下标序号,用来输出该同学的姓名.( 2)算同学的总分函数all_scor ,该函数有一个参数,它是一族数组,返回值为int型变量,即返回该同学4 门功课的总分.( 3)算同学平均分函数aver_scor,该函数有一个数组参数,返回值为double 型量.该函数调用了all_scor 函数.( 4)求出最高总分及该总分对应的下标值函数high_scor .该函数有两个参数:一个是数组,另一个是int* 型指针.该函数返回值为int 型量.程序内容如下所示.#include <iostream.h>int all_scorint a,high_scorint a,int *i.double aver_scorint sc .void main char name 10=“ Ma” , ” Wang” , ” Li ” , ” H.uang” , ” Kang”int score4=89,86,75,90,91,82,75,80,78,93,85,80,90,79,95,85,68,75,81,83.int a15 .cout<< ”每个同学功课的总分 : ”.forint i=0 .i<5 .i+cout<<a1i=all_scorscore i<<”. ” cout<< ”每个同学功课的平均成果: ”.fori=0 .i<5 . i+cout<<' '<<aver_scorscorei .int n=0,high .high=high_scora1,&n .cout<< ”n 同学姓名 : ” <n<amen <<”t 最高分 ” <<high<<end.ldouble aver_scorint screturn doubleall_scorsc/4 .int all_scorint aint s=0 .forint j=0 .j<4 .j+ s+=aj .return s.int high_scorint a,int *iforint j=1 .j<5 .j+ ifa0<aja0=aj .可编辑资料 - - - 欢迎下载精品_精品资料_*i=j .returna0.执行该程序后,输出结果如下所示.每个同学功的总分: 340328336349307每个同学功的平均成果:85828487.2576.75同学姓名: Huang最高分: 3498、分析:第一从键盘上输入一个n 位整数( n>1).然后,调用转换函数convert 将n 位整数转换成字符串,其长度为n.转换函数 convert 定义为递归函数.递归条件如下所示.ifa=n/10.=0converta.其中,是一个待处理的为整数,是一个型变量.当是1 位整数时,体将不被执行.当为2位整数时,执行体,这时为1 位整数.依次类推.程序内容如下所示.#include <iostream.h> void mainint num .void convertint .cout<< ”输出一个整数 : ”.cin>>num .cout<< ”输出的字符串是 : ”.convertnum .cout<< n .void convertint nint a.ifa=n/10.=0 converta .char c=n%10+.0cout<<c .执行该程序显示如下信息.输入一个整数: 1357输出的字符串是: 1357 9、double distanceint xl,int yl,int x2,int y2double s.s=sprtx1-x2* ( x1-x2 ) +y1-y2*y1-y2.return s.可编辑资料 - - - 欢迎下载精品_精品资料_double distancedouble xl,double yl,double y2double s.s=sprtx1-x2*x1-x2+y1-y2*y1-y2.return s.这里,前一个distance()函数是用来运算两个int 型数的点间距离,而后一个distance()函数是用来运算两个double 型数的点间距离.运算两个点间距离公式如下所示.s=sqrtx1-x2*x1-x2+y1-y2*y1-y2程序内容如下所示.#include <iostream.h> #include <math.h> void main double distanceint ,int,int,int,distancedouble, double, double, double.int x1=5,y1=8,x2=12,y2=15.double xd1=1.5,yd1=5.2,xd2=3.7,yd2=4.6.cout<< ”两个 int 型数的点间距离 : ”.double disi=distancex1,y1,x2,y2 .cout<<disi<<endl .cout<< ”两个 double 型数的点间距离 : ”.double disd=distancexd1,yd1,xd2,yd2 .cout<<disd<<endl .double distanceint a1,int b1,int a2,int b2 double s=sqrta1-a2*a1-a2+b1-b2*b1-b2.return s.double distancedouble a1, double b1,double a2, doubleb2return sqrta1-a2*a1-a2+b1-b2*b1-b2.10、该程序中三次使用字符串处理函数strcat将 4 个已知的字符串连接成一个新的字符串.程序内容如下所示.#include <iostream.h> #include <string.h>char s 5=“ abcd ” , ” efgh ” , ”.ijkl” , ” mnop”void main strcats0,s1 .可编辑资料 - - - 欢迎下载精品_精品资料_strcats0,s2 .strcats0,s3 .cout<<s0<<endl .11、分析:该程序将分3 个函数来完成此功能.一个主函数用输出显示n=1 , 2 , 3时,上述表达式的值.主函数的调用函数fun 用来求得各项之和,该函数又调用另一个求立方的函数 power .程序内容如下所示.#include <iostream.h> int funint n=2 .int powerint ,intvoid maincout<<fun1<<endl .cout<<fun2<<endl .cout<<fun3<<endl .int funint nint sum=0 .forint i=1 .i<=10 .i+ sum+=poweri,n .return sum.int powerint n1,int n2int p=1 .forint i=1 .i<=n1 .i+ p*=n2 .return p.运行该程序输出如下结果:1020468857212、分析:从键盘上入一个偶数n( >=6),将它表示为 i 与 j 之和. n=i+j .当 i 和 j 都为素数时就为所求.程序内容如下所示.#include <iostream.h> int primeint .void main int primeint .int n .可编辑资料 - - - 欢迎下载精品_精品资料_cout<< ”输出一个大于等于6 的偶数: ”.cin>>n .int i,j .cout<< ”两个素数之和的全部可能n ”.fori=2 .i<n . i+j=n-i .ifprimei&&primejcout<< ”N=” <<i<< +j<<endl .int primeint nint j=2 .whilen%j.=0 j+ .ifn=j return 1 .elsereturn 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+613、#include <iostream.h> char_countchar *s,char letterint count=0 .while*sif*s+=lettercount+.return count .可编辑资料 - - - 欢迎下载精品_精品资料_void main可编辑资料 - - - 欢迎下载精品_精品资料_14、char str100,c .cout<<"input a string:" .cin>>str .cout<< "input a letter:" .cin>>c .cout<<"the count is:"<<char_countstr,c<<次” <<end.l “可编辑资料 - - - 欢迎下载精品_精品资料_#include <iostream.h>int pattern_indexchar substr,char strint i,j,k .fori=0 .stri .i+forj=i,k=0 .strj=substrk|substrk='.'.j+,k+ if.substrk+1returni .return0 .void mainchar *substring,*string .int same.substring=".gram" .string="this program return index of substring".same=pattern_indexsubstring ,string .if samecout<<" 子串起始位置: "<<same<<endl .elsecout<<" 匹配不胜利 "<<endl .可编辑资料 - - - 欢迎下载

    注意事项

    本文(2022年面向对象程序设计山师第五章习题答案 .docx)为本站会员(H****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开