新世纪计算机基础教育丛书丛书 主编 谭浩强 C 程序设计 (第二版)

Slides:



Advertisements
Similar presentations
甘肃工业职业技术学院信息工程系 2009 年 12 月 张燎 内容提要 ★程序设计语言的发展 ★ C 语言发展史 ★ C 语言程的特点 ★ 学好 C 语言的重要性 ★ C 语言基本结构 ★ C 语言的开发环境 第一章 C 语言概述.
Advertisements

C 程序设计 潘荣江 vr.sdu.edu.cn/panrj
语言 C —— 带你认识 入门篇  了解计算机语言的概念及其发展史  了解常见的高级语言  掌握指令、程序、源程序、目标程序的概念  理解 C 语言的基本特点和上机步骤 学习目标.
C/C++ 程序设计 吉林财经大学 管理科学与信息工程学院 李艳东 : Tel :
主讲:王幸民 理学院计算机基础教学部.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
C语言程序设计 主讲教师 :张群燕 电话:
授课教师:江星玲 1.
培养目标 1.建立基本的程序设计概念体系,掌握基础程序设计方法。
Tool Command Language --11级ACM班 金天行.
杨玉蓓 主讲 武汉工程大学邮电与信息工程学院
C语言程序设计.
Oracle数据库 Oracle 子程序.
C++程序设计 主讲:王兴波教授 1.
C语言实验 第一课 标题:学号+姓名.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
在PHP和MYSQL中实现完美的中文显示
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
第1章 程序设计和C语言 1.1 什么是计算机程序 1.2 什么是计算机语言 1.3 C语言的发展及其特点 1.4 最简单的C语言程序
第八章 菜单设计 §8.1 Visual FoxPro 系统菜单 §8.2 为自己的程序添加菜单 §8.3 创建快捷菜单.
什么是C语言 编写HelloWorld程序 注释
管理信息结构SMI.
走进编程 程序的顺序结构(二).
程序设计基础.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第二章 Java语言基础.
谭浩强 编著 中国高等院校计算机基础教育课程体系规划教材 C++程序设计.
第七章 操作符重载 胡昊 南京大学计算机系软件所.
Gzip编译及调试 曹益华
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
SOA – Experiment 2: Query Classification Web Service
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
1.3 C语言的语句和关键字 一、C语言的语句 与其它高级语言一样,C语言也是利用函数体中的可执行 语句,向计算机系统发出操作命令。按照语句功能或构成的不 同,可将C语言的语句分为五类。 goto, return.
C语言程序设计 主讲教师:陆幼利.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
$9 泛型基础.
第1章 c++概述 1.1 C++语言的简史及特点 1.2 简单的C++程序 1.3 C++语言的基本组成
程序设计基础(C程序设计) 主讲:吴华洋 Mobile: Office:
第一章 程序设计和C语言 主讲人:高晓娟 计算机学院.
C语言程序示例: 1.输入10个数,按从小到大的顺序排序。 2.汉诺塔问题。.
C程序设计.
姚金宇 MIT SCHEME 使用说明 姚金宇
实验七 安全FTP服务器实验 2019/4/28.
工业机器人知识要点解析 (ABB机器人) 主讲人:王老师
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
项目二:HTML语言基础.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
第一章 C语言概述 教师:周芸.
第4章 Excel电子表格制作软件 4.4 函数(一).
第九节 赋值运算符和赋值表达式.
iSIGHT 基本培训 使用 Excel的栅栏问题
第一章 C语言概述 目录 什么是语言、程序 C语言的历史与发展 C语言的书写形式与程序结构 运行C语言的步骤与方法
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
陈梅兰 电话: QQ: 佛山科学技术学院电子与信息工程学院 学校主页:
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第二节 C语言的特点.
实验目的:掌握数据的顺序存储结构及它们在计算机中的操作。 实验内容:
C++程序设计 概述 潘荣江 山东大学软件学院.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
第四章 UNIX文件系统.
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
实验六、COM类型病毒分析实验 实验开发教师: 刘乃琦 谌黔燕.
C程序设计 复习 1、计算机系统的组成 外部设备:输入、输出设备(同人打交道《十进制》)
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
Presentation transcript:

新世纪计算机基础教育丛书丛书 主编 谭浩强 C 程序设计 (第二版)

总 目 录 第1章 C语言概述 第2章 程序的灵魂——算法 第3章 数据类型、运算符与表达式 第4章 最简单的C程序设计——顺序程序设计 总 目 录 第1章 C语言概述 第2章 程序的灵魂——算法 第3章 数据类型、运算符与表达式 第4章 最简单的C程序设计——顺序程序设计 第5章 选择结构程序设计 第6章 循环控制 第7章 数组 第8章 函数

第9章 预处理命令 第10章 指针 第11章 结构体与共用体 第12章 位运算 第13章 文件 第14章 C++对C的扩充 第15章 C++的面向对象基础 第16章 常见错误和程序调试

1.1 C语言出现的历史背景 1.2 C语言的特点 1.3 简单的C程序介绍 1.4 C程序的上机步骤 1.5 习题

1.1 C语言出现的历史背景 C语言是国际上广泛流行的计算机高级语言,既可用来写系统软件,也可用来写应用软件。 C语言是在B语言的基础上发展起来的,它的根源可以追溯到ALGOL 60。1960年出现的ALGOL 60是一种面向问题的高级语言,它离硬件比较远,不宜用来编写系统程序。1963年英国的剑桥大学推出了CPL (combined programming language)语言。CPL语言在ALGOL 60的基础上接近硬件一些,但规模比较大,难以实现。1967年英国剑桥大学的Matin Richards对CPL语言做了简化,推出了BCPL (basic combined programming language) 语言。1970年美国贝尔实验室的

 Ken Thompson 以BCPL语言为基础, 又做了进一步简化, 设计出了很简单的而且很接近硬件的B语言 (取BCPL的第一个字母), 并用B语言写了第一个UNIX操作系统,在PDP7上实现。1971年在PDP11/20上实现了B语言,并写了UNIX操作系统。但B语言过于简单,功能有限。

1972年至1973年间,贝尔实验室的D.M.Ritchie 在B语言的基础上设计出了C语言(取BCPL的第二个字母)。C语言既保持了BCPL和B语言的优点(精练,接近硬件),又克服了它们的缺点(过于简单,数据无类型等)。最初的C语言只是为描述和实现UNIX操作系统提供一种工作语言而设计的。1973年,K.Thompson和D.M.Ritchie两人合作把UNIX的90%以上用C改写,即UNIX第5版。原来的UNIX 操作系统是1969年由美国的贝尔实验室的K.Thompson和D.M.Ritchie开发成功的,是用汇编语言写的。

1972年至1973年间,贝尔实验室的D.M.Ritchie 在B语言的基础上设计出了C语言(取BCPL的第二个字母)。C语言既保持了BCPL和B语言的优点(精练,接近硬件),又克服了它们的缺点(过于简单,数据无类型等)。最初的C语言只是为描述和实现UNIX操作系统提供一种工作语言而设计的。1973年,K.Thompson和D.M.Ritchie两人合作把UNIX的90%以上用C改写,即UNIX第5版。原来的UNIX 操作系统是1969年由美国的贝尔实验室的K.Thompson和D.M.Ritchie开发成功的,是用汇编语言写的。

后来,C语言多次做了改进,但主要还是在贝尔实验室内部使用。直到1975年UNIX第6版公布后,C语言的突出优点才引起人们的普遍注意。1977年出现了不依赖于具体机器的C语言编译文本《可移植C语言编译程序》,使C移植到其他机器时所需做的工作大大简化了,这也推动了UNIX操作系统迅速地在各种机器上实现。例如VAX、 AT&T等计算机系统都相继开发了UNIX。随着UNIX的日益广泛使用,C语言也迅速得到推广。C语言和UNIX可以说是一对孪生兄弟,在发展过程中相辅相成。1978年以后,C语言已先后移植到大、中、小、微型机上,已独立于UNIX和PDP了。现在C语言已风靡全世界,成为世界上

应用最广泛的几种计算机语言之一。以1978年发表的UNIX第7版中的C编译程序为基础,Brian W. Kernighan和Dennis M  应用最广泛的几种计算机语言之一。以1978年发表的UNIX第7版中的C编译程序为基础,Brian W.Kernighan和Dennis M.Ritchie (合称K&R)合著了影响深远的名著《The C Programming Language》,这本书中介绍的C语言成为后来广泛使用的C语言版本的基础,它被称为标准C。1983年,美国国家标准化协会(ANSI)根据C语言问世以来各种版本对C的发展和扩充,制定了新的标准,称为ANSI C。 ANSI C比原来的标准C有了很大的发展。K & R在1988年修改了他们的经典著作《The C Programming Language》,按照 ANSI C 标准重新写了该书。1987年,ANSI又公布了新标准——87 ANSIC。

1990年,国际标准化组织ISO(International Standard Organization) 接受87 ANSI C为ISO C 的标准(ISO 9899—1990)。目前流行的C编译系统都是以它为基础的。本书的叙述基本上以ANSI C 为基础。目前广泛流行的各种版本C语言编译系统虽然基本部分是相同的,但也有一些不同。在微型机上使用的有Microsoft C、 Turbo C、 Quick C、BORLAND C等,它们的不同版本又略有差异。因此,读者应了解所用的计算机系统所配置的C编译系统的特点和规定 (可以参阅有关手册)。

1.2 C语言的特点 一种语言之所以能存在和发展,并具有生命力,总是有其不同于(或优于)其他语言的特点。C语言的主要特点如下。 (1) 语言简洁、紧凑,使用方便、灵活。C语言一共只有32个关键字,9种控制语句,程序书写形式自由,主要用小写字母表示,压缩了一切不必要的成分。下面将C与PASCAL语言做一比较。 (2) 运算符丰富。C的运算符包含的范围很广泛,共有34种运算符。C把括号、赋值、强制类型转换等都作为运算符处理,从而使C的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其他高级语言中难以实现的运算。

(3) 数据结构丰富,具有现代化语言的各种数据结构。C的数据类型有整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构(如链表、树、栈等)的运算。尤其是指针类型数据,使用起来比PASCAL更为灵活、多样。 (4) 具有结构化的控制语句(如if…else语句、while语句、do…while语句、switch语句、for语句)。用函数作为程序的模块单位,便于实现程序的模块化。C是良好的结构化语言, 符合现代编程风格的要求。

(5) 语法限制不太严格,程序设计自由度大。例如对数组下标越界不做检查,由程序编写者自己保证程序的正确。对变量的类型使用比较灵活,例如整型数据与字符型数据可以通用。一般的高级语言语法检查比较严,能检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度,因此,放宽了语法检查。程序员应当仔细检查程序,保证其正确,而不要过分依赖C编译程序去查错。“限制”与“灵活”是一对矛盾。限制严格,就失去灵活性;而强调灵活,就必然放松限制。一个不熟练的编程人员,编一个正确的C程序可能会比编一个其他高级语言程序难一些。也就是说,对用C语言的人,要求对程序设计更熟练一些。

(6) C语言能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。因此C既具有高级语言的功能,又具有低级语言的许多功能,可用来写系统软件。C语言的这种双重性,使它既是成功的系统描述语言,又是通用的程序设计语言。 有人把C称为“高级语言中的低级语言” 或“中级语言”,意为兼有高级和低级语言的特点。按此观点可将各语言分类如下:

高级: BASIC,FORTRAN,COBOL,PASCAL,Ada,Modula-2; 中级: C,FORTH,宏汇编; 低级: 汇编语言 一般仍习惯将C语言称为高级语言,因为C程序也要通过编译、连接才能得到可执行的目标程序,这是和其他高级语言相同的。 C的以上特点,读者现在也许还不能深刻理解,待学完C以后再回顾一下,就会有比较深的体会。我们从应用的角度出发对C语言和其他传统的高级语言作一简单比较。

从掌握语言的难易程度来看,C语言比其他语言难一些。BASIC是初学者入门的较好的语言,FORTRAN也比较好掌握。对科学计算多用FORTRAN或PL/Ⅰ;对商业和管理等数据处理领域,用COBOL为宜。C语言虽然也可用于科学计算和管理领域,但并不理想,C的特长不在这里。对操作系统和系统实用程序以及需要对硬件进行操作的场合,用C语言明显地优越于其他高级语言,有的大型应用软件也用C语言编写。从教学角度,由于PASCAL是世界上第一个结构化语言,而曾被认为是计算机专业的比较理想的教学语言。目前在数据结构等课程中一般用PASCAL语言举例。但PASCAL语言难以推广到各实际应用领域,

 到目前为止基本上只是教学语言。C语言也是理想的结构化语言, 且描述能力强, 同样适于教学。 操作系统课程多结合UNIX讲解,而UNIX与C不可分,因此,C语言已经成为被广泛使用的教学语言。C除了能用于教学外,还有广泛的应用领域,因此更有生命力。PASCAL和其他高级语言的设计目标是通过严格的语法定义和检查来保证程序的正确性,而C则是强调灵活性,使程序设计人员能有较大的自由度,以适应宽广的应用面。总之,C语言对程序员要求较高。程序员使用C语言编写程序会感到限制少,灵活性大,功能强,可以编写出任何类型的程序。现在,C语言已不仅用来编写系统软件,也用来编写应用软件。学习和使用C的人已越来越多。

1.3 简单的C程序介绍 下面先介绍几个简单的C程序,然后从中分析C程序的特性。 例 1.1 main ( ) { printf ("This is a C program.\n"); } 本程序的作用是输出以下一行信息: This is a c program. 其中 main 表示“主函数”。每一个C程序都必须有一个 main 函数。函数体由大括弧{}括起来。本例中主函数内只有一个输出语句,printf是C语言中的输出函数(详见第4章)。双引号(双括号)内的字符串原样输出。“\n”是换行符,即在输出“This is a c program.”后回车换行。语句最后有一分号。

例 1.2 main ( )/*求两数之和*/ { int a,b,sum; /*这是定义变量*/ a=123; b=456; /* 以下3行为C语句 */ sum=a+b; printf ("sum is %d/n", sum); } 本程序的作用是求两个整数a和b之和sum。/*……*/表示注释部分,为便于理解,我们用汉字表示注释,当然也可以用英语或汉字拼音作注释。注释只是给人看的,对编译和运行不起作用。注释可以加在程序中任何位置。第2行是声明部分, 定义变量a和b,指定 a和b为整型(int)变量。第3行是两个赋值语句,使a和b的值分别为123和

 456。第4行使sum的值为a+b,第5行中“%d”是输入输出的“格式字符串”,用来指定输入输出时的数据类型和格式(详见第4章),“%d”表示“以十进制整数形式输出”。在执行输出时,此位置上代以一个十进制整数值。printf函数中括弧内最右端sum是要输出的变量,现在它的值为579(即123+456之值)。因此输出一行信息为sum is 579 例1.3 main ( )/* 主函数*/ { int a, b, c; /*声明部分,定义变量*/ scanf ("%d,%d",&a,&b); /*输入变量a和b的值*/

c=max (a,b); /*调用max函数,将得到的值赋给c*/ printf ("max=%d",c); /*输出c的值*/ } int max(int x,int y) /* 定义max函数,函数值为整型, 形式参数x,y为整型*/ {int z; /* max函数中的声明部分,定义本函数中用到的变量z为整型*/ if (x>y) z=x; else z=y; return (z); /*将z的值返回,通过max带回调用处*/

本程序包括两个函数:主函数main和被调用的函数max。max函数的作用是将x和y中较大者的值赋给变量z。return语句将z的值返回给主调函数main。返回值是通过函数名max带回到main函数的调用处。main函数中的scanf是“输入函数”的名字(scanf和printf都是C系统提供的标准输入输出函数)。程序中scanf函数的作用是输入a和b的值。&a和&b中的“&”的含义是“取地址”,此scanf函数的作用是将两个数值分别输入到变量a和b的地址所标志的单元中,也就是输入给变量a和b。这种形式是与其他语言不同的。它相当于BASIC语言中的INPUT a,b或PASCAL语言中的Read (a,b)。&a和&b前面的“%d,%d”的含义与前相同,

 只是现在用于“输入”。它指定输入的两个数据按十进制整数形式输入。关于scanf函数详见第4章。 main函数中第4行为调用max函数,在调用时将实际参数a和b的值分别传送给max函数中的形式参数x和y。经过执行max函数得到一个返回值(即max函数中变量z的值),把这个值赋给变量c。然后输出c的值。printf函数中双引号内的“max=%d”,在输出时,其中“%d”将由c的值取代之,“max =”原样输出。程序运行情况如下: 8,5 (输入8和5给a和b) max=8 (输出c的值)

本例用到了函数调用、实际参数和形式参数等概念,我们只做了很简单的解释。读者如对此不大理解,可以先不予以深究,在学到以后有关章节时,问题自然迎刃而解。在此介绍此例子,无非是使读者对C程序的组成和形式有一个初步的了解。 通过以上几个例子,可以看到: (1) C程序是由函数构成的。一个C源程序至少包含一个main函数,也可以包含一个main函数和若干个其他函数。因此,函数是C程序的基本单位。被调用的函数可以是系统提供的库函数(例如printf和scanf函数),也可以是用户根据需要自

int max (int x , int y ) ↓ ↓ ↓ ↓ ↓ ↓  己编制设计的函数(例如,例1.3中的max函数)。C的函数相当于其他语言中的子程序,用函数来实现特定的功能。程序中的全部工作都是由各个函数分别完成的。编写C程序就是编写一个个函数。C的函数库十分丰富,ANSI C建议的标准库函数中包括100多个函数,Turbo C和MS C 4.0提供300多个库函数。C的这种特点使得容易实现程序的模块化。 (2) 一个函数由两部分组成: ① 函数的首部,即函数的第一行。包括函数名、函数类型、函数属性、函数参数(形参)名、参数类型。 例如,例1.3中的max函数的首部为 int max (int x ,    int y ) ↓ ↓ ↓ ↓    ↓ ↓ 函数类型 函数名 函数参数类型 函数参数名 函数参数类型 函数参数名

一个函数名后面必须跟一对圆括弧, 函数参数可以没有,如main( )。 ② 函数体,即函数首部下面的大括弧{……}内的部分。如果一个函数内有多个大括弧,则最外层的一对{ }为函数体的范围。 函数体一般包括: · 声明部分:在这部分中定义所用到的变量,如例1.3中main函数中的“int a,b,c;”。 在第8章中还将会看到,在声明部分中要对所调用的函数进行声明。 执行部分:由若干个语句组成。

当然,在某些情况下也可以没有声明部分(例如,例1.1)。甚至可以既无声明部分,也无执行部分。如: dump ( ) { } 它是一个空函数,什么也不干,但这是合法的。 (3) 一个C程序总是从main函数开始执行的,而不论main函数在整个程序中的位置如何(main函数可以放在程序最前头,也可以放在程序最后,或在一些函数之前,在另一些函数之后)。 (4) C程序书写格式自由,一行内可以写几个语句, 一个语句可以分写在多行上。C程序没有行号,

 也不像FORTRAN或COBOL那样严格规定书写格式(语句必须从某一列开始书写)。 c=a+b; 分号不可少。即使是程序中最后一个语句也应包含分号(这是和PASCAL语言不同的)。 (6) C语言本身没有输入输出语句。输入和输出的操作是由库函数scanf和printf等函数来完成的。C对输入输出实行“函数化”。由于输入输出操作牵涉到具体的计算机设备,把输入输出操作放在函数中处理,就可以使C语言本身的规模较小,

 编译程序简单,很容易在各种机器上实现,程序具有可移植性。当然,不同的C语言系统需要对函数库中的函数作不同的处理。不同的C系统除了提供函数库中的标准函数外,还按照硬件的情况提供一些专门的函数。因此不同的系统所提供的函数个数和功能是有所不同的。 (7) 可以用/*……*/对C程序中的任何部分作注释。一个好的、有使用价值的源程序都应当加上必要的注释,以增加程序的可读性。

1.4 C程序的上机步骤 我们已经看到了一些用C语言编写的程序。为了使计算机能按照人们的意志进行工作,必须根据问题的要求,编写出相应的程序。所谓程序,就是一组计算机能识别和执行的指令。每一条指令使计算机执行特定的操作。程序可以用高级语言(例如QBASIC,FORTRAN,PASCAL,C等)编写。用高级语言编写的程序称为“源程序”(source program)。从根本上说,计算机只能识别和执行由0和1组成的二进制的指令,而不能识别和执行用高级语言写的指令。为了使计算机能执行高级语言源程序,必须先用一种称为“编译程序”的软件,把源程序翻译成二进制形式的“目标程序”, 然后将该目标程序与系统的函数库和其他目标程序连接起来,形成可执行的目标程序。

图1.1

在编好一个C源程序后,如何上机运行呢? 在纸上写好一个程序后,要经过以下几个步骤:上机输入与编辑源程序对源程序进行编译与库函数连接运行目标程序这样几个步骤。 以上过程如图1.1所示。其中实线表示操作流程,虚线表示文件的输入输出。例如,编辑后得到一个源程序文件f.c, 然后在进行编译时再将源程序文件f.c输入,经过编译得到目标程序文件f.obj,再将目标程序文件f.obj输入内存,与系统提供的库函数等连接,得到可执行的目标程序文件f.exe,最后把f.exe调入内存并使之运行。 在了解了C语言的初步知识后,读者最好上机运行一个C程序,以建立对C程序的初步认识。

下面分别就三种不同的环境下运行C程序作一简单介绍。 1. 用Turbo C 运行C程序的步骤 Turbo C是在微机上广泛使用的编译程序。它具有方便、直观、易用的界面和丰富的库函数。它向用户提供一个集成环境,把程序的编辑、编译、连接和运行等操作全部集中在一个界面上进行,使用十分方便。 为了能使用Turbo C,必须先将Turbo C编译程序装入磁盘的某一目录下,例如放在C盘根目录下一级TC子目录下。

(1) 调用 Turbo C程序。如果用户的当前目录是Turbo C编译程序所在的子目录(例如TC子目录),只需从键盘键入“tc” 命令即可: 图1.2

C:\TC>tc  屏幕上出现Turbo C集成环境,见图1.2所示。从图1.2可以看到在集成环境的上部,有一行“主菜单”, 其中包括下面8个菜单项: File Edit Run Compile Project Option Debug break/watch 用户可以通过以上菜单项来选择使用Turbo C集成环境所提供的Turbo C的各项主要功能。以上8个菜单项分别代表:文件操作、编辑、运行、编译、项目文件、选项、调试、中断/观察等功能。 用键盘上的“←”和“→”键可以选择菜单条中所需要的菜单项,被选中的项以“反相”图1.3形式显示

(例如主菜单中的各项原来以白底黑字显示,被选中时改为以黑底白字显示)。 此时若按回车键,就会出现一个下拉菜单。例如在选中“File”菜单并按回车键后,屏幕上“File”下面出现下拉菜单,见图1.3所示。它是一个子菜单,提供多项选择。可以用“↓”键选择所需要的项。例如选择“New”处, 并按回车键,表示要建立一个新的C源程序。 图1.3

如果选择“Load” , 并按回车键, 表示要调入一个已有的源文件,此时屏幕上出现一个对话框(见图1 如果选择“Load” , 并按回车键, 表示要调入一个已有的源文件,此时屏幕上出现一个对话框(见图1.4)。要求你输入该文件的名字。用户可输入该文件名,例如:tc1.c,如果已存在此文件,则系统会将此文件调入内存并显示在屏幕上。此时自动转为编辑(Edit)状态。 如果原来不存在此文件名,则系统会建立一个以指定的名字命名的新文件。 图1.4

(2) 编辑源文件。在编辑(Edit) 状态下可以根据需要输入或修改源程序。 (3) 编译源程序。选择“Compile”菜单并在其下拉菜单中选择“Compile to OBJ” ,则进行编译,得到一个后缀为.obj的目标程序(为方便起见,在一般书刊中,以上菜单的选择以“Compile/Compile to OBJ”表示)。然后再选菜单“Compile/Link EXE file”, 进行连接操作,可得到一个后缀为.exe的可执行文件。也可以将编译和连接合为一个步骤进行。选菜单“Compile/Make EXE file” 或按“F9”键,即可一次完成编译和连接。在屏幕上会显示编译或连接时有无错误和有几个错误,见图1.5所示。此时按任何一个键, 图1.5所显示的“编译信息框”会

消失,屏幕上会恢复显示源程序,光标停留在出错之处。在屏幕的下半部分显示出有错误的行和错误的原因。根据此信息修改源程序。修改完毕认为无错后,再按“F9”,再次进行编译和连接,如此反复进行到不显示出错为止。 图1.5

(4) 执行程序。按“F10”键, 在窗口上部的主菜单中某一项处出现“反相”显示(黑色亮块)。 File Edit Run Compile Project Option Debug Break/watch 用“→”键将亮块移到“Run”,按回车键, 在其下拉菜单中选择“Run”项,或直接按Ctrl + F9键, 系统就会执行已编译好的目标文件。此时, TC集成环境窗口消失,屏幕上显示出程序运行时输出的结果。如果程序需要输入数据(如例1.3),则应在此时,从键盘输入所需数据,然后程序会接着执行,输出结果。 如果发现运行结果不对,要重新修改源程序,可以再按“F10”键,并用“←”使亮块移到“Edit”处,

按回车键,即进入编辑状态,可以根据需要修改源程序,并重复上述(2),(3),(4)步,直到得到正确结果为止。 (5) 可以用“Alt”和“X”键(同时按此两键),脱离Turbo C ,回到DOS命令状态。 此时,可以用DOS命令显示源程序和运行程序: C> TYPE tc1.c (列出源程序清单) C> tc1 (执行目标程序 tc1.exe) 如果想再修改源程序,可以重新执行步骤(1),并输入源程序文件名即可。

2. 在UNIX操作系统下运行C程序的步骤 (1) 用编辑程序 (如UNIX系统的文本行编辑程序ed,或屏幕编辑程序vi)将源程序输入计算机,经修改认为无误后,存入文件系统。设用户将源文件定名为f.c (C源程序的后缀一般定为“.c”)。 (2) 编译。调用C编译程序cc对源文件进行编译。可打入命令: cc f.c  如果在编译过程中发现源程序有语法错误,则系统会输出“出错信息”,告诉用户第几行有什么样的错误。用户应重新调用编辑程序,修改后再进行编译。如此直到编译通过为止。编译时先

 生成一个汇编语言程序(即将C源程序翻译成为一个汇编语言程序),然后由编译程序再将汇编语言程序翻译成机器指令程序,即目标程序。目标程序的文件 名与相应的源程序同名,但后缀为“.o” (表示它是目标文件),上述源文件f.c经编译后得到目标程序f.o。 (3) 连接。将目标程序和库函数或其他目标程序连接成可执行的目标程序。在UNIX系统下,连接是由cc自动完成的。最后得到可执行文件, 文件名由系统自动确定为a.out。 如果不想用系统定的文件名a.out,也可以在编译时自己指定可执行文件名。例如想指定为f.out,

可以在编译时打入以下命令: cc -o f.out f.c 它的作用是将源程序f.c编译成可执行程序,文件名为f.out。 (4) 执行程序。只需输入可执行文件名即可。例如: a.out (系统指定的文件名) 或f.out (用户指定的文件名) 3. 在DOS下用Microsoft C 6.0编译程序运行C程序的步骤 Microsoft C是微软公司为IBM系列微机开发的C编译系统。MS C 6.0版本提供了多个库函数。老版本的MS C采用基于DOS平台的命令行方式。MS C 6.0增加了基于鼠标和窗口的“程序员工作台”

 (programmer's work bench, 缩写为PWB), 它也是一个集成环境。MS C也是人们常用的C编译系统之一。目前,大多数使用MS C的人习惯用命令行方式。因此我们在这里只简单地介绍命令行方式的用法。 (1) 编辑C源程序。可以用任何全屏幕编辑系统输入和编辑源程序。假设已输入和编辑好的源文件名为a1.c。 (2) 编译和连接。MS C提供了一个功能很强的CL命令, 可一次完成程序的编译和连接。CL是Compile和Link的第一个字母。用法如下: CL a1.c  (对源程序a1.c进行编译和连接)

 如果在编译和连接时出现“出错信息”,则需要重新编辑(修改)源程序。编译和连接完成后,产生一个可执行文件a1.exe。 (3) 执行程序。只需输入可执行文件名: a1 即可得到运行结果。以上步骤只需上机试一下,即可明白。

****************************** 习题 1.1 请参照本章例题,编写一个C程序,输出以下信息: ****************************** Very good! 1.2 编写一个C程序,输入a、b、c 3个值,输出其中最大者。