单选题
编译器和解释器是两种高级语言处理程序,与编译器相比,{{U}} (1) {{/U}}。编译器对高级语言源程序的处理过程可以划分为词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成等几个阶段:其中,代码优化和{{U}} (2) {{/U}}并不是每种编译器都必需的。词法分析的作用是识别源程序中的{{U}} (3) {{/U}};语法分析中的预测分析法是{{U}} (4) {{/U}}的一种语法分析方法:编译器在{{U}} (5) {{/U}}阶段进行表达式的类型检查及类型转换。
单选题 (1)
【正确答案】 B
【答案解析】
单选题 (2)
【正确答案】 C
【答案解析】
单选题 (3)
【正确答案】 B
【答案解析】
单选题 (4)
【正确答案】 B
【答案解析】
单选题 (5)
【正确答案】 C
【答案解析】[解析] 编译器和解释器是两种高级语言处理程序,编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样,运行时,计算机可以直接以机器语言来运行此程序,速度很快,编译器不参与运行控制。解释器则是只在执行程序时,才一条一条的解释成机器语言让计算机执行,所以运行速度是不如编译后的程序运行得快,解释器参与了运行控制。本题第1空的正确答案为选项B。 编译过程涉及如下阶段: ①词法分析阶段。这个阶段中,对源程序从前到后进行扫描,从中识别出一个个“单词”符号。本题第3空的正确答案为选项B。 ②语法分析阶段。在词法分析的基础上,根据语言的语法规则,将单词符号序列分解为各类语法单位。语法分析中,有自顶向下分析和自底向上分析。预测分析法是自顶向下的语法分析方法。第4空的正确答案为选项B。 ③语义分析阶段。主要检查源程序中是否存在语义错误,并收集类型信息,供后面的代码生成阶段使用。只有语法和语义都正确的源程序,才能翻译为正确的目标代码。语法分析阶段的一个主要任务是进行类型分析和检查。编译器在这个阶段进行表达式的类型检查及类型转换。第5空的正确答案为选项C。 ④中间代码生成阶段。在这个阶段中,根据语义分析的输出,生成中间代码。 ⑤代码优化阶段。因为中间代码在时间和空间上都有很大的浪费,代码优化阶段的任务是,生成高效的目标代码。 ⑥目标代码生成阶段。把中间代码变换为特定机器上的绝对指令代码、可重定位的指令代码和汇编指令代码。 其中,代码优化和中间代码生成阶段,并不是每个编译器都必须的。第2空的正确答案为选项C。
单选题 (1)
【正确答案】 A
【答案解析】
单选题 (2)
【正确答案】 C
【答案解析】[解析] 目前,计算机的硬件只能识别由0、1序列组成的机器语言。所以,本题的正确答案为A和C。
单选题 (1)
【正确答案】 A
【答案解析】
单选题 (2)
【正确答案】 B
【答案解析】[解析] 在许多高级语言中,都是以main()函数作为程序入口,这是一个约定俗成的规则,在本题的伪代码中也不例外。程序一开始,首先在main()函数中定义了一个局部变量a,并初始化为2,然后调用f1()过程,若采用传值方式,则f1()不会对变量a做出任何的改变,因为在main()函数中调用f1()过程时,传递给f1()的只是a的值, a内容的一份拷贝,所以不会对main()函数中的变量a造成任何影响。故第1空应该选择A。 若调用f1()过程时,采用的是引用方式传递参数,则在f1()过程中,对形参x所作的修改会直接作用到main()函数的变量a上。在f1()中,首先调用f2()过程,由于 f2()此时采用传值方式,所以可以忽略,它不会影响形参x。接下来执行x=x+x, x的值变为4。故最终输出结果,a的值为4,第2空应该选择B。