目录考点概览一.基本概念二.编译与解释三.文法重要考点1.语法推导树真题四.有限自动机理解真题五.正规式1.有限自动机的另外一种表达形式真题六.表达式真题七.传值与引用地址真题八.各种程序语言特点考点概览一.基本概念二.编译与解释三.文法重要考点1.语法推导树真题解析第一步要知道S是起点且要推到不能继续推进的地步。第二步把上述S和A拆开拆成五个小的推导如下图第三步根据上述五个小的推导奔着目标aabAa这个构造句型凑就行了。①取S——aAS 不能上来就取S——a因为a啥也推不出来直接就结束了此时a是固定下来的了因为a啥也推不出来了所以肯定不会动了然后接下来要处理的是A②取A——SbA③取S——a④取S——a此时发现凑够了aabAa这个构造句型所以此时结束了上图就是对应的推导树。解析其实这种选择题最简单采用的方法是例子排除法第一步先取S——A0再取A——1可以得到S——10第二步由于我们根据S已经可以推出10了就完全可以排除ABD三个选项。综上故本题选C解析四.有限自动机理解上面的图其实就等于下面这一串表达式二者完全等价举例δS0B的意思就是“从S出发输入0就可以到B”这个从图中一眼就看出来了。懂了这个套路做题就够用了。真题解析这种题套路就是“我们要从起点初态开始输入选项中的组合输入完了的那一刻只要能停在终点终态就成功了即可识别”。第一步先知道谁是初态和终态此题A是初态C是终态。第二步依次查看四个选项带入图中看是否能从初态到终态A选项从A开始输入0到BB输入0还是BB再输入0还是BB输入0还是B。到输入结束停在了B因此没成功即不可识别。B选项从A开始输入1到A输入1到A输入1到A输入1到A。输入结束停在了A因此没成功即不可识别C选项从A开始输入0到BB输入1到CC输入0到BB输入1到C。输入结束时停在了C且C正好是终态因此成功了可识别D选项从A开始输入1到AA输入0到BB输入1到CC输入0到B。输入结束时停在了B虽然中途经过了终点C但是最终没停在C因此没成功即不可识别综上故本题选C解析第一点由于第一个圈即第一个节点输入a的情况下可能原地徘徊也可能进入下一个圈即第二个节点这就叫不确定性因此这个有限自动机是不确定的。第二点从后往前看倒数第一个输入可以是a或b倒数第二个输入可以是a或b但倒数第三个输入必须为a不然就无法向下推进了。因此不能识别bab结尾的字符串因为bab的倒数第三个字符是b而不是我们想要的a综上故本题选D。五.正规式1.有限自动机的另外一种表达形式真题解析第一空根据【四】的讲解能轻易选出D根本推不出来即无法识别。故第一空选D。第二空此文法对应的正规式也就是所求的正规式要能表达第一个空的ABC选项而不能表达D选项。经过排查C选项符合要求。注意(a | b)*的意思是括号的内容可以出现0~无数次、且括号的内容可以选a或者b都行。说人话就是只要是a、b组成的任何组合(a | b)*这个正规式都能表达。而ab | ba*的意思就是由任意个ab对、ba对组成的字符串。此时第一空的ABC都是由ab或者ba组成的但是第一空的D选项即“babba”明显不符合因为第一对是ba没毛病但是第二对是bb这显然不符合因为我们要求只能是ab或者ba组合六.表达式注意表达式默认的方式是中缀表达式左根右。真题解析第一步由于表达式默认采用中缀表达式因此我们可以根据题目给的表达式画出树第二步根据后缀表达式的遍历顺序即“左右根”遍历一遍上述的树可得后缀表达式为ab-c5*综上故本题选D。七.传值与引用地址真题解析我们只用看第二个形参即可因为第一个形参是传值方式不会改变x的值。而第二个形参采用传引用方式即传的是地址因此会改变x的值。此时把x传给了a因此f函数中a最后是啥值x就是啥结果print(x)就是啥。经过查看f执行完a的值是29.故本题选D。解析最重要的一点基础认知我们不要被形参列表的名字所迷惑说白了就是hooint x, int y只能说明第一个形参是传引用方式第二个形参是传值方式。它爱叫啥名字叫啥名字本质只是一个占位符号说白了就是和左边foo函数中的x没有任何关系。由于foo中传递x时采用的是传值方式所以不会改变原来的值因此x不变还是5。此时可以排除掉B和D选项。由于foo中传递a时采用的是传引用方式即传的是地址所以会改变原来的值右边函数执行完即hoo(2, 5)a的值是13即右面函数执行完占位符x的值注意这个占位符x只是右边函数的局部变量和左面foo的x没半毛钱关系。综上故本题选C。八.各种程序语言特点以上就是本篇文章的全部内容喜欢的话可以留个免费的关注呦~~