软件设计师真题,程序设计语言专项练习(十)

视频讲解

软件设计师 上午题 程序设计专题

有穷自动机

对高级语言源程序进行编译的过程中,有穷自动机(NFA或DFA)是进行 (49) 的适当工具。(2013年下半年)
(49) A. 词法分析 B. 语法分析 C. 语义分析 D. 出错处理

语言中具有独立含义的最小语法单位是符号(单词),如标识符、无符号常数与界限符等。词法分析的任务是把构成源程序的字符串转换成单词符号序列。
有限自动机是一种识别装置的抽象概念,它能准确地识别正规集。有限自动机分为两类:确定的有限自动机(DFA)和不确定的有限自动机(NFA)。

识别串有限自动机

下图所示有限自动机的特点是 (48) 。(2009年上半年)
在这里插入图片描述

(48)
A. 识别的0、1串是以0开头且以1结尾
B. 识别的0、1串中1的数目为偶数
C. 识别的0、1串中0后面必须是1
D. 识别的0、1串中1不能连续出现

对于题中自动机的状态图,先忽略状态q0的自环(识别若干个0),从初态q0到终态ql,该自动机可识别的字符串为1、101、10101、…,显然,该自动机识别的0、1串中1不能连续出现。

下图所示的有限自动机中,0是初始状态,3是终止状态,该自动机可以识别 (22) 。(2010年下半年)
在这里插入图片描述

(22) A. abab B. aaaa C. bbbb D. abba

有限自动机可识别一个字符串的含义是,从有限自动机的初态出发,存在一条到达终态的路径,其上的标记可构成该字符串。若从初态到终态不存在能构成指定字符串的路径,则称该字符串不能被该自动机识别。
对于“abab”,其识别路径为状态0→状态2→状态3→状态3,虽然到达终态,但是没有识别出最后的字符“b”。
对于“bbbb”,其识别路径为状态0→状态1→状态2→状态3,虽然到达终态,但是没有识别出最后的字符“b”。
对于“abba”,其识别路径为状态0→状态2→状态3,虽然到达终态,但是没有识别出“ba”。
对于“aaaa”,其识别路径为状态0→状态2→状态1→状态3→状态3,存在从初态到终态的路径标记形成“aaaa”,所以可识别。

下图所示为一个有限自动机(其中,A是初态、C是终态),该自动机可识别 (49) 。(2011年上半年)
在这里插入图片描述

(49) A. 0000 B. 1111 C. 0101 D. 1010

从有限自动机的初态到终态的路径上的标记形成其可识别的字符串。
对于题中的自动机,0000的识别路径为A→B→B→B→B,不能到达终态C,所以0000不能被该自动机识别;111l的识别路径为A→A→A→A→A,不能到达终态C,所以1111也不能被该自动机识别;1010的识别路径为A→A→B→C→B,结束状态不是终态C,所以1010不能被该自动机识别;0101的识别路径为A→B→C→B→C,存在从初态到终态的识别路径,所以0101可以被该自动机识别。

下图所示为一个有限自动机(其中,A是初态、C是终态),该自动机所识别的字符串的特点是 (48) 。(2012年上半年)
在这里插入图片描述

(48)
A. 必须以11结尾的0、1串 B. 必须以00结尾的0、1串
C. 必须以01结尾的0、1串 D. 必须以10结尾的0、1串

从有限自动机的初态到终态的路径上的标记形成其可识别的字符串。
对于题中的自动机,从A出发到达C结束的所有路径中必然包含BC这条弧(标记为1),同时到达B的弧上都标记了0,所以其识别的字符串必须以01结尾。

以下关于下图所示有限自动机的叙述中,不正确的是 (49) 。(2014年下半年)

在这里插入图片描述

(49)
A. 该自动机识别的字符串中a不能连续出现
B. 该自动机识别的字符串中b不能连续出现
C. 该自动机识别的非空字符串必须以a结尾
D. 该自动机识别的字符串可以为空串

自动机识别字符串的过程是:从初态出发,根据字符串的当前字符实现状态转移。
如果存在从初态到终态的状彻粉自动机的初态和终态都是编号为1的状态,从J5状的才
人士时才
机可以识别该字符串。题中所给自动机的初态和终态都是编号为1的状态,
s“o”z自
可知,从状态1开始,识别出字符“a”时仍然转移到状态l,而识别出字符
天l是
离开状态1进入状态2,状态2仅对字符“a”有状态转移,且转回状态1。I
动机识别的字符串仅包含a、b字符,但是字符“b”不能连续出现,连续出现“a”是可以的。

某非确定的有限自动机(NFA)的状态转换图如下图所示(既是初态也是终态),与该NFA等价的确定的有限自动机(DFA)是 (49) 。(2015年上半年)

在这里插入图片描述

对高级语言源程序进行编译(或解释)方式的翻译过程中,词法分析采用有限自动机作为计算模型。有限自动机分为确定的有限自动机(DFA)和不确定的有限自动机(NFA)。可将一个从NFA转换为等价的最小化DFA。
题中的NFA的功能是识别空串以及b不能连续出现(即每个b后至少含有1个a)的a、b字符串,若是非空串,则以a结尾。
选项A识别的是空串以及每个b后至少含有1个a的a、b字符串,若是非空串,则以a 结尾。
选项B识别空串以及b不能连续出现且以b结尾的a、b字符串。选项C识别b不能连续出现且以b结尾的a、b字符串,不能识别空串选项D识别b不能连续出现且以a结尾的a、b字符串,不能识别空串

某非确定的有限自动机(NFA)的状态转换图如下图所示(既是初态也是终态)。以下关于该NFA的叙述中,正确的是 (49) 。(2015年下半年)
在这里插入图片描述

(49)
A. 其可识别的0、1序列的长度为偶数
B. 其可识别的0、1序列中0与1的个数相同
C. 其可识别的非空0、1序列中开头和结尾字符都是0
D. 其可识别的非空0、1序列中结尾字符是1

在这里插入图片描述

某确定的有限自动机(DFA)的状态转换图如下图所示(A是初态,C是终态),则该DFA能识别 (49) 。(2016年上半年)
在这里插入图片描述

(49) A. aabb B. abab C. baba D. abba

在这里插入图片描述

某确定的有限自动机(DFA)的状态转换图如下图所示(A是初态,D、E是终态),则该DFA能识别 (48) 。(2017年上半年)
在这里插入图片描述

(48) A. 00110 B. 10101 C. 11100 D. 11001

在自动机中,从初态到达终态的一条路径上所标记的字符形成的串正好与要识别的串相同,则称该自动机能识别此字符串。
对于00110,从状态A出发,其识别路径为A→B→D→C→E→B,字符串结束时,自动机所在状态为B,而不是终态D或E,所以该DFA不能识别00110。
对于10101,从状态A出发,其识别路径为A→C→B→C→B→C,字符串结束时,自动机所在状态为C,而不是终态D或E,所以该DFA不能识别10101。
对于11100,从状态A出发,其识别路径为A→C→E→E→B→D,字符串结束时,自动机所在状态为终态D,所以该DFA可以识别11100。
对于11001,从状态A出发,其识别路径为A→C→E→B→D→C,字符串结束时,自动机所在状态为C,而不是终态D或E,所以该DFA不能识别11001。

某确定的有限自动机(DFA)的状态转换图如下图所示(0是初态,4是终态),则该DFA能识别 (49) 。(2017年下半年)
在这里插入图片描述

(49) A. aaab B. abab C. bbba D. abba

有限自动机(确定或非确定的)识别字符串的过程都是从初态出发,找出到达终态的一条路径,使得路径上的字符序列与所识别的字符串相同。
在题中所给的有限自动机上,可以在路径0->1->3->3->4上形成字符序列aaab,所以aaab可被该自动机识别。
对于abab,从状态О出发,首先识别出第一个字符a到达状态1,接下来不存在识别第二个字符b的状态转移,所以不能识别abab。
对于bbba,从状态О出发识别出第一个字符b到达状态2,再识别出第二个字符b到达状态3,随后识别出第三个字符仍然转移到状态3,之后不存在能识别第四个字符a的状态转移,所以该自动机不能识别bbba。
对于abba,从状态О出发,首先识别出第一个字符a到达状态1,接下来不存在识别第二个字符b的状态转移,所以不能识别abba。

下图所示为一个不确定有限自动机(NFA)的状态转换图。该NFA可识别字符串 (49) 。(2018年下半年)
在这里插入图片描述

(49) A. 0110 B. 0101 C. 1100 D. 1010

有限自动机识别字符串s 的过程存在是从开始状态到接受状态的路径。
对于0110,其识别路径为0->1->2->3->2->3->4->5,其中状态О到状态1的转移可识别出字符0,状态Ⅰ转移到状态⒉识别空字符(即无需识别任何字符),接下来从状态2到状态3转移可识别出字符1,从状态3到状态2的转移无须识别任何字符,再从状态2到状态3转移又识别出字符1,从状态3到状态4的转移无须识别任何字符,最后从状态4到状态5(接受状态)的转移识别出字符0,该过程中所识别的字符连接起来就是字符串0110。
对于0101、1100、1010,则构造不出从状态О到状态5的识别路径。

下图所示为一个不确定有限自动机(NFA)的状态转换图,与该NFA等价的DFA是 (49) 。(2019年上半年)
在这里插入图片描述

在这里插入图片描述

某有限自动机的状态转换图如下图所示,该自动机可识别 (50) 。(2020年下半年)
在这里插入图片描述

(50) A. 1001 B. 1100 C. 1010 D. 0101

下图所示为一个非确定的有限自动机(NFA),S0为初态,S3为终态。该NFA识别的字符串为 (22) 。(2021年下半年)
在这里插入图片描述

(22)
A. 不能包含连续的字符“0” B. 不能包含连续的字符“1”
C. 必须以“101”开头 D. 必须以“101”结尾

确定与不确定的有限自动机

下图所示为两个有限自动机M1和M2(A是初态、C是终态), (48) 。(2010年下半年)
在这里插入图片描述

(48)
A. M1和M2都是确定的有限自动机
B. M1和M2都是不确定的有限自动机
C. M1是确定的有限自动机,M2是不确定的有限自动机
D. M1是不确定的有限自动机,M2是确定的有限自动机

在这里插入图片描述

下图所示有限自动机(DFA)是 (49) 。(2021年上半年)

在这里插入图片描述

(49)
A. 确定的有限自动机,它能识别以bab结尾的
B. 确定的有限自动机,他不能识别以bab结尾的
C. 非确定的有限自动机,他能识别以bab结尾的
D. 非确定的有限自动机,他不能识别以bab结尾的

正规式有限自动机

下图所示为一个有限自动机(其中,A是初态、C是终态),该自动机识别的语言可用正规式 (48) 表示。(2011年下半年)

在这里插入图片描述

分析题中所给自动机识别字符串的特点可知,该自动机识别的字符串必须以01 结尾,而之前的0和1可以以任意方式组合,因此,正规式为(O|1)*O1。

下图所示为一个不确定有限自动机(NFA)的状态装换图。该NFA识别的字符串集合可用正规式 (48) 描述。(2018年上半年)

在这里插入图片描述

在这里插入图片描述

某有限自动机的状态转换图如下图所示,与该自动机等价的正规式是 (50) 。(2019年下半年)

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_50843918/article/details/134990420