软考-- 软件设计师(16)-- 程序设计语言基础知识
文章目录
- 软考-- 软件设计师(16)-- 程序设计语言基础知识
- 前言
- 一、章节考点
- 二、基本概念
- 三、文法
- 四、有限自动机
- 五、前缀、中缀、后缀表达式
- 六、传值和引用(传址)
- 七、各个程序语言的特点
前言
考试时间:每年5月、11月,软件设计师每年都会开考。
考试条件:三不限
考试形式: 一共两门
计算机于软件工程基本知识--120分钟--机考--选择题--75分(45及格)
软件设计--120分钟--机考--简答题(4道必做,1道二选一做)--75分(45及格)
两门都得一次性及格才算通过,一共4小时考试时间。
软件行业从事人员学习视频:https://www.bilibili.com/video/BV1Qc411G7fB?vd_source=d82c92f6c1fd8c6785c6b557a68cb7b3
推荐博客:http://t.csdnimg.cn/5VzY5
推荐bilibli博主:zst_2001
由于本人从事软件开发4年,有一定的基础,所以本系列博客笔记皆从于第一个视频记录笔记。
一、章节考点
二、基本概念
三、文法
视频讲的不好,还讲错了,这里我分析一下:
下题中,定义直接不用看,会做题就行。
解析:| 表示的是 “或”的意思
1、看问题要求推出aabAa,要求推出的第一个字母为a,由啥能得到a呢,只有S,则S作为首个字母。
2、S-->aAS,S-->a,可见S可以推出2个结果,我们只能选择第一个,因为第二个S-->a之后就结束了,题目中给出能推出其他字母的
只有S和A,所以只能选择S-->aAS,如下面图1示;
3、由于第二个字母要求推出的也是a,如果我们把步奏二推出的aAS中的S分解的话,那么推出的结构就是aA...了,这第二个字母就变
成A了,所以第二个字母A一定要分解,A-->SbA|SS|ba,可以看到SbA中的bA是我们接下来就要推导的,而第一个S可以分解为a,所以
将A分解为SbA。而且我们要推导的最后一个字母为a,由步奏二推导出的aAS的S可以转为a,如图2
4、可以看到又步奏三推出的结果已经是aSbAa了,只要把S分解为a就结束了,由图3所示。
四、有限自动机
只要会做题就行了,定义无需理解。
解析:G(S)永远都是从S推导,反正应试,做题的时候先给的S就从S推导(一般来说都是从S推导)
1、A选项解析:S-->aA-->abS-->abaA-->ababS-->ababaA--ababab;
B选项解析:S-->bB-->baS-->babB-->babaS-->bababB--bababa;
C选项解析:S-->aA-->abS-->abbB-->abbaS-->abbaaA--abbaab;
2、*:表示取值从0 ~ ∞,| 表示每次取值从中选一个;
ex:(a|b)*,*=1,假设取a,*=2假设取b,*=3假设取a,*=4假设取b....
选项A:可以表示ab的任意组合,则可以表示题1的ABCD所有选项,但是D选项题1表示不了,所以排除;
选项B:可以表示abababa....,仅可以表示题1的A选项,BC选项无法表示,所以排除;
选项C:可以表示题1的ABC选项,无法表示D选项,符合题1规则,所以 √;
选项D:无法表示题1的任何选项,所以排除;
五、前缀、中缀、后缀表达式
六、传值和引用(传址)