问题 单项选择题

编译器和解释器是两种高级语言处理程序,与编译器相比, (1) 。编译器对高级语言源程序的处理过程可以划分为词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成等几个阶段:其中,代码优化和 (2) 并不是每种编译器都必需的。词法分析的作用是识别源程序中的 (3) ;语法分析中的预测分析法是 (4) 的一种语法分析方法:编译器在 (5) 阶段进行表达式的类型检查及类型转换。

(2)

A.2

B.4

C.6

D.8

答案

参考答案: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。

单项选择题
多项选择题