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

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

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

1、2022年软考-程序员考试题库及全真模拟冲刺卷(附答案带详解)1. 单选题身份认证是证实需要认证的客户真实身份与其所声称的身份是否相符的验证过程。目前,计算机及网络系统中常用的身份认证技术主要有用户名/密码方式、智能卡认证、动态口令、生物特征认证等。生物特征认证不包括( )。问题1选项A.指纹B.面部识别C.虹膜D.击键特征【答案】D【解析】本题考查计算机系统的基础知识。生物特征识别技术是指通过计算机利用人体所固有的生理特征(指纹、虹膜、面相、DNA等)或行为特征(步态、声音、笔迹等)来进行个人身份鉴定的技术。2. 单选题对n个关键码构成的序列采用简单选择排序法进行排序的过程是:第一趟经过n-

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

3、比较,总的比较次数为n-1+n-2+.+1=n(n-1)/2。3. 单选题在以用户界面(UI)层、系统交互(SI)层、问题领域(PD)层和数据管理(DM)层构成的软件架构中,业务实体和业务逻辑属于( )层。问题1选项A.UIB.SIC.PDD.DM【答案】C【解析】本题考查软件工程的基础知识。业务实体和业务逻辑属于企业需要解决的实际问题的领域。4. 案例题阅读以下说明和C代码,填写程序中的空缺,将解答写入答题纸的对应栏内。函数strCompress(char *s)对小写英文字母串进行压缩,其基本思路是:如果串长小于3则不压缩,否则对连续出现的同一字符,用该字符及其个数来表示。例如,字符串ab

4、bbcdddddddeeed压缩后表示为ab3cd7e3d。如图4-1所示,在计算连续出现的同一字符个数时,借助字符指针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(

5、char *str)int i; char *p,tstr11; /在tstr中以字符串方式表示同一字符连续出现的次数 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程序流程控制和字符串处理及指针的应用。空

6、(1)处实现对函数strCompress 的调用,根据strCompress 的声明和定义(void strCompress(char *str)要求实参提供字符存储的地址,main函数中的字符数组test保存了需要压缩的字符串,因此空(1)应填入“strCompress(test)”或其等效形式。在函数strCompress中,其方式为:将首个字符存在 buf数组第一个位置中计算该字符出现的次数,用k表示。此处计算时用if if(s1&*s=*(s+1) 先做初步判断,当*s=*(s+1)表示当前位置第一个字符等于第二个字符,说明有多次出现,k值+1,如果不成立,表示该字符只出现了一次,跳过

7、if中间的过程,直接往下一个不同字符进行判定。当出现重复字符时,此时还要判断后面是否有重复的字符,且用k进行计数该字符出现的次数。所以第(3)空用*s=*(s+k)表示后面字符与该字符是否相同,如果相同,k值+1,直到出现不同的字符,结束循环。循环结束后,要将k值赋给buf数组中,所以用用sprintf函数将k转为字符串,然后将暂存在tstr中的数字字符逐个写入 buf数组,所以第(4)空为bufi+=*p+,将k对应的字符串存入到buf的下一个位置。下一个不同字符同样想要进行赋值到buf中,但是赋值位置是之前字符的后一个位置,所以(2)填的是i+。然后对于下一个不同字符的初始位置要做下判断,

8、例如:假设是“aaab”那么下一个不同字符是在s+3的位置,如果是“ab”那么下一个不同字符是在s+1的位置,所以此处其不同字符的偏移量是由k(前一个字符的重复次数)所确定,表示为s+k,所以用s+=k; 表示跳过连续出现的同一字符,使s指向下一个不同的字符。接下来就是重复第、的过程,直到字符串结束。设置buf数组末尾为字符串结束标记,由于每次在buf 中写入字符时都对下标i进行了自增,for循环结束后,bufi即表示压缩字符串最后一个字符之后的位置,因此第(5)空用bufi=0表示设置字符串结尾。5. 单选题ICMP协议是TCP/IP网络中的( )协议,其报文封装在( )协议数据报中传送。问

9、题1选项A.数据链路层B.网络层C.传输层D.会话层问题2选项A.IPB.TCPC.UDPD.PPP【答案】第1题:B第2题:A【解析】本题考查ICMP协议相关知识。ICMP协议是控制报文协议,它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。ICMP属于网络层协议,其报文封装在IP协议数据单元中传送。6. 案例题阅读下列说明和C+代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】现如今线下支付系统可以使用现金(Cash)、移动支付、银行卡(Card)(信用卡 (CreditCard)和储蓄卡(DebitCard)等多种支付方式(PaymentMethod)对

10、物品(Item) 账单(Bill)进行支付。图6-1是某支付系统的简略类图。图6-1 类图【C+代码】#include#includevector#includestringusing namespace std;class PaymentMethod public: virtual void pay(int cents)=0;;/ Cash、DebitCard和Item实现略,Item中getPrice( )获取当前物品对象的价格class Card : public PaymentMethod private: string name, num;public: Card(string na

11、me, string num) this-name = name; this-num = num; string toString( ) return this-getType( ) + cardname = + name + ,num = + num + ; ) void pay(int cents) coutexecuteTransaction(cents); protected: virtual string getType( )=0; virtual void (1) =0:;class CreditCard (2) public: CreditCard(stringname, str

12、ingnum) (3) protected: string getType( ) return CREDIT ; void executeTransaction(int cents) coutclass Bill /包含所有购买商品的账单private: vector items; /包含物品的 vectorpublic: void add(Item* item) items.push_back(item); int getTotalPrice( ) /*计算所有item的总价格,代码略*/ void pay(PaymentMethod* paymentMethod) /用指定的支付方式完成支

13、付 (4) (getTotalPrice( ); ;class PaymentSystempublic: void pay( ) Bill* bill = new Bill( ); Item* item1= new Item1234,10); Item* item2 = new Item(5678,40); bill-add(item1); bill-add(item2); /将物品添加到账单中 (5) (new CreditCard(LI SI, 98765432101); /信用卡支付 ;Intmain( ) (6) = new PaymentSystem( ); payment-pay( ); return 0;【答案】(1)executeTransaction(int cents)(2):public Card(3):Card(name,num)

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

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

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