2022年11月程序员下午题_第1页
2022年11月程序员下午题_第2页
2022年11月程序员下午题_第3页
2022年11月程序员下午题_第4页
2022年11月程序员下午题_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

精品文档-下载后可编辑年11月程序员下午题2022年11月程序员下午题

1.【问答题】10分|第一题阅读以下说明和流程图,填补流程图中的空缺,将解答填入答题纸的对应栏内。【说明】对于大于1的正整数n,(x+1)n可展开为

问题:1.1【流程图】

注:循环开始框内应给出循环控制变量的初值和终值,默认递增值为1。格式为:循环控制变量=初值,终值,递增值。

2.【问答题】10分|第二题

阅读以下说明和代码,填补代码中的空缺,将解答填入答题纸的对应栏内。【说明】对n个元素进行简单选择排序的基本方法是:第一趟从第1个元素开始,在n个元素中选出最小者,将其交换至第一个位置,第二趟从第2个元素开始,在剩下的n-1个元素中选出最小者,将其交换至第二个位置,依此类推,第i趟从n-i+1个元素中选出最小元素,将其交换至第i个位置,通过n-1趟选择最终得到非递减排序的有序序列。

问题:2.1【代码】#includevoidselectSort(intdata[],intn)//对data[0]~data[n-1]中的n个整数按非递减有序的方式进行排列{inti,j,k;inttemp;for(i=0;i

3.【问答题】10分|第三题

阅读以下代码和问题,回答问题1至问题3,将解答填入答题纸的对应栏内。【代码1】typedefenum{A,B,C,D}EnumType;EnumTypef(intyr){if(0==yr%400){returnA;}elseif(!(yr%4)){if(0!=yr%100)returnB;elsereturnC;}returnD;}【代码2】#includeintmain(){intscore;scanf("%d",score);switch(score){case5:printf("Excellent!\n");case4:printf("Good!\n");break;case3:printf("Average!\n");case2:case1:case0:printf("Poor!\n");default:printf("Oops,Error\n");}return0;}【代码3】#includeintmain(){inti,j,k;for(i=0;i2;i++)for(j=0;j3;j++)for(k=0;k2;k++){if(i!=jj!=k)printf("%d%d%d\n",i,j,k);}ruturn0;}

问题:3.1(4分)对于代码1,写出下面的函数调用后x1、x2、x3和x4的值。x1=f(1997);x2=f(2000);x3=f(2100);x4=f(2022);

问题:3.2(5分)(1)写出代码2进行时输入为3的输出结果;(2)写出代码2进行时输入为5的输出结果。

问题:3.3(6分)写出代码3运行后的输出结果。

4.【问答题】10分|第四题

阅读以下说明、C函数和问题,回答问题1和问题2将解答填入答题纸的对应栏内。【说明】当数组中的元素已经排列有序时,可以采用折半查找(二分查找)法查找一个元素。下面的函数biSearch(intr[],intlow,inthigh,intkey)用非递归方式在数组r中进行二分查找,函数biSearch_rec(intr[],intlow,inthigh,intkey)采用递归方式在数组r中进行二分查找,函数的返回值都为所找到元素的下标;若找不到,则返回-1。【C函数1】intbiSearch(intr[],intlow,inthigh,intkey)//r[low..high]中的元素按非递减顺序排列//用二分查找法在数组r中查找与key相同的元素//若找到则返回该元素在数组r的下标,否则返回-1{intmid;while((1)){mid=(low+high)/2;if(key==r[mid])returnmid;elseif(key

问题:4.1(12分)请填充C函数1和C函数2中的空缺,将解答填入答题纸的对应栏内。

问题:4.2(3分)若有序数组中有n个元素,采用二分查找法查找一个元素时,最多与()个数组元素进行比较,即可确定查找结果。(7)备选答案:A.[log2(n+1)]B.[n/2]C.n-1D.n

5.【问答题】10分|第五题

阅读以下说明和Java代码,填补代码中的空缺,将解答填入答题纸的对应栏内。【说明】以下Java代码实现一个超市简单销售系统中的部分功能,顾客选择图书等物件(Item)加入购物车(ShoppingCart),到收银台(Cashier)对每个购物车中的物品统计其价格进行结账。设计如图5-1所示类图。

图5-1类图

问题:5.1【Java代码】interfaceItem{publicvoidaccept(Visitorvisitor);publicdoublegetPrice();}classBook(1){privatedoubleprice;publicBook(doubleprice){(2);}publicvoidaccept(Visitorvisitor){//访问本元素(3);}publicdoublegetPrice(){returnprice;}}//其它物品类略interfaceVisitor{publicvoidvisit(Bookbook);//其它物品的visit方法}classCashier(4){privatedoubletotalForCart;//访问Book类型对象的价格并累加(5){//假设Book类型的物品价格超过10元打8折if(book.getPrice()10.0){totalForCart+=book.getPrice();}elsetotalForCart+=book.getPrice()*0.8;}//其它visit方法和折扣策略类似,此处略publicdoublegetTotal(){returntotalForCart;}}classShoppingCart{//normalshoppingcartstuffprivatejava.util.ArrayListitems=newjava.util.ArrayList();publicdoublecalculatePrice(){Cashiervisitor=newCashier();for(Itemitem:items){(6);}doubletotal=visitor.getTotal();returntotal;}publicvoidadd(Iteme){this.items.add(e);}}

6.【问答题】10分|第六题

阅读下列说明和C++代码,填补代码中的空缺,将解答填入答题纸的对应栏内。【说明】以下C++代码实现一个超市简单销售系统中的部分功能,顾客选择图书等物品(Item)加入购物车(ShoppingCart),到收银台(Cashier)对每个购物车中的物品统计其价格进行结账,设计如图6-1所示类图。

图6-1类图

问题:6.1【C++代码】usingnamespacestd;classBook;classVisitor{public:virtualvoidvisit(Book*book)=0;//其它物品的visit方法};classItem{public:virtualvoidaccept(Visitor*visitor)=0;virtualdoublegetPrice()=0;};classBook(1){private:doubleprice;public:Book(doubleprice){//访问本元素(2);}voidaccept(Visitor*visitor){(3);}doublegetPrice(){returnprice;}};classCashier(4){private;doubletotalForCart;public://访问Book类型对象的价格并累加(5){//假设Book类型的物品价格超过10元打8折if(book-getPrice()10.0){totalForCart+=book-getPrice();}elsetotalForCart+=book-getPrice()*0.8;}//其它visit方法和折扣策略类似,此处略doublegetTotal(){returntotalFo

温馨提示

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

评论

0/150

提交评论