《C程序设计1C语言概述.ppt》由会员分享,可在线阅读,更多相关《C程序设计1C语言概述.ppt(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第1 1章章 C C语言概述语言概述机电学院机电学院C C 程序设计程序设计1第一章第一章 C语言概述语言概述C语言发展历史C语言特点C程序格式和结构特点C程序上机步骤2l1.1 C语言发展历史语言发展历史 程序设计语言的发展程序设计语言的发展CPU指令系统,由0、1序列构成的指令码组成如:10000000 加 10010000 减用助记符号描述的指令系统如 ADD A,B面向机器的语言程序设计是数据被加工的过程客观世界可以分类,对象是类的实例对象是数据和方法的封装对象间通过发送和接受消息发生联系程序设计关键是定义类,并由类派生对象冯.诺依曼结构:计算机运算器控制器存储器主机:I/O设备:键
2、盘、显示器等中央处理器CPU以更接近于人们的自然语言和数学公式编写程序的语言3程序设计语言的发展程序设计语言的发展机器语言机器语言机器语言机器语言机器指令(由机器指令(由机器指令(由机器指令(由0 0 和和和和 1 1组成),可直接执行组成),可直接执行组成),可直接执行组成),可直接执行 难学、难记难学、难记难学、难记难学、难记依赖机器的类型依赖机器的类型依赖机器的类型依赖机器的类型汇编语言汇编语言汇编语言汇编语言用助记符代替机器指用助记符代替机器指用助记符代替机器指用助记符代替机器指令,用变量代替各类令,用变量代替各类令,用变量代替各类令,用变量代替各类地址。地址。地址。地址。克服记忆的难
3、点克服记忆的难点克服记忆的难点克服记忆的难点其他与机器语言类其他与机器语言类其他与机器语言类其他与机器语言类似似似似高级语言高级语言高级语言高级语言类似数学语言、接近自然语言、具有通用类似数学语言、接近自然语言、具有通用类似数学语言、接近自然语言、具有通用类似数学语言、接近自然语言、具有通用性和可移植性,不依赖具体的计算机类型。性和可移植性,不依赖具体的计算机类型。性和可移植性,不依赖具体的计算机类型。性和可移植性,不依赖具体的计算机类型。4C语言出现的历史背景语言出现的历史背景 C C C C语言是国际上流行的、很有发展前途语言是国际上流行的、很有发展前途语言是国际上流行的、很有发展前途语言
4、是国际上流行的、很有发展前途的计算机高级语言。的计算机高级语言。的计算机高级语言。的计算机高级语言。C C C C语言适合于作为语言适合于作为语言适合于作为语言适合于作为“系系系系统描述语言统描述语言统描述语言统描述语言”。它既可以用来编写系统软件,。它既可以用来编写系统软件,。它既可以用来编写系统软件,。它既可以用来编写系统软件,也可以用来编写应用程序。也可以用来编写应用程序。也可以用来编写应用程序。也可以用来编写应用程序。5C C语言的产生和发展与语言的产生和发展与UNIXUNIX操作系统分不开。操操作系统分不开。操作系统的编写需要即具有高级语言的优点,又具有作系统的编写需要即具有高级语言
5、的优点,又具有低级语言的特点的语言。低级语言的特点的语言。C C语言是由语言是由B B语言发展而来,语言发展而来,而而B B语言是由语言是由A A语言发展而来。语言发展而来。A A语言指高级语言语言指高级语言Algol60Algol60,离硬件比较远,不宜,离硬件比较远,不宜用来编写系统软件。在此基础上产生了更接近硬件用来编写系统软件。在此基础上产生了更接近硬件的的B B语言,并用语言,并用B B语言编写了第一个语言编写了第一个UNIXUNIX操作系统。操作系统。19731973年在年在B B语言基础上设计出了语言基础上设计出了C C语言,既保留了语言,既保留了B B语语言的精炼、接近硬件的优
6、点,又克服了言的精炼、接近硬件的优点,又克服了B B语言过于简语言过于简单、无数据类型等缺点。由单、无数据类型等缺点。由C C语言改写的语言改写的UNIXUNIX操作系操作系统获得了巨大的成功,日益普及,同时统获得了巨大的成功,日益普及,同时C C语言也迅速语言也迅速得到推广普及。得到推广普及。C语言出现的历史背景语言出现的历史背景652 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96AdaALGOL60ALGOL68PascalModula-2CPLBCPL BCC+JavaLISPPROLOGCOBOLFO
7、RTRAN77FORTRANPL/1Simula 67Smalltalk 80BASICANSI-BASICQBASIC VBFORTRAN907l lALGOL60-CPL-BCPC-B-C-ALGOL60-CPL-BCPC-B-C-标准标准C-ANSI C-C-ANSI C-ISO CISO Cl lALGOL60ALGOL60:一种面向问题的高级语言。:一种面向问题的高级语言。ALGOL60ALGOL60离硬件较远,离硬件较远,不适合编写系统程序。不适合编写系统程序。l lCPLCPL(Combined Programming languageCombined Programming l
8、anguage,组合编程语言,组合编程语言):CPLCPL是一种在是一种在ALGOL60ALGOL60基础上更接近硬件的一种语言。基础上更接近硬件的一种语言。CPLCPL规模规模大,实现困难。大,实现困难。l lBCPLBCPL(Basic Combined Programming languageBasic Combined Programming language,基本的组合,基本的组合编程语言):编程语言):BCPLBCPL是对是对CPLCPL进行简化后的一种语言。进行简化后的一种语言。l lB B语言:是对语言:是对BCPLBCPL进一步简化所得到的一种很简单接近硬件的语进一步简化所得
9、到的一种很简单接近硬件的语言。言。B B语言取语言取BCPLBCPL语言的第一个字母。语言的第一个字母。B B语言精练、接近硬件,语言精练、接近硬件,但过于简单,数据无类型。但过于简单,数据无类型。B B语言诞生后,语言诞生后,UnixUnix开始用开始用B B语言改写。语言改写。l lC C语言:是在语言:是在B B语言基础上增加数据类型而设计出的一种语言。语言基础上增加数据类型而设计出的一种语言。C C语言取语言取BCPLBCPL的第二个字母。的第二个字母。C C语言诞生后,语言诞生后,UnixUnix很快用很快用C C语言改语言改写,并被移植到其它计算机系统。写,并被移植到其它计算机系统
10、。l l标准标准C C、ANSI CANSI C、ISO CISO C:C C语言的标准化。语言的标准化。C语言的产生语言的产生8l l发展过程发展过程 B B语言语言语言语言:Bell实验室,实验室,1970年年 在在PDP机器上用其编写机器上用其编写UNIX系统系统CPLCPL语言语言语言语言:剑桥大学,剑桥大学,1963年年BCPLBCPL语言语言语言语言:剑桥大学,剑桥大学,1967年年C C语言语言语言语言:Bell实验室,实验室,19721973年用其改写年用其改写UNIX系统系统经简化经简化进一步简化进一步简化保持精练、接近硬件的优点,克服数据类型过少的不足保持精练、接近硬件的优
11、点,克服数据类型过少的不足C语言的产生语言的产生91978年年C语言普及以后,先后被移植到大、中、小、微语言普及以后,先后被移植到大、中、小、微型机上,风靡世界。型机上,风靡世界。1978年年Brian W.Kernighan和和Dnnis M.Ritchie合著了合著了The C Programming Language一书,成为后来广泛使一书,成为后来广泛使用的用的C语言基础,成为标准语言基础,成为标准C。1983年美国国家标准化协会(年美国国家标准化协会(ANSI)重新制定了新的)重新制定了新的标准,成为标准,成为ANSI C。1987年年ANSI公布新标准公布新标准87 ANSI C。
12、1988年年K&R根据根据ANSI C标准修改著作。标准修改著作。1990年国际标准化组织(年国际标准化组织(ISO)接受)接受87 ANSI C为为ISO C标准。标准。目前,在微机上广泛使用的语言编译系统有目前,在微机上广泛使用的语言编译系统有Microsoft C、Turbo C、Borland C等。等。lC语言的发展语言的发展10q 语语言言简简洁洁、紧紧凑凑,使使用用方方便便、灵灵活活。C C语语言言只只有有3232个个关关键键字,程序书写形式自由。字,程序书写形式自由。q 运算符丰富。运算符丰富。q 数据结构丰富,具有现代化语言的各种数据结构。数据结构丰富,具有现代化语言的各种数
13、据结构。q 具有结构化的控制语句。具有结构化的控制语句。q 语法限制不太严格,程序设计自由度大。语法限制不太严格,程序设计自由度大。q C C语语言言允允许许直直接接访访问问物物理理地地址址,能能进进行行位位(bitbit)操操作作,能能实现汇编语言的大部分功能,可以直接对硬件进行操作。实现汇编语言的大部分功能,可以直接对硬件进行操作。q 生成目标代码质量高,程序执行效率高。生成目标代码质量高,程序执行效率高。q 用用C C语言写的程序可移植性好(与汇编语言比)。语言写的程序可移植性好(与汇编语言比)。中级语言l1.2 C语言的特点语言的特点1132个关键字:(由系统定义,不能重作其它定义由系
14、统定义,不能重作其它定义)auto break case char constcontinue default do double elseenum extern float for gotoif int long register returnshort signed sizeof static structswitch typedef unsigned union voidvolatile while129种控制语句:if()elsefor()while()dowhile()continuebreakswitchgotoreturn13例 C语言与Pascal语言比较C语言 Pascal语
15、言 含义 BEGIN.END 复合语句if(e)s;IF(e)THEN s 条件语句int i;VAR i:INTEGER 定义i为整型变量 int a10;VAR a:ARRAY1.10 OF INTEGER 定义整型数组aint f();FUNCTION f():INTEGER 定义f为返值整型的函数int*p;VAR p:INTEGER 定义p为指向整型变量的指针i+=2;i=i+2 赋值i+2ii+,+i;i=i+1 i自增值结论:C比 Pascal简练,源程序短。1434种运算符:算术运算符:+-*/%+-关系运算符:=!=逻辑运算符:!&|位运算符 :|&赋值运算符:=及其扩展条件
16、运算符:?:逗号运算符:,指针运算符:*&求字节数 :sizeof强制类型转换:(类型)分量运算符:.-下标运算符:其它 :()-15C数据类型基本类型构造类型指针类型空类型void定义类型typedef数值类型字符类型char枚举类型enum整 型浮点型单精度型float双精度型double短整型short长整型long整型int数组结构体struct共用体union161.3 简单的简单的C程序介绍程序介绍/*example1.1 The first C Program*/#include main()printf(“This is a C program.n”);注释编译预处理主函数语句
17、输出:This is a C program.例例例例1.1 1.1 1.1 1.1 输出一行信息:输出一行信息:输出一行信息:输出一行信息:This is a C program.This is a C program.双引号内的字符串按原样输出“n”是换行符例1.117#include main()/*计算两数之和计算两数之和*/int a,b,sum;/*这是定义变量这是定义变量*/a=123;b=456;/*以下以下3行为行为C语句语句*/sum=a+b;printf(sum is%dn,sum);例例例例1.2 1.2 1.2 1.2 计算两数之和,并输出结果。计算两数之和,并输出结
18、果。计算两数之和,并输出结果。计算两数之和,并输出结果。运行结果:运行结果:sum is 579例1.218#include main()/*主函数主函数*/int a,b,c;/*声明部分,定义变量声明部分,定义变量*/scanf(“%d,%d”,&a,&b);/*输入变量输入变量a和和b的值的值*/c=max(a,b);/*调用调用max函数,将得到的值赋给函数,将得到的值赋给c*/printf(“max=%dn”,c);/*输出输出c的值的值*/int max(int x,int y)/*定义定义max函数,函数值为整型,形式参数函数,函数值为整型,形式参数x,y为整型为整型*/int
19、z;/*max函数中的声明部分,定义本函数中用到的变量函数中的声明部分,定义本函数中用到的变量z为整型为整型*/if(xy)z=x;else z=y;return(z);/*将将z的值返回,通过的值返回,通过max带回调用处带回调用处*/例例例例1.3 1.3 1.3 1.3 例1.319我们对我们对我们对我们对C C语言程序的基本组成和形式(程序结构)语言程序的基本组成和形式(程序结构)语言程序的基本组成和形式(程序结构)语言程序的基本组成和形式(程序结构)有了一个初步了解:有了一个初步了解:有了一个初步了解:有了一个初步了解:1.C1.C程序由函数构成(程序由函数构成(程序由函数构成(程序
20、由函数构成(C C是函数式的语言,函数是是函数式的语言,函数是是函数式的语言,函数是是函数式的语言,函数是C C程序的基本单位)程序的基本单位)程序的基本单位)程序的基本单位)一个一个一个一个C C源程序至少包含一个源程序至少包含一个源程序至少包含一个源程序至少包含一个mainmain函数函数函数函数,也可以包也可以包也可以包也可以包含一个含一个含一个含一个mainmain函数和若干个其它函数。函数和若干个其它函数。函数和若干个其它函数。函数和若干个其它函数。函数是函数是函数是函数是C C程程程程序的基本单位序的基本单位序的基本单位序的基本单位。被调用的函数可以是系统提供的库函数,也可以被调用
21、的函数可以是系统提供的库函数,也可以被调用的函数可以是系统提供的库函数,也可以被调用的函数可以是系统提供的库函数,也可以是用户根据需要自己编写设计的函数。是用户根据需要自己编写设计的函数。是用户根据需要自己编写设计的函数。是用户根据需要自己编写设计的函数。C C是函数是函数是函数是函数式的语言,程序的全部工作都是由各个函数完成。式的语言,程序的全部工作都是由各个函数完成。式的语言,程序的全部工作都是由各个函数完成。式的语言,程序的全部工作都是由各个函数完成。编写编写编写编写C C程序就是编写一个个函数。程序就是编写一个个函数。程序就是编写一个个函数。程序就是编写一个个函数。C C函数库非常丰富
22、,函数库非常丰富,函数库非常丰富,函数库非常丰富,ANSI CANSI C提供提供提供提供100100多个库函数,多个库函数,多个库函数,多个库函数,Turbo CTurbo C提供提供提供提供300300多个库函数多个库函数多个库函数多个库函数 202.main2.main函数(主函数)是每个程序执行的起始点函数(主函数)是每个程序执行的起始点函数(主函数)是每个程序执行的起始点函数(主函数)是每个程序执行的起始点3.3.一个函数由函数首部和函数体两部分组成一个函数由函数首部和函数体两部分组成一个函数由函数首部和函数体两部分组成一个函数由函数首部和函数体两部分组成 (1)(1)函数首部函数首
23、部函数首部函数首部:一个函数的第一行。:一个函数的第一行。:一个函数的第一行。:一个函数的第一行。返回值类型返回值类型返回值类型返回值类型 函数名函数名函数名函数名(函数参数类型函数参数类型函数参数类型函数参数类型1 1 函数参数名函数参数名函数参数名函数参数名1,1,函数参数类型函数参数类型函数参数类型函数参数类型2 2,函数参数名,函数参数名,函数参数名,函数参数名22)注意:函数可以没有参数,但是后面的一对注意:函数可以没有参数,但是后面的一对注意:函数可以没有参数,但是后面的一对注意:函数可以没有参数,但是后面的一对()()()()不能省略,不能省略,不能省略,不能省略,这是格式的规定
24、。这是格式的规定。这是格式的规定。这是格式的规定。(2)(2)函数体函数体函数体函数体:函数首部下用一对:函数首部下用一对:函数首部下用一对:函数首部下用一对括起来的部分。如果函数括起来的部分。如果函数括起来的部分。如果函数括起来的部分。如果函数体内有多个体内有多个体内有多个体内有多个,最外层是函数体的范围。函数体一般,最外层是函数体的范围。函数体一般,最外层是函数体的范围。函数体一般,最外层是函数体的范围。函数体一般包括声明部分、执行部分两部分。包括声明部分、执行部分两部分。包括声明部分、执行部分两部分。包括声明部分、执行部分两部分。声明部分声明部分声明部分声明部分:在这部分定义本函数所使用
25、的变量。:在这部分定义本函数所使用的变量。:在这部分定义本函数所使用的变量。:在这部分定义本函数所使用的变量。执行部分执行部分执行部分执行部分:由若干条语句组成命令序列(可以在其中调:由若干条语句组成命令序列(可以在其中调:由若干条语句组成命令序列(可以在其中调:由若干条语句组成命令序列(可以在其中调用其它函数)。用其它函数)。用其它函数)。用其它函数)。214.C4.C程序书写格式自由程序书写格式自由程序书写格式自由程序书写格式自由一行可以写几个语句,一个语句也可以写在多行上。一行可以写几个语句,一个语句也可以写在多行上。一行可以写几个语句,一个语句也可以写在多行上。一行可以写几个语句,一个
26、语句也可以写在多行上。C C程序没有行号,也没有程序没有行号,也没有程序没有行号,也没有程序没有行号,也没有FORTRANFORTRAN,COBOLCOBOL那样严格那样严格那样严格那样严格规定书写格式(语句必须从某一列开始)。规定书写格式(语句必须从某一列开始)。规定书写格式(语句必须从某一列开始)。规定书写格式(语句必须从某一列开始)。每条语句的最后必须有一个分号每条语句的最后必须有一个分号每条语句的最后必须有一个分号每条语句的最后必须有一个分号“;”表示语句的结束表示语句的结束表示语句的结束表示语句的结束 5.5.可以使用可以使用可以使用可以使用/*/*/对对对对C C程序中的任何部分作
27、注释程序中的任何部分作注释程序中的任何部分作注释程序中的任何部分作注释 注释可以提高程序可读性注释可以提高程序可读性注释可以提高程序可读性注释可以提高程序可读性 不能嵌套不能嵌套不能嵌套不能嵌套 不产生编译代码不产生编译代码不产生编译代码不产生编译代码6.C6.C语言本身不提供输入语言本身不提供输入语言本身不提供输入语言本身不提供输入/输出语句,输入输出语句,输入输出语句,输入输出语句,输入/输出的操作是通过输出的操作是通过输出的操作是通过输出的操作是通过调用库函数调用库函数调用库函数调用库函数(scanfscanf,printfprintf)完成。完成。完成。完成。22 格式特点格式特点l
28、l习惯用习惯用习惯用习惯用小写小写小写小写字母,大小写敏感字母,大小写敏感字母,大小写敏感字母,大小写敏感l l不使用行号,不使用行号,不使用行号,不使用行号,无程序行无程序行无程序行无程序行概念概念概念概念l l可使用空行和空格可使用空行和空格可使用空行和空格可使用空行和空格l l常用常用常用常用锯齿形锯齿形锯齿形锯齿形书写格式书写格式书写格式书写格式main().main()int i,j,sum;sum=0;for(i=1;i10;i+)for(j=1;j10;j+)sum+=i*j;printf(“%dn”,sum);优秀程序员的素质之一优秀程序员的素质之一:使用使用TAB缩进缩进对齐
29、对齐有足够的注释有足够的注释有合适的空行有合适的空行23编辑链接编译执行1.4 C程序的上机步骤C程序开发步骤file.exe程序代码的录入,生成源程序*.c语法分析查错,翻译生成目标程序*.obj与其它目标程序或库链接装配,生成可执行程序*.exe24C程序的执行过程程序的执行过程 1 1源程序文件的建立和编辑源程序文件的建立和编辑源程序文件的建立和编辑源程序文件的建立和编辑 编写源程序,形成编写源程序,形成编写源程序,形成编写源程序,形成 .C C文件文件文件文件 需用需用需用需用编辑工具编辑工具编辑工具编辑工具:tc.exetc.exe、记事本、记事本、记事本、记事本2 2编译编译编译编
30、译 编译源程序,形成目标程序编译源程序,形成目标程序编译源程序,形成目标程序编译源程序,形成目标程序 .ObjObj文件文件文件文件 需用需用需用需用编译工具编译工具编译工具编译工具 :tcc.exetcc.exe3 3连接连接连接连接 连接连接连接连接OBJOBJ文件和调用的库函数,形成运行程文件和调用的库函数,形成运行程文件和调用的库函数,形成运行程文件和调用的库函数,形成运行程序序序序 .exeexe 文件文件文件文件 需用需用需用需用连接工具连接工具连接工具连接工具 :tlink.exetlink.exe4 4运行运行运行运行 .exeexe 文件文件文件文件Turbo CTurbo
31、C提供提供提供提供集成化开发环境集成化开发环境集成化开发环境集成化开发环境25Turbo C集成开发环境集成开发环境l l配置要求配置要求配置要求配置要求 UNIX,PC-DOS,MS-DOS,UCDOSUNIX,PC-DOS,MS-DOS,UCDOS操操操操作系统作系统作系统作系统 硬盘容量约硬盘容量约硬盘容量约硬盘容量约2 2MM,448K RAM448K RAM运行空运行空运行空运行空间间间间l l安装安装安装安装Turbo CTurbo C 创建子目录创建子目录创建子目录创建子目录 InstallInstall 若不是可安装盘若不是可安装盘若不是可安装盘若不是可安装盘,将文件拷贝到对应
32、将文件拷贝到对应将文件拷贝到对应将文件拷贝到对应的目录下的目录下的目录下的目录下26 进入进入Turbo Cl lD:TCD:TCTCTC.exe.exe 退出退出Turbo Cl lAlt +xAlt +xl lAlt+F ,QAlt+F ,Q 帮助帮助Helpl lF1F1Turbo CTurbo C集成开发环境集成开发环境集成开发环境集成开发环境27基本操作:基本操作:F10-调用主菜单调用主菜单F2-存盘存盘F3-打开打开Alt+F9-CompileCtrl+F9-RunAlt+F5-User Screenl l常用热键常用热键常用热键常用热键文本编辑:文本编辑:-移动光标移动光标Pg
33、Up,PgDn-PgUp,PgDn-上下翻页上下翻页Ctrl+PgUp,Ctrl+PgDn-Ctrl+PgUp,Ctrl+PgDn-文件首尾文件首尾Home End Home End Ddelete Insert Ddelete Insert BkspaceBkspace块操作块操作:Ctrl+KB-块开始标记块开始标记 Ctrl+KK-块结束标记块结束标记Ctrl+KC-块拷贝块拷贝 Ctrl+KV-块移动块移动Ctrl+KY-块删除块删除 Ctrl+KH-块隐藏块隐藏程序调试:程序调试:F8-Step over F7-Trace intoF4-Goto Cursor Ctrl+F7-Add WatchCtrl+F8-Toggle Breakpoint Ctrl+F2-Program Reset窗口操作:窗口操作:F5-窗口缩放窗口缩放F6-窗口切换窗口切换28作业作业l lP12 习题习题 1.1 1.3 1.5(需上机运行验证)(需上机运行验证)1.729