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

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选项开发成本低的描述是错误的。

猜你喜欢

转载自blog.csdn.net/johnWcheung/article/details/127373297