电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

2021年下半年程序员下午试卷_1

15页
  • 卖家[上传人]:阳光****活
  • 文档编号:183325900
  • 上传时间:2021-06-02
  • 文档格式:DOCX
  • 文档大小:57.07KB
  • / 15 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、2021年下半年程序员下午试卷1、【简答题】试题一(共15分)阅读以下说明和流程图,填补流程图中的空缺(1)(5),将解答填入答题纸的对应栏内。【说明】求连续函数f(x)的根(方程f(x)=0的解)的最简单方法是二分法。为此,首先需要在若干点上检查函数值的符号,如果发现f(a)与f(b)符号相反(ab),则在区间(a,b)中必然存在f(x)的根。因为当x从a变到b时,连续函数的值将从正变到负(或从负变到正),必然要经过0。区间(a,b)就是根的初始范围。取该区间的中点m,如果f(m)=0,则根就是m。如果f(a)与f(m)符号相反,则根一定在区间(a,m)中;如果f(m)与f(b)符号相反,则根一定在区间(m,b)中。因此,根的范围缩小了一半。依此类推,将区间一半一半地分下去,当区间的长度很小(达到根的精度要求,例如0.001)时,或者当区间中点处的函数值几乎接近于0(即绝对值小于预先规定的微小量,例如0.001)时,近似计算就可以结束了。以下流程图描述了用二分法近似计算区间(a,b)中f(x)的根的过程。【流程图】15分解析:(1)(a+b)/2(2)f(x)(3)fabs(y)(4

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

      3、mp,i=0,j=n-1;if(n2)return;while(ij)if(Ai%2=1Aj%2=1)(3);elseif(Ai%2=0Aj%2=0)(4);elseif(5)tempAi;AiAj;Ajtemp;i+,j-;15分解析:(1)n!=0(2)k*=2(3)i+(4)j+(5)(Ai%2=0)(Aj%2=1)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()cha

      4、rstr=NewWorld;char*pstr;chari=0;void*ptr=malloc(50);printf(%dt,sizeof(str);printf(%dn,sizeof(p);printf(%dt,sizeof(i);printf(%dn”,sizeoqptr),【问题2】(4分)请写出函数test_f2()的运行结果。【说明3】函数test_f3(chars)的功能是:将给定字符串s中的所有空格字符删除后形成的串保存在字符数组tstr中(串s的内容不变),并返回结果串的首地址。【C函数3】char*test_f3(constchars)chartstr500;unsignedinti,k=0;for(i=0;istrlen(s);i+)if(si!=)tstrk+si;returntstr;【问题3】(6分)函数test_f3()对返回值的处理有缺陷,请指出该缺陷并说明修改方法。15分解析:问题1:(1)18(2)求m和n的最小公倍数问题2:9414问题3:局部数组存放字符串作为函数的返回值是不可取的。应使用maloc动态分配函数来进行分配空间,存储字符串结果,返回其

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

      6、找到与T相同的子串*i=(3);*计算S中子串T的起始下标*for(k=i+T.length;kS-length;k+)*通过覆盖子串T进行删除*S-ch(4)=S-chk;S-length=(5);*更新S的长度*elsebreak;*串S中不存在子串T*/15分解析:(1)i-j+1(2)j=T.length(3)i-T.length(4)i+(5)S-length-T.length5、【简答题】试题五(共15分)阅读以下说明和C+代码,将应填入(n)处字句写在答题纸对应栏内。【说明】已知类LinkedList表示列表类,该类具有四个方法:addElement()、lastElement()、numberOfElement()以及removeLastElement()。四个方法的含义分别为:voidaddElement(Object):在列表尾部添加一个对象;ObjectlastElement():返回列表尾部对象;intnumberOfElement():返回列表中对象个数;voidremoveLastElement():删除列表尾部的对象。现需要借助LinkedList来实现一

      7、个Stack栈类,C+代码1和C+代码2分别采用继承和组合的方式实现。【C+代码1】classStack:publicLinkedListpublic:voidpush(Objecto)addElement(o);/压栈Objectpeek()return(1);/获取栈顶元素boolisEmpty()/判断栈是否为空returnnumberOfElement()=0;Objectpop()/弹栈ObjectolastElement();(2);returno;;【C+代码2】classStackprivate:(3);public:voidpush(Objecto)/压栈list.addElement(o);Objectpeek()/获取栈顶元素returnlist.(4);boolisEmpty()/判断栈是否为空returnlist.numberOfElement()=0;Objectpop()/弹栈Objectolist.lastElement();list.removeLastElement();returno;【问题】若类LinkedList新增加了一个公有的方法remov

      8、eElement(intindex),用于删除列表中第index个元素,则在用继承和组合两种实现栈类Stack的方式中,哪种方式下Stack对象可访问方法removeElement(intindex)?(5)(A继承B组合)15分解析:(1)lastElement()(2)removeLastElement()(3)LinkedListlist(4)lastElement()(5)A6、【简答题】试题六(共15分)阅读以下说明和Java代码,将应填入(n)处字句写在答题纸对应栏内。【说明】已知类LinkedList表示列表类,该类具有四个方法:addElement()、lastElemen()、numberOfElement()以及removeLastElement()。四个方法的含义分别为:voidaddElement(Object):在列表尾部添加一个对象;ObjectlastElement():返回列表尾部对象;intnumberOfElement():返回列表中对象个数;voidremoveLastElement():删除列表尾部的对象。现需要借助LinkedList来实现一个Stack栈类,Java代码1和Java代码2分别采用继承和组合的方式实现。【Java代码1】publicclassStackextendsLinkedListpublicvoidpush(Objecto)/压栈addElement(o);publicObjectpeek()/获取栈顶元素return(1);publicbooleanisEmpty()/判断栈是否为空returnnumberOfElement()=0;publicObjectpop()/弹栈ObjectolastElement();(2);returno;【Java代码2】publicclassStack

      《2021年下半年程序员下午试卷_1》由会员阳光****活分享,可在线阅读,更多相关《2021年下半年程序员下午试卷_1》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.