1.
[解析] 至少要有一个.或E,所以在BCD中。
然后不含+,所以在CD中。
然后观察5出去的两条边(对应于.后的字符),如果是数字的话,就不能出现E了,所以选C。
具体来说
0是入口,6是出口,初始进入0状态,必需最终到达6状态
A 3857,状态过程:0->1->1->1->1
B 1.2E+5,E+5状态过程:0->1->5->2->?
C -123.67,状态过程:0->4->1->1->1->5->6->6
D 0.576E10,状态过程:0->1->5->6->6->6->?
2. 集合L=ambm|m≥0______。
A.可用正规式“a*b*”表示
B.不能用正规式表示,但可用非确定的有限自动机识别
C.可用正规式“ambm”表示
D.不能用正规式表示,但可用上下文无关文法表示
[解析] 正规式只能表示给定结构的固定次数的重复或者没有指定次数的重复。本题中指定了m的重复次数,但是m是不固定的,所以,不能用正规式表示(A、C错误)。
对于每个非确定的有限自动机,都有一个与其等价的正规式,因此B不正确。
上下文无关文法的捕述功能比正规式更强大,可以表示次数不固定的重复,所以D是正确的
3.若一个程序语言可以提供链表的定义和运算,则其运行时的()。
A.数据空间适合采用静态存储分配策略
B.数据空间必须采用堆存储分配策略
C.指令空间需要采用栈结构
D.指令代码必须放入堆区
[解析] 链表一般使用动态分配策略。数组空间往往使用静态存储分配策略。
内存中供用户使用的存储空间可以分为三部分:程序区、静态存储区和动态存储区。动态存储区又分为栈区和堆区。
程序区:用来存放程序代码的内存区。
静态存储区:用来存储程序中的全局变量和局部变量。
栈区:程序运行过程中存放临时数据,可用来保存函数调用时的现场和返回地址,也可以用来存放形式参数变量和自动局部变量等。
堆区:一个自由存储区域,程序通过动态存储分配函数来使用它,用于诸如链表等的存储。