C语言程序设计C语言基础知识_第1页
C语言程序设计C语言基础知识_第2页
C语言程序设计C语言基础知识_第3页
C语言程序设计C语言基础知识_第4页
C语言程序设计C语言基础知识_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、11.1 C语言的历史背景语言的历史背景1.2 C语言的特点语言的特点1.3 简单简单C程序介绍程序介绍1.4 C语言的上机步骤语言的上机步骤第一章第一章 C C语言基础知识语言基础知识252 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96AdaALGOL60ALGOL68PascalModula-2CPLBCPLBCC+JavaLISPPROLOGCOBOLFORTRAN77FORTRANPL/1Simula 67BASICANSI-BASICQBASIC VBFORTRAN901.1 C 语言出现的历史背景

2、语言出现的历史背景ALGOL60CPLBCPLBC 1983年,美国国家标准化协会年,美国国家标准化协会制定了制定了ANSI C 。 1987年,该协会又公布了新标准即年,该协会又公布了新标准即87ANSI C 。 1990年国际标准化组织年国际标准化组织ISO接受接受87 ANSI C为为ISO C的标准的标准( ISO9899 1990) 1972年,年,Ken Thompson 与与 Densnis M.Ritchic 将将 B 语言改为语言改为C语言语言( 取取BCPL 的第二的第二个字母个字母 )。克服了。克服了B语言过于简单,数据无类型等语言过于简单,数据无类型等缺点。最初的缺点。

3、最初的C语言只是为描述和实现语言只是为描述和实现UNIX 操作操作系统而设计,后经不断改进成为标准系统而设计,后经不断改进成为标准 C。 1970年,贝尔实验室年,贝尔实验室 Ken Thompson 将将 BCPL 改为改为B 语言语言(Boiling CPL down to its basic good features )。并用并用 B 语言记述和开语言记述和开发了第一个高级语言发了第一个高级语言 UNIX 操作系统,操作系统,在在 DEC 公司的公司的 PDP7 小型机上实现。小型机上实现。1963年,剑桥大学将年,剑桥大学将ALGOL 60改为改为CPL 语言语言(Combined

4、Programming Language) 特点:比较接近硬件,但规模大,难以实现。特点:比较接近硬件,但规模大,难以实现。ALGOL 60是是60年代由国际计算机委员会设计的年代由国际计算机委员会设计的一种面向问题的高级语言。一种面向问题的高级语言。特点:结构化程序设计语言,可读性好,可移植特点:结构化程序设计语言,可读性好,可移植性强,但不能直接对硬件进行操作。性强,但不能直接对硬件进行操作。1967年,剑桥大学年,剑桥大学Martin Richards将将 CPL简化为简化为BCPL(Basic CPL) 。特点:具有特点:具有结构化程序设计语言优点,能直结构化程序设计语言优点,能直接处

5、理与硬件相关的数据,被用作系统程序接处理与硬件相关的数据,被用作系统程序的描述语言。的描述语言。 3微机上使用的有:微机上使用的有: Turbo C、 MS C、 Quick C ; Turbo C+ 、 Borland C+ ( Builder )、 MS Visual C+ 、 MS C# ( C Sharp )。 Turbo C、MS C、Quick C 在语法上兼容,在语法上兼容,在库函数的种类、命名、使用格式等方面有区别。在库函数的种类、命名、使用格式等方面有区别。采用采用面向过程面向过程的编程方法,即按照算法的实现过程的编程方法,即按照算法的实现过程逐条编写,通知计算机一步一步该怎

6、样做。逐条编写,通知计算机一步一步该怎样做。 C+ C+ 是标准是标准 C C 的超集,的超集,采用采用面向对象面向对象的编程的编程方法,将数据和数据操作的方法封装在对象中,通方法,将数据和数据操作的方法封装在对象中,通过对象表现现实世界。过对象表现现实世界。4C语言的创始人语言的创始人:Dennis M. Ritchie5RitchieRitchie和和ThompsonThompson在开发在开发UNIXUNIX6和和UnixUnix的设计者的设计者Ken ThompsonKen Thompson一起接受一起接受7第一章 语言概述1.1 C 1.1 C 语言出现的历史背景语言出现的历史背景1

7、 1、19601960年出现的年出现的ALGO 60ALGO 60 (A Logrithn(A Logrithn Language) Language)是由国际计算机委员是由国际计算机委员会设计的一种面向问题的高级语言。会设计的一种面向问题的高级语言。2 2、19631963年,年,剑桥大学在剑桥大学在ALGO 60ALGO 60基础上推出基础上推出CPLCPL语言语言(Combined (Combined Programming Language) Programming Language) 3 3、19671967年,年,剑桥大学剑桥大学Martin RichardsMartin Rich

8、ards将将CPLCPL简化为简化为BCPLBCPL(Basic CPL)(Basic CPL)。4 4、19701970年,年,贝尔实验室贝尔实验室Ken ThompsonKen Thompson以以BCPLBCPL为基础进一步简化,开发为基础进一步简化,开发出了出了B B语言语言(Boiling CPL down to its basic good features )(Boiling CPL down to its basic good features ),并用并用B B语言记述和开发了第一个高级语言语言记述和开发了第一个高级语言UNIXUNIX操作系统操作系统,在在DEC DEC (

9、Data Equipment Company(Data Equipment Company) )公司的公司的PDPPDP7 7小型机小型机上实现。上实现。5 5、1972-19731972-1973年间,年间,Ken ThompsonKen Thompson与与Densnis M. RitchicDensnis M. Ritchic在在B B语言的基语言的基础上设计出了础上设计出了C C语言语言( (取取BCPLBCPL的第二个字母的第二个字母) )。克服了。克服了B B语言过于简单,语言过于简单,数据无类型等缺点。最初的数据无类型等缺点。最初的C C语言只是为描述和实现语言只是为描述和实现U

10、NIXUNIX操作系统操作系统提供一种工作语言而设计的,后经不断改进成为提供一种工作语言而设计的,后经不断改进成为标准标准C C:819731973年,他们二人又合作把年,他们二人又合作把UNIX90%UNIX90%以上的内容用以上的内容用C C语言语言进行了改写,形成进行了改写,形成UNIX VUNIX V。19831983年年,美国国家标准化协会美国国家标准化协会( ANSI )( ANSI )制定了制定了ANSI CANSI C。19871987年年, ,又公布了新标准及又公布了新标准及87 ANSI C87 ANSI C 。19901990年年, ,国际标准化组织国际标准化组织ISOI

11、SO(International Standard International Standard O r g a n i z a t i o nO r g a n i z a t i o n ) 接 受) 接 受 8 7 A N S I C8 7 A N S I C 为为 I S O CI S O C 的 标 准的 标 准(ISO9899(ISO98991990)1990)。目前,广泛使用的各种目前,广泛使用的各种C C语言版本都是以标准语言版本都是以标准C C为基础的。为基础的。微机上使用的有:微机上使用的有:Turbo C; MS C; Quick C; Borland Turbo C;

12、MS C; Quick C; Borland C C 。它们在语法上都是兼容的,只是在库函数的种类、命名、使用它们在语法上都是兼容的,只是在库函数的种类、命名、使用格式以及图形库等方面有所区别。格式以及图形库等方面有所区别。我们这门课程使用的是我们这门课程使用的是Turbo C 2.0Turbo C 2.0,在今后的课程中,在今后的课程中,如果没做特殊的说明,如果没做特殊的说明,我们均以我们均以TC 2.0TC 2.0为准。为准。9C C语言是语言是面向过程面向过程( ( P-OP-O 即即Process Oriented )Process Oriented )的编程语言,的编程语言,其编程方

13、法是按照算法的实现过程逐条编写,通知计算机一步一其编程方法是按照算法的实现过程逐条编写,通知计算机一步一步该怎样做。步该怎样做。当前,当前,C C语言在很多语言在很多涉及操作系统和硬件系统的领域涉及操作系统和硬件系统的领域依然在依然在使用,比如一些驱动程序的开发,一些单片机上的应用,特别是使用,比如一些驱动程序的开发,一些单片机上的应用,特别是在在UnixUnix和和LinuxLinux操作系统中还有大量的应用。操作系统中还有大量的应用。当然,目前在当然,目前在windowswindows软件开发中,专业的程序设计语言是软件开发中,专业的程序设计语言是C+/C#C+/C#。它们都是。它们都是面

14、向对象面向对象( ( O-OO-O 即即Object Oriented )Object Oriented )的程序的程序设计语言,设计语言,O-OO-O编程方法更多的是关心要通知计算机做什么,而编程方法更多的是关心要通知计算机做什么,而不必规定计算机怎样做。不必规定计算机怎样做。101.21.2 C C语言的特点语言的特点1 1、C C语言是一种语言是一种编译型编译型程序设计语言,处于汇编语言和高级程序设计语言,处于汇编语言和高级语言之间语言之间。硬件硬件系统系统用户用户软件软件汇编汇编CBasicFortranCOBOLPascal机器语言机器语言11 int main ( ) int r

15、, h ; float v ; scanf ( “%d %d ” ,&r ,&h) ; v = 3.14159 * r * r * h ; printf ( “ v = %f n” , v ) ; return 0; 2 2、C C语言语句简洁紧奏,书写格式自由度高。语言语句简洁紧奏,书写格式自由度高。一行可写一条或一行可写一条或多条语句,一条语句可写一行或多行,且语句中的多条语句,一条语句可写一行或多行,且语句中的空格空格和和回车回车符符均可忽略不计。均可忽略不计。 int main ( ) int r , h ; float v ; scanf ( “%d %d ” ,&a

16、mp;r ,&h) ; v = 3.14159 * r * r * h ; printf ( “ v = %f n” , v ) ; return 0; 12 3 . 3 . 运算符丰富,能实现其它高级语言中难以实现的运算。运算符丰富,能实现其它高级语言中难以实现的运算。 4. 4. 数据结构丰富,能实现各种复杂的数据结构。如数据结构丰富,能实现各种复杂的数据结构。如: : 链表、树、链表、树、栈栈 等。等。 5. 5. 程序模块化,是结构化的理想语言。程序模块化,是结构化的理想语言。 6. 6. 放松了语法限制,程序设计自由度高。如对放松了语法限制,程序设计自由度高。如对数组的下标数

17、组的下标是否是否越界不作检查等。越界不作检查等。 7. 7. 目标代码质量高,程序执行效率高。目标代码质量高,程序执行效率高。 8. 8. 可移植性好。可移植性好。 9. 9. 图形功能强。在庞大的图形库支持下,可进行二维,三维图图形功能强。在庞大的图形库支持下,可进行二维,三维图形以及动画的设计,也可以用于计算机辅助设计等。形以及动画的设计,也可以用于计算机辅助设计等。131.3 1.3 简单的程序介绍简单的程序介绍C C 程序的组成特点:程序的组成特点:1 1、一个完整的一个完整的C C语言程序是由语言程序是由一个或多个一个或多个具有相对独立功能具有相对独立功能的程序模块结合而成。这样的程

18、序模块叫的程序模块结合而成。这样的程序模块叫函数函数。C C 程序是程序是由函数构成由函数构成。这一特点使。这一特点使C C语言语言很容易实现程序的模块化。很容易实现程序的模块化。 例例 1.11.1 intint main ( ) main ( ) /* 主函数主函数 */ printf printf ( “This is a C program.n ” ); ( “This is a C program.n ” ); return 0;return 0; 例例 1.21.2 intint main ( ) main ( ) int int a , b , sum ; a , b , sum

19、 ; a =123 ; b =456 ; a =123 ; b =456 ; sum = a + b ; sum = a + b ; printf printf ( “ sum is %d n”, sum ) ; ( “ sum is %d n”, sum ) ; return 0;return 0; 14 int max ( int x , int y ) /* 被调函数被调函数 */ int z ; if ( x y ) z = x ; else z = y ; return ( z ) ; 例例1.31.3 int main ( ) /* 主调函数主调函数 */ int a , b ,

20、c ; scanf ( “ %d ,%d ” , &a , &b) ; c = max (a , b ) ; printf ( “ max = %d ” , c ) ; return 0; 注意注意max( )不是库函数,不是库函数,需要用户自己定义。需要用户自己定义。152 2、一个一个C C源程序源程序有且只有一个有且只有一个main()main()函数函数,且程序执行总是从,且程序执行总是从main( )main( )函数开始,到函数开始,到main()main()函数结束,不管函数结束,不管main( )main( )函数函数被书写在源程序的什么位置;被书写在源程序的什

21、么位置; 一个一个C C源程序源程序至少要包含一个函数,那就是至少要包含一个函数,那就是main( )main( )函数函数;也可以包含一个也可以包含一个main()main()函数和其它若干个子函数。函数和其它若干个子函数。3 3、分号分号是是 C C 语句的一部分,表示一个语句的结束。语句的一部分,表示一个语句的结束。4. 4. 可以有注释。可以有注释。注释只能包括在注释只能包括在 / /* * . . * */ /之间之间,且,且 / / 和和* * 号之间不容许有空格。号之间不容许有空格。VC6.0VC6.0中还可使用单行注释中还可使用单行注释/。5. 5. 输入输出输入输出 “ “函

22、数化函数化”。即无输入输出语句,输入输出均由。即无输入输出语句,输入输出均由函数来完成。函数来完成。6 6、书写格式自由(前面已经提及)。、书写格式自由(前面已经提及)。必须强调一点:反对随意书写!书写规范请参见实验讲义。必须强调一点:反对随意书写!书写规范请参见实验讲义。VC6.0VC6.0中可以使用中可以使用Alt+F8Alt+F8实现自动排版。实现自动排版。16参数类型函数类型函数名形参的现代声明方式:形参的现代声明方式:函数类型函数类型 函数名函数名 ( 参数及参数说明参数及参数说明 ) 数据说明部分数据说明部分 ; 执行语句部分执行语句部分 ;例:例:int max ( int x , int y ) int z ; if ( x y ) z = x ; else z = y ; return ( z ) ; 参数名7、C 的函数由函数头部函数头部 + 函数体函数体构成。17如如: : int max ( x , y ) int x ,y ;int x ,y ; int z ; if ( x y ) z = x ; else z = y ; return ( z ) ; 形参的传统声明方式:函数类型函数类型 函数名函数名 ( 参数参数 )参数说明 数据说明部分 ; 执行语句部分 ;18 开始开始编辑编辑预处理预

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论