首页计算机计算机软件C语言程序设计 02 第1章 C语言概述.pptx

02 第1章 C语言概述.pptx

页数:46页文件大小:542.3 KB来源: C语言程序设计ppt课件

本课件沿C语言的产生与发展主线展开:先交代汇编语言背景下对新语言的期待,再说明贝尔实验室的产生过程与C标准演进;随后归纳C语言作为中级语言的特点,通过示例程序讲解C程序组成,最后演示编辑、编译、连接与运行的全过程。

第1章 C语言概述,讲解知道C的发展历史
1.1 C语言的产生与发,讲解展一、产生背景在C语言诞生前、依赖于计算机硬件等内容
产生过程,列举时间:1972~1973、地点:美国贝尔实验室、目的:UNIX操作系统等内容
查看本课件的文字版(共 46 页,供检索与复制)

第1页:第1章 C语言概述

第1章 C语言概述

知道C的发展历史2.了解C语言的特点3.掌握简单的C程序介绍4.熟练掌握C程序的上机步骤教学要求教学内容1.1 C语言的产生与发展1.2 C语言的特点1.3 C程序组成1.4 C程序的上机过程

第2页:1.1 C语言的产生与发

1.1 C语言的产生与发

其可读性和可移植性都很差。

(movax,50addax,[100])一般的高级语言又难以实现对计算机硬件的直接操作(这正是汇编语言的优势);

人们盼望一种兼有汇编和高级语言特性的新语言。

  • 展一、产生背景在C语言诞生前,系统软件主要是用汇编语言写的;汇编语言程序的特点:
  • 依赖于计算机硬件

第3页:产生过程

产生过程

来源:早期的编程语言BCPL(BasicCombindProgrammingLanguage基本的组合编程语言)发展演变而来

设计人:Ken.Thompson和Dennis.M.Ritchie1.1 C语言的产生与发展

  • 时间:1972~1973
  • 地点:美国贝尔实验室
  • 目的:UNIX操作系统

第4页:C标准

C标准

K&RC:《TheCProgrammingLanguage》1978年,K&R合著;(最低标准要求,还未标准化)

ANSIC和ISOC:1983年,美国国家标准协会(ANSI)委任一个委员会开始对C语言进行标准化,经过漫长而艰苦的过程,发布了C的第一个标准。

虽然这份文档后来被国际标准化组织(ISO),并且ISO发布的修订版也被ANSI采纳了,但流行起来的是ANSI。

目前流行的C编译器一般都是以ANSI标准为基础的,各种版本编译器系统虽然基本部分是相同的,但是也有一些不同,使用时要注意识别。

1.1 C语言的产生与发展

第5页:83 ANSI C

83 ANSI C

C89:1989年被正式批准,并于1990年春颁布。常被称作“ANSI C”。(本课程的核心内容)

ISO C:1990年,C89经一些小改动成为国际标准。该版本也称为C90,并被广泛采用。

C99:2000年,ANSI采纳了ISO/IEC 9899:1999标准。

新增一些特性(不是必须的),未得广泛支持。

(谭浩强的第四版按C99标准,见该书前言。

)

C11:2011年,ANSI采纳了ISO/IEC9899:2011标准。它是C语言的最新标准。(说明语言在发展)。

  • 1983年,颁布第一个C语言标准草案
  • 87ANSIC:1987年,另一个C语言标准草案

第6页:1.2 C语言的特点

1.2 C语言的特点

  • C是中级语言(有高级语言的优势又可直接操纵硬件)
  • C语言功能齐全,运算符和数据类型丰富
  • C是结构式语言。
  • 可移植性好(较之汇编语言)
  • 语言简洁、紧凑、使用方便、灵活
  • 生成目标代码质量高,程序执行效率高。
  • 太灵活,语不易掌握,容易出错,不适合初学者
  • 运算符优先级太多
  • 类型转换限制少,检验较弱,不够安全。中级语言

第7页:结构式解释图

结构式解释图

  • 2 C语言特点会堆积木吗?结构式=堆积木

第8页:简单的C程序举例

简单的C程序举例

#include<stdio.h>main(){ printf("Hello,World!"); } 1.3 C程序组成注释; 多个单行注释构成多行注释编译预处理主函数执行主体语句严格的语法规定主函数运行结果:Hello, World!Hello, World!
  • 在屏幕上输出一行信息//example1ThefirstCProgram

第9页:求两个数之和的C程序

求两个数之和的C程序

#include<stdio.h>main(){ inta,b,sum; a=10; b=24; sum=add(a,b); printf("sum=%d\n",sum); } intadd(int x,int y)//计算X+Y的函数(右侧注释){ intz; z=x+y; return(z); } 1.3 C程序组成预处理命令注释函数语句运行结果:sum=34
  • //example2calculatethesumofaandb(单行注释)

第10页:什么是程序

什么是程序

就是一组计算机能识别和执行的指令。

每一条指令使计算机执行特定的操作。

只要执行这个程序,计算机就会“自动地”执行各条指令,有条不紊地进行工作。

程序要用某语言来描述。

第11页:C语言格式特点

C语言格式特点

main( ){ ……………….…………………………..…………..……………….………………………….……………….……………….. } main( ){ inti, j , sum; sum=0; for(i=1; i<10; i++){ for(j=1; j<10; j++){ sum+=i*j ; } } printf("%d\n",sum); }
  • 大小写敏感
  • 不使用行号,无程序行概念
  • 可使用空行和空格
  • 常用锯齿形书写格式。
  • 3 C程序组成好的程序格式:
  • 使用TAB缩进
  • { }对齐
  • 有足够的注释
  • 有合适的空行

第12页:C语言结构特点

C语言结构特点

用“;”作为语句终止符。

3.注释为注释,不能嵌套,不产生编译代码。

1.3 C程序组成例:example*/非法

  • 函数与主函数
  • 程序由一个或多个函数组成
  • 必须有且只能有一个主函数
  • 程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。2.程序语句
  • C程序由语句组成

第13页:1.4 C程序的上机过程

1.4 C程序的上机过程

上机课用一节课时间介绍一、C语言编译系统用C语言编写的源程序必须经过编译、连接,得到可执行的二进制文件,然后执行该文件,得到运行结果。

C编译系统不属于C语言的一部分,它是由计算机软件开发商开发并销售给用户使用的。

不同的软件厂商开发出了不同版本的C编译系统,功能大同小异,(与遵循的标准有关系)都可以用来对用户的源程序进行编译、连接与运行。

第14页:近年来推出的C编译系统大都是集成开发环境

近年来推出的C编译系统大都是集成开发环境

的(即把程序的编辑、编译、连接、调试和运行等操作全部集中到一个界面上进行),功能丰富,使用方便,直观易用。

用哪一种编译环境并不是一个原则问题,只要用户感到能满足要求,使用方便即可。

在会使用一种编译环境后,再改用另一种环境是不会很困难的。

20世纪90年代,TurboC2.0使用比较普遍,TC2.0是一个C语言程序集成开发环境,是用菜单进行操作的,由于不能使用鼠标操作,用户感到不方便。

因此近年来TC2.0已不多使用。

1.4 C程序的上机过程

第15页:许多人用TurboC++或VisualC

许多人用TurboC++或VisualC

++集成环境,既可以在Windows环境下方便地用鼠标进行操作,又便于以后向C++过渡(C++是从的C语言继承来的,C是面向过程,C++面向对象)。

从2008年4月开始,全国计算机等级考试全面停止TurboC2.0(简称TC)软件的使用,所有参加二级C语言、三级信息技术、网络技术和数据库技术上机考试的考生,都要在VisualC++6.0(简称VC)环境下调试运行C程序。

1.4 C程序的上机过程

第16页:在教学中

在教学中

一般程序的规模不大,功能相对简单,调试过程不会太复杂,对集成环境的功能要求不是很高,主要应是使用简单方便。

因此在本课程中着重介绍在Windows环境下使用的VisualC++6.0。

如果大家不是为了等级考试也可以不用VC,而选用任意一种C编译系统(如TC2.0),只要用得好,感到方便即可。

1.4 C程序的上机过程主要目的:让写出来的程序能够在计算机上运行。

第17页:程序开发步骤

程序开发步骤

运行可执行程序*.exe,获得结果三、各开发步骤产生的中间代码1.4 C程序的上机过程编辑链接编译执行后缀可执行代码的描述代码的名称步骤.c不可以程序设计语言源程序编辑.obj不可以机器语言目标程序编译.exe可以机器语言可执行程序链接

  • 程序代码的录入,生成源程序*.c
  • 语法分析查错,翻译生成目标程序*.obj
  • 与其它obj或库链接,生成可执行程序*.exe

第18页:使用Turbo C2.0运行程序

使用Turbo C2.0运行程序

TurboC是一个集源程序编辑、编译、连接、运行与调试于一体、用菜单驱动的集成软件环境。该软件比较小,不到2M,不需要安装。1.4 C程序的上机过程

第19页:运行一个C语言程序的一般过程

运行一个C语言程序的一般过程

  • 启动进入TC集成环境。
  • 编辑编辑(或修改)源程序。
  • 编译如果成功,则可进行下一步操作;否则,返回
  • 修改源程序,再重新编译,直至编译成功。
  • 连接如果连接成功,则进行
  • 的操作;否则,根据系统的错误提示,进行相应修改,再重新连接,直至连接成功。
  • 运行通过观察程序运行结果,验证程序的正确性。如果出现逻辑错误,则必须返回
  • 修改源程序,再重新编译、连接和运行,直至程序正确。
  • 退出退出TC集成环境,结束本次程序运行。1.4 C程序的上机过程

第20页:1.4 C程序的上机过程

1.4 C程序的上机过程

  • 请看实际操作!
  • 下载及安装Turbo C
  • 目录结构及设置
  • 上机过程及菜单的使用
  • 最后EXE文件
  • 参考:集成环境的使用

第21页:使用VisualC++

使用VisualC++

0运行程序C源程序可以在VC集成环境中进行编译、连接和运行。

现在常用的是VisualC++6.0版本,1998发行(当然还有更新的版本,如VisualC++11.beta,2012年2月29日发布,环境要求较高)。

虽然已有公司推出汉化版,但只是把菜单汉化了,并不是真正的中文版VC,而且汉化的用语不很准确,因此许多人都使用英文版。

我们以中文版为背景来介绍VC的上机操作。

其实,VC的不同版本的上机操作方法是大同小异的,掌握其中的一种,再用其他版本并不难。

1.4 C程序的上机过程

第22页:工程与工程工作区

工程与工程工作区

工程(Project)在开始编程之前,必须先了解“工程”(也称“项目”,或称“工程项目”)的概念。工程具有两种含义:

另一种则是为了创建这个应用程序所需的全部文件的集合。

(包括各种源程序、资源文件和文档等等。

绝大多数较新的开发工具都利用工程来对软件开发过程进行管理。

)1.4 C程序的上机过程

  • 一种是指最终生成的应用程序

第23页:工程工作区

工程工作区

(ProjectWorkspace)用VC编写并处理的任何程序都与“工程”有关(都要创建一个与其相关的“工程”),而每一个“工程”又总与一个“工程工作区”相关联。

工作区是对工程概念的扩展一个工程的目标生成一个应用程序,但很多大型软件往往需要同时开发数个应用程序,VC开发环境允许用户在一个工作区内添加数个工程,其中有一个是活动的(缺省的),每个工程都可以独立进行编译、连接和调试。

1.4 C程序的上机过程

第24页:通过“工程工作区”来组织工程实际

通过“工程工作区”来组织工程实际

上,VC是通过“工程工作区”来组织工程及各相关元素的,就好像是一个工作间(对应一个独立的文件夹),以后程序所牵扯到的所有文件、资源等元素都将放入到这一工作间中,从而使得各个工程之间互不干扰,使编程工作更有条理,更模块化。

最简单情况下,一个工作区中用来存放一个工程,代表着某一个要进行处理的程序(我们先学习这种用法)。

但如果需要,一个工作区中也可以用来存放多个工程,其中可以包含该工程的子工程或者与其有依赖关系的其他工程。

1.4 C程序的上机过程

第25页:可看出

可看出

“工程工作区”就像是一个“容器”,由它来“盛放”相关“工程”的所有有关信息,当创建新“工程”时,同时要创建这样一个“工程工作区”,而后则通过该“工作区”窗口来观察与存取此工程的各种元素及其有关信息。

创建“工程工作区”后创建的文件系统将创建出一个相应的“工作区”文件(.dsw),用来存放与该工作区相关的信息;

另外还将创建出的其他几个相关文件是:工程文件(.dsp)以及选择信息文件(.opt)等。

1.4 C程序的上机过程

第26页:“工程”类型编制并处理C++程序时要创建

“工程”类型编制并处理C++程序时要创建

“工程”,VC已经预先为用户准备好了近20种不同的“工程”类型以供选择,选定不同的类型意味着让VC6系统帮着提前做某些不同的准备以及初始化工作(例如,事先为用户自动生成一个所谓的底层程序框架或称框架程序,并进行某些隐含设置,如隐含位置、预定义常量、输出结果类型等)。

“工程”类型中,其中有一个为“Win32ConsoleApplication”,它是我们首先要掌握的、用来编制运行C++程序方法中最简单的一种。

1.4 C程序的上机过程

第27页:此种类型的程序运行时

此种类型的程序运行时

将出现并使用一个类似于DOS的窗口,并提供对字符模式的各种处理与支持。

实际上,提供的只是具有严格的采用光标而不是鼠标移动的界面。

此种类型的工程小巧而简单,但已足以解决并支持本课程中涉及到的所有编程内容与技术,使我们把重点放在程序的编制而并非界面处理等方面,至于VC支持的其他工程类型(其中有许多还将涉及到Windows或其他的编程技术),有待在今后的不断学习中来逐渐了解、掌握与使用。

如何创建“工程”在此不介绍,我们采用系统默认方式自动创建。

1.4 C程序的上机过程

第28页:VisualC++6.0安装与启动

VisualC++6.0安装与启动

VisualC++被整合在VisualStudio之中,但仍可单独安装使用。

VisualStudio(可视化工作室,开发工具包系列产品)是微软公司推出的开发环境,VisualStudio可以用来创建Windows平台下的Windows应用程序和网络应用程序等。

本课程提供给大家的是单独的“VC++6.0中文版”软件(全国等级考试C语言上机软件),直接运行该软件,并按屏幕上的提示进行安装即可。

安装结束后,在Windows的“开始”菜单的“程序”子菜单中就会找到“MicrosoftVisualC++6.0”即可启动。

可在桌面建立快捷图标。

1.4 C程序的上机过程

第29页:启动后

启动后

VC++6.0的主窗口如图所示。1.4 C程序的上机过程主菜单栏项目工作区窗口程序编辑窗口信息窗口工具栏

第30页:源程序的输入和编辑

源程序的输入和编辑

  • (多文件的操作不做介绍)
  • 新建一个C源程序的方法
  • 创建新文件
  • 主菜单栏中选择:“文件/新建”
  • 新建(New)对话框中
  • 选择:“文件/C++SourceFile”
  • 在“位置”上输入:存储路径(如D:\TT)
  • 在“文件”上输入:源程序文件的名字
  • 单击:“确定”,回到VC主窗口
  • 编辑并保存文件
  • 程序编辑窗口输入:源程序内容
  • 主菜单栏中选择:“文件/保存”1.4 C程序的上机过程

第31页:创建新文件操作截图

创建新文件操作截图

  • 创建新文件操作图示1.4 C程序的上机过程

第32页:创建新文件操作截图

创建新文件操作截图

创建新文件操作图示1.4 C程序的上机过程该项的功能是建立新的C++源程序文件由于VC++既可以用于处理C++源程序,也可以用于处理C源程序,故选择该选项。

源程序文件的名字该例表示即将进行输入的C源程序以ABC.c为名存放在D:\CC目录下。

注意:指定的文件名后缀为.c;

默认为.cpp,建立的是C++源程序,两者是有差别的。

源程序文件的存储路径该例表示准备编辑的源程序文件将存放在D:\CC。

回到主窗口,编辑C源程序。

第33页:编辑保存文件操作截图

编辑保存文件操作截图

编辑保存文件操作图示1.4 C程序的上机过程文件名# include<stdio.h>void

main( ){ printf("厦门大学统计系\n"); } 可以看到光标在程序编辑窗口闪烁,表示程序编辑窗口已激活,可以输入和编辑源程序了。如果经检查无误,则将源程序保存在前面指定的文件ABC.c中。

第34页:编辑一个已有的程序的方法

编辑一个已有的程序的方法

打开已编辑并保存过C源程序文件夹中双击:“已有的C程序名”或主菜单栏中选择:“文件/打开”或VC窗口中按:“Ctrl+O”快捷键或工具栏中双击:“打开”小图标

把修改后内容保存在原来的文件中主菜单栏中选择:“文件/保存”或VC窗口中按:“Ctrl+S”快捷键或工具栏中双击:“保存”小图标1.4 C程序的上机过程

第35页:通过已有的程序建立一个新程序

通过已有的程序建立一个新程序

的方法如果已有C源程序,则可通过旧程序来建立新程序,这样做比重新输入一个新文件省事,因为可利用原文件中部分内容。方法如下:

注意:不要错用“文件/保存”操作,而修改了原有文件(ABC.c)的内容。1.4 C程序的上机过程

  • 打开任何一个已有的源文件(如ABC.c)方法如上一页
  • 修改文件内容并另存新文件(如XYZ.c)
  • 主菜单栏中选择:“文件/另存为”

第36页:程序的编译

程序的编译

由于建立或保存文件时已指定了源文件名字ABC.c,因此在“组建”的“编译”项中就自动显示了当前要编译的源文件名ABC.c。如图所示。1.4 C程序的上机过程

  • 在编辑和保存了源文件(如ABC.c)以后,需要对该源文件进行编译。
  • 具体操作:主菜单栏中选择:“组建/编译ABC.c”

第37页:在选择编译命令后

在选择编译命令后

在进行编译时,编译系统检查源程序中有无语法错误,然后调试信息窗口输出编译的信息,如果有错,就会指出错误的位置和性质。1.4 C程序的上机过程

  • 屏幕上出现一个对话框:
  • “此编译命令要求一个有效的项目工作区,你是否同意建立一个默认的项目工作区?”
  • 单击“是”按钮,表示同意由系统建立默认的项目工作区,然后开始编译。

第38页:编译过程截图

编译过程截图

编译过程图示1.4 C程序的上机过程由系统建立默认的项目工作区,然后开始编译。

表示源程序ABC.c中无语法错误,通过编译并生成ABC.obj文件。

如果程序有错,就会指出错误的位置和性质。

第39页:编译错误截图

编译错误截图

编译错误图示1.4 C程序的上机过程指出源程序有1个error和0个warning可以看到出错的位置c(6)和性质errorc2143。

第40页:程序的连接

程序的连接

在得到目标程序后,就可以对程序进行连接了。

由于刚才已生成了目标程序ABC.obj,编译系统据此确定在连接后应生成一个名为ABC.exe的可执行文件,在菜单中显示了此文件名。

在完成连接后,在调试信息窗口中显示连接时的信息,说明没有发现错误,生成了一个可执行文件ABC.exe。1.4 C程序的上机过程

  • 具体操作:主菜单栏中选择:“组建/组建[ABC.exe]”

第41页:连接过程截图

连接过程截图

连接过程图示1.4 C程序的上机过程表示没有发现连接错误,生成了一个可执行文件ABC.exe。如果连接有错,就会指出错误的性质。

第42页:一次完成编译与连接主菜单栏中选择

一次完成编译与连接主菜单栏中选择

对于初学者来说,还是提倡分步进行程序的编译与连接,因为程序出错的机会较多,最好等到上一步完全正确后才进行下一步。

对于有经验的程序员来说,在对程序比较有把握时,可以一步完成编译与连接。1.4 C程序的上机过程

  • “组建/组建[ABC.exe]”或VC窗口中按“F7”键

第43页:程序的执行

程序的执行

  • 执行可运行文件具体操作:主菜单栏中选择:“组建/!执行[ABC.exe]”
  • 程序执行图示:1.4 C程序的上机过程

第44页:运行结果显示程序执行后

运行结果显示程序执行后

屏幕切换到输出结果的窗口(早期DOS界面),显示出运行结果,如图所示。

1.4 C程序的上机过程第1行是程序的输出,是我们所要的。

第2行并非程序所指定的输出,而是VC在输出完运行结果后由VC系统(集成环境)自动加上的一行提示信息,通知用户:“按任何一键以便继续”当按下任一键后,输出窗口消失,回到VC的主窗口,这时的控制权在VC上。

第45页:结束程序的操作

结束程序的操作

实际上可执行文件(如:ABC.exe)是独立于源文件(ABC.c)和VC环境的,在操作系统下可直接运行。

如果需要将自己设计的产品供他人使用,只需将产生的可执行文件(如:ABC.exe)复制给他人即可,无需复制整个工程文件夹或复制.C的源文件文件。

1.4 C程序的上机过程

  • 若已完成对一个程序的操作,不再对它进行其他处理,应关闭工作区以结束操作。
  • 主菜单栏中选择:“文件/关闭工作空间”
  • 可执行文件的独立性

第46页:一些操作的说明

一些操作的说明

getchar();
  • 编译时,语法错误行的定位
  • 链接错误原因1.函数名拼写错误2.两个main函数3.运行窗口没有关闭
  • 直接再windows运行EXE文件,加
  • 窗口的显示控制(菜单:查看、窗口)
顶部目录