试题 1 分析
被有限自动机所识别是指从初态开始到终态结束,所输入的字符串能够按顺序地执行下去,若到某个状态不能往下走得到下一个字符,则认为不能识别。
在本题中,从初态A出发,不管经过多少个 1 和 0 之后,只能是处在A、B、C 3 种状态中的一种,所以在(0|1)*后,只能是处在A、B、C 3 种状态中的一种,不管是在哪个状态,输入 0 后,都会处在状态B,然后输入 1,都会转换到状态C,因此与本题有限自动机等价的正规式是(0|1)*01,即该自动机所识别的字符串的特点是必须以 01 结尾的 0、1 串。
试题 1 答案
(1)C
试题 2 分析
编译和解释是语言处理的两种基本方式。编译过程包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等阶段,以及符号表格管理与出错处理模块。
解释过程在词法、语法和语义分析方面与编译程序的工作原理基本相同,但是在运行用户程序时,它直接执行源程序或源程序的内部形式。
这两种语言处理程序的根本区别是:在编译方式下,机器上运行的是与源码程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行过程;而在解释方式下,解释程序和源程序(或其某种等价表示)要参与到程序的运行过程中,运行程序的控制权在解释程序。
在编译方式下,词法、语法和语义分析是必须要进行的工作,而生产中间代码和代码优化则是可以进行也可以不进行的工作。
试题 2 答案
(2)C
试题 3 分析
在C程序中,若在某个表达式中引用了未赋初值的变量,那么程序是可以通过编译并运行的,因为程序中并没用语法方面的错误,只是运行的结果可能与我们期望的结果不一致。
试题 3 答案
(3)D
试题 4 分析
在对用高级程序设计语言编写的程序进行执行时,首先是将源代码翻译成目标代码,然后再链接成可执行的二进制代码。因此在翻译阶段,目标代码生成阶段的工作与目标机器的体系结构密切相关。
试题 4 答案
(4)D
试题 5 分析
本题主要考查有限自动机。
在本题中,A是初始状态,C是终止状态,通过选项中的字符串可以从初始状态到达终止状态,则说明该字符串能被题目中的自动机识别。也可以理解为依次输入选项中的字符串,可以在该自动机中找到相应的路径。
对于选项A的字符串 0000,在输入 0 后,从初始状态A转移到状态B,然后接着输入3 个 0,状态停留在B,而无法到达终态C,因此选项A不能被该自动机识别。
同样的道理,我们可以找到字符串 0101 能被该自动机识别,在输入 0 后,状态跳转到B,输入 1 则由B转至C,再输入 0,又由C转至B,最后输入 1,由B转至终态C。
试题 5 答案
(5)C
试题 6 分析
本题主要考查我们对常量与变量的理解。顾名思义,常量是指值一旦确定后就不能再变的量,而变量则是一个在程序执行过程中,可以根据需要修改的量,是一个可改变的量。当然不管是常量还是变量,它们都有其类型属性。
试题 6 答案
(6)B