2017软件水平考试(初级)程序员真题及答案综合第02套_第1页
2017软件水平考试(初级)程序员真题及答案综合第02套_第2页
2017软件水平考试(初级)程序员真题及答案综合第02套_第3页
2017软件水平考试(初级)程序员真题及答案综合第02套_第4页
2017软件水平考试(初级)程序员真题及答案综合第02套_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

试卷科目:软件水平考试(初级)程序员综合2017软件水平考试(初级)程序员真题及答案综合第02套PAGE"pagenumber"pagenumber/SECTIONPAGES"numberofpages"numberofpages2017软件水平考试(初级)程序员真题及答案综合第02套第1部分:问答题,共6题,请在空白处填写正确答案。[问答题]1.阅读以下代码和问题,回答问题,将解答填入答题纸的对应栏内。【问题1】对于代码1,写出下面的函数调用后x1、x2、x3和x4的值。x1=f(1997);x2=f(2000);x3=f(2100);x4=f(2020);2.【问题2】(1)写出代码2进行时输入为3的输出结果;(2)写出代码2进行时输入为5的输出结果。3.【问题3】写出代码3运行后的输出结果。答案:【问题1】x1=3;x2=0;x3=2;x4=1解析:1997:不满足0==yr%400,不满足!(yr%4)==1,所以返回D;2000:满足0==yr%400,返回A;2100:不满足0==yr%400,满足!(yr%4)==1,不满足0!=yr%100,返回C;2020:不满足0==yr%400,满足!(yr%4)==1,满足0!=yr%100,返回B。枚举类型中列出的每一个枚举符都对应着一个整数值,枚举类型实际上是一个整型符号常量的集合。当定义枚举类型时,枚举符都已经被系统隐含地赋予了一个整型值,默认情况下,第一个元素为0,第二个元素为1,依此类推。所以相应的A=0,B=1,C=2,D=3,故返回为:x1=3;x2=0;x3=2;x4=1。【问题2】(1)Average!poor!Oops,Error(2)Excellent!Good!解析:进入switch后会与各case匹配,从第一个匹配到的case开始执行,直到结束或者遇到break。【问题3】010020021101120121解析:此题考察多重for循环再加上一个判定条件,i的取值为(0,1),j的取值为(0,1,2),k的取值为(0,1),只要按顺序找到i!=j且j!=k的组合即可。解析:[问答题]2.阅读下列说明和C++代码,填补代码中的空缺,将解答填入答题纸的对应栏内。以下C++代码实现一个超市简单销售系统中的部分功能,顾客选择图书等物品(Item)加入购物车(ShoppingCart),到收银台(Cashier)对每个购物车中的物品统计其价格进行结账,设计如下图所示类图。答案:(1)publicItem(2)this->price=price(3)visitor->visit(this)(4)publicVisitor(5)voidvisit(Book*book)(6)item->accept(visitor)解析:(1)Book类公有继承Item类;(2)用参数price给自身成员变量赋值;(3)考察访问者模式,访问本元素;(4)Cashier类公有继承Visitor类;(5)从类图当中可以看出,此处需要实现一个方法visit;;(6)根据题意,此处需要计算价格,结合访问者模式,此处调用accept方法。解析:[问答题]3.阅读以下说明、C函数和问题,回答问题1和问题2将解答填入答题纸的对应栏内。当数组中的元素已经排列有序时,可以采用折半查找(二分查找)法查找一个元素。下面的函数biSearch(intr[],intlow,inthigh,intkey)用非递归方式在数组r中进行二分查找,函数biSearch_rec(intr[],intlow,inthigh,intkey)采用递归方式在数组r中进行二分查找,函数的返回值都为所找到元素的下标;若找不到,则返回-1。【问题1】请填充C函数1和C函数2中的空缺,将解答填入答题纸的对应栏内。【问题2】若有序数组中有n个元素,采用二分查找法查找一个元素时,最多与(7)个数组元素进行比较,即可确定查找结果。备选答案:A.?log2n+1?B.?n/2?C.n-1D.n答案:(1)low<=high(2)high=mid-1(3)low=mid+1(4)low<=high(5)low,mid-1(6)mid+1,high解析:(1)表示二分法可以继续进行;(2)递归调用左半部分;(3)递归调用右半部分;(4)表示二分法可以继续进行;(5)递归调用左半部分;(6)递归调用右半部分;(7)对有序表,根据二分查找法定义,每次比较之后问题规模都会减小一半,所以2k=n,解得k=log2n,向下取整,又因为最后只剩一个元素时,也要执行查找过程,所以+1。解析:[问答题]4.阅读以下说明和流程图,填补流程图中的空缺,将解答填入答题纸的对应栏内。对于大于1的正整数n,(x+1)n可展开为下面流程图的作用是计算(x+1)n展开后的各项系数(i=0,1,…,n)并依次存放在数组A[0...n]中。方法是依次计算k=2,3,…,n时(x+1)k的展开系数并存入数组A,在此过程中,对任一确定的k,利用关系式,按照i递减的顺序逐步计算并将结果存储在数组A中。其中,和都为1,因此可直接设置A[0]、A[k]的值为1。例如,计算(x+1)3的过程如下:先计算(x+1)2(即k=2)的各项系数,然后计算(x+1)3(即k=3)的各项系数。K=2时,需要计算,并存入A[0],A[1]和A[2],其中A[0]和A[1]的值已有,因此将(即A[1])和即(A[0])相加得到的值并存入A[1]。k=3时,需要计算,先计算出并存入A[2],再计算并存入A[1]。注:循环开始框内应给出循环控制变量的初值和终值,默认递增值为1。格式为:循环控制变量=初值,终值,递增值。答案:(1)2,n,1(2)A[k](3)k-1,1,-1(4)A[i]+A[i-1](5)A[i]解析:题目中给出的格式为循环控制变量=初值,终值,递增值。按照题意,实质为求杨辉三角。如下图:计算方式为从第2行计算迭代到计算第3行,再根据第3行值求取第4行,直到计算到第n行。(1)从第2行开始,直到计算到第n行,每次增加1。(2)而对于每行的求取,第1项结果一直为1,最大项一直是1,可以直接赋值,所以第二空填A[k]。(3)从倒数第二项开始计算,依次往前计算。所以第三空的填k-1,1,-1。(4)由杨辉三角的结构可得A[i]=A[i]+A[i-1]。(注意A[i]+A[i-1]保留的k-1行的结果),所以第四空填A[i]+A[i-1]。(5)因杨辉三角的结构为A[i]=A[i]+A[i-1],第五空填A[i]。解析:[问答题]5.阅读以下说明和代码,填补代码中的空缺,将解答填入答题纸的对应栏内。对n个元素进行简择排序的基本方法是:第一趟从第1个元素开始,在n个元素中选出最小者,将其交换至第一个位置,第二趟从第2个元素开始,在剩下的n-1个元素中选出最小者,将其交换至第二个位置,依此类推,第i趟从n-i+1个元素中选出最小元素,将其交换至第i个位置,通过n-1趟选择最终得到非递减排序的有序序列。答案:(1)j解析:[问答题]6.阅读以下说明和Java代码,填补代码中的空缺,将解答填入答题纸的对应栏内。以下Java代码实现一个超市简单销售系统中的部分功能,顾客选择图书等物件(Item)加入购物车(ShoppingCart),到收银台(Cashier)对每个购物车中的物品统计其价格进行结账。设计如下所示类图。答案:(1)implementsItem(2)this.price=price(3)visitor.visit(this)(4)implementsVisitor(5)publicvoidvisit(Bookbook)(6)item.accept(visitor)解析:(1)根据类图实现接口,Book类继承Ite

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论