2022软件水平考试-中级软件设计师考试全真模拟卷46(附答案带详解)

上传人:大米 文档编号:468532971 上传时间:2023-04-13 格式:DOCX 页数:10 大小:14.41KB
返回 下载 相关 举报
2022软件水平考试-中级软件设计师考试全真模拟卷46(附答案带详解)_第1页
第1页 / 共10页
2022软件水平考试-中级软件设计师考试全真模拟卷46(附答案带详解)_第2页
第2页 / 共10页
2022软件水平考试-中级软件设计师考试全真模拟卷46(附答案带详解)_第3页
第3页 / 共10页
2022软件水平考试-中级软件设计师考试全真模拟卷46(附答案带详解)_第4页
第4页 / 共10页
2022软件水平考试-中级软件设计师考试全真模拟卷46(附答案带详解)_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《2022软件水平考试-中级软件设计师考试全真模拟卷46(附答案带详解)》由会员分享,可在线阅读,更多相关《2022软件水平考试-中级软件设计师考试全真模拟卷46(附答案带详解)(10页珍藏版)》请在金锄头文库上搜索。

1、2022软件水平考试-中级软件设计师考试全真模拟卷(附答案带详解)1. 填空题:在面向对象技术中,()定义了超类和子类之间的关系,子类中以更具体的方式实现从父类继承来的方法称为(),不同类的对象通过()相互通信。问题1选项A.覆盖B.继承C.消息D.多态问题2选项A.覆盖B.继承C.消息D.多态问题3选项A.覆盖B.继承C.消息D.多态答案:BAC 本题解析:暂无解析2. 填空题:用户A和B要进行安全通信,通信过程需确认双方身份和消息不可否认。A和B通信时可使用()来对用户的身份进行认证;使用()确保消息不可否认。问题1选项 A.数字证书 B.消息加密 C.用户私钥 D.数字签名问题2选项 A

2、.数字证书 B.消息加密 C.用户私钥 D.数字签名答案:AD 本题解析:暂无解析3. 填空题:与HTTP相比,HTTPS协议对传输的内容进行加密,更加安全。HTTPS基于()安全协议,其默认端口是()。问题1选项A.RSAB.DESC.SSLD.SSH问题2选项A.1023B.443C.80D.8080答案:CB 本题解析:暂无解析4. 问答题:假币问题:有n枚硬币,其中有一枚是假币,已知假币的重量较轻。现只有一个天平,要求用尽量少的比较次数找出这枚假币。【分析问题】将n枚硬币分成相等的两部分:(1)当n为偶数时,将前后两部分,即1n/2和n/2+1n,放在天平的两端,较轻的一端里有假币,继

3、续在较轻的这部分硬币中用同样的方法找出假币;(2)当n为奇数时,将前后两部分,即1.(n-1)/2和(n+1)/2+1n,放在天平的两端,较轻的一端里有假币,继续在较轻的这部分硬币中用同样的方法找出假币;若两端重量相等,则中间的硬币,即第(n+1)/2枚硬币是假币。【C代码】下面是算法的C语言实现,其中:coins:硬币数组first,last:当前考虑的硬币数组中的第一个和最后一个下标#includestdio.hint getCounterfeitCoin(int coins,int first,int last)int firstSum=0,lastSum=0;int;If(first=

4、last-1)/*只剩两枚硬币*/if(coinsfirstcoinslast)return first;return last;if(last-first+1)%2=0)/*偶数枚硬币*/for(i=first;i(1);i+)firstSum+=coinsi;for(i=first+(last-first)/2+1;ilast+1;i+)lastSum+=coinsi;if(2)return getCounterfeitCoin(coins,first,first+(last-first)/2;)elsereturn getCounterfeitCoin(coins,first+(last

5、-first)/2+1,last;)else/*奇数枚硬币*/for(i=first;ifirst+(last-first)/2;i+)firstSum+=coinsi;for(i=first+(last-first)/2+1;ilast+1;i+)lastSum+=coinsi;if(firstSumlastSum)return getCounterfeitCoin(coins,first,first+(last-first)/2-1);else if(firstSumlastSum)return getCounterfeitCoin(coins,first+(last-first)/2+1

6、,last);elsereturn(3)【问题一】(6分)根据题干说明,填充C代码中的空(1)-(3)。【问题二】(6分)根据题干说明和C代码,算法采用了()设计策略。函数getCounterfeitCoin的时间复杂度为()(用O表示)。【问题三】(3分)若输入的硬币数为30,则最少的比较次数为(),最多的比较次数为()。答案: 本题解析:【问题1】(1)first+(last-first)/2+1或(first+last)/2+1(2)firstSumlastSum(3)first+(last-first)/2或(first+last)/2【问题2】(4)分治法(5)O(lgn)【问题3】

7、(6)2(7)4【问题1】对于本题代码填空,可以根据算法过程推导。第一空,缺少循环的停止条件,根据题干描述,在左侧比较应该是到(last+first)/2为止,由于这里是小于符号,所以第一空填写(last+first)/2+1,或first+(last-first)/2+1,或其他等价形式。第二空,缺少判断条件,进入较小部分继续比较,因此本空应该填写firstSumlastSum。第三空,缺少返回值,此时即不在左侧,也不在右侧,则当前位置即为目标位置,返回当前位置first+(last-first)/2。【问题2】本题采用的是分治法策略。整个算法过程类似于树形结构,所以时间复杂度为O(lgn)

8、。【问题3】若输入30个硬币,找假硬币的比较过程为:第1次:15比15,此时能发现假币在15个的范围内。第2次:7比7,此时,如果天平两端重量相同,则中间的硬币为假币,此时可找到假币,这是最理想的状态。第3次:3比3,此时若平衡,则能找出假币,不平衡,则能确定假币为3个中的1个。第4次:1比1,到这一步无论是否平衡都能找出假币,此时为最多比较次数。因此最少比较2次,最多比较4次。5. 填空题:业务用例和参与者一起描述(),而业务对象模型描述()。 问题1选项 A.工作过程中的静态元素 B.工作过程中的动态元素 C.工作过程中的逻辑视图 D.组织支持的业务过程问题2选项 A.业务结构 B.结构元

9、素如何完成业务用例 C.业务结构以及结构元素如何完成业务用例 D.组织支持的业务过程答案:DC 本题解析:暂无解析6. 问答题:某应用中需要对100000个整数元素进行排序,每个元素的取值在05之间。排序算法的基本思想是:对每一个元素x,确定小于等于x的元素个数(记为m),将x放在输出元素序列的第m个位置。对于元素值重复的情况,依次放入第m-1、m-2、个位置。例如,如果元素值小于等于4的元素个数有10个,其中元素值等于4的元素个数有3个,则4应该在输出元素序列的第10个位置、第9个位置和第8个位置上。算法具体的步骤为:步骤1:统计每个元素值的个数。步骤2:统计小于等于每个元素值的个数。步骤3

10、:将输入元素序列中的每个元素放入有序的输出元素序列。【C代码】下面是该排序算法的C语言实现。(1)常量和变量说明R:常量,定义元素取值范围中的取值个数,如上述应用中R值应取6i:循环变量n:待排序元素个数a:输入数组,长度为nb:输出数组,长度为nc:辅助数组,长度为R,其中每个元素表示小于等于下标所对应的元素值的个数。(2)函数sort1 void sort(int n,int a,int b)2?int cR,i;3?for(i=0;i(1):i+)4?ci=0;56?for(i=0;in;i+)7 cai=(2);89?for(i=1;iR;i+)10 ci=(3)1112 for(i=

11、0;in;i+)13?bcai-1=(4);14?cai=cai-1;1516【问题1】(8分)根据说明和C代码,填充C代码中的空缺(1)(4)。【问题2】(4分)根据C代码,函数的时间复杂度和空间复杂度分别为(5)和(6)(用O符号表示)。【问题3】(3分)根据以上C代码,分析该排序算法是否稳定。若稳定,请简要说明(不超过100字);若不稳定,请修改其中代码使其稳定(给出要修改的行号和修改后的代码)。答案: 本题解析:【问题1】(1)R(2)cai+1(3)ci+ci-1(4)ai【问题2】(5)O(n+R)或者O(n)或n或线性(6)O(n+R)或者O(n)或n或线性【问题3】不稳定。修改

12、第12行的for循环为:for(i=n-1;i=0;i-)即可。【问题1】本题考查排序的相关内容。题目告诉我们排序算法的基本思想是:对每一个元素x,确定小于等于x的元素个数(记为m),将x放在输出元素序列的第m个位置。对于元素值重复的情况,依次放入第m-1、m-2、的位置。而且题目告诉我们算法的步骤。下面我们来具体分析本试题。第(1)空所处的位置为函数sort()中第一个for循环中,从题目的描述和程序不难看出该循环的作用是给数组c赋初值,而根据题目描述可知数组c是一个辅助数组,长度为R,因此第一空应填R。第(2)空在函数sort()中的第二个for循环中,很显然第(2)空是给数组c赋值,而且

13、其下标为数组a的相应的元素值。再根据题目的描述“c数组中每个元素表示小于等于下标所对应的元素值的个数”,很显然,这个for循环的作用是统计每个元素值的个数,因此第(2)空的答案应该是cai+1。第(3)空在第三个for循环中,而且第(3)空是调整数组c的值,根据题目提供的算法的步骤,我们可知,这个时候应该要统计小于等于每个元素值的个数,而等于的元素个数记录在ci中,小于的元素个数记录在ci-1中,因此第(3)空的答案是ci+ci-1。第(4)空在最后一个for循环中,按题目要求,我们可以知道该for循环应该完成剩余的步骤3,即将输入元素序列中的每个元素放入有序的输出元素序列。而第(4)空是给数

14、组b赋值,题目告诉我们b是输出数组,而a是输入数组,那么应该是将a中的值赋值值b中,因此第(4)空的答案应该为ai。【问题2】本题主要考查时间复杂度与空间复杂度的分析。首先我们来看空间复杂度,空间复杂度是对一个算法在运行过程中临时占用存储空间大小的量度。在sort()函数中,声明了两个整型变量n和i(可忽略),两个整型数组b和c,而a不属于函数sort的临时空间,因此函数sort()的空间复杂度为O(n+R),这里由于在本题中R的值为6,因此也可以忽略,所以答案也可以是O(n)。接着我们来分析时间复杂度,时间复杂度是度量算法执行的时间长短,函数sort()中有并列的四个循环,其中有两个循环n次,而另外两个分别循环R-1和R次,因此时间复杂度应该为O(n+R),由于R的值为6,这里可以忽略,因此答案也可以是O(n)。【问题3】所谓稳定性是指两个关键字相等的元素在排序前后的相对位置不发生变化,一般来讲,只要排序过程中比较和移动操作发生在相邻的元素间,排序方法是稳定的

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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

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