c语言教程第一章c语言概述wanquan免费版Word文件下载.docx
- 文档编号:18121487
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:20
- 大小:91.07KB
c语言教程第一章c语言概述wanquan免费版Word文件下载.docx
《c语言教程第一章c语言概述wanquan免费版Word文件下载.docx》由会员分享,可在线阅读,更多相关《c语言教程第一章c语言概述wanquan免费版Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
在1975年UN1X第6版本公布以后,C语言开始引起人们的注意,它的优点逐步被人们所认识。
1977年出现了与具体机器无关的C语言编译文本,推动了UNIX操作系统在各种机器上的迅速地实现。
随着UNIX的日益广泛的使用,C语言也得到了迅速的推广。
1978年以后,C语言先后被移植到大、中、小和微型机上,它很快成为世界上应用最广泛的计算机语言之一。
1978年又推出UNIX第8版本,以该版本中的C编译程序为基础,B.W.Ketnigha。
和D.M.Ritchie合作(被称为K&
R)出版}}TheCProgrammingLanguage}(C程序设计语言)一书,被称为标准C1983年,ANSI(美国国家标准化协会)对G语言的各种版本进行了扩充,推出了新的标准,被称为ANSI.它比原来的标准C有了改进和扩充。
1987年,ANSI又公布了87ANSZC新版本。
目前流行的各种c语言编译系统的版本大多数都以此为基础,但各有其不同。
当前微机上使用的C语言编译系统多为MicrosoftC,TurboC,BorlandC和QuickC等,它们略有差异,按标准C书写的程序,基本上都可运行。
读者要了解不同版本的编译系统的特点和区别可参阅有关的操作说明书。
1.2.1C语言的特点
c语言是一种开发比较晚的高级语言,它吸取了早期高级语言的优点,克服了某些不足,
形成了它独有的特性。
c语言的特点概括起来有如下几点:
1.
C语言是一种结构化的程序设计语言
结构化程序设计的优点是便于分工合作,便于调试、维护和扩充。
这种程序设计方法是将一个大程序分成若千个模块,每个模块完成一个功能,由一个总控模块来控制和协调各个模块来实现总的功能;
因此,这种程序设计方法又称为模块化程序设计方法。
在C语言中,函数是构成C谙言程序的最小模块。
实际上,C语言的程序是由一个或者多个文件组成的,每个文件叉是由一个或多个函数组成的。
因此,一个程序是由一个或多个函数组成的,其中,须有且仅有一个主函数,生函数的名字规定为rnain()o这样,组成一个程序的者干个文件中,仅有一个是主文件,只有主艾件中才含有main()函数。
另外,函数是由若干条语句组成的,语句是由若干个单词组成的‘单词是由若干个字符组成的。
字符是构成程序的最小单元。
e语言程序的构成如下所示:
程序~文件~函数~语句~单词、字符。
C语言是结构化程序设计语言,它具有构成三种基本结构模式的语句,这种结构化程序设计应具有的三种基本结构模式如下:
顺序结构棋式
它将由若干条顺序执行的语句构成,这是程序设计的最基本形式。
分支结构模式
C语言中具有条件语句和开关语句,它将会构成各种需要的分支结构模式。
.循环结构模式
C语言中提供了三种循环语句(for循环,whil。
循环和do-while循环),用它们可以构成
各种循环结构模式。
在讲述C语言是一种结构化程序设计语言的同时,还必须指出它与其他结构化程序设计语言(如PASCAL语言)相比较,还有一些不完全之处,因此,C语言是一种不完全的结构化程序设计语言。
其表现如下:
第一,完全的结构化程序设计语言不允许使用goto语句,因为goto语句会破坏结构化。
但是。
got。
语句在某些时候会使得程序简练,因此,在C语言中原则上允许使用goto语句,为了减少它对结构化的影响,采取了限制使用的办法,即规定got。
语句的转向范围只能在一个函数体内。
不得使用gates语句从一个函数体内转向到另一个函数体中,这种限制性地使用goto语句会给编程带来一些方便,又不会影响棋块之间的结构化。
但是,建议在G语言的程序中尽量少使用goto语句。
第二,完全的结构化程序设计语言要求一个模块只有一个入口和一个出口,这样便于结构化的管理。
但是,C语言程序中允许函数使用多个返回语句(return语句),即允许函数有多个出口,返回到调用函数。
这样做也是为了编程中的方便。
在C语言程序中,可以使用条件语句来返回不同的函数值。
由此可见,C语言虽然是一个不够严格的结构化程序设计语言,但它是一个使用起来十分灵活的高级语言。
2.
C语言十分简练
C语言是一种非常简练的语言。
用C语言编写的程序十分简洁。
C语言的简洁性表现如下:
(1)C语言中类型说明符采用缩写形式,例如,整型可用int,而不用integer;
字符型用
char而不用character;
长整型可用long等等。
(2)C语言中关键字较少,只有32个。
有些关键字用简单的符号代替,例如,条件语句中的ef体的定界符采用花括号({)),如果是一条语句规定不用定界符。
又例如,循环语句中循环体也是如此。
(3)运算符丰富。
不仅数量多,而且功能强,例如,三目运算符(?
:
)具有条件语句的功能。
三目运算符使用方法如下:
dl?
d2:
d3
其中,dl,d2,d3是不同的表达式。
其功能是先计算表达式dl的值,如果dl的值是非零,
则上述三目运算符组成的条件表达式的值为d2表达式的值;
否则(即dl表达式的值为零)条
件表达式的值为d3的值。
因此,它将相当如下表示的if语句;
If(dl)
C=d2
else
C=d3
其中,c用来存放上述条件表达式的值。
使用功能强的运算符可以使得程序简洁。
(4)预处理功能将简化程序书写内容。
C语言中提供r一种预处理功能,它包含宏定义和
文件包含等,其中宏定义有一种简化书写的功能,它可将一个复杂的格式用一个简单格式来定义,例如
#define
PI
3.
表示定义PI为3.,在程序中只需用PI表示,在编译前系统将用3.来替代PI。
这里,简化是一个特点,还有其他好处后面会介绍。
还有文件包含也将起到简化书写的目的,它将许多文件都将使用的一些语句放在某个指定的文件(一般用头文件,即。
h文件)中,那么在某个文件中需要这些语句时,不必重写,只要将原来写好的指定文件包含进来就可以了,其方法十分简单,例如
#include"
myfile.h"
其中,myfile.h是事先写好的需要包含其内容的文件。
3.
C语言功能很强
C语言的功能性强表现在它既具有高级语言的功能又具有低级语言的功能。
数值运算和
非数值运算的功能C语言都具有,并且在处理非数值数据时更加方便和灵活。
此外,C语言还具备一些低级语言的功能,例如,寄存器运算功能,二进制位运算功能和内存地址运算功能等。
这些低级语言的功能是一般高级语言所没有的。
由于c语言具有上述这些功能,因此,它的应用十分广泛,它不仅像其他高级语言一样编写一些应用程序,而且还可以像汇编语言一样编写一些系统程序。
而在实际上,许多系统软件,例如关系数据库管理系统,绘图软件系统等,都是用c语言编写的。
另外,使用c语言编写一些接口程序也十分方便。
c语言还提供了丰富的数据类型,除了基本的数据类型之外,还提供了构造的数据类型,
例如,数组、结构、联合和枚举。
使用这些数据类型可以很方便地实现各种复杂的数据结构(例
如,链表、栈、树等)的操作。
4.C语言的可移植性好
·
高级语言的可移植性都比汇编语言好,在诸多的高级语言中,c语言的移植性更为突出。
这是因为该清育编译系统较小,。
另外顶处理功能对移植也带来一些方便,因此,c语言本身只需稍加修改便可用于各种型号的机器上和各类操作系统中,用c语言编写的程序也很方便地用于不同系统中,这也是c语言得川广泛应用的原因之一
在了解和掌握c语言上述的特点的同时,还应该知道c语言所存在的不足,这些不足往
往是由于突出某个特点而带来的。
在学习c语言中,了解这些不足是很重要的,它可以避免出现一些莫明其妙的错误。
下面列举四个方面的不足。
(1)运算符多,难用难记。
c语言中有}o多个运算符,又分}S种优先级和两类结合性,这无疑对数据的运算和处理带来了方便。
但是,诸多的运算符和不同的优先级势必会带来难记忆,难使用的不足。
例如,有些功能不同的运算符,却使用相同的符号,如“,”,它作为单目运算符表示取内容,它作为双目运算符表示两个操作数相乘,它与斜线符“/片连在一起(/,或,/)
表示注释符,另外,它用在说明语句中,用来表示它右边变量为指针等等。
还有运算符的15种优先级不要记混了,否则会造成计算值的错误。
(2)C语言中类型转换比较灵活,例如,int型与char型可以自动转换。
这些自动转换的规定带来一定的计算方便,在C语言中允许一个字符与一个整数进行加减运算,例如'
a'
+2
是合法的,该表达式的值用字符型表示为’c’,用整型数表示为99。
为了转换上的方便,在许多情况下将不作类型检查,例如,在只作简单说明时的函数调用中,要求形参和实参类型一致,如’果类型不一致也不判错仍可通过,有时会造成运算结果的错误,为了避免这类错误的发生,可以对函数进行原型说明,这时编译时将会对形参和实参的类型进行检查,增加其安全性。
另外,也可使用强制类型运算符来限制其不必要的自动转换。
(3)C.语言中数组在动态赋值时不作越界检查。
因此,在数组元素的个数少于实际斌值的项数时,编译系统不报越界错,而继续按数组元素所表示的地址进行赎值,这样容易造成数据的混乱。
为了避免这种情况的发生,应尽量避免动态的越界赋值。
对数组的静态赋值(即赋初值)不会发生越界赋值的现象,静态时出现越界赋值将报错。
(4)C语言为了优化等原因允许不同的编译系统在表达式或参数表内重新安排求值顺序。
这样对于一般的表达式值和参数表内各项参数值是没有影响的,例如,改变表达式中各操作数的计算顺序不会改变表达式的值。
但是,对一些具有副作用的运算符<
如,增1减1运算符和赋值运算符)来讲,不同的求值顺序将会造成表达式的不同的值。
这一点在编写程序时应特别注意,避免出现那些可能有二义性的表达式和参数表。
1,2.2C语言的应用
从前面对C语言的特点的分析中,不难看出C语言具有编程方便、语句简练、功能很强、移植性好等优点,是编程者喜欢使用的一种结构化程序设计语言。
C语言已被广泛地应用于系统软件和应用软件的开发中。
在下述的几个方面应用得更广泛。
1.数据库管理和应用程序方面
C语言的非数值处理功能很强,因此它被广泛地应用于数据库管理系统和应用软件。
大多数的关系数据库管理系统,如dBASE,Fox$ASE,ORACLE等,都是由C语言编写的。
各种不同部门的应用软件也大都是用G语言开发的,C语言在开发数据库应用软件方面应用很广,深受开发者的欢迎。
2.图形图像来统的应用程序方面
C语言在图形图像的开发中也有着广泛的市场。
很多图形图像系统,如AutoCAD通用图形系统等,就是使用C语言开发的,并且在这些图形系统中可以直接使用C语言编程,实现某些功能。
C语言编译系统带有许多绘图功能的函数,利用这些函数开发图形应用软件十分方便。
所开发的应用程序常用C语言编写接口界面,这样既方便又灵活,效果很好。
这是因为该语言提供有图形处理功能,便于实现图形图像的各种操作。
因此,C语言在图形图像的应用方面很好地发挥了它的作用。
3.编写与设备的接。
程序方面
C语言不仅在建立友好界面方面有着广泛应用,如下拉式菜单、弹出菜单、多窗口技术等;
而且在编写与设备的接口程序方面也有着广泛应用。
这是因为C语言不仅具有高级语言的特性还具有低级语言的功能,因此,在编写接口程序方面十分方便,有时它与汇编语言一起使用,会显示出更高的效率。
4.数据结构方面
由于C语言提供了十分丰富的数据类型,不仅有基本数据类型还有构造的数据类型,如数组、结构和联合等,把它们用于较复杂的数据结构〔例如,链表、队列、伐、树等)中显得十分方便,这方面已有许多成熟的例程供选择使用。
5.排序和检索方面
排序和检索是数据处理中最常遇到并较为复杂的间题。
使用C语言来编写排序和检索各种算法的程序既方便又简洁。
特别是有些排序算法采用了递归方法进行编程,更显得清晰明了。
因此、人们喜欢使用G语言来编写这方面的程序。
上述列举了五个方面的应用,但绝不是说C语言的应用仅限如此,而是说在这几个方面目前使用得更多些。
C,语言可以说在各个领域中都可以倪用,并且都会有较好的效果。
所以,C语言是当前被用于编程的最广泛的语言之一。
另外,C语言是一种结构化程序设计语言,在编写大型程序中也很方便,特别是该语言又提供了预处理功能,其中文件包含在多人同时开发一个大程序时将带来减少重复和提高效率等好处,因此,越来越多的人喜欢用C语言来开发大型程序。
1.3.1字符集
字符是构成C语言程序的最小单元,若干字符组合成单词。
下面给出C语言中使用的合法字符。
1.字毋和数字
小写字母:
abCdefgijklmnopqrstuvwxyz
大写字母,ABGDEFGHIJKLMN}PQRSTUVWXYZ
数字:
2.标点和特殊字符
3.空白符和空字符
空白符包含空格符、回车符、换行符、水平制表符等。
空字符是指ASCII码值为零的那个字符。
该宇符在C语言中有特殊用处,用它来作为字符串的结束符。
以上字符的集合称为C语言的合法字符集。
1.3.2单词及词法规则
单词是由若干个有序的字符组成的,单词的集合称为词汇。
C语言的单词有如下几种:
标识符、关键字、运算符、分隔符、常量、字符串和注释符。
下面对上述7种单词的词法规则逐一详述,有些单词,例如,关键字、运算符、常量和字符串等,后面的章节中还会详细讲述。
1.标识符
标识符是由字母、下划线和数字组成的字符序列,要求第一个字母必须是字母或下划线。
标识符是用来给C语言程序中所使用的变量、函数、语句标号、类型定义等起名字的。
C语言本身对标识符所用字符个数不作限制,但是在具体使用中,有些计算机只识别前面8个字符,而其他字符不作识别。
另外,对大写小写字母是区分的。
例如,a和A分别表示不同的变量。
在使用标识符起名字时,要注意尽量有意义并便于阅读。
一般变量名或函数名多以小写字母开始或全部用小写字母,例如,a},a6,creat_list()等。
有人喜欢将表示某种含义的多个英文单词组成的名字中用下划线作为单词间的连接等,如建立链表函数起名为。
eat_list()。
也有人喜欢将多个英文单词连在一起写而不用下划线分隔,为了表示不同单词而将除第一个单词之外的其他单词的第一个字母大写,如删除链表某结点的函数起名为deleteNode()q
下列的标识符是合法的:
x100,int一cnt,一xy,aB,sum,lotuS、一1一2一3,studentName等。
下面的标识符是非法的;
26d,#mon,ab.c,$xy,M.John,x>
=y,m,n,4B等。
读者要学会写出合法的标识符,也要能识别出非法的标识符。
在给变量、函数等起名字时最好能做到“见名知意”,即从标识符的字符集中可知道该变量或函数的含意。
例如,year,month,day,nartxe,age,sex等,不难从英文单词中了解变量的含意。
2.关健字
关键字是一种具有特定含意的标识符。
关键字又称保留字。
因为这些标识符是系统己经
定义过的,不能再定义了,需要加以保留。
使用者不能用关键字作为所定义的标识符,因此,读者要知道系统已经使用了哪些保留字。
下面将它们分类说明如下(关于这些关键字的含意及用法本书后面章节会有详细讲解)。
(1)标识类型的关键字
int,char,long,float,double,short,unsigned,struct,union,enum,auto,extern,
static,register,typedef,void。
(2)标识控制流的关键字
gato,return,break,continue,if,else,default,do,while,sW1tC11,case。
(3)标识预处理功能的关键字
define,include,undef,ifdef,ifndef,endif,lin。
等。
(4)其他关键字
sizeof,asm,fortran.ada,pascal等,
上述的标识符都是系统已有定义的保留字,读者不得再重新定义。
3.运算符
运算符是用来表示某种运算操作的一种符号,有的运算符用一个字符组成,也有的运算符由多个字符组成。
有的运算符只要求有一个操作数,这种运算符叫单目运算符;
有的运算符要求有两个操作数,称为双目运算符;
还有要求有三个操作数的运算符,称为三目运算符。
C语言中运算符种类繁多,优先级复杂,还有结合性等问题,本书第三章中专门讲述运算符问题。
4.分隔符
分隔符是用来分隔多个变量、数据项、表达式等的符号。
C语言中常用的分隔符有逗号,空白符,分号和膏号。
下面介绍这些分隔符的使用方法。
(I)逗号作为分隔符用来分隔多个变量和函数参数。
例如,在说明语句中,同种类型的多个变量可用逗号将其变量分隔开:
inta,b,c,d;
这表示变量a,b,c和d都被定义为int型变量。
又例如,在函数定义或调用时,用逗号将函数的多个形参或实参进行分隔,在下列函数的定义中,
Add(a,b,c)
inta,b,c,
{
这表示函数add有三个形参a,b和c,用逗号进行分隔。
(2)空白符一般常用来作为多个单词间的分隔符,也可以作为输入数据时自然输人项的
缺省分隔符。
G语言中,语句是由单词组成的,单词之间不能连写在一起,中间要用空白符(常用空格符)作分隔符,例如,
inta,b,c,
这里,在int与a之间便是用空格符分开的,因为int是一个单词,又是一个单词,这两个单词不能写在一起,一定要用空白符分隔开。
又例如,使用标准格式输入函数输入数据时,并且控制串中又没有指定匹配符,则从键盘上输入的数据项之间需用空白符作为分隔符。
关于标准格式输入函数,canf(),下面将会详细介绍。
(3)分号有时也可作为分隔符使用,它主要用在for循环语句中for后面,圆括号内的三个表达式之间用分号分隔,这一点将在语句一章中详细讲解。
(4)冒号有时也可作为分隔符使用,它主要用于语句标号与语句之间,用曹号分开;
也可用在switch语句中,case关键字与其后的语句之间用冒号分开。
这些使用在后面的内容中都会讲到。
5.常量
常量是一种在程序中其值保持不变的量。
C语言中常量分为数字常量和字符常量两类。
数字常量又分为整型常量和浮点型常量。
字符常量和字符串常量是两种不同的常量。
C语言中,常量通常用符号常量来表示,符号常量也是一种标识符。
有关常量的类型、常量的使用方法以及符号常量的定义等详细情况后面章节会专门描述。
6.字符串
字符串是一种由双引号(’‘“)括起来的一串字符组成的常量。
字符串实际上被存放在一个字符数组中,下面是合法的字符串:
"
x,y,z”Thisisastring"
,“1257"
,"
Wangping"
,“”,a\"
b\"
”等。
其中,””表示一个空串,即没有字符的串。
a\"
”“表示由a"
b”组成的字符串。
当双引号本身作为字符处理时,前面要加一个反斜线,以便与定界符的双引号加以区别。
在C语言中,要注意字符常量与字符串常量的区别。
它们在表示上、用法上和存放上都是不同。
字符常量是用单引号(’‘)括起来的单个字符,例如,'
a’是一个字符常量,字符串常量是用双引号(“”)括起来的一个或多个字符组成;
字符常量在一定条件下可与整数进行加法或减法运算,字符串常量有与字符常量不同的运算;
字符常量存放在内存中占一个字节的空间,字符串常量存放在内存中占有的字节个数是字符个数加1,因为每个字符串存放在内存中都有一个结束符‘\0’例如,字符‘a’占1个字节,而“a”却占用2个字节,其中’a’占一个,结束符‘\0’占一个。
7,注释符
注释符是用来标识注释或提示信息的。
程序中的注释信息不被编译也不被执行,其作用是增加程序的可读性。
C语言的注释符是以/*开头并以*/结束,在/*和,*/之间的信息为注释信息,一般起到说明或备忘的作用。
注释符可以出现在程序中任意行的位置,既可在程序头,也可在程序尾,还可以在程序中间的任意行。
注释符可出现在一条语句的前面,也可出现在一条语句的后边,甚至还可出现在一条语句的中间。
注释信息可占一行,也可以占多行。
注释符在有些编译系统中允许嵌套,即在注释信息中还可以包含注释符。
例如,
/,Compute/*Squares.Circle,*/*/
这是注释符
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 教程 第一章 概述 wanquan 免费版