C语言程序设计教程PPT精品课程课件全册课件汇总.ppt

上传人(卖家):三亚风情 文档编号:3184488 上传时间:2022-07-30 格式:PPT 页数:777 大小:13.96MB
下载 相关 举报
C语言程序设计教程PPT精品课程课件全册课件汇总.ppt_第1页
第1页 / 共777页
C语言程序设计教程PPT精品课程课件全册课件汇总.ppt_第2页
第2页 / 共777页
C语言程序设计教程PPT精品课程课件全册课件汇总.ppt_第3页
第3页 / 共777页
C语言程序设计教程PPT精品课程课件全册课件汇总.ppt_第4页
第4页 / 共777页
C语言程序设计教程PPT精品课程课件全册课件汇总.ppt_第5页
第5页 / 共777页
点击查看更多>>
资源描述

1、授课人:XX XX XX学院 XX 专业【全套课件全套课件】n第一章 程序设计概述n第二章 C语言概述n第三章 数据类型、运算符与表达式n第四章 程序控制结构n第五章 数组n第六章 指针n第七章 函数n第八章 用户自定义数据类型n第九章 文件第一章 程序设计概述n主要内容:l第一节 程序和程序设计语言l第二节 算法概述l第三节 结构化程序设计方法n本章小结n习题一、程序与程序设计的概念n作为一种能自动计算的机器,计算机通过执行一系列指令来完成给定的计算工作。因此,要让计算机完成某项任务,就必须将完成这项 任务的方法和具体步骤编写成计算机可以直接或间接执行的一系列指令,使之执行这些指令后,就可以

2、完成给定的任务。这样的一系列 指令的集合就称为计算机程序或简称程序,编写这些指令就是程序设计。第一章第一节二、程序设计语言n程序设计语言是一组用来定义计算机程序的 语法规则,用来向计算机发出指令。人们借助程序设计语言来编写程序,解决不同的问题。程序设计语言按照语言级别可以分为低级语言和高级语言。第一章第一节二、程序设计语言n低级语言有机器语言和汇编语言,主要由机器基本指令集构成。它依赖于所使用的计算机硬件,即与特定的机器有关。它具有运行效率高的特点,但编写复杂、费时,容易出差错,而且程序修改维护困难。n高级语言的表示方法比较接近于自然语言,在一定程度上与具体的计算机硬件无关,相对来说易于学习和

3、使用,而且也便于维护,但是运行效率不如低级语言。第一章第一节二、程序设计语言n下面对程序设计语言做进一步的解释。l1 1.第一代程序设计语言第一代程序设计语言(1GL)(1GL):机器语言:机器语言l2 2.第二代程序设计语言第二代程序设计语言(2GL)(2GL):汇编语言:汇编语言l3 3.第三代程序设计语言(第三代程序设计语言(3GL3GL):高级语言):高级语言l4 4.第四代程序设计语言(第四代程序设计语言(4GL4GL):面向问题语言):面向问题语言第一章第一节一、算法的概念n一般来说,为解决一个问题而采取的方法方法和步骤步骤,就称为算法算法。计算机算法则是用计算机求解一个具体问题或

4、执行特定任务的一组有序的操作步骤(或指令),是构成计算机程序的核心部分。著名瑞士计算机科学家 N.Wirth曾经提出一个公式:n程序=数据结构+算法n其中,数据结构主要是数据的类型和数据的组织形式,是对程序中数据的描述。算法 则是对程序中操作的描述,也就是操作步骤。第一章第二节一、算法的概念n需要注意的是,算法一般只是对处理问题 思想的一种描述,不是计算机可以直接执行的程序代码。因此算法本身是独立于计算机的,算法的具体实现则由计算机完成。从 这个意义上说,程序设计的本质就是要将 算法转化为计算机程序。n处理一个问题,可以有不同的算法。n设计和选择算法是至关重要的。不仅要保证算法正确,还要考虑算

5、法的质量质量和效率效率。第一章第二节二、算法的表示方法n描述一个算法可以有不同的方式,常见的有以下三种:l(1)使用自然语言描述算法;l(2)使用流程图描述算法;l(3)使用伪代码描述算法。第一章第二节二、算法的表示方法n下面仍以求1到100之间所有偶数的和(记为 sum)为例说明算法的3种描述方法。假设采用前面提到的最后一种算法,即先求出1到50的和再乘以2。第一章第二节二、算法的表示方法n第第1 1种:使用自然语言描述求种:使用自然语言描述求sumsum的算法。的算法。l假设初始值i为1;l假设变量sum初始值为0;l如果i50时,执行,否则转出执行;l计算sum加上i的值后,重新赋值给s

6、um;l计算i加1,然后将值重新赋值给i;l转去执行;l计算sum乘以2的值,输出sum的值,算法结束。n使用自然语言描述算法的方法比较容易掌握,但是有些操作不易表述清楚,例如循环操作。另外,还可能造成歧义,使他人对相同的一句话产生不同的理解。第一章第二节n第第2 2种:使用流程图描述求种:使用流程图描述求sumsum的算法的算法l传统的流程图由一些特定意义的图形、流程线及简要的文字说明构成,它能明确地表示算法的 运行过程。表1-1给出流程图中所使用的图形的 含义。图框图框名称名称含义含义起止框表示算法开始或结束的符号流程线表示算法流程的方向输入输出框表示算法过程中的信息输入和输出判断框表示算

7、法过程中的选择分支结构。通常用上面的顶点表示入口,根据需要用其余的顶点表示出口处理框表示算法过程中需要处理的内容。只有一个入口和一个出口第一章第二节表表1-1 1-1 流程图的图形解释流程图的图形解释二、算法的表示方法n第第2 2种:使用流程图描述种:使用流程图描述求求sumsum的算法。的算法。l用流程图描述的算法如图1-1所示。从图1-1中,可以比较清晰地看出算法的执行过程。第一章第二节图图1-1 1-1 求求sunsun的算法流程图的算法流程图二、算法的表示方法n第第2 2种:使用流程图描述求种:使用流程图描述求sumsum的算法。的算法。l传统流程图的一个主要不足是流程线的用法缺乏规范

8、。由于流程线可以转移流程的执行方向,如果使用不当或流程控制转移不明晰,容易导致程序的混乱和出错。为此,人们(I.Nassi和B.Schneiderman,1973年)设计了一种新的流程图,它没有使用流程线,而是把整个算法写在一个大框图内,这个大框图由若干个小的基本框图构成,算法按照从上到下、从左到右的顺序执行。这种流程图简称N-S流程图。第一章第二节二、算法的表示方法n第第2 2种:使用流程图描述种:使用流程图描述求求sumsum的算法。的算法。第一章第二节图图1-2 1-2 求求sunsun算法的算法的 N-S N-S流程图流程图二、算法的表示方法二、算法的表示方法n第第3 3种:使用伪代码

9、描述种:使用伪代码描述sumsum的算法的算法l伪代码是一种用来书写程序或描述算法时使用的 非正式表述方法,主要采用自然语言、数学公式和符号来描述算法的操作步骤,同时采用计算机高级语言(如C、Pascal、VB、C+、Java等)的基本 控制结构来描述算法步骤的执行顺序。第一章第二节二、算法的表示方法n第第3 3种:使用伪代码描述种:使用伪代码描述sumsum的算法。的算法。l下面是用伪代码描述sum的算法,并附有注释行。BEGIN/*算法开始*/i1;/*为变量i赋初值*/sum0;/*为变量sum赋初值*/while i=50/*当变量i第二节一、结构化程序基本控制结构n结构化程序设计方法

10、由著名的计算机科学家 E.W.Dijkstra和N.Wirth等人在20世纪60年代后期提出并逐渐发展起来,其基本思想是采用“自顶向下、逐步求精、分而治之”的原则,将一个较为复杂的原问题分解成若干相对独立的小问题,依次细化,直至各个小问题获得解决为止。第一章第三节一、结构化程序基本控制结构n按照结构化程序设计的观点,任何算法功能都可以通过三种基本控制结构以及它们的嵌套 组合来实现,这三种结构就是顺序结构、选择(分支)结构和循环结构。第一章第三节n1 1.顺序结构顺序结构l顺序结构是依次执行指令的结构。即,程序中的 指令按照顺序依次执行,每条指令都必须执行,且只执行一次,如图1-3所示,图1-4

11、是相应的N-S流程图。第一章第三节图图1-3 1-3 顺序结构顺序结构图图1-4 1-4 顺序结构顺序结构N-SN-S图图一、结构化程序基本控制结构n2.2.选择(分支)结构选择(分支)结构l选择(分支)结构根据逻辑判断的结果,做不同的处理。一种典型的选择(分支)结构是双分支 结构,如图1-5所示,图1-6是相应的N-S流程图。第一章第三节图图1-3 1-3 双分支结构双分支结构图图1-4 1-4 双分支结构双分支结构N-SN-S图图一、结构化程序基本控制结构n3.3.循环结构循环结构l在循环结构中,当条件满足时,反复执行某条件语句或语句组的操作,直到条件不满足时为止。循环结构也称重复结构。根

12、据条件设置方式和 执行方式的不同,可以有两种不同的循环结构,分别为当型循环结构和直到型循环结构,如图1-7和图1-8所示,图1-9和图1-10分别是相应的N-S 流程图。第一章第三节一、结构化程序基本控制结构n3.3.循环结构循环结构第一章第三节图图1-7 1-7 当型循环语当型循环语句句图图1-8 1-8 直到型循环结构直到型循环结构一、结构化程序基本控制结构图图1-9 1-9 当型循环语当型循环语句句图图1-10 1-10 直到型循环结构直到型循环结构二、结构化程序设计的原则和步骤n要利用计算机语言设计一个结构化的程序,一般应遵循以下几个原则:l(1)使用语言中的顺序、选择、循环等基本控制

13、结构表示程序逻辑。l(2)选用的控制结构只准许有一个入口和一个 出口。l(3)程序语句组成容易识别的块,每块只有一个入口和一个出口。l(4)复杂结构应该用基本控制结构进行组合嵌套来实现。l(5)尽量避免使用跳转语句(如GoTo、Break等 语句)。第一章第三节二、结构化程序设计的原则和步骤n结构化程序设计通常包括以下6个主要步骤。l1 1.问题分析问题分析l2 2.建立数学模型建立数学模型l3 3.算法设计算法设计u在设计算法时,要采用清晰的逻辑结构,同时充分 考虑到算法的复杂性问题,即算法的计算时间计算时间和占有占有的空间的空间应尽可能地少。l4 4.程序编码程序编码l5 5.测试测试l6

14、 6.建立程序文档建立程序文档第一章第三节n作为开篇,本章的主要目的是概要性地介绍程序设计的基本知识,共包含3个小节的内容。第一节简要说明了什么是程序、程序设计和程序设计语言,并对程序设计语言的分类进行了介绍。第二节对算法的概念、其与程序设计的关系以及 三种基本的算法表示方法进行了简单描述。第三节介绍了结构化程序设计的基本思想、基本控制结构以及主要步骤。n1.1 什么是程序设计?n1.2 低级语言和高级语言的主要区别是什么?n1.3 为什么说算法是程序设计的灵魂?n1.4 结构化程序设计的基本思想是什么?第二章 C语言概述n主要内容:l第一节 C语言的发展历史和特点l第二节 C语言程序的结构l

15、第三节 C语言程序的编译和运行n本章小结n习题一、C语言的发展历史nC语言是一种高效的编译型结构化程序设计 语言,最早由美国贝尔实验室的Dennis M.Ritchie在B语言的基础上开发出来,并于 1972年在一台DECPDP-11计算机上首次实现。n最初的C语言只是为描述和实现Unix操作系统提供一种工作语言而设计的。1973年,Ken Thompson和Dennis M.Ritchie两人合作,把 Unix系统90%以上的内容用C语言改写,即 Unix的第5版。第二章第一节一、C语言的发展历史n随后几年,贝尔实验室又对C语言进行了多次的改进,但仍局限在内部使用。直到1975年 Unix第

16、6版公布后,C语言的突出优点才引起 人们的普遍注意。n1977年出现了不依赖于具体机器的C语言编译文本可移植C语言编译程序,它使 C语言移植到其他机器时所需做的工作大大 简化,同时也推动了Unix系统迅速地在各种 机器上实现。第二章第一节一、C语言的发展历史n1978年,Brian W.Kernighan和Dennis M.Ritchie出版了名著C程序设计语言(The C Programming Language),现在此书已被翻译成多种语言,成为C语言最权威的教材之一。n1983年,美国国家标准化协会(ANSI)根据C 语言问世以来各种版本对语言的发展和 扩充,制定了一套ANSI标准,称为

17、ANSI C。1987年,ANSI又公布了新标准87ANSI C。1990年,国际标准化组织ISO接受87ANSI C为 ISO C的标准(ISO98991990)。第二章第一节二、C语言的特点n语言之所以风靡全球、被广泛使用,是因为它具有以下优点:l(1)可移植性强。l(2)语言简洁紧凑,使用方便灵活。l(3)数据类型数据类型和运算符运算符丰富多样。l(4)生成的目标代码质量好,程序执行效率高效率高。第二章第一节二、C语言的特点n当然,C语言也不是完美无缺的,在盛行的 同时也暴露出了它的局限性:l(1)C语言类型自检机制较弱,使得程序中的一些错误不能在编译时被发现。l(2)C语言本身缺乏支持

18、代码重用的机制,使得 各个程序的代码很难为其他程序所用。第二章第一节一、C语言程序的构成n为了说明语言程序结构的特点,先看下面 几个例子,这些例子体现了语言程序在组成结构上的特点。l例2.1 一个简单的例子。#include void main(void)printf(Welcome to C program!n);将上述程序输入计算机,进行编译、连接、运行后在屏幕上输出:Welcome to C program!第二章第二节一、C语言程序的构成n通过这个例子,我们可以初步看到:nC的程序结构包含预处理部分“#include ”,它的功能是提供标准输入输出函数有关的信息。在使用标准函数库中的函

19、数时,C编译系统要求程序通过预处理命令#include将提供所使用函数有关的信息(如对函数的声明)的头文件“包含”进程序。stdio.h是C编译系统 提供的一个头文件名头文件名,stdio是 “standard input&output”的缩写,该文件提供的便是有关标准输入输出函数标准输入输出函数的信息。第二章第二节一、C语言程序的构成nC的程序结构中还包含一个特殊的函数main(),称作“主函数主函数”,这是每一个C语言程序所必备必备的。其中main是函数的名字,main前面是函数函数类型类型,void表示此函数是“空类型”,即 执行此函数后没有返回值。main后面圆括号内用于定义函数参数函

20、数参数,可以使用空白或void表示没有参数。函数体由一对花括号把构成函数的语句括起来。本例子中函数体只有一个输出语句:printf(Welcome to C program!n);,它的作用是将双引号内的字符串按原样输出,“n”是换行符,即在输出“Welcome to C program!”后换行,分号分号表示该语句结束语句结束。第二章第二节一、C语言程序的构成l例2.2 求矩形的面积。/*求矩形的面积*/#include/*编译预处理命令*/void main()int x,y,area;/*声明部分,定义变量x、y、area 为整型*/*以下3行为C语句*/x=8;y=6;/*分别将8、6

21、赋值给变量x、y*/area=x*y;/*计算变量x和y的积,并将其值赋 给变量area*/printf(area is%dn,area);/*输出结果*/第二章第二节一、C语言程序的构成n以上程序的作用是求长、宽分别为x和y的矩形面积area。程序中的/*/是注释注释部分。注释可以用汉字或英文字符表示,是对程序的解释和说明,用于提高程序的可读性,在程序的 编译和运行时不起作用编译和运行时不起作用。注释可以出现在一行中的最右侧,也可以单独成为一行,如果 需要,程序中的任意一行都可以加上注释。n第5行是声明部分声明部分,可以用来声明函数或变量,本例中的声明部分定义了两个变量x和y,int表示指定

22、x和y为整型变量整型变量(有关变量的定义详见第3章)。第二章第二节一、C语言程序的构成n第8行求积,使area的值为xy。第9行中“%d”是输入输出的“格式控制符格式控制符”,用来指定输入 输出时的数据类型数据类型和格式格式。本例中“%d”表示“以十进制整数形式”输出对应输出项的值。双引号括起来的部分为“格式控制字符串”,本例中,格式控制字符串中的“area is”按原样输出,“%d”则在该位置上以十进制整数形式 输出括号内逗号右端变量area的值,即8与6的积,“n”是换行符,实现换行。因此程序运行时输出以下信息:larea is 48第二章第二节一、C语言程序的构成l例2.3 基本程序结构

23、例子:主函数与自定义函数及调用。void main()/*主函数*/int a,b,c;/*变量声明,定义整型变量a、b、c*/int add(int x,int y);/*函数声明,声明本函数要 调用的add函数*/scanf(%d,%d,&a,&b);/*输入变量a和b的值*/c=add(a,b);/*调用add函数,将函数的返回值赋给c*/printf(add=%d,c);/*输出c的值*/第二章第二节一、C语言程序的构成int add(int x,int y)/*定义函数值为整型,形式参数x、y为整型的add函数*/int z;/*add函数中的声明部分,定义本 函数中用到的整型变量z

24、*/z=x+y;return(z);/*返回z的值到该函数被调用处*/l当运行程序时输入:123 321(代表Enter键,全书同),程序输出如下:add=444第二章第二节一、C语言程序的构成n本程序包括两个函数:主函数main和被调用的函数add。add函数的作用是求两个变量的和,并返回求和结果,return语句将z的值返回到 主调函数main中。返回值z通过函数名add带回到main函数中调用add函数的位置。n程序第4行是对被调用函数add的声明,为了使编译系统能够正确识别和调用add函数,必须在调用add函数之前对add函数进行声明。有关函数声明将在第7章进一步介绍。第二章第二节一、

25、C语言程序的构成n通过以上几个例子,可以看到:l(1)C语言程序是由函数构成函数构成的,函数是C语言程序的基本单位。u每一个C语言程序都必须有且只能有一个主函数,还 可以包含任意多个不同名的函数。一个C语言程序总是从主函数开始执行,C语言规定必须用main作为主函数名。被调用的函数可以是系统提供的库函数(如printf和scanf函数),也可以是用户根据需要自己编制的函数(如例2.3中的add函数)。main后的一对圆括号中间 可以是空的,但这一对圆括号不能省略。程序中的main()是主函数的起始行,也是C语言程序执行的起始行。第二章第二节一、C语言程序的构成l(2)一个函数由两部分组成:函数

26、的首部首部和函数体函数体。u函数的首部,即函数的第一行,包括函数名、函数类型、函数属性、函数参数(形参)名、参数类型。函数参数可以省略,如main()就省略了函数参数。u函数体,即函数首部下面的大括弧内的部分。函数体内一般有声明部分声明部分和执行部分执行部分。声明部分用于定义所 用到的变量。执行部分由若干个语句组成,称为执行 语句,必须放在声明部分之后,语句的数量不限。l(3)每个C语言程序都是从main函数开始执行的,不论main函数是放在程序最前头,还是放在程序最后,或在一些函数之前,在另一些函数之后。第二章第二节一、C语言程序的构成l(4)C语言本身没有输入输出语句。输入和输出的 操作都

27、是由库函数scanf和printf等函数来完成的。l(5)可以用/*/对C语言程序中的任何部分作注释。加上必要的注释可以帮助人们阅读和理解程序。第二章第二节二、C语言程序的书写格式nC语言程序所有语句都必须以分号“;”结束,函数的最后一个语句也不例外。程序行书写 格式比较自由,既允许一行内写几条语句,也允许一条语句分写在几行上,而且C语言程序没有行号。n在注释部分中,所有“/*”和“*/”必须成对使用,且“/”和“*”以及“*”和“/”之间不能有空格,否则都会出错。第二章第二节二、C语言程序的书写格式n针对C语言程序的构成及书写格式,在编写C 语言程序时要注意如下技巧:l(1)为避免遗漏,必须

28、配对使用符号,如注释 符号、函数体的起止标识符(大括号)、圆括号等,在输入时,可连续输入这些起止标识符,然后再在其中进行插入来完成内容的编辑。l(2)注释的位置,可以单占一行,也可以跟在 语句的后面。l(3)一个语句或注释如果一行写不下,可另起 一行继续写。l(4)注释中允许使用汉字。在非中文操作系统下,看到的是一串乱码,但不影响程序运行。第二章第二节一、C语言程序的编译过程简介n1 1.编辑编辑C C语言程序语言程序l当确定了解决问题的方案后,可以用C语言系统 提供的编辑功能编写一个C语言源程序,源程序的扩展名为.c。n2 2.编译编译C C语言程序生成目标程序语言程序生成目标程序l由于计算

29、机只能识别和执行由0和1组成的二进制 文件,而不能识别和执行用高级语言编写的源 程序,所以必须先用C语言系统的编译程序(即 编译器)对其编译,以生成以二进制代码形式表示的目标程序,目标程序的扩展名为.obj。第二章第三节一、C语言程序的编译过程简介n3 3.连接生成可执行程序文件连接生成可执行程序文件l将目标程序与系统的函数库以及其他目标程序进行连接装配,才能形成可执行程序文件,可执行文件的扩展名为.exe。n4 4.运行可执行程序文件运行可执行程序文件l将可执行程序文件(扩展名为.exe)调入内存并 运行,得到程序的结果。第二章第三节二、Turbo C+3.0环境中运行C语言程序的步骤nTu

30、rbo C+3.0开发环境是一个集成编辑、编译、连接、调试的C语言开发环境。以下介绍在 Turbo C+3.0环境中运行C语言程序的步骤。l1 1.启动启动Turbo C+3Turbo C+3.0 0环境环境假设Turbo C+3.0安装在C盘的tc3子目录下。u方法一:方法一:从“开始”菜单选择“运行”,输入:cmd再输入cd c:tc3bin再输入tc,出现如图2-2所示的Turbo C+3.0主菜单界面。u方法二:方法二:进入tc.exe文件所在的子目录(如c:tc3bin),双击tc.exe文件,或直接双击桌面上tc.exe文件的快捷方式图标,也出现如图2-2所示的主菜单界面。第二章第

31、三节第二章第三节图图2-2 2-2 进入进入Turbo C+3.0Turbo C+3.0主菜单界面主菜单界面二、Turbo C+3.0环境中运行C语言程序的步骤l2 2.编辑源程序文件编辑源程序文件u从File菜单选择New(如图2-3所示),进入新建C语言程序环境(如图2-4所示),即可输入源程序,输入的源程序如下:#include void main()int i,sum=0;for(i=1;i第三节二、Turbo C+3.0环境中运行C语言程序的步骤第二章第三节图图2-3 2-3 进入新建进入新建C C语言程序环境语言程序环境图图2-4 2-4 编辑编辑C C语言程序语言程序l3 3.保

32、存源程序文件保存源程序文件u从File菜单选择Save或者直接按F2键,选取路径并起 文件名,如起名为example.c,如图2-5所示。二、Turbo C+3.0环境中运行C语言程序的步骤第二章第三节图图2-5 2-5 保存保存C C语言程序语言程序l4 4.编译与连接源程序文件编译与连接源程序文件u从Compile菜单选择Compile或者直接按快捷键Alt+F9,即可对源程序(如example.c)进行编译,生成目标程序文件(.obj),如图2-6所示;再从Compile菜单选择 Link,进行连接,得到一个可执行文件(.exe),如图 2-7所示。也可将编译与连接合并为一个步骤进行,操

33、作方法是从Compile菜单选择Make或者直接按 F9键。二、Turbo C+3.0环境中运行C语言程序的步骤第二章第三节二、Turbo C+3.0环境中运行C语言程序 的步骤第二章第三节图图2-6 2-6 编译编译C C语言程序生成目标程序语言程序生成目标程序图图2-7 2-7 连接生成可执行程序连接生成可执行程序l5 5.运行程序运行程序u从Run菜单选择Run或者直接按快捷键Ctrl+F9,运行 程序并输出结果。从Window菜单选择User Screen或者 直接按Alt+F5,切换到用户屏幕,可查看程序的运行 结果,如图2-8所示。二、Turbo C+3.0环境中运行C语言程序的步

34、骤第二章第三节图图2-8 2-8 程序的执行结果程序的执行结果l6 6.退出退出Turbo CTurbo Cu从File菜单选择Quit或者直接按Alt+X键,退出Turbo C+3.0环境。二、Turbo C+3.0环境中运行C语言程序的步骤第二章第三节n本章介绍C语言的发展历史、特点,C语言程序的基本结构,C语言程序的基本组成以及C语言程序的编译与执行。nC 语言是功能强大的计算机高级语言,它既是系统描述语言,又是通用的程序设计语言。C语言有自己规定的基本字符集、标识符、关键字、语句和标准库函数等。nC程序的基本结构是:程序由函数组成,函数由语句组成。一个完整的语言程序必须有且只能有一个主

35、函数main,可以有零个或若干个子函数。这些子函数可以是用户自定义的函数,也可以是C编译系统提供的标准库函数。每个函数都由函数说明和函数体两部分组成,函数体必须用一对大括弧括起来。nC语言程序中的每个语句都以分号作为结束标志。n一个语言程序需要经过编译和连接后才能 运行。对语言程序编译后生成目标文件 (.obj),对目标文件和库文件连接后生成可执行文件(.exe)。n2.1 试述C语言的特点。n2.2 举例说明C语言程序的基本构成和书写 格式。n2.3 参照例题,编写一个C语言程序,输出 以下信息:=Hello,World!=n2.4 编写一个C语言程序,输入两个数,输出其中大的数。同时编程实

36、现求三个数中的 最大者。n2.5 输入并运行例题中的程序,熟悉调试C 语言程序的方法与步骤。第三章 数据类型、运算符与表达式n主要内容:l第一节 C语言的数据类型l第二节 常量l第三节 简单变量l第四节 库函数l第五节 运算符和表达式n本章小结n习题一、C语言的数据类型n在使用计算机程序处理实际问题时,可能遇到各种类型的数据,例如在处理学生信息时,可能遇到这样一些数据:年龄20岁,它是 整数;身高1.75米,它是实数;姓名“张三”,它是一串字符。由此可见,我们编写的程序 应该具有处理多种类型数据的能力。n图3-1列出了C语言的数据类型。第三章第一节一、C语言的数据类型第三章第一节一、C语言的数

37、据类型nC语言的基本数据类型可以直接用于定义常量或变量,而构造数据类型需要由用户根据自己要表达的数据形式自行构造,然后才能使用。nC语言在处理常量和变量时,都是使用内存中具有特定属性的存储单元来存放数据,但两者的差别是,存储常量的内存单元,其值在程序运行中是不能被改变的;而存储变量的内存 单元,其值在程序运行中是允许改变的。第三章第一节一、整型常量n整型常量用于表达一个确定的整数,如32。它有以下三种形式:l1.十进制整数十进制整数l2.八进制整数八进制整数u以以0(零)开头(零)开头,由07的数字序列构成,如0123表示八进制数123,其值为182+281+380=83,即十进制的83。l3

38、.十六进制整数十六进制整数u以以0 x或或0X开头开头(0 x中的0是数字零),可以由数字09和字母AF或af构成,AF字母用于表示数字1015。例如,0 x2F表示2161+15160=47,即十进制的47。第三章第二节一、整型常量l4.整数的后缀整数的后缀u一个整型常量的尾部加上字母L或l,则表示该整数为长整型常量。例如,23L是十进制的长整型常量,0 x23L是十六进制的长整型常量。u也可以用后缀U或u表示无符号整型常量。例如,234U是十进制无符号整型常量,023U是八进制无符号整型常量。u后缀L和U可以同时使用,例如78LU,表示无符号长 整型,并且L和U两种后缀的顺序任意。l5.整

39、数在机内的存储形式整数在机内的存储形式u我们知道,数据在计算机中是以二进制形式进行处理的。在大多数机器中,整数采用补码的形式来存储。u对于C语言编译系统,Turbo C使用2个字节存储一个 整数,而Visual C+6.0采用4个字节存储一个整数。第三章第二节二、浮点型常量nC语言中的浮点型常量也就是实数,有两种 表示形式。l1 1.十进制小数形式十进制小数形式l2 2.指数形式指数形式u它由数字09、字母e(或E)和+、-号组成,它的形式为aEn,意为a10n,其中a为十进制整数或小数,n为十进制整数。例如:2.5e3(表示2.5103),-3.5e-2(表示 -3.510-2)。第三章第二

40、节二、浮点型常量n在表示浮点型常量时,需要注意以下几点:l(1)以指数形式表示实数时,a和n都不能省略,n必须为整数。例如,e5、3e、3e2.5等都是不合法的。l(2)以十进制小数形式表示实数时,整数和小数部分可省略其中任一个。例如,35、26.都是合法的。l(3)浮点型常量默认的是double型(双精度),如果在后面加上F或f,则其类型为float(单 精度),如2.45F、3.5e2F。l(4)如果在一个浮点型常量后面加上一个L或l,则表示为long double型,如2.4e2L。第三章第二节二、浮点型常量n实数在机内是以指数形式存储的,以float类型为例,大多数C编译系统使用4个连

41、续的字节(即32位)存储float类型数据。n由实数的存储形式可以看出,小数部分占的 位数越多,所能表示的精度越高,指数部分 占的越多,所能表示的数值范围越大。第三章第二节三、字符常量n字符常量是属于ASCII码字符集中的一个 字符,包括英文大小写字母、数字、标点符号以及特殊符号。字符常量的表现形式有两种:l(1)使用单引号括起来的一个字符。例如,a、7、?都是字符常量。l(2)使用转义字符表示方法表示的字符。转义 字符是以反斜杠“”开头,后面跟字符或数字,并用单引号括起来表示字符常量。例如,n表示 一个换行符(ASCII码值为10)。换行符是一种 控制符,在屏幕上不能显示,用于在输出时进行

42、换行控制。表3-1给出了常用的转义字符及其含义。第三章第二节三、字符常量第三章第二节三、字符常量n实际上,C语言在内存中存放字符时是用字符数据的ASCII码值存储的。例如,字符a的 ASCII码值为97,它在内存中的存储形式与 整数97是一样的。也就是说在C语言中,在 ASCII码 范围内的整数与字符可以通用。一个字符可以以字符形式输出,也可以以整数形式输出。此外,字符数据也可以参加算术运算,即相当于使用其ASCII码值进行运算。第三章第二节四、字符串常量n字符串常量是由一对双引号括起来的字符 序列,字符串中可以包含任何字符,如空格、转义符,甚至汉字。例如,How do you do.、$24

43、.5、中国n都是合法的字符串。双引号不属于字符串,而是起界定作用。n在C语言中没有提供字符串类型,而是使用 字符数组来存储字符串。字符串在机内存储时,所占的字节数等于字符串常量中的字符 个数加1。增加的一个字节用于存放0(空 字符,ASCII码为0),它作为字符串的结束 标志。第三章第二节五、符号常量及其定义nC语言提供了一种利用一个标识符来代表一个常数的方法,即定义符号常量,这样可以更 确切表明其含义。nC语言中使用#define定义符号常量,即给常量起一个名字。其语法格式为:l#define标识符常量l例如:l#define PI 3.14l#define PRICE 30第三章第二节五、

44、符号常量及其定义l在上面例子中,PI和PRICE称为符号常量。在C 语言中,define称为宏定义宏定义,#是预处理预处理命令的开始标志。一旦定义了符号常量,当编译程序对程序进行预处理时,在程序中所有使用这些符号常量的地方都会被该常量值取代。第三章第二节五、符号常量及其定义例3.2符号常量的使用。#include#define PI 3.14/*定义符号常量PI*/void main()double r,s;r=20.0;s=PI*r*r;/*使用符号常量PI*/printf(s=%fn,s);第三章第二节程序运行结果为:s=1256.000000以上的s=PI*r*r;语句在编译预处理后产生

45、如下的语句:s=3.14*r*r;五、符号常量及其定义n使用符号常量是一种好的编程风格,它的好处在于:l(1)程序便于维护。如果常量在程序中多处出现,当需要改变其值时,要修改多个地方。如果使用符号常量,只要在程序开头的宏定义部分修改一次,就能做到一改全改。这就减少了工作量,并且不易出错。l(2)提高程序可读性。从例3.2就可以看出,当我们阅读程序时看到PI,就可以知道它代表圆周率。第三章第二节一、变量的命名n变量代表计算机内存中的一个存储单元,与 常量相反,变量的值在程序运行过程中是可以改变的。变量有以下特性:变量名、变量值、变量类型、变量的存储地址、变量的存储属性。n高级语言的编译器在编译连

46、接时会给每一个 变量分配一个内存单元,变量的值就存储在该内存单元中。访问变量的值,实际上是通过 变量名找到相应的内存地址,然后对其中存储的数据进行访问。第三章第三节一、变量的命名nC语言中变量的命名是有特殊限制的。在C语言中,对变量、符号常量、函数、宏、标号、文件名等的命名的有效字符序列称为标识符标识符(ide-ntifier)。C语言规定,标识符可以由字母、数字和下划线构成,且必须由字母或下划线开头,其中字母是指英文26个字母,可以是 大写或小写。第三章第三节一、变量的命名nC语言规定,关键字不能作为变量名使用(这是将关键字也称为保留字的原因)。例如,int、if、typedef等。此外,C

47、语言中有些标识符是系统预定义的,它们在程序中有特殊的含义,例如,printf、open、ctype等,虽然可以对它们进行重新定义,但建议不要作为变量名使用。l以下是合法的标识符,可以作为变量名。n,i2,str_len,g_iMax,month,_numberl以下是不合法标识符:3d,ye#,xy,$25,int第三章第三节一、变量的命名nC 语 言 严 格 区 分 大 写 和 小 写 字 母,因 此STUDENT、student、Student是三个不同的标识符。一般使用小写字母表示变量名,大写字母表示符号常量名,这样的区分有利于增加程序的可读性。第三章第三节二、变量的基本数据类型n变量的

48、数据类型决定了该变量的取值类型、取值范围、所占的内存空间的大小以及所能 参加的运算方式等。n一个变量的数据类型可以是图3-1所列出的C 语言的数据类型中的一种。C语言基本数据 类型有以下几类:整型int及其相关类型、浮点型float及其相关类型、字符型char及其相关 类型。表3-2列出了Turbo C的基本数据类型及相关属性。第三章第三节二、变量的基本数据类型第三章第三节三、变量的类型定义n在C语言中规定必须对所有用到的变量先定义后使用。定义变量的语法格式如下:l数据类型名数据类型名 变量名表变量名表;l变量名表是一个或多个标识符,每个标识符之间用逗号“,”分隔开,例如:uint i,j,k

49、;u以上语句定义了三个整型变量i、j、k。其中int与i之间至少要留一个空格,语句最后要以分号“;”结尾,这是因为变量定义是一条语句而不是一条 命令(C语言规定一个语句的终结符是分号)。第三章第三节四、变量的初始化n一个变量被定义后,它是否就有值了呢?答案是它不是没有值,而是它的值未被确定。n因此,在使用一个变量时,必须要确保其有 确定的值,这就需要对该变量指定初值,即对变量进行初始化。n以下例子演示了对变量进行初始化的方法:ldouble d1=3.35,d2;l也可以用赋值语句给变量指定值,以上语句相当于:double d1,d2;d1=3.35;其中,d1的值被赋予23.35,而d2的值

50、是不确定的。第三章第三节四、变量的初始化n注:注:C编译器对静态局部变量和全局变量会 自动赋给初值,如果是数值类型的静态局部静态局部 变量变量和全局变量全局变量,编译器通常赋给初值初值0 0,如果是字符类型的静态局部变量和全局变量,编译器通常赋给初值空字符,即ASCII码为0的值(有关静态变量和全局变量的相关知识将在第7章中介绍)。第三章第三节一、库函数的使用方式nC语言提供的每一个库函数都在对应的某个 头文件中声明其函数原型,在使用某个库函数前都应在程序开始处包含相应的头文件。n文件包含可以用预处理命令#include来实现,例如,数学函数的原型都在文件math.h中 声明,因此要调用数学函

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(C语言程序设计教程PPT精品课程课件全册课件汇总.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|