
2022年软考-程序员考前拔高综合测试题(含答案带详解)第108期.docx
20页2022年软考-程序员考前拔高综合测试题(含答案带详解)1. 单选题After analyzing the source code, ( ) generates machine instructions that will carry out the meaning of the program at a later time.问题1选项A.an interpreterB.a linkerC.a compilerD.a converter【答案】C【解析】本题考查计算机专业英语知识在分析了源代码之后,()生成了机器指令,将在以后执行程序的含义A.翻译B.链接器C.编译器D.转换器2. 案例题阅读下列说明和C++代码,填写代码中的空缺,将解答写入答题纸的对应栏内说明】球类比赛记分系统中,每场有两支球队(Team)进行比赛(Game),分别记录各自的得分图6-1所示为记分系统的类图C++代码】【答案】(1) int goals或int goals= 0(2)this->name(3)goals++或++goals或等价表示(4)Team*(5)new Game(t1, t2)【解析】本题考查考生应用C++语言进行程序设计的能力,涉及类、对象、函数的定义和相关操作。
要求考生根据给出的案例和代码说明,阅读并完成程序填空本题中涉及比赛和球队根据说明进行设计,题目给出了类图(图6-1类图所示)图中类Game和Team之间是聚合关系Game类有两个public的函数:getResults() 和incrementGoal:分别表示获取比赛结果和某支球队进1球后增加比分;private属性就是参加比赛的两支球队Team类中有3个public函数,分别为本球队进1球后增加得分、获得本队得分和获得球队名称;private的属性为球队名称和得分球队名采用string类型,得分信息从上下文可知是goals,用int类型在Team对象创建时,初始化球队名称和得分C++11标准之后,对象的属性定义时才可显式初始化;对象的属性name类型为string,需要在构造器中对球队名称加以显式初始化其构造器接收球队名称,参数名称与对象的属性名均为name,用this关键字加以区分其中this关键字用来引用当前对象或类实例,可以用->取属性或行为,即:this->name = name;this->goals =0;注:没有同名时是否有this->都表示名称所表示的对象属性从函数getGoals()中的return goals判断,缺少属性goals来表示得分。
再从上下文判断,函数increamentGoal()中,表示在比赛中某球队进1球,即goals的值增加1创建Game对象表示两支球队的一场比赛构造器参数为两支球队,用以初始化 Game对象的两个属性函数getResults()用于输出当前比分函数incrementGoal()用于表示一支球队进1球,具体是哪支球队由参数给定,所以参数类型为Team*主控逻辑代码在程序主入口函数main()中实现在main()函数中,先创建两支球队(用new关键字),即两个Team类的对象指针,球队名称分别为“TA”和“TB”,指针名称分别为t1和t2,即:Team *t1 = new Team("TA");Team *t2 = new Team("TB");以这两个对象指针名称为参数,创建一场比赛对象(用new 关键字),指针名称为 football,即:Game *football = new Game(t1,t2);然后用:football->incrementGoal(t1);football->incrementGoal(t2);表示球队TA进一球,球队TB进一球然后调用getResults()函数输出此时的比分,即:football->getResults ();然后TB再进一球,再调用getResults()函数输出此时的比分,即:football->incrementGoal(t2);football->getResults() ;综上所述,空(1)需要定义表示一支球队的得分goals,题目代码中已经给出用分号结尾,所以空(1)为int goals(或c++11标准之后int goals=0也支持);空(2)需要表示Team对象指针的name属性,即this->name;空(3)需要表示当前球队得分加1, 因为只有一条语句,只要表示goals加1即可,即goals++或++goals(等价表示);空(4)需要表示参数类型为球队指针,即 Team*;空(5)处为创建Game类的对象football, 需要两个Team类型对象的指针,从其后面语句可知,两个指针名称为t1和t2,即new Game(t1, t2)。
3. 单选题给出关系R(A,B,C)和S(A,B,C),R和S的函数依赖集F={A→B,B→C}若R和S进行自然连接运算,则结果集有( )个属性关系R和S( )问题1选项A.3B.4C.5D.6问题2选项A.不存在传递依赖B.存在传递依赖A→BC.存在传递依赖A→CD.存在传递依赖B→C【答案】第1题:A第2题:C【解析】本题考查数据库中关系代数运算方面的基础知识当R和S进行自然连接运算时,结果集会去掉所有重复属性列,所以结果集有3个属性根据题干“R和S的函数依赖集F={A→B,B→C}”以及Armstrong公理系统的传递律规则(传递律:若X→Y 和 Y→Z在R 上成立,则X →Z 在R 上成立可知,函数依赖“A→C”为F所蕴涵4. 单选题在( )中,要按照确定的计算关系来找到给定关键码的存储位置问题1选项A.顺序表B.哈希表C.单向链表D.双向链表【答案】B【解析】本题考查数据结构——哈希查找基础知识在哈希表(散列表)中,通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度这个映射函数叫作散列函数,存放记录的数组叫作哈希表(散列表)哈希查找的操作步骤:(1)用给定的哈希函数构造哈希表;(2)根据选择的冲突处理方法解决地址冲突;(3)在哈希表的基础上执行哈希查找。
5. 单选题判定覆盖法要求测试用例能使被测程序中每个判定表达式的每条分支都至少通过一次若某程序的流程图如下图所示,则用判定覆盖法对该程序进行测试时,至少需要设计( )个测试用例问题1选项A.4B.5C.6D.8【答案】B【解析】本题考查软件工程的基础知识上述流程图中,从begin到return result有五条路使所有的判定分支都至少通过一次:(1)b=0;(2)b为正数,a为非负数;(3)b为正数,a为负数;(4)b为非正数,a为非负数;(5)b为非正数,a为负数而且用例不能再少了6. 单选题在白盒测试中,( )覆盖是指设计若干个测试用例,运行被测程序,使得程序中的每条语句至少执行一次问题1选项A.语句B.判定C.条件D.路径【答案】A【解析】本题考查软件工程的基础知识对程序模块进行白盒测试时,语句覆盖是指设计若干个测试用例,运行被测程序,使得程序中的每条语句至少执行一次7. 单选题ICMP协议是TCP/IP网络中的( )协议,其报文封装在( )协议数据报中传送问题1选项A.数据链路层B.网络层C.传输层D.会话层问题2选项A.IPB.TCPC.UDPD.PPP【答案】第1题:B第2题:A【解析】本题考查ICMP协议相关知识。
ICMP协议是控制报文协议,它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息ICMP属于网络层协议,其报文封装在IP协议数据单元中传送8. 单选题企业采用云计算模式部署信息系统所具有的优势中不包括( )问题1选项A.企业的全部数据、科研和技术都放到网上,以利共享B.全面优化业务流程,加速培育新产品、新模式、新业态C.从软件、平台、网络等各方面,加快两化深度融合步伐D.有效整合优化资源,重塑生产组织方式,实现协同创新【答案】A【解析】企业采用云计算模式部署信息系统时,一般都会考虑将哪些数据放在公有云或私有云上,如何保护企业的商业秘密以及企业员工的隐私,需要考虑尚在研发的未成熟的技术数据如何保存、保护和管理9. 单选题Software( )is defined as an activity to check whether the actual results match the expected results and to ensure that the software system is defect free.问题1选项A.developmentB.designC.testingD.maintenance【答案】C【解析】软件( )定义为检查实际结果是否符合期待的结果以确保软件系统无缺陷的活动。
A.development(开发)B.design(设计)C.testing(测试)D.maintenance(维护)10. 单选题某班数学考试平均成绩初步算得为86.7分,事后复查发现有两个错误,一个学生的成绩实为69分,却错误录入成96分,另一个学生的成绩实为98分,但错误录入成89分,纠正了这些错误后全班平均成绩为86.3 分据此可推断该班级共有( )人问题1选项A.40B.45C.48D.50【答案】B【解析】本题考查应用数学的基础知识设该班级共有n人,这次考试实际总分应为86.3n分,但两次错误录入导致总分变成86.7n分,使总分增加了(86.7-86.3)n=0.4n分其中对一个学生错误地增加了96-69=27分,对另一个学生错误地减少了98-89=9分,所以两次错误导致总分增加了27-9=18分0.4n=18,从而n=4511. 单选题假设系统中有运行的事务,此时若要转储全部数据库,那么应采用( )方式问题1选项A.静态全局转储B.动态全局转储C.静态增量转储D.动态增量转储【答案】B【解析】本题考查数据库技术方面的基础知识数据的转储分为静态转储和动态转储、海量转储和增量转储。
①静态转储和动态转储静态转储是指在转储期间不允许对数据库进行任何存取、修改操作;动态转储是在转储期间允许对数据库进行存取、修改操作,故转储和用户事务可并发执行②海量转储和增量转储海量转储是指每次转储全部数据;增量转储是指每次只转储上次转储后更新过的数据综上所述,假设系统中有运行的。
