1、12第一节 C语言出现的历史背景第二节 C语言的特点第三节 简单的C语言程序介绍第四节 运行C程序的步骤与方法第一节第一节C语言语言出现的历史背景出现的历史背景CPLCPL语言语言BCPLBCPL语言语言B B语言语言C C语言语言C+C+语言语言ALGOL60ALGOL601967年年,英英国国剑剑桥桥大大学学的的Matin Richards对对CPL做做了了简简化化,推推出出了了BCPL(Basic Combined Programming Language)语言语言BCPL语语言言缘缘于于编编写写系系统统软软件件的的需需要要,与与硬硬件件联联系系较较大大,但但较较之之汇汇编编语言高级语言
2、高级1970年年,美美国国贝贝尔尔实实验验室室的的ken Thompson对对BCPL做做了了进进一一步步简简化化,设设计计出出了了B语语言言,并并尝尝试试用用其其编编写写UNIX系统系统1972-73年年 间间,美美 国国 贝贝 尔尔 实实 验验 室室 的的D.M.Ritchie在在B语语言言的的基基础础上上设设计计了了C语语言言,并并与与Ken Thompson合合作作,将将UNIX的的90以以上上的的代代码码用用C语语言言编编写写(UNIX 5.0)。)。C语语言言既既保保持持了了B语语言言的的优优点点(精精炼炼,接接近近硬硬件件),又又克克服服了了它它们们的的缺缺点点(过过于简单,数据
3、无类型等)于简单,数据无类型等)1975年年,UNIX 6.0发布后,发布后,C语言的优点(语言的优点(较之之汇编 语言高言高级,又具有低,又具有低级语言的特点言的特点)引起人们的普遍)引起人们的普遍 注意注意 1978年年,B.W.Kernighan与与D.M.Ritchie合著合著The C Programming Language,奠定了现代,奠定了现代C语言的基语言的基 础。础。标准标准C 1983年年,美国国家标准化协会(,美国国家标准化协会(ANSI)根据)根据C语言语言 问世以来的各种版本对标准问世以来的各种版本对标准C的发展和扩充,制定了的发展和扩充,制定了 新的标准,即新的标
4、准,即ANSI C;1987年,年,ANSI 又公布了新标又公布了新标 准准 87 ANSI C。1989年,年,ANSI又公布了一个新的又公布了一个新的C 语言标准语言标准 C896u 目目前前流流行行的的各各种种版版本本的的C C语语言言编编译译系系统统大都以大都以ANSI CANSI C为标准为标准u 不不同同版版本本的的C C编编译译系系统统所所实实现现的的语语言言功功能能和和语语法法规规则则又又略略有有差差别别。因因此此读读者者应应了了解所用的解所用的C C语言编译系统的特点。语言编译系统的特点。u 教材内容以教材内容以ANSI CANSI C为为标准标准(C89)(C89)7解释解
5、释1 1:C+C+是由于开发大型应用软件的需是由于开发大型应用软件的需要而产生的,并不是所有的人都要去编写要而产生的,并不是所有的人都要去编写大型软件大型软件;解释解释2 2:面向对象的基础是面向过程。面向对象的基础是面向过程。C+C+是面向对象的语言,是面向对象的语言,C C是面向过程是面向过程的。的。C+C+学学起来比起来比C C语言困难得多,所以不太适合程语言困难得多,所以不太适合程序设计的初学者。序设计的初学者。问题:问题:既然有了面向对象的既然有了面向对象的C+C+语言,语言,为什么还要学习为什么还要学习C C语言?语言?8语言简洁、紧凑,语言简洁、紧凑,使用方便、灵活使用方便、灵活
6、3232个个关键字(保留字),关键字(保留字),9 9种控制语句种控制语句书写格式自由书写格式自由运算符丰富运算符丰富3434种运算符种运算符丰富的数据类型丰富的数据类型整型、实型、字符型,枚举型整型、实型、字符型,枚举型数组、指针、结构体、共用体,空类型数组、指针、结构体、共用体,空类型具有结构化控制语句具有结构化控制语句9条控制语句条控制语句第二节第二节C语言的特点语言的特点9语法限制不严格,设计自由度大。语法限制不严格,设计自由度大。如,对数组下标如,对数组下标“越界越界”不作检查等不作检查等“限制限制”与与“灵活灵活”是一对矛盾是一对矛盾C语言能实现汇编语言的大部分功能。语言能实现汇编
7、语言的大部分功能。如,位操作、可直接对硬件进行访问如,位操作、可直接对硬件进行访问被称为被称为“中级语言中级语言”生成目标代码质量高,执行效率高。生成目标代码质量高,执行效率高。比比“汇编语言汇编语言”低低10%20%可移植性好。可移植性好。能用于不同型号的能用于不同型号的计算机计算机10第三节简单第三节简单C程序介绍程序介绍11#include void main()printf(This is a C program.n);/*文件包含文件包含*/*/*/*主函数主函数*/*/*/*函数体开始函数体开始*/*/*/*语句语句*/*/*/*函数体结束函数体结束*/*/函数是函数是C C程序的
8、基本构成单位;程序的基本构成单位;C C程序必须程序必须有一个有一个主函数主函数mainmain 是函数开始和结束的是函数开始和结束的标志;函数体标志;函数体每个每个C C语句以分号结束语句以分号结束使用标准库使用标准库函数时函数时应在程序开头一行写:应在程序开头一行写:#include#include 例例1.11.1 输出输出一行一行信息。信息。This is a C program.This is a C program.编译预处理命令编译预处理命令标准函数库标准函数库里面的里面的printf函数函数 函数返回值函数返回值头文件头文件#include void main()/*求两数之和
9、*/int a,b,sum;/*(声明部分)定义变量为整型*/*(执行部分)以下3行为4个C语句*/a=123;b=456;sum=a+b;printf(sum is%dn,sum);/*/*/*/表示注释。表示注释。注释只是给人看的注释只是给人看的,对编对编译和运行不起作用。译和运行不起作用。所以可以用汉字或英文所以可以用汉字或英文字符表示,可以出现在一行中的最右侧,也字符表示,可以出现在一行中的最右侧,也可以单独成为一行。可以单独成为一行。例例1.2 1.2 求两数之和求两数之和#include void main()/*主函数*/int max(int x,int y);/对被调用函数m
10、ax的声明*/int a,b,c;/*定义变量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)/*求x和y中较大者*/int z;if (xy)z=x;else z=y;return(z);例例1.3 1.3 求求2 2个数中较大者个数中较大者C程序总从程序总从main函数开始执行函数开始执行形式参数(形参)形式参数(形参)实际参数(实参)实际参数(实参)(1)C程序是由函数构成的程序是由函数构成的。C程序总从
11、程序总从main函数开始执行函数开始执行,与与main函数的位置无关。函数的位置无关。(2)一个函数由两部分组成一个函数由两部分组成:函数的函数的首部首部 函数函数体体 函数体包括两部分函数体包括两部分:声明部分声明部分 执行执行部分:由若干个语句组成部分:由若干个语句组成。int max(int x,int y)int z;if (xy)z=x;else z=y;return(z);(3)每个语句最后必须有一个每个语句最后必须有一个分号分号。分号。分号是是C语句的必要组成部分。语句的必要组成部分。(4)可以用可以用/*/对对C程序中的任何一行或程序中的任何一行或数行做注释,以增加程序的可读性
12、。数行做注释,以增加程序的可读性。(5)C程序书写格式自由程序书写格式自由,一行内可以写几个语一行内可以写几个语句句,一个语句可以分写在多行上。一个语句可以分写在多行上。(6)若使用若使用scanf和和printf等标准库函数,必须等标准库函数,必须包含相应文件。包含相应文件。16第四节第四节运行运行C程序的步骤与方法程序的步骤与方法1.4.1 1.4.1 运行程序运行程序的一般步骤的一般步骤 上机上机输入与输入与编辑编辑源程序源程序 对对源程序进行源程序进行编译编译得到目标程序得到目标程序 与与库库函数的目标程序函数的目标程序连接,得到连接,得到可执可执行的目标程序行的目标程序 运行运行可执
13、行的目标程序可执行的目标程序 1.5.2上机上机运行程序的方法运行程序的方法l 可以使用不同的编译系统对可以使用不同的编译系统对C程序进行程序进行编译。目前编译。目前使用的大多数使用的大多数C编译系统都是编译系统都是集集成环境成环境(IDE)的的。常用。常用的的有有Turbo C 2.0、Turbo C+3.0、Visual C+6.0等等 l 以前,以前,Turbo C 2.0用得比较多,但用得比较多,但Turbo C 2.0是用于是用于DOS环境的,不能用鼠环境的,不能用鼠标进行操作,很不方便。目前,用的较多标进行操作,很不方便。目前,用的较多的是的是Turbo C+3.0和和Visual
14、 C+6.01.安装安装VC+6.0和进入和进入VC+6.0集成集成环境环境(1)首先首先在所在所用计算机用计算机上安装上安装Visual C+6.0系统系统。安装安装完后,双击完后,双击Visual C+6.0图标,就能进入图标,就能进入VC+6.0集成环境集成环境。或者,。或者,“开始开始/程序程序/Microsoft Visual Stuio/Microsoft Visual C+6.0”(2)在在VC+主窗口主窗口的主菜的主菜单栏单栏。其中包含。其中包含9个项个项 File、Edit、View、Insert、Project、Build、Tools、windows、Help。主窗口的左侧
15、是主窗口的左侧是项目工作区窗口项目工作区窗口(用来显示所(用来显示所设定的工作区设定的工作区的信息的信息),右侧是),右侧是程序编辑窗口程序编辑窗口(用来输(用来输入和编辑源程序)。入和编辑源程序)。2.2.输入和编辑源程序输入和编辑源程序输入和编辑源程序输入和编辑源程序(1)(1)新建新建一个一个源程序源程序(2)(2)打开一个已有的源程序打开一个已有的源程序(3)(3)通过已有的程序建立一个新源程序通过已有的程序建立一个新源程序 (1)新建一个)新建一个源程序源程序 在在VC+主窗口的主菜单栏中选择主窗口的主菜单栏中选择“File”,然后,然后选择选择“New”单击屏幕上出现的单击屏幕上出
16、现的“NewNew”对话框上方的对话框上方的“FilesFiles”,在,在其下拉菜单中其下拉菜单中选择选择“C+Source FileC+Source File”项;然后在对项;然后在对话框右半话框右半“LocationLocation”文本框中文本框中输入输入准备编辑的源程序准备编辑的源程序文件的存储路径(假定为文件的存储路径(假定为 D:cc D:cc);在其);在其上方上方的的FileFile(文件文件)文本框中输入准备编辑的源程序文件的名字(文本框中输入准备编辑的源程序文件的名字(输输入入c1-1.c c1-1.c)。说明:说明:说明:说明:VC+6.0VC+6.0可以编译后缀为可以
17、编译后缀为可以编译后缀为可以编译后缀为.c.c的的的的C C源程序,也可以编译后缀源程序,也可以编译后缀源程序,也可以编译后缀源程序,也可以编译后缀为为为为.cpp.cpp的的的的C+C+源程序。源程序。源程序。源程序。输入输入和编辑源程序和编辑源程序单击单击“NewNew”对话框对话框“OKOK”按钮后,回到按钮后,回到VC+VC+主窗口程主窗口程序,编辑窗口已激活,即可输入和编辑源程序。在输入序,编辑窗口已激活,即可输入和编辑源程序。在输入过程中如发现有错误,可以利用全屏幕编辑方法进行修过程中如发现有错误,可以利用全屏幕编辑方法进行修改编辑。改编辑。源程序源程序的保存的保存检查检查无误后,
18、在主菜单栏中选择无误后,在主菜单栏中选择“FileFile”(文件文件),并在其,并在其下拉菜单中选择下拉菜单中选择“SaveSave”(保存保存)项项(2)打开打开一个已有的一个已有的程序程序 在“我的电脑”中按路径找到已有的C程序名;双击此文件名,则进入了VC+集成环境,并打 开了该文件,程序已显示在编辑窗口中;修改后选择“File”(文件)“Save”(保存),保存 在原来的文件中;通过通过“File”(文件文件)“Open”(打开打开)(3)通过通过已有的程序建立一个新已有的程序建立一个新程序程序 打开任何一个已有的源文件 修改后选择“File”(文件)“Save As”(另存),另存
19、在 一个新文件中;3.3.程序的编译程序的编译程序的编译程序的编译单击主菜单栏中的单击主菜单栏中的“BuildBuild”,在其下拉菜单中选择,在其下拉菜单中选择“Complie c1-1.cComplie c1-1.c”项。项。在在单击编译命令后,屏幕上出现一个是否同意建立一个默认的单击编译命令后,屏幕上出现一个是否同意建立一个默认的项目工作区的对话框单击项目工作区的对话框单击“YesYes”(是是)按钮后开始编译按钮后开始编译。编译编译完成后,调试窗口出现编译信息,如果无错生成目标文件完成后,调试窗口出现编译信息,如果无错生成目标文件c1-1.objc1-1.obj,否则指出错误位置和性质
20、。,否则指出错误位置和性质。4.4.程序的程序的程序的程序的连接连接连接连接生成生成目标文件后,把程序和系统提供的资源目标文件后,把程序和系统提供的资源(如库函数、如库函数、头文件)建立连接。选择头文件)建立连接。选择“BuildBuild”“Build Build test.exetest.exe”。执行连接后,在调试输出窗口中显示连接时的信息,生执行连接后,在调试输出窗口中显示连接时的信息,生成可执行文件成可执行文件c1-1.exec1-1.exe。5 程序的执行程序的执行执行执行c1-1.exe c1-1.exe 文件,选择文件,选择“BuildBuild”“!Execute!Execute c1-1.exe c1-1.exe”程序执行后,屏幕切换到输出结果的窗口,显示输出程序执行后,屏幕切换到输出结果的窗口,显示输出结果。结果。第第1 1行行:程序的输出程序的输出 第第2 2行行:是是VC+VC+在输出完运行结果后由在输出完运行结果后由VC+6.0VC+6.0系统自动加系统自动加上的一行信息,通知用户上的一行信息,通知用户“按任何一键以便继续按任何一键以便继续”。