收藏 分享(赏)

C语言入门.ppt

上传人:hskm5268 文档编号:9422483 上传时间:2019-08-06 格式:PPT 页数:43 大小:552.50KB
下载 相关 举报
C语言入门.ppt_第1页
第1页 / 共43页
C语言入门.ppt_第2页
第2页 / 共43页
C语言入门.ppt_第3页
第3页 / 共43页
C语言入门.ppt_第4页
第4页 / 共43页
C语言入门.ppt_第5页
第5页 / 共43页
点击查看更多>>
资源描述

1、第1章 C程序设计概述,2,内容,1.1 程序设计语言、程序与程序设计 1.2 C语言概述,3,1.1 程序设计语言、程序与程序设计,1.1.1 程序设计语言 1.1.2 程序 1.1.3 程序设计,4,1.1.1 程序设计语言,程序设计语言是用以书写程序的语言 程序设计语言分类,面向过程程序语言,专用程序语言,按应用范围,(C、Pascal、FORTRAN ),按处理事物的描述要求,通用程序语言,面向对象程序语言,(C+、VB),5,按使用方式,交互式程序设计语言(如BASIC),非交互式程序设计语言(如C),按对机器依赖性、 接近自然语言的程度、 语言的发展过程,机器语言,汇编语言,高级语

2、言,1.1.1 程序设计语言,6,10110000000011000000010111110100计算12-5的机器语言代码,1.1.1 程序设计语言,CPU能理解且能直接执行的指令集合 用机器语言编写的程序形式:,机器语言,7,1.1.1 程序设计语言,用机器语言编写的程序优点: 质量高 占存储空间小 执行速度快 能由计算机直接执行 用机器语言编写的程序缺点: 依赖于具体计算机 难记忆 易出错 阅读理解困难 编程者需了解特定计算机的硬件及指令系统,机器语言,8,汇编语言,MOV AL,12DSUB AL,5DHLT计算12-5的汇编语言代码,1.1.1 程序设计语言,汇编语言是一种符号化的机

3、器语言,用助记符号代替指令操作码、操作数。 用汇编语言编写的程序形式:汇编语言与机器语言有相同的特点,但要翻译成等价的指令序列后才能由计算机执行。,9,int main(void)printf(“%dn”,12-5);计算12-5的高级语言代码,1.1.1 程序设计语言,接近于自然语言和数学语言,在一定程度上与具体计算机无关的符号化语言。 用高级语言编写的程序形式(以语言为例):,高级语言,10,1.1.1 程序设计语言,用高级语言编写程序的优点: 易学易用、代码易理解 易调试、修改和移植与机器无关 用高级语言编写程序的缺点: 不支持对硬件的直接操作 代码需要翻译指令序列后才能执行,高级语言,

4、11,1.1.1 程序设计语言,高级语言的处理方式 解释方式(Interpreter 解释程序)逐句扫描,逐句处理,逐句执行,直接获得结果。不产生等价的机器语言程序,高级语言,12,1.1.1 程序设计语言,编译方式(compiler 编译程序或称编译器),高级语言,13,1.1.1程序设计语言,程序设计语言的基本语言成分 数据成分 刻画程序所处理的数据对象的值、存储 运算成分 算术、逻辑、集合等运算控制成分 控制程序的执行流程传输成分 数据的输入输出,14,1.1.2 程序,程序概念 日常生活中程序概念 “程序”是完成事情的先后次序计算机中的程序概念 按特定的算法,用某种计算机语言描述的完成

5、指定任务的处理过程,15,1.1.2 程序,不同角度观察到的计算机程序含义 从外部表示形式看 位(bit)代码化的指令序列 符号化的指令序列 语句序列 就程序本质而言 刻画计算(数值计算与非数值计算,与处理同义)过程的处理对象(数据)与处理规则(算法)。,16,1.1.2 程序,从内容上看 包含算法描述和数据描述两个方面,是数据与算法的结合程序算法数据结构 从存储的角度看 写在纸上或存储在外部存储介质上的一个静态实体 从作用与执行的效果角度看是一个具有抽象性和动态性的逻辑实体,只有被装入主存启动执行后才起作用,17,1.1.3 程序设计,设计、编制、测试程序的方法和过程 程序设计的内容与内涵

6、设计 程序编制 程序调试 程序测试 程序验证 程序设计风格 ,18,1.1.3 程序设计,结构化程序设计方法 一种传统的程序设计方法 本质是功能设计 设计基本原则 :自顶向下,逐步细化,由抽象到具体的功能分解过程 结构化程序设计过程例 求二次方程ax2+bx+c=0的根,19,1.1.3 程序设计,S1:输入系数a,b,c S11:输入系数a,b,c S12:判别输入的a是否为0,若为0 ,转S11步重新输入系数a,b,c。 S2:求根计算 S21:计算判别式 b2-4ac disc S22:计算 (-b)/(2a) u S23:计算 v S3:输出根 S31:如果disc,计算并输出两个相同

7、的根x1x2u S32:如果disc,计算并输出两个实根x1uv ,x2uv S33:如果disc,计算并输出一对共扼复根x1uvi ,x2uvi,20,1.1.3 程序设计,排错 、测试、验证程序3个术语 联系:目的都是为了产生没有错误的程序 区别:含义不同 排错 (debugging)通常是指由程序设计者自己查找和改正程序中错误的过程,也称纠错或排错,目的是确定错误的性质、原因和位置且改正错误。 按开发程序的过程程序中的错误分为 编译期错误 连接期错误 运行期错误,21,1.1.3 程序设计,测试(testing)的目的除了发现程序存在错误外,还证实程序是否达到规定的功能,具有检验质量及性

8、能评价等含义。 验证(verification)程序正确性的理想方法是理论证明。目前验证程序的方法主要还是依靠有局限性的测试技术。,22,1.1.3 程序设计,程序设计风格指的是编码风格(coding style)即程序设计者表达程序的习惯方式 良好的程序设计风格基本指导原则: 规范化的程序书写格式 注释程序 选用顾名思义的标识符 用简明的方法表达算法 提供友善的输入输出界面,23,1.2 C语言概述,1.2.1 C语言的发展 1.2.2 C语言的特性 1.2.3 C语言程序的结构与执行 1.2.4 C语言程序例 1.2.5 C语言程序的书写 1.2.6 上机调试运行C语言程序的过程,24,1

9、.2.1 C语言的发展,C语言是在BCPL和B语言的基础上发展起来的 与著名的UNIX操作系统的产生相辅相成的 最初C语言以B.W. Kernighan和D. M. Ritchie所著的The C Programming Language为标准,谓之K&R C 美国国家标准化协会(American National Standard Institute,ANSI)于1983年开始为C语言制定统一标准,该标准颁布于1987年,称之为87 ANSI C。 1989年,ISO为C语言制定了国际标准C89。最新的C语言国际标准是1999年颁布的C99。本书按C99标准叙述。,25,1.2.2 C语言的

10、特性,C语言是一种能把高级语言的表示能力与低级语言能直接处理与硬件有关的操作能力结合起来的语言。 面向用户:方便高效地书写、修改、移植、维护应用程序 面向机器:可以实现一般只能用汇编语言才能处理的功能 C语言不依赖于任何具体机器,便于在不同的计算机系统之间移植软件; C语言编译程序本身小而紧凑,便于在不同的机器上实现。,26,1.2.2 C语言的特性,C语言中有相当丰富的数据类型 字符数据、不同长度的整型数和浮点数、以及指针、数组、结构、联合等派生出的具有结构特性的数据类型。 C语言不作严格类型检查。虽然在数据转换方面相对自动但不具数据转换的任意性。 C语言编译程序对数组下标的越界、函数参数类

11、型的一致性等不提供运行期的检查。 C语言是一种单线程控制流结构 C语言是一种结构化程序设计语言,27,1.2.2 C语言的特性,C语言是一种便于模块化程序设计的语言C语言中的函数是构成一个C语言程序的基本构件 C语言没有提供像字符串、集合、表等之类的数据运算功能,也没有定义任何像存储分配、输入输出及文件存取之类的语句。 必须通过调用函数来实现。 C语言不是块结构语言 函数不能被嵌套定义,28,1.2.2 C语言的特性,C语言的弱点: 运算优先次序与结合性复杂化,代码难于理解 某些表达方面语法不严格,可能会造成难以发现的程序错误 一些符号具有多义性,只能在上下文中才能确定其含义,初学者难于掌握。

12、,29,1.2.3 C语言程序的结构与执行,1. C语言程序的结构 一个C语言程序由一系列的外部声明组成。 外部声明 函数定义性声明 外部数据定义性声明 函数引用性声明 外部数据引用性声明,30,1.2.3 C语言程序的结构与执行,函数定义性声明指的是宣布(announce)函数的存在。 函数的一般定义形式为: 存储类别 数据类型 函数名(形式参数表) 局部数据声明语句列 ,1. C语言程序的结构,函数体,函数首部,31,1.2.3 C语言程序的结构与执行,例: int max(int a, int b, int c) int m; m=ab?a:b; return (mc?m:c); ,函数

13、定义举例,32,1.2.3 C语言程序的结构与执行,一个C语言程序必须有且仅有一个名为main的函数 一个C语言程序通常存放在一个程序文件中(单文件程序),也可以分别存放在多个程序文件中(多文件程序) 程序中所有函数(包括main函数)在程序文件中安排的位置和顺序是任意的 一个函数必须完整地包含在一个文件中,不允许跨文件存放 不同的C编译系统对程序文件的扩展名要求不同,例如TC2.0的程序文件必须以“.C”作为后缀。 一个C程序文件是C程序的一个程序模块,C编译程序总是以程序文件为单位编译。,1. C语言程序的结构,33,1.2.3 C语言程序的结构与执行,外部数据定义性声明,顾名思义即在函数

14、外部定义数据对象。 函数及外部数据引用性声明即声明要引用本程序中已经定义的函数或外部数据对象。 在函数外定义的数据对象可被程序中的诸函数公用,因此这类数据对象也称为“全局”数据对象。 区别的“定义性声明”与“引用性声明” : “定义性声明”建立函数与外部数据,需要对定义的外部数据分配存储空间; “引用性声明”则指出要引用程序中其他地方定义的函数或外部数据,并不为欲引用的外部数据分配存储空间。,1. C语言程序的结构,34,1.2.3 C语言程序的结构与执行,C语言程序总是从main函数的第一条语句开始执行 C语言程序中所有其他函数都可以相互调用 一个函数也允许自己调用自己 可以调用由C编译系统

15、定义的库函数及用户自己定义的库函数。 整个程序的执行结束 在正常情况下,main函数执行完毕 执行过程中发生各种错误,提前结束程序运行,2. C语言程序的执行,35,1.2.4 C语言程序例,例1.1 一个简单的C程序。 该程序只由一个函数组成。该例的程序代码存储在myprog1.c程序文件中,文件内容如下: #include int main(void) int number;printf(“books=”);scanf(“%d”, ,36,1.2.4 C语言程序例,例1.2 输入3个正整数,求它们的最小值(设该最小值为n),并计算1+2+n之和。 该程序由两个函数组成。程序代码存储在myp

16、rog2.c程序文件中,文件内容如下: /* This is an example */ #include int min(int a, int b, int c); /* 调用自定义函数min 的引用性声明 */ int main ( void) unsigned n1 , n2 , n3 , n,i,sum=0;/* 声明程序中使用的存放正整数的6个变量 */printf(“Input 3 positive integer:”);scanf(“%u%u%u”, /*输入3个正整数,分别存入n1 , n2 , n3*/,37,1.2.4 C语言程序例,n=min(n1, n2, n3); /

17、* 调用自定义函数min,求3个正整数的最小值 */for(i=1;i=n;i+)sum=sum+i;printf(“Minimum=%un1+2+%u=%un”, n,n, sum); int min(int a, int b, int c) /* 求3个整数的最小值的函数定义 */ if(a=b ,38,1.2.4 C语言程序例,C语言程序中注释的一般表示形式是:/* 注释内容 */注释内容可以占用若干书写行,只要以“/*”开头、用“*/”结束。C89或C99都规定C语言的注释不能嵌套。如:/* void func (void) printf(“This is a functionn”);

18、/* nested comment ,这种嵌套的注释是错误的!*/ */ 这样的注释是错误的。 C99中还允许使用以连续两个斜杠字符(/)开头的注释形式。即“/ 注释内容”。但是这种注释被限制在一行内。,39,1.2.5 C语言程序的书写, C语言程序一般也都按小写字母书写。 用#define定义的宏名通常用大写字母表示(当然也可以用小写字母表示)。 每个语句占用一书写行。 用缩进对齐的写法反映程序的不同的结构层次。 编译预处理命令行、外部数据定义、函数定义之间、函数体内的“数据声明” 部分和“语句列”部分空一行书写。,40,1.2.5 C语言程序的书写, 括住函数体的大括号,其左大括号应位于

19、函数首部第一个字符的下方,对应的右大括号亦单独占用一行,且与左大括号位置对齐。 对于for、if、while等语句中用于复合语句的大括号,按传统习惯左大括号应写在对应关键字书写行的后部,而右大括号应单独占用一行,与对应关键字的第一个字符对齐。 在书写程序时除标识符、常量、运算符等具有独立含义的对象中不能插入空格外,在对象之间插入适量的空格,它们对程序没有影响。,41,1.2.5 C语言程序的书写, 另外,若一条语句太长在一行内写不下,可以将其拆分成多行来书写。 不能在关键字、自定义标识符、常数、运算符等语言元素的中间拆分。 编译预处理命令行、在一行上写不下的字符串常量要跨行书写,可用特别的续行

20、符号“ ”来处理。但续行书写的部分必须从下一行的开头位置开始书写,否则前面的空格将作为正文内容。 对于很长的字符串常量的跨行书写可以把字符串常量拆分成几个连续书写的短字符串常量,编译前会自动地将它们连接成一个字符串常量。,printf(“a=%d,b=%d, c=%d”,a,b,c);,“A string is a sequence of characters”“surrounded by” “ double quotes”,42,1.2.6上机调试运行C语言程序的过程,43,1.2.6上机调试运行C语言程序的过程,1. 在TC 2.0集成环境中开发C语言程序 2. 在Visual C+ 6.0平台中开发C语言程序 3使用Dev C+编译系统开发C语言程序 4在UNIX/Linux系统中使用GCC编译程序开发C语言程序 5错误类型与调试手段,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报