程序设计语言上午题n分
低级语言和高级语言
编译程序和解释程序
真题
真题1
真题2
真题3
真题4
程序设计语言的数据成分
真题
真题1
真题2
真题3
讲解地址:https://www.bilibili.com/video/BV1tL411c7gi?p=11
真题4
真题5
真题6
讲解地址:https://www.bilibili.com/video/BV1tL411c7gi?p=15
真题7
真题8
讲解地址:https://www.bilibili.com/video/BV1tL411c7gi?p=17
真题10
真题11
传值调用和传地址调用
真题
真题1
真题2
真题3
真题4
真题5
真题6
真题7
*真题8
注意a是整型全局变量,所以即使是传值调用,那个a的值还是会变
讲解地址:https://www.bilibili.com/video/BV1tL411c7gi?p=29
真题9
真题10
真题11
真题12
真题13
真题14
真题15
真题16
编译、解释程序翻译阶段
真题
真题1
真题2
真题3
真题4
讲解地址:https://www.bilibili.com/video/BV1tL411c7gi?p=42
符号表
真题
真题1
真题2
真题3
词法分析
语法分析
、
语法分析阶段可以发现程序中所有的语法错误
语义分析
有语义错误是可以编译成功的,例如a/0;这是符合语法的,也符合静态语义,编译器检验不出来这个是错的,只有运行才会报错,也就是动态语义,动态语义错误常见的有死循环
目标代码的生成
真题
真题1
真题2
讲解地址:https://www.bilibili.com/video/BV1tL411c7gi?p=53
真题3
真题4
真题5
真题6
讲解地址:https://www.bilibili.com/video/BV1tL411c7gi?p=57
真题7
真题8
真题9
真题10
真题11
真题12
真题13
真题14
有语义错误是可以编译成功的,例如a/0;这是符合语法的,也符合静态语义,编译器检验不出来这个是错的,只有运行才会报错,也就是动态语义
真题15
真题16
真题17
中间代码
真题
真题1
真题2
真题3
真题4
真题5
真题6
正规式
词法分析的工具
这格东西比较抽象,反正我当时第一次学没看的懂,会做题就行,只要知道*的取值范围是【0,无穷大】,然后就把*去取值看看符不符合题目要求
讲解地址:https://www.bilibili.com/video/BV1tL411c7gi?p=77
真题
真题1
讲解地址:https://www.bilibili.com/video/BV1tL411c7gi?p=78
真题2
也就是*表示从0开始取值,随便取
真题3
讲解地址:https://www.bilibili.com/video/BV1tL411c7gi?p=80
真题4
讲解地址:https://www.bilibili.com/video/BV1tL411c7gi?p=81
真题5
讲解地址:https://www.bilibili.com/video/BV1tL411c7gi?p=82
有限自动机
一个状态即可以是初态,也可以是终态
识别成功的依据是路跑的通并且跑完后的终点是终态(这句话是重点)
解释一下:路跑的通是指根据那个顺序能够跑的通,例如上图中给的顺序是010这是可以跑通的,如果给的顺序是011就跑不通了,因为第一个数字0是q0跑自己的路,第二个数字1是q0跑到q1,第三个数字1是指q1能够有这条1的出路,但是q1只有0这条出路,所以跑不通,同时必须满足跑完最后的终点是终态,例如上面的010是可以跑通,但是跑完后的终点是q0,在上面图中q1才是终态,所以这个顺序是错的
这上面的这个亲嘴的符号是表示空的意思,就不用识别直接跳
这上面的这个a,b是a或b的意思
确定和不确定有限自动机的区别在于给一个数字或者字母它只有一条路可以跑,那就是确定,反之是不确定,例如上面的图给个a,它很明显有两条路可以跑,所以是不确定有限自动机
讲解地址:https://www.bilibili.com/video/BV1tL411c7gi?p=83
真题
真题1
真题2
真题3
真题4
真题5
真题6
讲解地址:https://www.bilibili.com/video/BV1tL411c7gi?p=89&spm_id_from=pageDriver
真题7
这个题有点小问题,我发现aaa符合原图,但是不符合所有选项
讲解地址:https://www.bilibili.com/video/BV1tL411c7gi?p=90
真题8
真题9
真题10
真题11
真题12
讲解地址:https://www.bilibili.com/video/BV1tL411c7gi?p=95&spm_id_from=pageDriver
真题13
讲解地址:https://www.bilibili.com/video/BV1tL411c7gi?p=96
真题14
真题15
真题16
真题17
讲解地址:https://www.bilibili.com/video/BV1tL411c7gi?p=101&spm_id_from=pageDriver
真题18
真题19
这种题目难度大一些,首先要知道是什么意思,例如C选项的前面部分0是指这个0我可以有0个到n个,可以把理解为n,n取多少看你自己心情,取多少那就表示这个东西有多少个,那也就是我可以00(10),我前面取两个0,这个是没问题的,后面的就不重要了,然后上面00跑不通,所以不符合,D也不符合,B呢表示0或10我可以随便取,(0|10)的意思是两个随便取一个,取0或者10都可以,但是它有个*,说明随便我取多少,我取*为1,同时取10,那跑不通,B不符合
上下文无关文法
讲解地址:https://www.bilibili.com/video/BV1tL411c7gi?p=104
真题
真题1
讲解地址:https://www.bilibili.com/video/BV1tL411c7gi?p=105
真题2
先把上下文无关法的表达式写出来,然后再做题
真题3
真题4
真题5
真题6
讲解地址:https://www.bilibili.com/video/BV1tL411c7gi?p=111&spm_id_from=pageDriver
真题7
真题8
这里推出来后注意上面的图中有两个F,然后我懵逼了一下,就觉得这两个F是要表示为同一个字母,其实这两个F是可以表示不同的数字或者字母的
讲解地址:https://www.bilibili.com/video/BV1tL411c7gi?p=113
中缀、后缀表达式及转换
这里知道后缀式是把符号为放在最后并且最为一个新的整体替换原来的a?b,知道中缀怎么和后缀互转就行,注意优先级相同时是从右到左,后缀转中缀用到了栈
讲解地址:https://www.bilibili.com/video/BV1tL411c7gi?p=114
真题
真题1
讲解地址:https://www.bilibili.com/video/BV1tL411c7gi?p=116
真题2
逆波兰式其实就是后缀式
真题3
真题4
真题5
真题6
真题7
算术表达式对应的是中序遍历
真题8
后缀形式就是对应的后序遍历