软考程序员重点汇总
程序员(英文Programmer)是从事程序开发、维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。软件从业人员分为初级程序员、高级程序员、系统分析员,系统架构师,测试工程师五大类。
一.变量
变量是程序执行时,其值允许改变的数据对象,用来存储输入数据、计算的中间结果和程序的最终结果等。
变量定义
变量用标识符命名,通过变量定义引入的变量名习惯用英文字母开头,C系统可能也会预定义一些标记系统特性的变量,系统定义的变量习惯用下线字符开头。变量的数据特性由变量定义时指定的类型确定。若定义指定数据类型的变量(即不在指定数据类型基础上定义新数据类型的变量,如指定类型的指针、数组等),这种变量定义的句法为:
数据类型符变量名1,变量名2,……;
编绎系统根据变量的数据类型确定存放它的值所需要的内存字节数,变量值的内部表示形多也由其类型确定。
二.字符串常量
字符串常量用来表示一个字符序列,它的书写方法用双引号括住字符序列。例如:“ABC”、“”等。字符串常量“”是一个空字符串,即不含任何有效字符的字符串。字符串数据顺序存储字符串字符的ASCll代码,并在最后字符后面存储一个H进制代码全为0的特殊字符,用来标记字符串的结束。所以字符串常量“1234”在内存占5个字节,而空字符串只占一个字节。字符串中的字符也可以是转义字符。
符号常量
为了提高程序的可读性,常量可以用以下形式命名:
#define标识符常量
其中的标识符也称作符号常量,这里的常量是前面所述的某种常量、或是程序中前面定义的符号常量。例如:
#defineMAXN100
三.字符常量
字符型数据用于表示一个字符值,但字符型数据的内部表示是字符的ASCll代码(8位二进位的二进制形式)。字符型数据的类型符用char来标记。字符型常量的书写方法:
(1)普通字符——用单引号括起一个字符。如‘a’、‘b’、‘B’、‘$’。
(2)特殊字符——用‘\字符或字符列采标记。这种标记方法有三种:
‘\特定字符’,标记特定控制符,如换行符用‘
’来标记。
‘\1至3个人进制数字’,以人进数表示字符的ASCll代码。
‘\X1至2个十六进制数字符’,以十六进制数表示字符的ASCll代码。
由于字符以代码存放,所以也可把字符值当作一个小整数。反之,一个小整数也可把它理解为是某个字符的代码,把它当作一个字符。
四.实型常量
C语言实型常量的一般书写格式是:
正负号整数部分。小数部分指数部分
其中,正负号可有可无,无正负号即为正实数;整数部分和小数部分都是十进数字符序列;指数部分是e(或E)后接上正负号(正号可有可无)和十进数字符序列。
按上述格式书写实型常量,另有两条限制:
(l)整数部分和小数部分可以任选,但不可同时都没有。
(2)小数点和指数部分不可以同时都没有。
ANSIC引入两个后缀字符,用f标识float型实型常量,用1(或L)标识fongdouble型实型常量,而无后缀符的实型常量被认为是double型的实型常量。
要注意实型常量的有效位数,不要以为写上的数字都能被计算机所接受。在大多数C系统中,一个float型实型数据在内存中占用4个字节(32个二进位),约7个十进位有效数字,能表示绝对值最接近0的实数约为10的-38次方,最大的实数约为10的38次方。例如,对于代码floatx=123456.123f,在大多数系统中,实型常量123456.123f的最后两位数字是无效的。
double型实型数据占用8个字节(64个二进位),约15个十进位有效数字,能表示绝对值最接近0的实数约为10的一308次方,最大的实数约为10的308次方。
五.整型常量
C语言整型常量的书写形式有三种:
(1)十进制整数。通常整数的写法,如0,123,-45,+25.
(2)八进制整数。以数字符0开头并由数字符0-7组成的数字符序列,为八进制整数。如0123表示八进制整数,其值等于十进制整数l*8*8+2*8+3=83.
(3)十六进制整数。十六进制整数以OX(或OX)开头的整数。表示十六进制数的数字将有16个,它们分别是0-9和A、B、C、D、E、F,其中六个英文字母也可以小写。例如,0x123表示十六进制整数,其值等于十进制整数1*16*16+2*16+3=291;oxabc,其值等于10*16*16+11+16+12=2748.
整型常量也可在整数之后接上字母L(或l),特别指明它是long型的。
整型常量也可在整数之后接上字母U(或u),特别指明是不带符号的,即是unsigned型的。为指明不带符号的long型整型常量,则需在整数之后同时加上字母U和L,表明该整型常量是unsignedlong型的。
整型数据以二进制形式存放,要求短整型数据的字节数不能大于整型数据的字节数;整型数据的字节数不能大于长整型数据的字节数。对于带符号的整数,用二进制代码的最左二进位作为数的符号,1表示负数,0表示正数。
六.内部变量和外部变量
变量按其定义出现在程序中的位置不同分成两类:在函数内定义的变量称为内部变量,而在函数之外(函数之间)定义的变量称为外部变量。
七.程序设计和程序设计语言
1.程序
从最一般的意义来说,程序是对解决某个计算问题的方法(算法)步骤的一种描述;而从计算机来说,计算机程序是用某种计算机能理解并执行的计算机语言作为描述语言,对解决问题的方法步骤的描述。计算机执行按程序所描述的方法步骤,能完成指定的功能。所以,程序就是供计算机执行后能完成特定功能的指令序列。
一个计算机程序主要描述两部分内容:描述问题的每个对象和对象之间的关系,以及描述对这些对象作处理的处理规则。其中关于对象及对象之间的关系是数据结构的内容,而处理规则是求解的算法。针对问题所涉及的对象和要完成的处理,设计合理的数据结构常可有效地简化算法,数据结构和算法是程序最主要的两个方面。
2.程序设计的任条和主要步骤
程序设计的任务就是分析解决问题的方法步骤(算法),并将解决问题算法的方法步骤用计算机语言记录下来。程序设计的主要步骤包括:认识问题、设计解决问题的算法、按算法编写程序、调试和测试程序。在程序开发过程中,上述步骤可能有反复,如发现程序有错,严重情况可能会要求重新认识问题和重新设计算法等。
3.机器语言和汇编语言
计算机能直接识别和执行的二进制代码称为计算机的机器语言。用有助于记忆的符号来代表二进制代码,称为汇编语言。汇编语言与机器语言几乎有一对一的关系。用汇编语言编写的程序称为“汇编源程序”,汇编源程序不能在计算机上直接执行,需要用汇编程序将汇编源程序翻译成机器语言程序,然后执行由汇编程序翻译出来的机器语言程序。机器语言和汇编语言是与具体计算机紧密相关的,称它们是面向机器的语言。
4.高级语言
与机器语言和汇编语言相比较,高级语言与具体计算机无关,是一种能方便描述算法过程的计算机程序设计语言。高级语言种类千差万别,但一般包含有以下四种成分:数据成分用来描述程序所涉及的数据;运算成分用来描述运算;控制成分用来表达程序的控制构造;传输成分用来表达数据的传输。由于高级语言程序主要是描述计算机的解题过程,即描述复杂的加工处理过程,所以也称这种高级语言为面向过程语言。
用高级语言编写的程序称为“源程序”。计算机不能直接技源程序的语句运行,通常有解释方式和编译方式两种方法在计算机上执行源程序。
解释方式,即让计算机运行解释程序,解释程序逐句取出源程序中的语句,对它作解释执行,输入数据,产生结果。
编译方式,即先运行编译程序,从源程序一次翻译产生计算机可直接执行的二进制程序(称为目标程序);然后让计算机执行目标程序,输入数据,产生结果。
解释方式的主要优点是计算机与人的交互性好,调试程序时,能一边执行一边直接改错,能较快得到一个正确的程序。缺点是逐句解释执行,运行速度慢。
编译方式的主要优点是计算机运行目标程序快,缺点是修改源程序后必须重新编译以产生新的目标程序。
现在也有将上述两种方式结合起来的,即先编译源程序,产生计算机还是不能直接执行的中间代码,然后让解释程序解释执行中间代码。这样做的好处首先是比直接解释执行快;更大的好处是中间代码独立于计算机,只要有相应的解释程序,就可在任何计算机上运行。
5.面向问题语言
面向问题语言是为了易于描述和求解某类特定领域的问题而专门设计的一种非过程语言。用面向问题语言解题时,不仅摆脱计算机的内部逻辑,也不必关心问题的求解算法和求解的过程,只需指出问题是做什么,数据的输入和输出形式,就能由相应的计算机系统得到所需结果。如报表语言、SOL(StructuredQueryLanguage)语言等。SQL语言是数据库查询和操纵语言,能直接使用数据库管理系统。由于使用面向问题语言来解题只要告诉计算机做什么,不必告诉计算机如何做,能方便用户的使用和提高程序的开发速度。但实现面向问题语言的系统从最一般的意义下实现问题如何求解,通常实现的效率较低。另外,面向问题语言要求问题已有通用的求解方法,目前其应用范围还比较狭窄。
八.C语言基础
1.C语言的发展史
目的是为编写系统程序研制一种高级程序语言。1963年,参照ALGOL60语言,增添了能描述计算机硬件特性的能力,称为CPL语言。1967年,作进一步的简化,改称BCPL语言。1970年,再进一步简化,并突出了硬件处理能力,称为B语言,并用于编写UNIX操作系统。1972年,进一步扩充数据类型和恢复通用性,称为C语言,并用C语言重写了UNIX操作系统。以后C语言开始流行,为统一版本,ANSI于1987年制定了C语言的标准,称为ANSIC.
2.C语言的特点
C语言主要有以下特点:
(1)与其它高级语言比较,更接近硬件,与机器语言比较,又更接近算法。C程序易编写、易读、易查错和易修改。
(2)数据类型与运算符丰富,描述算法更简单方便。
(3)C程序的结构简单,语言包含的语句类别少。
(4)是一种结构化语言,提供完善的结构化程序控制结构,适宜采用结构化程序设计方法开发程序。
(5)也是一种模块化程序设计语言,适宜大型程序的研制和开发。
(6)通常C系统都提供大量的库函数供程序开发人员选用,能简化程序开发。
3.C程序的基本结构
通常一个C程序包括一个或多个函数,其中必有一个main函数,称为主函数。C函数的定义主要分两部分:函数说明部分和函数体。其中函数体由C语言的语句序列组成,实现函数的功能。C程序总是从主函数开始执行。
4.C语言的基本语句
C语言的语句主要分以下几种:
(l)数据定义语句——用来定义程序中使用的各种数据,及能存放数据的对象的名称和特性。
(2)表达式语句——任何在有意义的表达式之后接上分号(;)构成的语句。最常见的有赋值表达式和函数调用表达式后加分号构成的表达式语句,分别称为赋值语句和函数调用语句。
(3)流程控制语句——用来控制程序执行过程的语句。它们有选择控制语句、循环控制语句、break语句。continue语句、return语句和goto语句等。
(4)复合语句——用花括号括住一个语句序列,即构成复合语句。复合语句用来表示其中的语句序列是一个整体,在逻辑上是单个语句,并且强调其中的语句按顺序逐一执行。
(5)空语句——只有单个分号(;)构成的语句。空语句表示没有任何操作,用于选择控制或循环控制没有特别被控制的成分语句,或在复合语句的末尾放置语句标号等。
(6)其它语句——如类型定义语句等。
5.注释
为了便于阅读和理解程序,可以在程序的任何地方插入注释,以说明程序、函数、程序段。语句的功能或采用的算法。C语言的注释是用/*“和”*/“括住的任意字符列。程序编译时,注释不参与编译,也不会出现在目标程序中。
6.C语言的字符集
C语言的基本字符集有:
(l)数字10个(0~9)。
(2)英文字母大、小写各26个(A~Z,a~z)。
(3)键盘符号33个,用于构成特殊符号,其