软件设计师笔记-----程序设计语言与语言处理程序基础

Posted ziop-三月

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件设计师笔记-----程序设计语言与语言处理程序基础相关的知识,希望对你有一定的参考价值。

文章目录

七、程序设计语言与语言处理程序基础

7.1、编译与解释(低频)

7.2、文法(低频)

正则闭包和闭包很少涉及,现在基本不用看

文法的类型需要记忆

例题

7.3、有限自动机与正规式(几乎每次都会考到)

有限自动机

S 是开始, f 是结束(双圈代表的是结束),从S开始输入一个我可以到B,输入一个1可以到A ,B输入一个1可以到

例题

检测一下路能不能走通就行了

正规式

正规式是对有限自动机的另一种表达形式

预备知识

  • a | b 是指的可以解析出a也可以解析出b

  • (a|b)* 表示可以解析出0个或者多个a 或者 b

例题

1解析A选项

1解析B选项

1同理D推到不出来

第二题通过代入法进行解题

7.4、表达式(偶尔考到)

主要是通过树的遍历来获取表达式

前序遍历的结果就是前缀表达式

中序遍历的结果就是中缀表达式

后序遍历的结果就是后缀表达式

例题

需要注意的是括号不要构造到树里面

7.5、传值和传址(出现频率高)

例题

左边传值———— 右边传址

7.6、多种程序语言特点(低频)

《C程序设计语言》笔记 类型运算符与表达式

变量和常量是程序处理的两种基本数据对象

声明语句说明变量的名字及类型,也可以指定就是的初值

运算符指定将要进行的操作,表达式则把变量与常量组合起来生成新的值

所有整形都包括signed和unsigned两种形式

 

2.1变量名

变量名是由字母和数字组成,但其第一个字符必须为字母。

下划线"_"也被看作是字母,通常用于命名较长的变量名

由于库例程的名字通常以下划线开头,因此变量名不要以下划线开头

变量名使用小写字母,常量名全部使用大写字母

 

2.2 数据类型及长度

//C语言只提供下列几种基本数据类型

char 字符型,占用一个字节,可以存放本地字符集中的一个字符

int 整形,通常反映了机器中整数的最自然长度

float 单精度浮点数
double 双精度浮点数

此外,还可以在这些基本数据类型的前面加上一些限定符
short与long两个限定符用于限定整形:
short int sh;
long int counter;
关键字int可以省略。

short与long的引入可以为我们提供满足实际需要的不同长度的整形数
signed与unsigned可用于限定char类型或任何整形

 

2.3常量

类似于1234的整数常量属于int类型
long类型的常量以字母l或L结束,如123456L
如果一个整数太大以至于无法用int表示时,也将被当作long处理

无符号常量以字母u或U结尾。

后缀ul或UL表明是unsigned long类型

一个字符常量是一个整数,书写时将一个字符括在单引号中

\a 响铃符
\b 回退符
\f 换页符
\n 换行符
\r 回车符
\t 横向制表符
\v 纵向制表符

字符常量\0表示值为0的字符,也就是空字符(null)

我们通常以\0的形式代替0

常量表达式是仅仅只包含常量的表达式。这种表达式在编译时求值,而不在运行时求值

字符串常量也叫字符串字面值,是用双引号括起来的0个或多个字符组成的字符序列

从技术的角度看,字符串常量就是字符数组

字符串的内部表示使用一人空字符\0作为串的结尾

 

 2.4声明

所有变量都必须先声明后使用,尽管某些变量可以通过上下文隐式的声明

声明变量的同时可以进行初始化

如果变量不是自动变量,则只能进行一次初始化操作,从概念上讲,应该是在程序开始执行之前进行,并且初始化的表达式必须为常量表达式

每次进入函数或程序块时,显式初始化的自动变量都将被初始化一次。

任何变量的声明都可以使用const限定符限定

const限定变量的值不能被修改,对数组而言,const限定数组所有元素的值都不能被修改

 

2.5算术运算符

二元算术符包括: + - * / % .

取模运算符不能应用于float或double类型。

 

2.6关系运算符与逻辑运算符

关系运算符包括:

>  >=  <  <= 它们具有相同的优先级

==  != 优先级更低点

逻辑运算符&&与||有一些较为特殊的属性。

由&&与||连接的表达式按从左到右的顺序进行求值 ,并且,在知道结果为真或假后立即停止运算

 

2.7类型转换

自动转换是指把"比较窄的"操作数转换为"比较宽的"操作数。并且不丢失信息的转换。

将字符类型转换为整形时,需要注意一点

C语言没有指定char类型的变量是无符号还是带符号变量

当把一个char类型的值转换为int类型时,其结果有没有可能 为负数?对不同的机器,结果不同

 

2.8自增与自减

C语言提供了两个用于变量递增与递减的运算符。
自增
++使操作数递增1
自减
--使操作数递减1
它们既可以用作前缀运算符,也可以用途后缀运算符

 

2.9按位运算符

C语言提供了6个位操作运算符。这些运算符只能用于整形操作数。

& 按位与

| 按位或

^ 按位异或

<< 左移

>> 右移

~ 按位求反

按位与运算符&经常用于屏蔽某些二进制位

按位或运算符|常用于将某些二进制位置为1

按位异或运算符^当两个操作数的对应位不相同时将该位设置为1,否则设置为0

移位运算符<<与>>分别用于将运算的左操作数左移与右移

移动的位数则由右操作数指定。

x<<2 表示将x左移2位,右边空出的2位用0填补

在对unsigned类型的无符号值进行右移时,左边空出的部分将用0填补

当对signed类型的带符号值进行右移时,某些机器将对左边空出的部分用符号位填补,而另一些机器则用0填补

一元运算符~用于求整数的二进制反码,即分别将操作数各二进制0变1,1变0

 

以上是关于软件设计师笔记-----程序设计语言与语言处理程序基础的主要内容,如果未能解决你的问题,请参考以下文章

软考《希赛教育·软件设计师考前冲刺与考点分析》计算机硬件基础知识——学习笔记

《C程序设计语言》笔记 函数与程序结构

编译原理学习笔记:(第一章:引论——1.1节)

《C程序设计语言》笔记 类型运算符与表达式

软件的内涵操作系统软工定义程序设计语言的演化

《C程序设计语言》笔记 参考手册3