《c语言入门到精通1.ppt》由会员分享,可在线阅读,更多相关《c语言入门到精通1.ppt(54页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第1章步入C的世界Hello Cp 了解C语言 p C编程前的准备C常用开发环境 p 开始C编程第1个C程序 p C程序的组成 p 跟我上机 第1章步入C的世界Hello C 了解C语言 p C编程前的准备C常用开发环境 p 开始C编程第1个C程序 p C程序的组成 p 跟我上机 第1章步入C的世界Hello C 了解C语言 C编程前的准备C常用开发环境 p 开始C编程第1个C程序 p C程序的组成 p 跟我上机 第1章步入C的世界Hello C 了解C语言 C编程前的准备C常用开发环境 开始C编程第1个C程序 p C程序的组成 p 跟我上机 第1章步入C的世界Hello C 了解C语言 C编
2、程前的准备C常用开发环境 开始C编程第1个C程序 C程序的组成 p 跟我上机 第1章步入C的世界Hello C 了解C语言 C编程前的准备C常用开发环境 开始C编程第1个C程序 C程序的组成 跟我上机 1.1 了解C语言 1.1.1 C的历史 1.1.2 C的特点 1.1.3 为什么要用C 1.1 了解C语言 C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有低级汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。正因为此,它的应用范围广泛。1.1.1 C的历史C语言的诞生及发展历程如图所示。A 语言语言CPL 语
3、言语言BCPL 语言语言B 语言语言C 语言语言1.1.1 C的历史第1阶段:A语言C语言的发展颇为有趣,它的原型ALGOL 60语言,也成A语言。ALGOL60是一种面向问题的高级语言,它离硬件比较远,不适合编写系统程序。ALGOL 60也就是算法语言60,它是程序设计语言由技艺转向科学的重要标志,其特点是局部性、动态性、递归性和严谨性。1.1.1 C的历史第2阶段:CPL语言1963年,剑桥大学将ALGOL 60语言发展成为CPL语言(Combined Programming Language),CPL语言在ALGOL60的基础上与硬件接近了一些,但规模仍然比较宏大,难于实现。1.1.1
4、C的历史第3阶段:BCPL语言1967年,剑桥大学马丁理察斯(Martin Richards)对CPL语言进行了简化,推出了BCPL语言(Basic Combined Programming Language)语言。BCPL语言是计算机软件人员在开发系统软件时作为记述语言使用的一种结构化程序设计语言,它能够直接处理与机器本身数据类型相近的数据,具有与内存地址对应的指针处理方式。1.1.1 C的历史第4阶段:B语言在 1970 年代初期,时任美国贝尔实验室的肯汤普逊将BCPL进行了修改,设计出比较简单而且很接近硬件的语言,取名B语言。B语言还包括了汤普逊的一些个人偏好比如在一些特定的程序中减少非
5、空格字符的数量。和BCPL以及FORTH类似,B语言只有一种数据类型,计算机字。大部分操作将其作为整数对待,例如进行+、-、*、/操作,但其余操作将其作为一个复引用的内存地址。在许多方面B语言更像是一个早期版本的C语言,它还包括了一些库函数,其作用类似于C语言中的标准输入/输出函数库。1.1.1 C的历史第5阶段:C语言但是由于B语言过于简单,数据没有类型,功能也有限,美国贝尔实验室的丹尼斯里奇(Dennis M.Ritchie)在B语言的基础上最终设计出了一种新的语言,他取名C语言,并试着以 C编写 Unix。1972年,丹尼斯里奇完成 C的设计,并成功地利用 C编写操作系统,降低了作业系统
6、的修改难度。1.1.1 C的历史1978年,C语言先后移植到大、中、小、微型计算机上,风靡世界,成为最广泛的几种计算机语言之一。1983年,美国国家标准委员会(ANSI)对C语言进行了标准化,于1983年颁布了第一个C语言标准草案(83 ANSI C),后来于1987年又颁布了另一个C语言标准草案(87 ANSI C)。1994年,ISO修订了C语言的标准。最新的C语言标准是在1999年颁布并在2000年3月被ANSI采用的 C99,正式名称是ISO/IEC9899:1999。1.1.2 C的特点1.功能强大、适用范围大、可移植性好许多著名的系统软件都是由C 语言编写的。C语言可以像汇编语言一
7、样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。C语言适合于多种操作系统,如DOS、UNIX等。对于操作系统、系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它解释型高级语言,一些大型应用软件也是用C语言编写的。1.1.2 C的特点2.运算符丰富C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。运算符的介绍见第4章中的相关内容。1.1.2 C的特点3.数据结构丰富C语言的数据类型有:整形、实型、字符型、数组类型
8、、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。指针的介绍见第11、12两章中的相关内容。1.1.2 C的特点4.C是结构化语言5.C语言允许直接访问物理地址,可以直接对硬件进行操作6.其他特性,C语言语法限制不太严格,语法比较灵活,生成目标代码质量高,程序执行效率高。1.1.3 为什么要用C C语言相比其他高级语言如(C+,Java,C#)是低级语言,它可以让更好的了解计算机是如何工作的。比如数据在内存中是如何存储的,如何直接访问内存中的数据等等。可以不夸张的说,C语言是其他任何高级语言的基础,学好C语言,你就可以更容易掌握其他语言
9、。语言都是相通的,C更专注于语言的实质,而不需要分散更多精力在集成开发环境的使用和抽象的数据概念上。C语言执行效率高、速度快,这是毋庸置疑的最优秀特性。1.2 C编程前的准备C常用开发环境 1.2.1 认识Visual C+6.0 1.2.2 认识Turbo C 2.0 1.2 C编程前的准备C常用开发环境C语言常用的集成开发环境主要有Microsoft Visual C+6.0、Microsoft Visual C+.NET、Turbo C以及Borland C+Builder等。1.2 C编程前的准备C常用开发环境1.Microsoft Visual C+6.0不仅是一个C+编译器,而且是
10、一个基于Windows操作系统的可视化集成开发环境。2.Microsoft Visual C+.NET或Microsoft Visual C+2005Microsoft Visual Studio 6.0的后续版本,是一套完整的开发工具集,在.NET平台下,调用Framework的类库,功能强大,其中包含了Visual C+开发组件。3.Turbo C美国Borland 公司的产品,目前的最常用的版本是Turbo C 2.0。4.Borland C+BuilderBorland公司继Delphi之后又推出的一款高性能集成开发工具,具有可视化的开发环境。1.2.1 认识Visual C+6.0安
11、装Microsoft Visual Studio 6.0或单独安装Visual C+6.0之后,选择【开始】【程序】【Microsoft Visual Studio 6.0】【Microsoft Visual C+6.0】菜单命令,即可启动Visual C+6.0。1.2.1 认识Visual C+6.01.2.1 认识Visual C+6.01.菜单栏通过菜单栏中的菜单命令,你可以轻松地完成编辑程序和资源、编译、链接及调试程序等各项工作。常用菜单如下。【File】文件菜单:包含了各种对文件进行操作的选项,如加载、保存、打印和退出等。【Edit】编辑菜单:用来使用户便捷地编辑文件内容,如进行删
12、除、复制等操作,其中的大多数命令功能与Windows中的标准字处理程序的编辑命令一致。【View】查看菜单:主要用来改变窗口和工具栏的显示方式,激活调试时所用的各个窗口等。【Insert】插入菜单:主要用于项目及资源的创建和添加。【Project】工程菜单:主要用于项目的操作,如项目中添加源文件等。【Build】编译菜单:主要用来应用程序的编译、连接、调试、运行。【Tools】工具菜单:主要用于选择或制定开发环境中的一些实用工具。【Windows】窗口菜单:主要用于文档窗口的操作。如排列文档、打开或关闭一个文档窗口、重组或切分文档窗口等。【Help】帮助菜单:提供了大量详细的帮助信息1.2.1
13、 认识Visual C+6.02.工具栏工具栏中提供了大部分常用的操作命令3.Workspace(工作区)窗口工作区窗口共有以下3个标签,分别代表3种视图形式。【Class View(类视图)】:用以显示项目中的所有的类信息。【ResourceView(资源视图)】:包含了项目中所有资源的层次列表。每一种资源都有自己的图标。在字符界面或者控制台界面中没有该项,只有windows程序下才出现。【FileView(文件视图)】:可将项目中的所有文件分类显示,每一类文件在【FileView】页面中都有自己的目录项。可以在目录项中移动文件,还可以创建新的目录项,以及将一些特殊类型的文件放在该目录项中。
14、4.Output(输出)窗口显示程序编译和连接错误和警告。5.编辑窗口可进行输入、修改以及删除代码等操作。1.2.2 认识Turbo C 2.01.启动Turbo C 2.0 命令行方式启动选择【开始】【程序】【附件】【命令提示符】,在打开的命令行中输入Turbo C 2.0的路径,如“C:TURBOC2TC”,按【Enter】键,即可进入TC集成环境的主菜单窗口。从Windows环境进入在Windows XP环境中,如果本机中已安装了Turbo C,可以在桌面上建立一个快捷方式,双击该快捷方式即可进入C语言开发环境。或者选择【开始】【运行】,在运行对话框中输入程序的路径,单击【确定】按钮即可
15、。1.2.2 认识Turbo C 2.02.Turbo C 2.0开发环境介绍Turbo C 2.0的主界面可以分为四个部分,由上至下分别为:菜单栏、编辑区、信息区和功能键索引。1.2.2 认识Turbo C 2.01.2.2 认识Turbo C 2.0 菜单栏:包括【File】(文件)菜单、【Edit】(编辑)菜单、【Run】(运行)菜单、【Compile】(编译)菜单、【Project】(项目)菜单、【Options】(选择)菜单、【Debug】(调试)菜单和【Break/watch】(断点及监视)菜单等。编辑区:编辑区的第一行为编辑状态行,用来指示游标所在位置、文件名称以及编辑相关的状态
16、信息。其他为代码编辑区域。信息区:显示程序编译和连接错误和警告。功能键索引:Turbo C 2.0不支持鼠标操作,功能键索引给出了功能按键的索引号。1.3 了解C语言 1.3.1 程序编写及运行流程 1.3.2 在Visual C+6.0中开发C程序 1.3.3 在Turbo C中开发C程序 1.3.1 程序编写及运行流程要转换C语言到可执行文件,需要借助的工具是编译器(Compiler),转换的过程叫做编译。经过编译,生成目标程序,目标文件是机器代码,还是不能够直接执行的,它需要其他文件或者其他函数库辅助,才能生成最终的可执行文件,这个过程称之为连接,使用的工具叫做连接器。1.3.1 程序编
17、写及运行流程1.3.2 在Visual C+6.0中开发C程序【范例1-1】使用Visual C+6.0创建C程序并运行 01#include/*包含标准输入输出头文件*/02 int main(void)/*主函数*/03 /*函数体开始*/04 printf(“Hello C!n”);/*函数体*/05 return 0;/*返回值*/06 /*函数体结束*/1.4 C程序的组成 1.4.1 完整的C程序 1.4.2#include的秘密 1.4.3 程序的入口main函数 1.4.4 数据集装箱常量和变量 1.4.5 何以输出程序结果输出函数1.4.6 注释1.4.7 代码的规矩1.4.
18、1 完整的C程序【范例1-2】计算圆的周长。01 /*内容:计算圆周长02 目的:了解C语法*/03#include/*包含标准输入输出头文件*/04#include/*包含数学函数库头文件*/05#define PI 3.14/*定义常量PI,它的值是3.14*/06 int main()/*主函数*/07 08 int radius;/*整型变量,存储半径值*/09 float circum;/*浮点型变量,存储周长值*/10 radius=2;/*半径赋值*/11 circum=2*PI*radius;/*计算周长*/12 printf(变量radius地址是%dn,&radius);/
19、*输出变量radius存储地址*/13 printf(半径开方值是%fn,sqrt(radius);/*输出变量radius的开方值*/14 printf(半径是%d,周长是%fn,radius,circum);/*输出变量radius值和circum值*/15 return 0;/*返回值*/16 /*函数体结束*/1.4.2#include的秘密一个C程序可以由有若干个源程序文件组成,每一个源文件可以有由若干个函数和预处理命令以及全局变量声明部分组成,每一个函数有函数首部和函数体组成。C程序的结构如下图所示。1.4.2#include的秘密C程序程序源文件源文件1源文件源文件2源文件源文件
20、n宏定宏定义义声明声明函数函数1函数函数n函数部首函数部首函数体函数体1.4.3 程序的入口main函数每个c程序必须有而且只有一个主函数,也就是main函数,它是程序的入口。使用main函数有时也作为一种驱动,按次序控制调用其他函数,c程序是由函数构成的,这使得程序容易实现模块化;main函数后的“()”不可省略,表示函数的参数列表;”“”和“”是函数开始和结束的标志,不可省略。1.4.3 程序的入口main函数main()Fun1()Fun2()Fun3()第一步第一步第二步第二步第三步第三步返回返回返回返回返回返回1.4.3 程序的入口main函数int main()Fun1();Fun
21、2();Fun2();return 0;函数名称函数名称函数部首,表示函数部首,表示函数返回类型函数返回类型空参数列表空参数列表函数体函数体调用的函数调用的函数函数返回值函数返回值1.4.4 数据集装箱常量和变量常量是不能变动的数据,还可以理解它为字面值。如在范例1-2代码的第5行中,定义了1个字符常量PI,并赋值为3.14,后面就可以使用PI来代替3.14。变量是可以改变的量。数学当中常用到变量x用来表示一个值,比如经过计算x的值为2了,再计算y=x*x时,x就代表数值2,从而可以得到y的值4;又经过计算x的值变为了5,再进行其他含有x的算式时,x就表示5而不再是2了,像x这样可以改变的量就
22、称为变量。如在范例1-2代码的第8、9行中,定义了2个变量,分别用于存储半径和周长的值。关于常量和变量,在第2章中详细介绍。1.4.5 何以输出程序结果输出函数因为C语言是跨平台的,在不同的系统上输入、输出的处理是不同的,所以C语言不提供输入/输出,只是调用具体平台操作系统的库函数来实现输入、输出。在主函数当中包含了标准输入输出头文件“stdio.h”后,调用了printf函数,用来实现输出“Hello C!”的功能。printf()函数功能是把数据发送到标准系统显示设备上,并实现格式化输出,把这样的数据称为字符串,字符串需要使用双引号引起来。printf(“Hello C!n”);/*调用函
23、数*/1.4.5 何以输出程序结果输出函数进一步对该函数做解释需要注意的是有以下几点:函数名称后必须有小括号,不能省略,这是函数的特征;函数结束必须有分号,不能省略;字符串结尾有这样的内容“n”,它叫做转义符,表示的含义是把光标移动到下一行的行首,也就是回车换行,因为无法直接通过键盘输入换行的指令,所以需要使用转移符;又比如输出内容后希望返回到该行的行首,重新输出内容,键盘上也没有对应的功能键,就可以使用回车符转义符“r“,来代替。当然义移还包含其他内容,后续章节中会详细讲述。1.4.6 注释大家已经注意到,很多语句后面都跟有“/*”和“*/”符号,它表示什么含义呢?在前文已经说过,在编辑代码
24、的过程中,希望加上一些说明的文字,来表示代码的含义,这是很有必要的。1.4.6 注释注释的要求如下。使用“/*”和“*/”表示注释的起止,注释内容写在这两个符号之间,注释表示对某语句的说明,不属于是程序的代码的范畴,比如范例1-1和1-2代码中“/*”和“*/”之间的内容。“/”和“*”之间没有空格。注释可以注释单行也可以注释多行,而且注释不允许嵌套,嵌套是会产生错误的,比如:/*这样的注释/*特别*/有用*/这段放在程序中不但没有起到说明的作用,反而使程序保存,原因是“这样”前面的“/*”与“特别”后面的“*/”匹配,注释结束,而“有用*/”就被编译器认为是违反语法规则的代码 1.4.7 代
25、码的规矩从书写代码清晰,便于阅读,理解,维护的角度出发,在书写程序时应遵循以下规则:一个说明或一个语句占一行。把空格符、制表符、换行符等统称为空白符。除了字符串,函数名和关键字,C忽略所有的空白符,在其它地方出现时,只起间隔作用,编译程序对它们忽略不计。因此在程序中使用空白符与否,对程序的编译不发生影响,但在程序中适当的地方使用空白符将增加程序的清晰性和可读性。1.4.7 代码的规矩intmain()printf(“Hello C!n”);/*这样的写法能运行,但是太乱,很不妥*/1.4.7 代码的规矩 用“”和“”括起来的部分,通常表示了程序的某一层次结构。“”和“”一般与该结构语句的第一个
26、字母对齐,并单独占一行。int main()printf(“Hello C!n”);return 0;/*这样的写法能运行,但是阅读起来比较费事*/1.4.7 代码的规矩 低一层次的语句通常比高一层次的语句留有一个缩进,然后再书写。一般来说缩进指的是存在两个空格或者一个制表符的空白位置。int main()printf(“Hello C!n”);printf(“Hello C!n”);return 0;1.4.7 代码的规矩 在程序中书写注释,注释可以明白程序做了什么,同样可以增加程序的清晰性和可读性。1.6 跟我上机 1.编写C程序,在命令行中输出如下一行内容:“你好,世界!”1.6 跟我上机 2.编写C程序,在命令行中输出如下的四行内容:one 123two 456three 789