c语言程序设计ch1

上传人:ni****g 文档编号:568567033 上传时间:2024-07-25 格式:PPT 页数:40 大小:1.05MB
返回 下载 相关 举报
c语言程序设计ch1_第1页
第1页 / 共40页
c语言程序设计ch1_第2页
第2页 / 共40页
c语言程序设计ch1_第3页
第3页 / 共40页
c语言程序设计ch1_第4页
第4页 / 共40页
c语言程序设计ch1_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《c语言程序设计ch1》由会员分享,可在线阅读,更多相关《c语言程序设计ch1(40页珍藏版)》请在金锄头文库上搜索。

1、刘丹刘丹办公室:办公室: 主主7151教材、参考书与课时安排1.1.教材教材C C语言程序设计教程语言程序设计教程 自编教程自编教程2.2.参考文献参考文献lC C程序设计(第三版)程序设计(第三版) 谭浩强谭浩强 清华大学清华大学出版社出版社lC C程序设计题解与上机指导程序设计题解与上机指导3.3.课时安排课时安排: : 32+16(32+16(上机上机) )实验课时间和地点:实验课时间和地点:4.4.答疑安排:答疑安排:2C课程成绩组成v平时成绩(20)v实验成绩(20)v期末成绩(60)3课程要求1.课前请做好预习课前请做好预习2.保持课堂安静,头脑清醒,思维活跃保持课堂安静,头脑清醒

2、,思维活跃3.认真、独立、按时完成作业认真、独立、按时完成作业4.重视上机实践,要勤学多练重视上机实践,要勤学多练4课程目标n理解算法、流程图以及程序的概念n掌握用C语言进行程序设计的基本方法。n掌握C语言的基础知识,包括基本数据类型、表达式、控制结构等n掌握C语言的高级知识,包括数组、指针、函数、字符串、结构体等5第 1 章 C语言概述C C语言发展历史语言发展历史C C语言特点语言特点C C程序格式和结构特点程序格式和结构特点C C程序上机步骤程序上机步骤C C语言字符集和词汇语言字符集和词汇6目标了解了解 C语言的发展历史、语言的发展历史、 C语言特点;语言特点;掌握掌握 C 程序的格式

3、和结构特点;程序的格式和结构特点;掌握掌握 C 程序的编译和运行过程。程序的编译和运行过程。71.1 C C语言出现的历史背景语言出现的历史背景一、计算机语言经历了四代发展一、计算机语言经历了四代发展: :第一代:第一代:第一代:第一代:机器语言机器语言, , 二进制二进制0 0、1 1构成的面向特定机器构成的面向特定机器的低级语言。的低级语言。计算机可以直接执行。计算机可以直接执行。第二代第二代第二代第二代:汇编语言。又称符号语言汇编语言。又称符号语言, , 对机器指令进行对机器指令进行简单的符号化。简单的符号化。 汇编语言程序汇编语言程序 机器语言程序机器语言程序 汇编程序汇编程序1011

4、10000000000100000000000001010000000100000000MOV AX, 1MOV AX, 1 ADD AX, 1 ADD AX, 11 11 1?8第三代第三代:高级语言,完全接近人类习惯,各种高级语言,完全接近人类习惯,各种 机器指令用英文单词表示。机器指令用英文单词表示。如:如:BASIC,FORTRAN, C,PASCAL等。等。 高级语言程序高级语言程序 机器语言程序机器语言程序解释解释/编译程序编译程序 解释程序解释程序 一次只读一行源程序,并执行该行语句指定的操一次只读一行源程序,并执行该行语句指定的操作;每次运行用户程序时必须要用解释程序作;每次运

5、行用户程序时必须要用解释程序 编译程序编译程序 读进整个源程序并将其转换为目标代码,然后由计读进整个源程序并将其转换为目标代码,然后由计算机直接执行,运行速度快。算机直接执行,运行速度快。 TCTC 允许分块编译,可节省大量时间。允许分块编译,可节省大量时间。#include main() printf(%dn, 1+1); 9 第四代:第四代:是一种面向对象的高级语言。是一种面向对象的高级语言。 如:如:Visual Basic, 简称简称VB 、C+ 1980年 贝尔实验室贝尔实验室 BjameBjame StroustrupStroustrup 开始对开始对C C语言进行语言进行改进和扩

6、充,解决对开发大型程序的复杂性管理问题。改进和扩充,解决对开发大型程序的复杂性管理问题。 1983年年 正式齐名为正式齐名为C+ ; 1994年年 年制定了年制定了ANSI C+ 标准的草案标准的草案。 1998年年 Microsoft 公司推出基于公司推出基于 Windows 98 操作平台的操作平台的编程工具编程工具 Visual C+ , ,图形化用户界面,面向对象的程序开发,图形化用户界面,面向对象的程序开发,网络应用等功能。网络应用等功能。 10C语言的发展历史语言的发展历史ALGOL 语言CCPPLL语言语言BCPL语言B语言1963年,剑桥大学修改为1967年,剑桥大学的Mati

7、n Richards 将其简化为C语言1970,美国贝尔实验室Ken Thompson修改为且做出第一个关于UNIX系统的B语言1973年,贝尔实验室D.M.Ritchie设计出11(2 2)C C 语言的发展历程语言的发展历程7373年年 贝尔实验室贝尔实验室D.M.Ritchie设计出设计出C语言,用语言,用C C改写改写UNIX内核内核7777年年 出现不依赖于具体机器的出现不依赖于具体机器的 C 语言编译系统语言编译系统8080年代初年代初,美国国家标准化协会,美国国家标准化协会(ANSI),根据语言问世以根据语言问世以来各种版本对语言的发展和扩充,制定了来各种版本对语言的发展和扩充,

8、制定了ANSI C 标准标准19871987年年 ANSIANSI公布公布C C新标准新标准87 87 ANSI C19901990年年 ISO(国际标准化组织国际标准化组织) )接受上述接受上述87 87 ANSI C标准,作为标准,作为ISO的的 C 标准标准8080年代年代 C C 普及和普及和 C+ C+ 推出推出12 Dennis M RitchieDennis M Ritchie(丹尼斯(丹尼斯里奇),里奇),C C语言之父语言之父,UNIXUNIX之父之父。生于。生于19411941年年9 9月月9 9日,哈佛大学数学博士。日,哈佛大学数学博士。 现在,现在,Dennis M.

9、Ritchie Dennis M. Ritchie 担任朗讯科技公司贝尔实验室担任朗讯科技公司贝尔实验室 ( (原原AT&TAT&T实验实验室室) )下属的计算机科学研究中心系统软件研究部的主任一职。下属的计算机科学研究中心系统软件研究部的主任一职。 19781978年年Brian W. KernighanBrian W. Kernighan和和Dennis M. RitchieDennis M. Ritchie出版了名著出版了名著C C程序设程序设计语言(计语言(The C Programming LanguageThe C Programming Language),现在此书已翻译成多种语

10、言,成,现在此书已翻译成多种语言,成为为C C语言方面最权威的教材之一。语言方面最权威的教材之一。19741974年,美国计算机协会(年,美国计算机协会(ACMACM)授予他系统及语言杰出论文奖。)授予他系统及语言杰出论文奖。19821982年,电气和电子工程师协会(年,电气和电子工程师协会(IEEEIEEE)授予他)授予他 Emmanuel Emmanuel PiorePiore 奖。奖。19831983年,获得了贝尔实验室特别人员奖。年,获得了贝尔实验室特别人员奖。19831983年,获得美国计算机协会颁发的图灵奖(又称计算机界的诺贝尔奖)。年,获得美国计算机协会颁发的图灵奖(又称计算机界

11、的诺贝尔奖)。19891989年,他获得了年,他获得了NECNEC公司的公司的 C&C C&C 基金奖。基金奖。19901990年,电气和电子工程师协会又给他颁发了优秀奖章(年,电气和电子工程师协会又给他颁发了优秀奖章(Hamming MedalHamming Medal)19991999年,他和同为年,他和同为UNIXUNIX之父的之父的Ken Thompson Ken Thompson 获得美国国家技术奖章。获得美国国家技术奖章。131999年接受美国国家技术勋章年接受美国国家技术勋章141516171.2 C语言的特点n1简洁紧凑、灵活方便简洁紧凑、灵活方便n2运算符丰富运算符丰富 n3

12、数据结构丰富数据结构丰富n4C是结构式语言是结构式语言n5C语法限制不太严格、程序设计自由度大语法限制不太严格、程序设计自由度大 n6C语言允许直接访问物理地址,可以直接对硬件语言允许直接访问物理地址,可以直接对硬件进行操作进行操作n7C语言程序生成代码质量高,程序执行效率高语言程序生成代码质量高,程序执行效率高 n8C语言适用范围大,可移植性好语言适用范围大,可移植性好18n32个关键字auto break case char constcontinue default do double elseenum extern float for gotoif int long register

13、returnshort signed sizeof static structswitch typedef unsigned union voidvolatile while 19n9种控制语句if( )elsefor( )while( )dowhile( )continue breakswitchgotoreturn 20n34种运算符算术运算符:+ - * / % + -关系运算符: = !=逻辑运算符:! & |位运算符 : | &赋值运算符:= 及其扩展条件运算符:?:逗号运算符:,指针运算符:* &求字节数 : sizeof强制类型转换:(类型)分量运算符:. -下标运算符:其它 :

14、( ) -21nC 数据类型基本类型构造类型指针类型空类型void定义类型typedef数值类型字符类型char枚举类型enum整 型浮点型单精度型float双精度型double短整型short长整型long整型int数组结构体struct共用体union22#include void main() printf(Hello Worldn);以 # 开始的语句称为预处理器指令以.h为后缀的文件被称为头文件,可以是 C 程序中现成的标准库文件,也可以是自定义的库文件。stdio.h文件中包含了有关输入输出语句的函数 main() 函数是 C 程序处理的起点。 main() 函数可以返回一个值,也

15、可以不返回值。如果某个函数没有返回值,那么在它的前面有一个关键字 void在函数定义的后面有一个左大括号,即 它表示函数的开始,后面是函数的主体大括号也可以用于将语句块括起来在函数定义的结尾处有一个右大括号,即 在屏幕上产生一行输出“Hello world”,并换行(n) 函数主体中的每个语句都以分号结束。C 程序中的一个语句可以跨越多行,并且用分号通知编译器该语句已结束。 1.3 简单的C语言程序介绍23C 程序中的注释#include void main() printf(Hello Worldn);/ 此程序用来打印此程序用来打印Hello World 单行注释单行注释C 程序可以包含注

16、释,以便向读者作一般说明程序可以包含注释,以便向读者作一般说明编译器并不处理这些注释编译器并不处理这些注释 /* 此程序由此程序由 编写编写 用来打印输出用来打印输出“Hello World”*/多行注释多行注释/* *作者:作者:创建日期:创建日期:描述:描述:* */#include void main() 在程序中添加注释是一个好的编程习惯,可以增强程序的可读性。24/* example1.1 calculate the sum of a and b*/#include /* This is the main program */main() int a,b,sum; a=1; b=2;

17、 sum=a+b; printf(”sum= %dn,sum);语句注释变量声明赋值语句格式化字符串25u是一种高级语言是一种高级语言高级语言并不是高级语言并不是“高级高级”,只是相对低级语言,在一个高,只是相对低级语言,在一个高的级别上进行编程的级别上进行编程u历史悠久,战勋卓著历史悠久,战勋卓著诞生于上世纪诞生于上世纪70年代初,成熟于年代初,成熟于80年代(年代(C89),修订),修订与与90年代(年代(C99)很多重量级软件都是用很多重量级软件都是用C写的写的u上天入地,无所不能上天入地,无所不能几乎没有不能用几乎没有不能用C写出来的软件,没有不支持写出来的软件,没有不支持C的系统的系

18、统u很多流行语言、新生语言都借鉴了它的思想、语法很多流行语言、新生语言都借鉴了它的思想、语法从从C+,到,到Java,再到,再到C#,还有,还有php等等回顾上次课内容26/* example1.1 calculate the sum of a and b*/#include /* This is the main program */main() int add(int x,int y); int a,b,sum; a=10; b=24; sum=add(a,b); printf(”sum= %dn,sum);/* This function calculates the sum of x

19、and y */int add(int x,int y) int z; z=x+y; return(z);函数语句预处理命令变量声明赋值语句格式化字符串注释27&格式特点v习惯用小写字母,大小写敏感v不使用行号,无程序行概念v可使用空行和空格v常用锯齿形书写格式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缩进对齐有足够的注释有合适的空行&结构特点v函数与主函数l程序由一个或多个函

20、数组成l必须有且只能有一个主函数main()l程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。v程序语句lC程序由语句组成l用“;”作为语句终止符v注释l/* */为注释,不能嵌套l不产生编译代码例: /*This is the main /* of example1.1*/ */ 非法v编译预处理命令&函数的一般结构 任何函数(包括主函数main())都是由函数首部和函数体两部分组成。 其一般结构如下: 函数类型函数类型 函数名函数名( (函数参数表函数参数表) ) 说明语句部分;说明语句部分; 执行语句部分;执行语句部分; 函数首部函数首部函数体函数体301.1.函

21、数首部函数首部 函数类型函数类型 函数名函数名 函数参数表函数参数表 例如,例例如,例1.31.3中的函数中的函数max()max(),其函数说明各部分如下其函数说明各部分如下所示。所示。 函数类型函数类型 函数名函数名 函数参数表函数参数表 intint max ( (int x , int y) )31 2.函数体函数体 函数体一般由说明语句和可执行语句两部分构成。函数体一般由说明语句和可执行语句两部分构成。 在函数说明部分的下面,一对在函数说明部分的下面,一对 内的部分。大括号内的部分。大括号必须配对使用必须配对使用 。 (1)说明语句部分)说明语句部分 说明语句部分由变量定义、自定义类

22、型定义、自定义说明语句部分由变量定义、自定义类型定义、自定义函数说明、外部变量说明等组成。函数说明、外部变量说明等组成。 int a, b; float k, h; (2)可执行语句可执行语句 一般由若干条可执行语句构成。一般由若干条可执行语句构成。 32void main()void main() intint a a ,b b ,c ; /*c ; /*变量定义部分变量定义部分* * / / /* /* 以下是可执行语句以下是可执行语句 */ scanfscanf( ( “%d%d”, &a ), &a ); scanfscanf( ( “%d%d”, &b ), &b ); c=a+b;

23、 c=a+b; printf(printf(“%d%d n n”,c);,c); 33 3.函数体说明函数体说明 (1)如果不需要,也可以缺省变量定义语句。例如,如果不需要,也可以缺省变量定义语句。例如,例例1.1 程序中缺省变量定义语句。程序中缺省变量定义语句。 (2)函数体中的变量定义语句,必须在所有可执行语函数体中的变量定义语句,必须在所有可执行语句之前。下面程序中变量定义语句句之前。下面程序中变量定义语句“ int x; ”的位置是的位置是非法的:非法的: main( ) int a , b; a=24 ; b =14; int x; x=a+b; printf( “%dn”, x )

24、; 不允许变量定义不允许变量定义语句在可执行语语句在可执行语句之后句之后341.4 运行C程序的步骤与方法n1.4.1 C程序开发的步骤pC源程序void main() int a,b,sum; a=10; b=24; sum=a+b; printf(”sum= %dn,sum);计算机不能直接计算机不能直接执行执行C的源程序的源程序35编译和执行C程序C 源程序目标文件可执行程序C语言函数库编译连接源程序:是用户创建的文件,以“.c.c”为文件扩展名保存 目标文件:是编译器的输出结果。这类文件的常见扩展名为“.o.o”或“. .objobj” 可执行文件:是连接器的输出结果。可执行文件的扩展

25、名为“.exe.exe”。 3637练习题n1。一个C程序的执行是从() A)本程序的main函数开始,到main函数结束 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束n2。以下叙述正确的是() A)在C程序中,main函数必须位于程序的最前面 B)C程序的每行中只能写一条语句 C)C语言本身没有输入输出语句 D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误38n3。以下叙述不正确的是() A)一个C源程序可由一个或多个函数组成 B)一个C源程序必须包含一个main函数 C)C程序的基本组成单位是函数 D)在C程序中,注释说明只能位于一条语句的后面n4。C语言规定:在一个源程序中,main函数的位置() A)必须在最开始 B)必须在系统调用的库函数的后面 C)可以任意 D)必须在最后39n5。一个C语言程序是由() A)一个主程序和若干子程序组成 B)函数组成 C)若干过程组成 D)若干子程序组成n6。C源程序的基本单位是()n7。一个C源程序中至少应包括一个()n8。在一个C源程序中,注释部分两侧的分界符分别为()和() 40

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号