2022年软考-程序员考试题库及全真模拟冲刺卷35(附答案带详解)

上传人:工**** 文档编号:468919988 上传时间:2023-12-21 格式:DOCX 页数:18 大小:329.95KB
返回 下载 相关 举报
2022年软考-程序员考试题库及全真模拟冲刺卷35(附答案带详解)_第1页
第1页 / 共18页
2022年软考-程序员考试题库及全真模拟冲刺卷35(附答案带详解)_第2页
第2页 / 共18页
2022年软考-程序员考试题库及全真模拟冲刺卷35(附答案带详解)_第3页
第3页 / 共18页
2022年软考-程序员考试题库及全真模拟冲刺卷35(附答案带详解)_第4页
第4页 / 共18页
2022年软考-程序员考试题库及全真模拟冲刺卷35(附答案带详解)_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《2022年软考-程序员考试题库及全真模拟冲刺卷35(附答案带详解)》由会员分享,可在线阅读,更多相关《2022年软考-程序员考试题库及全真模拟冲刺卷35(附答案带详解)(18页珍藏版)》请在金锄头文库上搜索。

1、2022年软考-程序员考试题库及全真模拟冲刺卷(附答案带详解)1. 单选题以下有关软件工程的叙述中,正确的是( )。问题1选项A.软件设计需要将软件需求规格说明书转换为软件源代码B.为提高可交互性,应尽量减少用户操作需记忆的信息量C.软件可重用性是指允许软件可以重复使用的次数或时间D.软件开发过程模型是指软件的体系结构【答案】B【解析】本题考查软件工程的基础知识。软件设计是从软件需求规格说明书出发,根据需求分析阶段确定的功能设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法,形成软件的具体设计方案。软件实现阶段才将软件设计具体方案转换成源代码。为提高可交互性,方便用户使用,应尽量减少

2、用户操作需记忆的信息量。可重用性(Reusability)是指在其他应用中该程序可以被再次使用的程度(或范围)。软件开发过程模型是软件开发全部过程、活动和任务的结构框架。它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。2. 案例题阅读以下说明和C代码,填写程序中的空缺,将解答写入答题纸的对应栏内。函数strCompress(char *s)对小写英文字母串进行压缩,其基本思路是:如果串长小于3则不压缩,否则对连续出现的同一字符,用该字符及其个数来表示。例如,字符串abbbcdddddddeeed压缩后表示为ab3cd7e3d。如图4-1所示,在计算连续出现的同一字符个数时

3、,借助字符指针s和计数变量k表示串中的字符,当s所指字符与其后的第k个字符不同时,一个重复字符串的压缩参数即可确定。【C代码】#include#include#includevoid strCompress(char *);int main() char test= abbbcdddddddeeed; printf(%sn, test);(1); /调用strCompress实现test中字符串的压缩 printf(%sn,test); return 0;void strCompress(char *str)int i; char *p,tstr11; /在tstr中以字符串方式表示同一字符连

4、续出现的次数 char *s =str,*buf; /借助buf暂存压缩后的字符串 if(strlen(str)【答案】(1)strCompress(test)或strCompress(&test0)或等效形式(2)i+(3)*s=*(s+k)或s0=sk或*(s+k)&*s=*(s+k)或sk&s0=sk或等效形式(4)*p+或等效形式(5)bufi或bufi+或*(buf+i)或等效形式注意:从试题五和试题六中,任选一道题解答。【解析】本题考查C程序流程控制和字符串处理及指针的应用。空(1)处实现对函数strCompress 的调用,根据strCompress 的声明和定义(void st

5、rCompress(char *str)要求实参提供字符存储的地址,main函数中的字符数组test保存了需要压缩的字符串,因此空(1)应填入“strCompress(test)”或其等效形式。在函数strCompress中,其方式为:将首个字符存在 buf数组第一个位置中计算该字符出现的次数,用k表示。此处计算时用if if(s1&*s=*(s+1) 先做初步判断,当*s=*(s+1)表示当前位置第一个字符等于第二个字符,说明有多次出现,k值+1,如果不成立,表示该字符只出现了一次,跳过if中间的过程,直接往下一个不同字符进行判定。当出现重复字符时,此时还要判断后面是否有重复的字符,且用k进

6、行计数该字符出现的次数。所以第(3)空用*s=*(s+k)表示后面字符与该字符是否相同,如果相同,k值+1,直到出现不同的字符,结束循环。循环结束后,要将k值赋给buf数组中,所以用用sprintf函数将k转为字符串,然后将暂存在tstr中的数字字符逐个写入 buf数组,所以第(4)空为bufi+=*p+,将k对应的字符串存入到buf的下一个位置。下一个不同字符同样想要进行赋值到buf中,但是赋值位置是之前字符的后一个位置,所以(2)填的是i+。然后对于下一个不同字符的初始位置要做下判断,例如:假设是“aaab”那么下一个不同字符是在s+3的位置,如果是“ab”那么下一个不同字符是在s+1的位

7、置,所以此处其不同字符的偏移量是由k(前一个字符的重复次数)所确定,表示为s+k,所以用s+=k; 表示跳过连续出现的同一字符,使s指向下一个不同的字符。接下来就是重复第、的过程,直到字符串结束。设置buf数组末尾为字符串结束标记,由于每次在buf 中写入字符时都对下标i进行了自增,for循环结束后,bufi即表示压缩字符串最后一个字符之后的位置,因此第(5)空用bufi=0表示设置字符串结尾。3. 单选题假设系统有n(n5)个并发进程,它们竞争互斥资源R。若采用PV操作,当有3 个进程同时申请资源R,而系统只能满足其中1个进程的申请时,资源R对应的信号量 S的值应为( )。问题1选项A.-1

8、B.-2C.-3D.0【答案】B【解析】本题考查操作系统中信号量机制基本概念方面的基础知识。根据题目叙述“若采用PV操作,当有3个进程分别申请1个资源R,系统只能满足1个进程的申请”,意味着有2个进程等待资源R。按照信号量的物理意义“当S0 时,其绝对值等于等待该资源的进程数”,故S=-2。4. 单选题设r是在(0,1)内均匀分布的随机数,则随机变量( )在(3,5)内均匀分布。问题1选项A.2+3rB.2+5rC.3+2rD.3+5r【答案】C【解析】本题考查应用数学基础知识。因为:0r1,则02r2,同时+3后,则有32r+35。线性的2r+3仍能保证在区间(3,5)内均匀分布。5. 单选

9、题对n个关键码构成的序列采用简单选择排序法进行排序的过程是:第一趟经过n-1次关键码之间的比较,确定出最小关键码在序列中的位置后,再将其与序列的第一个关键码进行交换,第二趟则在其余的n-1个关键码中进行n-2次比较,确定出最小关键码的位置后,再将其与序列的第二个关键码进行交换以此类推,直到序列的关键码从小到大有序排列。在简单选择排序过程中,关键码之间的总比较次数为( )。问题1选项A.n(n-1)/2B.n2/2C.n(n+1)/2D.nlogn【答案】A【解析】本题考查数据结构简单选择排序的基础知识。根据题目描述,简单选择排序第一趟经过n-1次关键码之间的比较,第二趟经过n-2次关键码之间的

10、比较,第三趟经过n-3次关键码之间的比较最后第n-1趟经过1次关键码之间的比较,总的比较次数为n-1+n-2+.+1=n(n-1)/2。6. 单选题软件开发中的增量模型具有“( )” 的优点。问题1选项A.文档驱动B.关注开发新技术应用C.开发早期反馈及时和易于维护D.风险驱动【答案】C【解析】本题考查软件工程的基础知识。增量模型强调对每一个增量均发布一个可操作的产品,这有利于发现问题和修改,以文档为驱动是瀑布模型,以风险为驱动是螺旋模型。7. 单选题单向循环链表如下图所示,以下关于单向循环链表的叙述中,正确的是( )。问题1选项A.仅设头指针时,遍历单向循环链表的时间复杂度是O(1)B.仅设

11、尾指针时,遍历单向循环链表的时间复杂度是O(1)C.仅设头指针时,在表尾插入一个新元素的时间复杂度是O(n)D.仅设尾指针时,在表头插入一个新元素的时间复杂度是O(n)【答案】C【解析】本题考查数据结构链表的基础知识。在单链表存储结构中,不管是有头指针还是有尾指针,其实现遍历(即遍访表中的所有元素)的时间复杂度都是O(n)。在单链表任何位置插入或删除结点,首先需要找到插入位置(该算法的时间复杂度不确定),然后修改指针即可实现(该时间复杂度为O(1)。循环链表仅设头指针时,在表尾插入一个新元素时,因为要找到表尾位置,需从头结点遍历到尾结点,因此其时间复杂度是O(n)。循环链表仅设尾指针时,在表头

12、插入一个新元素时,因为有尾指针且是循环链表,因此尾指针所指向结点的下一个结点就是头结点,进行在表头插入的时间复杂度是O(1)。8. 单选题编译和解释是实现高级程序设计语言的两种基本方式,( )是这两种方式的主要区别。问题1选项A.是否进行代码优化B.是否进行语法分析C.是否生成中间代码D.是否生成目标代码【答案】D【解析】本题考查程序语言基础知识。解释程序和编译程序都是针对于高级语言进行处理的程序,两者在词法、语法和语义分析方面与编译程序的工作原理基本相同,但是在运行用户程序时,解释程序直接执行源程序或源程序的内部形式,并不产生源程序的目标代码,而编译程序一定会生成目标代码,因此是否生成目标代

13、码是解释和编译程序的主要区别。9. 单选题在以用户界面(UI)层、系统交互(SI)层、问题领域(PD)层和数据管理(DM)层构成的软件架构中,业务实体和业务逻辑属于( )层。问题1选项A.UIB.SIC.PDD.DM【答案】C【解析】本题考查软件工程的基础知识。业务实体和业务逻辑属于企业需要解决的实际问题的领域。10. 单选题设有两个浮点数,其阶码分别为E1和E2,当这两个浮点数相乘时,运算结果的阶码E为( )。问题1选项A.E1、E2中的较小者B.E1、E2中的较大者C.EI+E2 的值D.E1XE2的值【答案】C【解析】本题考查计算机系统中的数据运算的基础知识。在机器中表示一个浮点数时,一

14、是要给出尾数,用定点小数形式表示,尾数部分给出有效数字的位数,因而决定了浮点数的表示精度。二是要给出指数,用整数形式表示,常称为阶码,阶码指明小数点在数据中的位置,因而决定了浮点数的表示范围。例如,浮点数X=1101.0101,Y=10.0111,按照浮点格式(忽略标准格式要求)表示为X=0.11010101X24,Y=0.100111X22。若进行加减运算,需要先对阶,也就是在阶码一致的情况下对尾数部分进行加减运算;若进行乘除运算,则不要求阶码一致。 相乘时阶码部分为两个浮点数的阶码相加,尾数部分直接相乘,之后再按照规格化等要求进行处理。11. 单选题在软件开发的各个阶段,不同层次的人员参与程度并不一样。下图大致描述了某软件开发公司高级技术人员、管理人员和初级技术人员在各个阶段参与的程度,其中,曲 线、分别对应( )。问题1选项A.高级技术人员、管理人员、初级技术人员

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 习题/试题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号