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

下载本文档

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

文档简介

精品文档-下载后可编辑年下半年程序员下午试卷2022年下半年程序员下午试卷题库汇总

1.试题一(共15分)阅读以下说明和流程图,填补流程图中的空缺(1)~(5),将解答填入答题纸的对应栏内。【说明】求连续函数f(x)的根(方程f(x)=0的解)的最简单方法是二分法。为此,首先需要在若干点上检查函数值的符号,如果发现f(a)与f(b)符号相反(a[15分]

2.试题二(共15分)阅读以下说明和C函数,将应填入(n)处字句写在答题纸的对应栏内。【说明1】函数Counter(intn,intw[])的功能是计算整数n的二进制表示形式中1的个数,同时用数组w记录该二进制数中1所在位置的权。例如,十进制数22的二进制表示为10110。对于该二进制数,1的个数为3,在w[0]中存入2(即21)、w[1]中存入4(即22)、w[2]中存入16(即24)。【C函数1】intCounter(intn,intw[]){inti=0,k=1;while((1)){if(n%2)w[i++]=k;n=n/2;(2);}returnI;}【说明2】函数Smove(intA[],intn)的功能是将数组中所有的奇数都放到所有偶数之前。其过程为:设置数组元素下标索引i(初值为0)和j(初值为n-1),从数组的两端开始检查元素的奇偶性。若A[i]、A[j]都是奇数,则从前往后找出一个偶数,再与A[j]进行交换;若A[i],A[j]都是偶数,则从后往前找出一个奇数,再与A[i]进行交换;若A[i]是偶数而A[j]是奇数,则交换两者,直到将所有的奇数都排在所有偶数之前为止。【C函数2】voidSmove(intA[],intn){inttemp,i=0,j=n-1;if(n<2)return;while(i<j){if(A[i]%2==1A[j]%2==1){(3);}elseif(A[i]%2==0A[j]%2==0){(4);}else{if((5)){temp=A[i];A[i]=A[j];A[j]=temp;}i++,j--;}}}[15分]

3.试题三(共15分)阅读以下说明、C函数和问题,将解答写入答题纸的对应栏内。【说明1】函数testfl(intm,intn)对整数m、n进行某种运算后返回一个整数值。【C函数1】inttest_fl(intm,intn){intk;k=mn?m:n;for(;(k%m!=0)||(k%n!=0);k++);returnk;}【问题1】(5分)(1)请写出发生函数调用test_fl(9,6)时,函数的返回值;(2)请说明函数test_fl的功能。【说明2】设在某C系统中为每个字符分配1个字节,为每个指针分配4个字节,sizeof(x)计算为x分配的字节数。函数test_f2()用于测试并输出该C系统为某些数据分配的字节数。【C函数2】voidtest_f2(){charstr[]="NewWorld";char*p=str;chari='\0';void*ptr=malloc(50);printf("%d\t",sizeof(str));printf("%d\n",sizeof(p));printf("%d\t",sizeof(i));printf("%d\n”,sizeoqptr)),}【问题2】(4分)请写出函数test_f2()的运行结果。【说明3】函数test_f3(chars[])的功能是:将给定字符串s中的所有空格字符删除后形成的串保存在字符数组tstr中(串s的内容不变),并返回结果串的首地址。【C函数3】char*test_f3(constchars[]){chartstr[50]={'\0'};unsignedinti,k=0;for(i=0;i

4.试题四(共15分)阅读以下说明和C函数,将解答填入答题纸的对应栏内。【说明】函数del_substr(S,T)的功能是从头至尾扫描字符串S,删除其中与字符串T相同的所有子串,其处理过程为:首先从串S的第一个字符开始查找子串T,若找到,则将后面的字符向前移动将子串T覆盖掉,然后继续查找子串T,否则从串S的第二个字符开始查找,依此类推,重复该过程,直到串S的结尾为止。该函数中字符串的存储类型SString定义如下:typedefstruct{char*ch;/*串空间的首地址*/intlength;/*串长*/}SString;【C函数】voiddelsubstr(SString*S,SStringT){inti,j;if(S-length<1||T.length<1||S-length<T.length)return;i=0;/*i为串S中字符的下标*/for(;;){j=0;/*j为串T中字符的下标*/while(i<S-lengthj<T.length){/*在串S中查找与T相同的子串*/if(S-ch[i]==T.ch[j]){i++;j++;}else{i=(1);j=0;/*i值回退,为继续查找T做准备*/}}if((2)){/*在S中找到与T相同的子串*/i=(3);/*计算S中子串T的起始下标*/for(k=i+T.length;klength;k++)/*通过覆盖子串T进行删除*/S-ch[(4)]=S-ch[k];S-length=(5);/*更新S的长度*/}elsebreak;/*串S中不存在子串T*/}}[15分]

从下列2道试题(试题五至试题六)中任选1道解答。如果解答的试题数超过1道,则题号小的1道解答有效。

5.试题五(共15分)阅读以下说明和C++代码,将应填入(n)处字句写在答题纸对应栏内。【说明】已知类LinkedList表示列表类,该类具有四个方法:addElement()、lastElement()、numberOfElement()以及removeLastElement()。四个方法的含义分别为:voidaddElement(Object):在列表尾部添加一个对象;ObjectlastElement():返回列表尾部对象;intnumberOfElement():返回列表中对象个数;voidremoveLastElement():删除列表尾部的对象。现需要借助LinkedList来实现一个Stack栈类,C++代码1和C++代码2分别采用继承和组合的方式实现。【C++代码1】classStack:publicLinkedList{public:voidpush(Objecto){addElement(o);};//压栈Objectpeek(){return(1);};//获取栈顶元素boolisEmpty(){//判断栈是否为空returnnumberOfElement()==0;};Objectpop(){//弹栈Objecto=lastElement();(2);returno;};};【C++代码2】classStack{private:(3);public:voidpush(Objecto){//压栈list.addElement(o);};Objectpeek(){//获取栈顶元素returnlist.(4);};boolisEmpty(){//判断栈是否为空returnlist.numberOfElement()==0;};Objectpop(){//弹栈Objecto=list.lastElement();list.removeLastElement();returno;};};【问题】若类LinkedList新增加了一个公有的方法removeElement(intindex),用于删除列表中第index个元素,则在用继承和组合两种实现栈类Stack的方式中,哪种方式下Stack对象可访问方法removeElement(intindex)?(5)(A.继承B.组合)[15分]

6.试题六(共15分)阅读以下说明和Java代码,将应填入(n)处字句写在答题纸对应栏内。【说明】已知类LinkedList表示列表类,该类具有四个方法:addElement()、lastElemen()、numberOfElement()以及removeLastElement()。四个方法的含义分别为:voidaddElement(Object):在列表尾部添加一个对象;ObjectlastElement():返回列表尾部对象;intnumberOfElement():返回列表中对象个数;voidremoveLastElement():删除列表尾部的对象。现需要借助LinkedList来实现一个Stack栈类,Java代码1和Java代码2分别采用继承和组合的方式实现。【Java代码1】publicclassStackextendsLinkedList{publicvoidpush(Objecto){//压栈addElement(o);}publicObjectpeek(){//获取栈顶元素return(1);}publicbooleanisEmpty(){//判断栈是否为空returnnumberOfElement()=0;}publicObjectpop(){//弹栈Objecto=lastElement();(2);returno;}}【Java代码2】publicclassStack{private(3);publicStack(){list=newLinkedList();}publicvoidpush(Objecto){list.addElement(o);}publicObjectpeek{//获取栈顶元素returnlist.(4);}publicbooleanisEmpty(){//判断栈是否为空returnlist.numberOfElement()==0;}publicObjectpop(){

温馨提示

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

评论

0/150

提交评论