程序员2022下半年模拟二上午题之九
摘要:对于【程序员】软考考试而言,试题无疑是最重要的学习资料之一。在软考备考过程中,吃透试题、掌握试题所考知识点、熟悉试题的出题思路,对我们提升分数的效果是最明显的,通过对试题的反复练习,还可以查漏补缺。今天,给大家带来【程序员2022下半年模拟二上午题】部分试题的详解,一起来看看吧~1、编译和解释是实现高级语言翻译的两种基本方式,相对应的程序分别称为编译器和解释器。与编译器
1、编译和解释是实现高级语言翻译的两种基本方式,相对应的程序分别称为编译器和解释器。与编译器相比,解释器(23)。编译器对高级语言源程序的处理过程可以划分为词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成等几个阶段;其中,代码优化和(24)并不是每种编译器都必需的。词法分析的作用是识别源程序中的(25)。
A、 常量和变量
B、 数据类型
C、 记号
D、 语句
答案:C
答题解析:
本题考查程序语言基础知识。
在实现程序语言的编译和解释两种方式中,编译方式下会生成用户源程序的目标代码,而解释方式下则不产生目标代码。目标代码经链接后产生可执行代码,可执行代码可独立加载运行,与源程序和编译程序都不再相关。而在解释方式下,在解释器的控制下执行源程序或其中间代码,因此相对而言,用户程序执行的速度更慢。
中间代码生成和优化不是编译过程中必需的阶段。对用户源程序依次进行了词法分析、语法分析和语义分析后,原则上就可以产生目标代码了,只是目标代码的质量和效率可能不够高。
词法分析时编译或解释用户源程序过程中唯一与源程序打交道的阶段,其主要功能是按顺序分析出源程序的记号。
2、 Fibnacci数列的定义为:F0=0,F1=1,Fn=Fn-1+Fn-2(n≥2,n∈N*),要计算该数列的任意项Fn,既可以采用递归方式编程也可以采用循环语句编程,由于(26),所以需要较多的运行时间。
A、 递归代码经编译后形成较长目标代码
B、 递归代码执行时多次复制同一段目标代码
C、 递归代码执行时需要进行一系列的函数调用及返回且存在重复计算
D、 递归代码执行过程中重复存取相同的数据
答案:C
答题解析:
本题考查程序语言基础知识。
分析递归代码执行过程可知,由于调用函数时系统需要在栈区开辟支持函数运行时需要的空间(大多数局部变量的存储单元即分配在此空间中),同时还需造成控制流的转移、返回位置的记录和恢复等工作,同时在该例子中存在着重复计算,例如计算只时要通过递归调用分别计算F3和F2,而在计算F3时,则要通过递归调用分别计算F2和F1,其中F2的计算会重复,因此递归代码执行时需要进行一系列的函数调用及返回且存在重复计算都是比较耗时的。
3、某企业有生产部和销售部,生产部负责生产产品并送入仓库,销售部从仓库取产品销售。假设仓库可存放n件产品。用PV操作实现它们之间的同步过程如下图所示。 其中,信号量S是一个互斥信号量,初值为(27);S1是一个(28);S2是一个(29)。
A、 0
B、 1
C、 n
D、 -1
答案:B
答题解析:
从题目给出的两个进程来看,S是互斥信号量,用来表示互斥使用仓库,而仓库的个数是1,因此S的初值为1。
而S1和S2分别表示两个同步信号量,用来实现生产和销售的同步,其中S1表示的是仓库的容量,即能生产多少个产品进入仓库,在初始状态时,其值是n。而S2表示仓库中有多少个产品可供销售者销售,在初始状态时,其值是0,即没有产品在仓库。
查看完整试题>>>
软考资料: 2024年软考论文范文> 软考考试核心重点难点汇总> 查看更多>
备考刷题:章节练习+每日一练> 软考历年试题+模拟题>查看更多>