自考《高级语言程序设计》知识点总结文档格式.docx
- 文档编号:19130700
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:88
- 大小:79.74KB
自考《高级语言程序设计》知识点总结文档格式.docx
《自考《高级语言程序设计》知识点总结文档格式.docx》由会员分享,可在线阅读,更多相关《自考《高级语言程序设计》知识点总结文档格式.docx(88页珍藏版)》请在冰豆网上搜索。
编译方式的主要优点是计算机运行目标程序快,缺点是修改源程序后必须重新编译以产生新的目标程序。
现在也有将上述两种方式结合起来的,即先编译源程序,产生计算机还是不能直接执行的中间代码,然后让解释程序解释执行中间代码。
这样做的好处首先是比直接解释执行快;
更大的好处是中间代码独立于计算机,只要有相应的解释程序,就可在任何计算机上运行。
.面向问题语言
面向问题语言是为了易于描述和求解某类特定领域的问题而专门设计的一种非过程语言。
用面向问题语言解题时,不仅摆脱计算机的内部逻辑,也不必关心问题的求解算法和求解的过程,只需指出问题是做什么,数据的输入和输出形式,就能由相应的计算机系统得到所需结果。
如报表语言、()语言等。
语言是数据库查询和操纵语言,能直接使用数据库管理系统。
由于使用面向问题语言来解题只要告诉计算机做什么,不必告诉计算机如何做,能方便用户的使用和提高程序的开发速度。
但实现面向问题语言的系统从最一般的意义下实现问题如何求解,通常实现的效率较低。
另外,面向问题语言要求问题已有通用的求解方法,目前其应用范围还比较狭窄。
语言基础
语言的发展史
目的是为编写系统程序研制一种高级程序语言。
年,参照语言,增添了能描述计算机硬件特性的能力,称为语言。
年,作进一步的简化,改称语言。
年,再进一步简化,并突出了硬件处理能力,称为语言,并用于编写操作系统。
年,进一步扩充数据类型和恢复通用性,称为语言,并用语言重写了操作系统。
以后语言开始流行,为统一版本,于年制定了语言的标准,称为.
语言的特点
语言主要有以下特点:
()与其它高级语言比较,更接近硬件,与机器语言比较,又更接近算法。
程序易编写、易读、易查错和易修改。
()数据类型与运算符丰富,描述算法更简单方便。
()程序的结构简单,语言包含的语句类别少。
()是一种结构化语言,提供完善的结构化程序控制结构,适宜采用结构化程序设计方法开发程序。
()也是一种模块化程序设计语言,适宜大型程序的研制和开发。
()通常系统都提供大量的库函数供程序开发人员选用,能简化程序开发。
程序的基本结构
通常一个程序包括一个或多个函数,其中必有一个函数,称为主函数。
函数的定义主要分两部分:
函数说明部分和函数体。
其中函数体由语言的语句序列组成,实现函数的功能。
程序总是从主函数开始执行。
语言的基本语句
语言的语句主要分以下几种:
()数据定义语句——用来定义程序中使用的各种数据,及能存放数据的对象的名称和特性。
()表达式语句——任何在有意义的表达式之后接上分号(;
)构成的语句。
最常见的有赋值表达式和函数调用表达式后加分号构成的表达式语句,分别称为赋值语句和函数调用语句。
()流程控制语句——用来控制程序执行过程的语句。
它们有选择控制语句、循环控制语句、语句。
语句、语句和语句等。
()复合语句——用花括号括住一个语句序列,即构成复合语句。
复合语句用来表示其中的语句序列是一个整体,在逻辑上是单个语句,并且强调其中的语句按顺序逐一执行。
()空语句——只有单个分号(;
空语句表示没有任何操作,用于选择控制或循环控制没有特别被控制的成分语句,或在复合语句的末尾放置语句标号等。
()其它语句——如类型定义语句等。
.注释
为了便于阅读和理解程序,可以在程序的任何地方插入注释,以说明程序、函数、程序段。
语句的功能或采用的算法。
语言的注释是用*“和”*“括住的任意字符列。
程序编译时,注释不参与编译,也不会出现在目标程序中。
语言的字符集
语言的基本字符集有:
()数字个()。
()英文字母大、小写各个(,)。
()键盘符号个,用于构成特殊符号,其中下线字符“起一个英文字母的作用,以构成标识符等语法成分。
()转义字符,转义字符是由字符(\)开始后跟单个字符或若干字符组成,通常用于表示控制代码或特殊符号。
程序的基本词汇
语言的基本词汇有:
()字面形式常量。
如、、‘’、“”。
()特殊符号。
主要是运算符。
()保留字。
在程序或语句中是用来表示特定语法含义的英文单词。
()标识符。
用于命名程序对象,如变量、常量、函数、标号等。
在语言中,一个合理的标识符由英文字母或下线符开头,后跟或不跟由字母、下线符、数字符组成的字符列。
~般以下线符开头的标识符作为系统内部使用。
利用基本词汇,按照给定的语言的句法规则就可命名程序对象,描述表达式计算、构造语句、函数,直至整个程序。
语言的数据类型
数据类型包含两方面的内容:
数据的表示和对数据加工的操作。
数据的全部可能表示构成数据类型的值的集合。
数据全部合理的操作构成数据类型的操作集合。
在语言中,把整型、实型和字符型称为基本数据类型,又称整型和实型为数值型。
为了描述更复杂的数据结构,语言还有构造类型、指针类型、放举类型和空类型。
构造类型是指由若干个相关的数据组合在一起形成的一种复杂数据类型。
.整型
整型数据按其存储在内存中的二进位信息的最高位是当作数值信息位还是当作数据的符号位,将整型数据分成带符号整型和无符号整型两种。
每种整型又按所需的字节个数的多少分成三种。
所以整型共有种:
带符号整型()、带符号短整型()、带符号长整型(,或)、无符号整型()、无符号短整型()以无符号长整型()。
.实型
实型数据有表示范围和精度两个不同的特征,为了适应数的范围和精度的不同要求,实型数据分三种类型:
单精度型(也称浮点型)、双精度型()、长双精度型()
.构造类型
构造类型是指由若干个相关的数据组合在一起形成的一种复杂数据类型,构造数据类型的成分数据可以是基本数据类型的,也可以是别的构造类型的。
按构造方式和构造要求区分,构造类型主要有数组类型、结构类型和共用类型。
数组类型是由相同类型的数据组成;
结构类型可以由不同类型的数据组成;
当不同数据类型不会同时使用时,以节约内存,让不同数据占用同一区域,这就是共用类型。
.指针类型
指针类型是取程序对象(如变量)在内存中占居的地址为值的一种特殊的数据类型。
.枚举类型
当变量只取很少几种可能的值,并分别用标识符对值命名时,这种变量的数据类型可用枚举类型来表示。
如变量表示一个星期中的某一天,就可用校举类型描述该变量的类型,并以星期见的英文名对日期命名,对应的变量取某日的星期名称为其值。
类型
用保留字表示的数据类型有两种完全相反的意思,或表示没有数据(没有结果、没有形式参数),或表示某种任意类型的数据(如又与指针结合,用.标记)。
表示空类型,.表示任意数据的指针类型,程序如要使用.类型的数据,应该将它强制地转换成某种具体的指针类型。
常量
常量是指程序运行过程中其值不可改变的数据。
常量按其值的表现形式可分为如下类型:
整型常量、实型常量、字符型常量、字符串常量和指针常量。
.整型常量
语言整型常量的书写形式有三种:
()十进制整数。
通常整数的写法,如,,-,+.
()八进制整数。
以数字符开头并由数字符-组成的数字符序列,为八进制整数。
如表示八进制整数,其值等于十进制整数***=.
()十六进制整数。
十六进制整数以(或)开头的整数。
表示十六进制数的数字将有个,它们分别是-和、、、、、,其中六个英文字母也可以小写。
例如,表示十六进制整数,其值等于十进制整数***=;
,其值等于**=.
整型常量也可在整数之后接上字母(或),特别指明它是型的。
整型常量也可在整数之后接上字母(或),特别指明是不带符号的,即是型的。
为指明不带符号的型整型常量,则需在整数之后同时加上字母和,表明该整型常量是型的。
整型数据以二进制形式存放,要求短整型数据的字节数不能大于整型数据的字节数;
整型数据的字节数不能大于长整型数据的字节数。
对于带符号的整数,用二进制代码的最左二进位作为数的符号,表示负数,表示正数。
.实型常量
语言实型常量的一般书写格式是:
正负号整数部分。
小数部分指数部分
其中,正负号可有可无,无正负号即为正实数;
整数部分和小数部分都是十进数字符序列;
指数部分是(或)后接上正负号(正号可有可无)和十进数字符序列。
按上述格式书写实型常量,另有两条限制:
()整数部分和小数部分可以任选,但不可同时都没有。
()小数点和指数部分不可以同时都没有。
引入两个后缀字符,用标识型实型常量,用(或)标识型实型常量,而无后缀符的实型常量被认为是型的实型常量。
要注意实型常量的有效位数,不要以为写上的数字都能被计算机所接受。
在大多数系统中,一个型实型数据在内存中占用个字节(个二进位),约个十进位有效数字,能表示绝对值最接近的实数约为的次方,最大的实数约为的次方。
例如,对于代码=,在大多数系统中,实型常量的最后两位数字是无效的。
型实型数据占用个字节(个二进位),约个十进位有效数字,能表示绝对值最接近的实数约为的一次方,最大的实数约为的次方。
.字符常量
字符型数据用于表示一个字符值,但字符型数据的内部表示是字符的代码(位二进位的二进制形式)。
字符型数据的类型符用来标记。
字符型常量的书写方法:
()普通字符——用单引号括起一个字符。
如‘’、‘’、‘’、‘$’。
()特殊字符——用‘\字符或字符列采标记。
这种标记方法有三种:
‘\特定字符’,标记特定控制符,如换行符用‘\’来标记。
·
‘\至个人进制数字’,以人进数表示字符的代码。
‘\至个十六进制数字符’,以十六进制数表示字符的代码。
由于字符以代码存放,所以也可把字符值当作一个小整数。
反之,一个小整数也可把它理解为是某个字符的代码,把它当作一个字符。
.字符串常量
字符串常量用来表示一个字符序列,它的书写方法用双引号括住字符序列。
例如:
“”、“”等。
字符串常量“”是一个空字符串,即不含任何有效字符的字符串。
字符串数据顺序存储字符串字符的代码,并在最后字符后面存储一个进制代码全为的特殊字符,用来标记字符串的结束。
所以字符串常量“”在内存占个字节,而空字符串只占一个字节。
字符串中的字符也可以是转义字符。
.符号常量
为了提高程序的可读性,常量可以用以下形式命名:
标识符常量
其中的标识符也称作符号常量,这里的常量是前面所述的某种常量、或是程序中前面定义的符号常量。
变量
变量是程序执行时,其值允许改变的数据对象,用来存储输入数据、计算的中间结果和程序的最终结果等。
.变量定义
变量用标识符命名,通过变量定义引入的变量名习惯用英文字母开头,系统可能也会预定义一些标记系统特性的变量,系统定义的变量习惯用下线字符开头。
变量的数据特性由变量定义时指定的类型确定。
若定义指定数据类型的变量(即不在指定数据类型基础上定义新数据类型的变量,如指定类型的指针、数组等),这种变量定义的句法为:
数据类型符变量名,变量名,……;
编绎系统根据变量的数据类型确定存放它的值所需要的内存字节数,变量值的内部表示形多也由其类型确定。
.内部变量和外部变量
变量按其定义出现在程序中的位置不同分成两类:
在函数内定义的变量称为内部变量,而在函数之外(函数之间)定义的变量称为外部变量。
.变量的存储类型
系统按程序对计算机存储空间使用的不同要求,将内存分成不同用途的块,与计算机的寄存器一起将存储空间分成不同类别。
而程序通过指定变量的存储类表明变量的不同的使用要求,让系统将变量分配于不同的内存块或寄存器。
如在上述变量定义形式中,还要指定变量的存储类型,变量定义的形式为:
存储类型符数据类型符变量名,变量名,…;
其中存储类型有四种:
(自动的)、(静态的)、寄存器的)和外部的)。
外部变量只允许被指定为静态的,或不指定其存储类型。
内部变量可以被指定为自动的或静态的、或寄存器的、或不指定存储类型,若不指定存储类型,它就是自动的。
自动变量是内部变量,在函数内或复合语句内定义,它们被分配在堆栈区。
静态变量可以是内部变量,也可以是外部变量。
静态变量表示永久性和专用性,即在程序执行过程中一直存在,局限于定义它的函数(内部静态变量)或局限于定义它的程序文件中那些函数(外部静态变量)。
静态变量被分配在与程序相联的内存数据区。
寄存器变量是函数的内部变量或参数,也是一种临时性的变量。
如因函数使用非常频繁程序希望将它分配在寄存器,程序就可将变量指定为寄存器的,但编译系统也可能把它当作动变量处理。
指定存储类型是外部的,实际是告诉编译器,这个变量是一个外部变量,在这里要使它,而它的定义或在别的程序文件或在后面的程序段等别的地方。
.变量的作用域和生存期
变量的使用要注意变量的作用域(可使用范围)和生存期(存在的时间)。
语言规定,内部变量的作用域只局限于定义它的函数或复合语句。
自动的内部变量是一种临时性变量,函数被调用时分配,函数执行结束时释放。
而静态变量在程序执行前分配,直至程序结束才释放。
由于静态的内部变量在函数结束时,依旧保持存储,函数上一次调用时留在内部静态变量中的结果能被下一次调用时继续使用。
外部变量也在程序启动前分配,直至程序执行结束释放。
普通的外部变量能提供别的源程序文件中的函数使用(要对它作外部说明);
静态的外部变量只能供定义它的源程序中的全部函数专用。
由于外部变量能供整个程序使用,所以外部量不能重名。
.变量定义初始化
变量定义是对变量的存储空间提出一种要求,存储空间分配后,变量的初值通常是不拔的。
但程序可以要求系统在为变量分配存储空间同时为变量设定初值,这就是变量定义初始化。
在变量的定义形式中,在变量名之后接上“初值表达式”,该初值表达式的值就作为该变量的初值。
语言另有约定,对于静态变量和外部变量,若定义它们时未指定初值,系统给它们设置成全部二进位都是的值。
以下是各种变量定义的例子:
()定义整型,并对其初始化。
=;
,,=;
=-,=;
=;
()定义字符型变量,并对其初始化。
=‘’;
()定义实型(浮点型、双精度型)变量,并对其初始化。
;
运算符
每个运算符都代表对运算对象的某种运算,都有自已特定的运算规则,规定运算对象的个数、运算对象数据类型,以及运算结果的数据类型。
语言还规定运算符有不同的优先级和结合性。
运算符的优先级指表达式求值时,按运算符的优先级由高到低的次序计算。
如“先乘除后加减”。
运算符的结合性是指运算符要求它的运算对象对它的结合方向。
结合性确定了在相同优先级运算符连续出现的情况下运算对象与运算符结合的顺序,通常也是计算顺序。
如算术运算符的结合性是从左至右的,则连续的加减或连续的乘除是从左向右计算。
而赋值运算符的结合性是从右至左的,则连续的赋值运算是从右向左逐个计算赋值。
在语言中,要特别注意某些运算符因运算对象数据类型不同,可能有不同的意义。
.算术运算符
算术运算符的运算对象是基本数据类型的数据,实现通常的取整、取负、四则运算、求两整数相除后的余数的运算和增减运算。
特别要留心的是整除运算、求余运算、增运算和减运算。
对两个整型数据执行除运算(/),称为整除运算,要特别注意的是两个整型数据的整除运算的结果是整型的,如表达式/的结果为,表达式/的结果为.
求余运算符()要求参与运算的两个运算对象均为整型数据,如%的值为.一般来说,求余运算所得结果的符号与被除数的符号相同。
如%的值为,%的值为.
增()和减(——)运算符都是单目运算符,以整型、字符型和指针型变量为运算对象,并改变运算对象的值。
按它们出现在变量之前和之后两种不同情况,其作用有微妙的差别。
前缀
前缀的一般形式是
变量
例如,若是整型或某种指针类型的变量,则使变量的值增大个单位,并以的新值作为表达式“”的运算结果。
如以下语句执行前,变量的值为,语句
使变量的值变成,变量的值也为.这里所说的一个“单位”是指:
如果是整型的,则就是普通的解释:
“的值比原值增加”;
是指针,它指向数组的某个元素,则使它指向数组的后一个元素。
后缀
后缀的一般形式是
表达式“变量”运算结果是该变量的原来值,在确定了表达式结果之后,用与前缀相同的方式增大该变量的值个单位。
前缀和后缀都能使变量的值增加个单位,但是它们所代表的表达式的值却不相同,前者是变量增加后的值,后者是变量还未增加的原先值。
例如,为整型变量,且的值为,以下分别用①和②表记的代码将使获得不同的值:
①=;
②=
都使变量的值变为,但①使的值为;
②使的值为.
前缀——
前缀——的一般形式是
——变量
前缀——使变量的情减少(或后退)个单位,并以变量的新值为表达式“——变量”的运算结果。
后缀——
后缀——的一般形式是
变量——
后缀——作用于变量时,以该变量的值作为表达式“变量——”的运算结果,即先取其值为结果,然后用与前缀——相同的方式减少该变量个单位。
后缀——与前缀——的区别类似于后缀与前缀的区别。
类似前面的例子,依旧假定的值为,两代码
③——
④=——
都使变量的值变为,但③使的值为;
④使的值为.
使用和——运算符时,其运算对象仅适用于变量,不能是常量等数据值表达式。
如或(+)都是不合法的。
和——是带有副作用的运算符。
建议读者不要在一个表达式中对同一变量多次使用这样的运算符,可能会发生意想不到的结果。
如的值为,对表达式
()()
可能认为它的值为()。
然而在和系统中,它的值为.而表达式
的值为.这是因为这些系统在处理时,先使用的原值计算整个表达式,然后再让连续两次自增;
处理时,在计算表达式值之前,先对执行两次自增,然后才计算表达式。
放前一个表达式的值为,后一个表达式的值为.
因与(与——类似)是两个不同运算符,对于类似表达式会有不同的理解:
()或()。
编译的处理方法是自左至右让尽可能多的字符组成一个合法的句法单位(如标识符、数字、运算符等)。
因此,被解释成(),而不是()。
增()和减(——)运算符的结合方向是自右至左的。
.关系运算符
用于关系运算的关系运算符有六个:
<
(小于)、>
(大于)、<
(小于等于)、>
(大于等于)、(等于)和!
(不等)。
关系运算是双目运算,它的运算对象可以是基本数据类型的数据,用于比较大小;
或是指向同一个数组两元素的指针,用于比较前后关系。
在高级语言中,习惯称条件满足为“真”,不满足为“假”。
特别在语言中约定:
比较后,条件满足(真)的值为;
比较后,条件不满足(假)的值为儿用关系运算符将两个子表达式连接起来,构成关系比较表达式,求得结果为(真)或(假)。
六个关系运算符中,运算符(<
、<
、>
)的优先级高于运算符(,!
)。
如表达式>
等价于表达式(>
)==(<)。
另外,为便于描述两个复杂算式的比较,关系运算符的优先级低于算术运算符的优先级。
设有,,=,则表达式>
的值为“假”,即表达式的值为;
表达式==>
的值为“真”,即表达式的值为(先计算>
,其值为,等于);
的值为“假”,即表达式的值为.
关系运算符的结合方向是自左至右。
仍设=,=,=,则表达式>
>
的值为(先计算>,其值为,再计算>,结果为)。
.逻辑运算符
用于逻辑运算的逻辑运算符有三个:
&&(逻辑与)、(逻辑或)、!
(逻辑非)
其中运算符“&&”和“”是双目运算符,要求有两个整型或字符型的运算对象,用于连接多个判定条件,构成更复杂的条件判定;
运算符“!
”是单目运算符,用于描述对给定条件的否定判定。
逻辑运算产生的结果也只能是或.表示逻辑运算结果为“真”;
用表示运算结果为“假”。
在判定一个运算对象的值为“真”或“假”时,以运算对象的值不等于零为“真”,运算对象的值等于为“假”。
逻辑运算符中,按优先级排列为:
逻辑非运算符!
的优先级高于逻辑与运算符&&,逻辑与运算符&&的优先级高于逻辑或运算符.另外,&&和的优先级低于关系运算符的优先级;
!
的优先级高于算术运算符的优先级。
逻辑运算符和&&的结合方向是自左至右,而逻辑运算符!
的结合方向是自有至左。
需要特别指出的是,“逻辑与”和“逻辑或”运算符分别有以下性质:
,仅当为时,不管为何值(实际上不再计算),结果为.
,仅当为时,不管为何值(实际上不再计算),结果为.
上述性质就是说,对于表达式&&,仅当子表达式为非零时,才计算子表达
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级语言程序设计 自考 高级 语言程序设计 知识点 总结