2021年上半年软件设计师上午真题及答案解析

ZhangJun ZhangJun     2022-12-03     680

关键词:

21、以编译方式翻译C/C++源程序的过程中,( )阶段的主要任务是对各条语句的结构进行合法性分析。
A.词法分析
B.语义分析
C.语法分析
D.目标代码生成

参考答案:C
答案解析:

  • 词法分析阶段依据语言的词法规则,对源程序进行逐个字符地扫描,从中识别出一个个“单词”符号,主要是针对词汇的检查。

  • 语法分析的任务是在词法分析的基础上,根据语言的语法规则将单词符号序列分解成各类语法单位,如“表达式”“语句”和“程序”等。语法规则就是各类语法单位的构成规则,主要是针对结构的检查。

  • 语义分析阶段分析各语法结构的含义,检查源程序是否包含语义错误,主要针对句子含义的检查。

22、Java语言符合的特征有( )和自动的垃圾回收处理。
①采用即时编译
②采用静态优化编译
③对象在堆空间分配
④对象在栈空间分配

A.①③
B.①④
C.②③
D.②④

参考答案:A
答案解析:

  • JAVA是解释型语言,可以生成中间代码后再边解释为目标代码边执行,也就是即时编译。
  • 可以根据运行机器优化代码,采用的是动态优化编译。
  • Java 程序最初都是通过解释器(Interpreter)进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁,就会把这些代码认定为“ 热点代码 ”(Hot Spot Code),为了提高热点代码的执行效率,在运行时,虚拟机将会把这些代码编译成本地机器码,并以各种手段尽可能地进行代码优化,这个过程就叫即时编译,运行时完成这个任务的后端编译器被称为即时编译器。
  • JAVA的栈空间只存放基本类型、引用类型变量和方法,而堆中存储实例对象。

23、云计算有多种部署模型(Deployment Models)。若云的基础设施是为某个客户单独使用而构建的,那么该部署模型属于( )。
A.公有云
B.私有云
C.社区云
D.混合云

参考答案:B
答案解析:

  • 公有云通常指第三方提供商为用户提供的能够使用的云,公有云一般可通过 Internet 使用,可能是免费或成本低廉的,公有云的核心属性是共享资源服务。
  • 私有云(Private Clouds)是为一个客户单独使用而构建的,因而提供对数据、安全性和服务质量的最有效控制。该公司拥有基础设施,并可以控制在此基础设施上部署应用程序的方式。本题针对某个客户单独使用,属于B选项私有云。
  • 社区云一般指社群云。社群云(Community cloud),也称社区云,是由几个组织共享的云端基础设施,它们支持特定的社群,有共同的关切事项,例如使命任务、安全需求、策略与法规遵循考量等。
  • 混合云融合了公有云和私有云,是近年来云计算的主要模式和发展方向。我们已经知道私有云主要是面向企业用户,出于安全考虑,企业更愿意将数据存放在私有云中,但是同时又希望可以获得公有云的计算资源,在这种情况下混合云被越来越多的采用,它将公有云和私有云进行混合和匹配,以获得最佳的效果,这种个性化的解决方案,达到了既省钱又安全的目的。

24、若计算机系统的字长为128位,磁盘的容量为2048GB,物理块的大小为8MB,假设文件管理系统采用位示图(bitmap)法记录该计算机系统磁盘的使用情况,那么位示图的大小需要( )个字。
A.1024
B.2048
C.4096
D.8192

参考答案:B
答案解析:
磁盘容量2048G,物理块大小8MB,则磁盘共有2048GB/8MB=256x2 10 ^10 10个物理块。
采用位示图记录磁盘使用情况,每个磁盘块占据1bit,共需要256x2 10 ^10 10进行记录。
每128个bit为为1个字,则共需要256x2 10 ^10 10/128个字,即2048个字。

25、进程P有5个页面,页号为0-4,页面变换表及状态位、访问位和修改位的含义如下图所示,若系统给进程P分配了3个存储块,当访问的页面3不在内存时,应该淘汰表中页号为( )的页面。

A.0
B.1
C.2
D.4
参考答案:A
答案解析:

  • 被淘汰的页面首先必须在内存,也就是在0、2、4页面中进行选择。
  • 优先淘汰访问位为0的页面,此时0、2、4页面访问位都为1,无法判断。
  • 进一步淘汰的是修改位为0的页面,此时符合要求淘汰的是0号页面,选择A选项。

26、27、28、进程P1、P2、P3、P4、P5和P6的前驱图如下所示:

若用PV操作控制进程P1、P2、P3、P4、P5 和 P6开发执行的过程,需要设置6个信号量 S1、 S2、S3、S4、S5和 S6,且信号量 S1~S6的和值都等于零。下面的进程执行图中a和b处分别填写(),c和d处应分别填写(),e和f处应分别填写()。
(1)
A.V(S1)和 P(S2)V(S3)

B.P(S1)和 P(S2)V(S3)

C.V(S1)和 V(S2)V(S3)

D.P(S1)和 V(S2)V(S3)

(2)
A.P(S2)和 P(S4)

B.V(S4)和 P(S3)

C.P(S2)和 V(S4)

D.V(S2)和V(S4)

(3)
A.P(S4)V(S5)和V(S6)

B.P(S4)V(S5)和P(S6)

C.P(S4)P(S5)和 V(S6)

D.P(S4)P(S5)和P(S6)
参考答案:DBC
答案解析:
本题是常规的前趋图与PV操作结合考查题型。
对于前趋图,箭线表示前趋和后继关系,前趋进程完成需要通知后继进程(用V()操作通知),后继进程开始前需要检查前趋进程是否完成(用P()操作检查)。也就是说,在前趋图中,每一个箭头流出指向后继进程,都会有一个V()操作通知后继,每一个箭头的流入都是始于前趋进程,需要检查前趋进程是否完成,用P()操作进程检查。标识如下:

根据缺失的填空位置:

  • P2有1个前趋进程,执行前a位置有1个P()操作,P2有2个后继进程,执行后b位置有2个V()操作,第一空选择D选项。

  • P3有1个后继进程,执行后c位置有1个V()操作,P4有1个前趋进程,执行前d位置有1个P()操作,第二空选择B选项。

  • P5有2个前趋进程,执行前e位置有2个P()操作,P5有1个后继进程,执行后f位置有1个V()操作,第三空选择C选项。

29、30、关于螺旋模型,下列陈述中不正确的是()()。

(1)
A.将风险分析加入到瀑布模型中

B.将开发过程划分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符

C.适合于大规模、复杂且具有高风险的项目

D.可以快速的提供一个初始版本让用户测试

(2)
A.支持用户需求的动态变化

B.要求开发人员具有风险分析能力

C.基于该模型进行软件开发,开发成本低

D.过多的迭代次数可能会增加开发成本,进而延迟提交时间

参考答案:DC
答案解析:

  • 螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。
  • 螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。
  • 螺旋模型更适合大型的昂贵的系统级的软件应用。
  • 螺旋模型的每一周期都包括需求定义、风险分析、工程实现和评审 4 个阶段,由这 4 个阶段进行迭代,软件开发过程每迭代一次,软件开发就前进一个层次。
  • 螺旋模型的基本做法是在“瀑布模型”的每一个开发阶段前,引入一个非常严格的风险识别、风险分析和风险控制。它把软件项目分解成一个个小项目,每个小项目都标识一个或多个主要风险,直到所有的主要风险因素都被确定。
  • 与瀑布模型相比,螺旋模型支持用户需求的动态变化,为用户参与软件开发的所有关键决策提供了方便,有助于提高目标软件的适应能力,为项目管理人员及时调整管理决策提供了便利,从而降低了软件开发风险。

但是,不能说螺旋模型绝对比其他模型优越,事实上,螺旋模型也有其自身的缺点:

  • 采用螺旋模型,需要具有相当丰富的风险评估经验和专业知识。在风险较大的项目开发中,如果未能及时标识风险,势必会造成重大损失。

  • 过多的迭代次数会增加开发成本,延迟提交时间。

  • 第一空选项中,可以快速提供一个初始版本给用户的是增量模型而不是螺旋模型,D选项描述错误。

  • 第二空选项中,在螺旋模型中过多的迭代次数会增加开发成本,C选项开发成本低的描述是错误的。

2021年上半年软件设计师上午真题及答案解析(代码片段)

11、通常使用()为IP数据报文进行加密。A.IPSecB.PP2PC.HTTPSD.TLS参考答案:A答案解析:IPSec工作于网络层,为IP数据报文进行加密。PP2P工作于数据链路层,用于链路加密。HTTPS是HTTP与SSL的结合体,为传输... 查看详情

2021年上半年软件设计师上午真题及答案解析(代码片段)

51、如下图如下E-R图中,两个实体R1、R2之间有一个联系E,当E的类型为()时必须将E转换成—个独立的关系模式?A.1:1B.1:*C.*:1D.*:*参考答案:D答案解析:E-R图转关系模式转换原则:实体必须单独转... 查看详情

2021年上半年软件设计师上午真题及答案解析(代码片段)

1、在CPU中,用()给出将要执行的下一条指令在内存中的地址。A.程序计数器B.指令寄存器C.主存地址寄存器D.状态条件寄存器参考答案:A答案解析:程序计数器是用于存放下一条指令所在单元的地址的地方。... 查看详情

2021年上半年软件设计师上午真题及答案解析(代码片段)

1、在CPU中,用()给出将要执行的下一条指令在内存中的地址。A.程序计数器B.指令寄存器C.主存地址寄存器D.状态条件寄存器参考答案:A答案解析:程序计数器是用于存放下一条指令所在单元的地址的地方。... 查看详情

2021年上半年软件设计师上午真题及答案解析(代码片段)

41、42、43、当UML状态图用于对系统、类或用例的动态方面建模时,通常是对()建模。以下UML状态图中,假设活动的状态是A,事件b=0发生并且a>5,发生条件是c状态到d状态的转换条件的是()&... 查看详情

2021年下半年软件设计师上午真题答案及解析(代码片段)

51、已知一个文件中出现的各字符及其对应的频率如下表所示。采用Huffman编码,则该文件中字符a和c的码长分别为(1)。若采用Huffman编码,则字序列“110001001101”的编码应为(2)。(1)A、1和3B、1和4C、3和3D、3和4(2)A、faceB、baceC... 查看详情

2021年下半年软件设计师上午真题及答案解析

1.计算机指令系统采用多种寻址方式:立即寻址是指操作数包含在指令中;寄存器寻址是指操作数在寄存器中;直接寻址是指操作数的地址在指令中。这三种寻址方式操作数的速度()。A.立即寻址最快,... 查看详情

2021年下半年软件设计师上午真题答案及解析(代码片段)

21、下图所示为一个非确定有限自动机(NFA),S0为初态,S3为终态。该NFA识别的字符串()。A、不能包含连续的字符“0”B、不能包含连续的字符“1”C、必须以“101”开头D、必须以“101”结尾参考答案:D答案解析:有限自... 查看详情

2021年下半年软件设计师上午真题答案及解析(代码片段)

41、采用三级模式结构的数据库系统中,如果对一个表创建聚簇索引,那么改变的是数据库的()。A、外模式B、模式C、内模式D、用户模式参考答案:C答案解析:对于三级模式,分为外模式,模式和内模式。... 查看详情

2019年上半年软件设计师上午真题及答案解析

1.计算机执行指令的过程中,需要由(  )产生每条指令的操作信号并将信号送往相应的部件进行处理,以完成指定的操作。A.CPU的控制器   B.CPU的运算器   C.DMA控制器    D.Cache控制器2.DMA控制方式是在(  )之间直接建... 查看详情

2022年上半年软件设计师上午真题及答案解析

1.以下关于冯诺依曼计算机的叙述中,不正确的是( )。A.程序指令和数据都采用二进制表示B.程序指令总是存储在主存中,而数据则存储在高速缓存中C.程序的功能都由中央处理器(CPU)执行指令来实现D.程序的执行过程由指... 查看详情

2022年上半年软件设计师上午真题及答案解析

1.以下关于冯诺依曼计算机的叙述中,不正确的是( )。A.程序指令和数据都采用二进制表示B.程序指令总是存储在主存中,而数据则存储在高速缓存中C.程序的功能都由中央处理器(CPU)执行指令来实现D.程序的执行过程由指... 查看详情

2021年下半年系统架构设计师上午真题及答案解析

1.前趋图(PrecedenceGraph)是一个有向无环图,记为:→=(Pi,Pj)PimustCompleteBeforePjmaystrat),假设系统中进程P=P1,P2,P3,P4,P5,P6,P7,P8,且进程的前驱图如下: A.→=(P1,P2),(P3,P1),(P4,P1),(P5,P2),(P 查看详情

2021年上半年软件设计师上午真题及答案解析(代码片段)

11、通常使用()为IP数据报文进行加密。A.IPSecB.PP2PC.HTTPSD.TLS参考答案:A答案解析:IPSec工作于网络层,为IP数据报文进行加密。PP2P工作于数据链路层,用于链路加密。HTTPS是HTTP与SSL的结合体,为传输... 查看详情

2021年下半年网络工程师上午真题及答案解析

...   B.编译型  C.支持面向对象程序设计   D.动态编程3.软件测试时,白盒测试不能发现( )。A.代码路径 查看详情

2021年上半年软件设计师上午真题及答案解析(代码片段)

41、42、43、当UML状态图用于对系统、类或用例的动态方面建模时,通常是对()建模。以下UML状态图中,假设活动的状态是A,事件b=0发生并且a>5,发生条件是c状态到d状态的转换条件的是()&... 查看详情

2021年上半年软件设计师下午真题及答案解析(代码片段)

阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】层叠菜单是窗口风格的软件系统中经常采用的一种系统功能组织方式。层叠菜单中包含的可能是一个菜单项(直接对应某个功能&#... 查看详情

2021年上半年软件设计师下午真题及答案解析(代码片段)

阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】层叠菜单是窗口风格的软件系统中经常采用的一种系统功能组织方式。层叠菜单中包含的可能是一个菜单项(直接对应某个功能&#... 查看详情