1、某非确定的有限自动机(NFA)的状态转换图如下图所示(q0既是初态也是终态)。以下关于该NFA的叙述中,正确的是( )。
A、其可识别的0、1序列的长度为偶数
B、其可识别的0、1序列中0与1的个数相同
C、其可识别的非空0、1序列中开头和结尾字符都是0
D、其可识别的非空0、1序列中结尾字符是1
答案:D
答题解析:
本题考查程序语言基础知识。若存在一条从初态到某一终止状态的路径,且这条路径上所有弧的标记符连接成的字符串等于ω,则称ω可由NFA识别(接受或读出)。
对于题中给出的NFA,其初态为q0,q0上的自回路表示识别零个或多个1,接下来识别出一个0时进入状态q1,q1上的自回路表示识别零个或多个0,接下来识别出1个1之后再回到q0。
例如,该自动机可识别空串(因为q0既是初态,也是终态)、01、00001、101、1、11、111、1111等。
01的识别路径为q0→q1→q0
00001的识别路径为q0→q1→q1→q1→q1→q0
101的识别路径为q0→q0→q1→q0
1的识别路径为q0→q0
11的识别路径为q0→q0→q0
111的识别路径为q0→q0→q0→q0
1111的识别路径为q0→q0→q0→q0→q0
识别字符串时必须从初始状态q0出发,并回到状态q[0],因此对于仅由1构成的任意长度的串,在识别过程中不会离开q0。当识别出一个0而离开q0后就进入q1,此后的字符若全部为0,则会一直在q1,直到识别出一个1而回到q0,因此除了空串,该NFA识别的字符串必须以1结尾。
2、将高级语言源程序先转化为一种中间代码是现代编译器的常见处理方式。常用的中间代码有后缀式、( ) 、树等。
A、前缀码
B、三地址码
C、符号表
D、补码和移码
答案:B
答题解析:常用的中间代码的表达形式有语法树、后缀式、三地址代码。
3、一个类可以具有多个同名而参数类型列表不同的方法,被称为方法 ( ) 。
A、重载
B、调用
C、重置
D、标记
答案:A
答题解析:本题考查面向对象这一知识点。在面向对象语言中,两个或两个以上的函数,取同一名字,而使用不同类型的参数或不同参数个数,编译器便知道在什么情况下该调用哪个函数,这叫做函数重载。函数重载只能实现编译时的多态。运行时的多态要使用虚函数来实现。重置的基本思想是通过动态绑定机制的支持,使得子类在继承父类界面定义的前提下,用适合于自己要求的实现去置换父类中的相应实现。
查看完整试题>>>