主讲:王幸民 理学院计算机基础教学部
教材、参考书与课时安排 1. 教材 《 C 程序设计》 ( 第3版 ) 谭浩强著 清华大学出版社 参考书 《 C 语言程序设计》教育部考试中心 高等教育出版社( 全国计算机等级考试二级教程) 2. 课时安排 授课 : 24 学时 实验: 24 学时 C 综合编程训练:课外 2 周
3. 上机安排 上机地点和时间:另行通知 上机内容: (1) 上机实验报告和课后编程作业 (2)C 编程训练大作业 要求 : (1) 所有作业必须独立完成,并保证课外上机时数 (2) 作业必须经上机调试通过 (3) 上机考勤 2 次缺席,按不及格处理 (4) 发现上机时间上网,按缺席一次处理
4. 课程考核 总评 = 平时 (10%)+ 实验 (20%)+ 期末 (70%)
课程要求 – 课前请做好预习 – 保持课堂安静,头脑清醒,思维活跃 – 认真、独立、按时完成并提交作业 – 重视上机实践,有效利用宝贵的上机时 间
第一章
本章要点 C 语言的特点 C 语言的特点 C 程序的结构 C 程序的结构 在计算机上运行 C 程序的方法 在计算机上运行 C 程序的方法
主要内容 主要内容 1.1 C语言出现的历史背景 1.2 C程序的特点 1.3 简单的 C 语言程序介绍 1.4 运行C程序的步骤和方法
1.1 C语言出现的历史背景 1.1 C语言出现的历史背景 C 语言是国际上广泛流行的高级语言。 C 语言是在 B 语言的基础上发展起来的。 B ( BCPL )语言是 1970 年由美国贝尔实 验室设计的, 并用于编写了第一个 UNIX 操 作系统, 在 PDP 7 上实现。优点:精练, 接近 硬件,缺点:过于简单, 数据无类型。 1973 年贝尔实验室的 D.M.Ritchie 在 B 语言 的基础上设计出了 C 语言,对 B 取长补短, 并用之改写了原来用汇编编写的 UNIX , ( 即 UNIX 第 5 版),但仅在贝尔实验室使用 。
1.1 C语言出现的历史背景 1.1 C语言出现的历史背景 1975 年 UNIX 第 6 版发布,C 优点突出引起关注 。 1977 年出现了《可移植 C 语言编译程序》 , 推动了 UNIX 在各种机器上实现 , C 语言也得 到推广,其发展相辅相成。 1978 年影响深远的名著《 The C Programming Language 》由 Brian W.Kernighan 和 Dennis M.Ritchie 合著, 被称 为标准 C 。 之后, C 语言先后移植到大、中、小、微型 计算机上, 已独立于 UNIX 和 PDP ,风靡世界, 成为最广泛的几种计算机语言之一。
1.1 C语言出现的历史背景 1.1 C语言出现的历史背景 1983 年, 美国国家标准化协会 (ANSI) 根据 C 语 言各种版本对 C 的发展和扩充, 制定了新的标 准 ANSI C ,比标准 C 有了很大的发展。 1988 年 K & R 按照 ANSI C 修改了他们的《 The C Programming Language 》。 1987 年,ANSI 公布了新标准 —— 87 ANSI C 。 1990 年,国际标准化组织接受了 87 ANSI C 为 ISO C 的标准 (ISO9899 — 1990) 。 1994 年, ISO 又修订了 C 语言标准。 目前流行的 C 语言编译系统大多是以 ANSI C 为基础进行开发的。
1.1 C语言出现的历史背景 1.1 C语言出现的历史背景 说明: 不同版本的 C 编译系统所实现的语言功 能和语法规则又略有差别,因此读者应 了解所用的 C 语言编译系统的特点 ( 可以 参阅有关手册 ) 。本书的叙述基本上以 ANSI C 为基础。说明:
1.2 C语言的特点 1.2 C语言的特点 ( 1 )语言简洁、紧凑, 使用方便、灵活。 32 个关键字、 9 种控制语句, 程序形式自由。 ( 2 )运算符丰富。 34 种运算符 。 ( 3 )数据类型丰富, 具有现代语言的各种数据 结构。 ( 4 )具有结构化的控制语句 ,是完全模块化 和结构化的语言。 ( 5 )语法限制不太严格, 程序设计自由度大。
1.2 C语言的特点 1.2 C语言的特点 ( 6 )允许直接访问物理地址, 能进行位操 作, 能实现汇编语言的大部分功能, 可直 接对硬件进行操作。兼有高级和低级语 言的特点 。 ( 7 )目标代码质量高, 程序执行效率高。 只比汇编程序生成的目标代码效率低 10 % -20% 。 ( 8 )程序可移植性好 ( 与汇编语言比 ) 。基 本上不做修改就能用于各种型号的计算 机和各种操作系统。
1.2 C语言的特点 1.2 C语言的特点 解释 1 : 解释 1 : C++ 是由于开发大型应用软件的需 要而产生的,并不是所有的人都要去编 写大型软件。 解释 2 : 解释 2 :面向对象的基础是面向过程。 C++ 是面向对象的语言, C 是面向过程的,学 起来比 C 语言困难得多,所以不太适合程 序设计的初学者。 解释 1 : 解释 1 : C++ 是由于开发大型应用软件的需 要而产生的,并不是所有的人都要去编 写大型软件。 解释 2 : 解释 2 :面向对象的基础是面向过程。 C++ 是面向对象的语言, C 是面向过程的,学 起来比 C 语言困难得多,所以不太适合程 序设计的初学者。 问题: 问题:既然有了面向对象的 C++ 语言,为 什么还要学习 C 语言?
1.3 简单的 C 语言程序介绍 1.3 简单的 C 语言程序介绍 #include void main( ) { printf ("This is a C program.\n"); } /* 文件包含 */ /* 主函数 */ /* 函数体开始 */ /* 输出语句 */ /* 函数体结束 */ 说明: 说明: main- 主函数名, void- 函数类型 每个 C 程序必须有一个主函数 main { } 是函数开始和结束的标志, 不可省 每个 C 语句以分号结束 使用标准库函数时应在程序开头一行写: #include 说明: 说明: main- 主函数名, void- 函数类型 每个 C 程序必须有一个主函数 main { } 是函数开始和结束的标志, 不可省 每个 C 语句以分号结束 使用标准库函数时应在程序开头一行写: #include 说明: 本程序的作用是输出一行信息 : This is a C program.
例 1.2 求两数之和 #include void main( ) /* 求两数之和 */ { int a,b,sum; /* 声明,定义变量为整型 */ /* 以下 3 行为 C 语句 */ a=123; b=456; sum=a+b; printf(″sum is %d \ n″,sum); } 说明: 说明: /*……*/ 表示注释。注释只是给人看 的, 对编译和运行不起作用。所以可以用汉 字或英文字符表示,可以出现在一行中的 最右侧,也可以单独成为一行。 说明: 输出一行信息 :sum is 579
例 1.3 求 3 个数中较大者。 #include void main( ) /* 主函数 */ { int max(int x,int y); / 对被调用函数 max 的声明 */ int a, b, c; /* 定义变量 a 、 b 、 c */ scanf(″ % d, % d″,&a,&b); /* 输入变量 a 和 b 的值 */ c=max(a,b); /* 调用 max 函数, 将得到的值赋给 c */ printf(″max= % d\\n″,c); /* 输出 c 的值 */ } 程序运行情况如下: 8,5 ↙ ( 输入 8 和 5 赋给 a 和 b) max=8 ( 输出 c 的值 ) int max(int x, int y) { int z; if (x>y) z=x; else z=y; return (z); } max(int x,int y); max(a,b); 说明: 说明:本程序包括 main 和被调 用函数 max 两个函数。 max 函 数的作用是将 x 和 y 中较大者的 值赋给变量 z 。 return 语句将 z 的值返回给主调函数 main 。
1.3 简单的 C 语言程序介绍 1.3 简单的 C 语言程序介绍 C 程序 C 程序小结: (1) C 程序是由函数构成的。 这使得程序容易实现模 块化。 (2) 一个函数由两部分组成 : 函数的首部:例 1.3 中的 max 函数首部 int max(int x,int y ) 函数体:花括号内的部分。若一个函数有多个花括 号, 则最外层的一对花括号为函数体的范围。 函数体包括两部分 : 声明部分: int a,b,c; 可缺省 执行部分:由若干个语句组成。可缺省
1.3 简单的 C 语言程序介绍 1.3 简单的 C 语言程序介绍 注意: 函数的声明部分和执行部分都可缺省,例如: void dump ( ) { } 这是一个空函数, 什么也不做, 但是合法的函数。
1.3 简单的 C 语言程序介绍 1.3 简单的 C 语言程序介绍 (3) C 程序总是从 main 函数开始执行的, 与 main 函数的 位置无关。 (4) C 程序书写格式自由, 一行内可以写几个语句, 一 个语句可以分写在多行上, C 程序没有行号。 (5) 每个语句和数据声明的最后必须有一个分号。 (6) C 语言本身没有输入输出语句。输入和输出的操 作是由库函数 scanf 和 printf 等函数来完成的。 C 对 输入输出实行 “ 函数化 ” 。
1.4 运行C程序的步骤和方法 1.4 运行C程序的步骤和方法 运行C程序的步骤 上机输入与编辑源程序 对源程序进行编译 与库函数连接 运行目标程序
1.4 运行C程序的步骤和方法 1.4 运行C程序的步骤和方法 上机运行C程序的方法 目前使用的大多数 C 编译系统都是集成环境 (IDE) 的。 可以用不同的编译系统对 C 程序进行操作。 常用的有 Turbo C 2.0 、 Turbo C 、 Visual C++ 等。 Turbo C :是一个集成环境,它具有方便、直观 和易用的界面,虽然它也是 DOS 环境下的集成环境,但 是可以把启动 Turbo C 集成环境的 DOS 执行文件 tc.exe 生成快捷方式,也可以用鼠标操作。 Visual C++ :也可以用 Visual C++ 对 C 程序进行编译。
例: Turbo C 的使用 将 Turbo C 编译程序装入磁盘某一目录下 例如: 放在 C 盘根目录下一级 TC3.0 子目录下。 (1) 进入 Turbo C 集成环境 ①在 DOS 环境下 C:\TC3.0>tc ↙
② 在 Windows 环境下 找到可执行文件 tc.exe ,执行该文件。 主菜单: 10 个菜单项 : File Edit Search Run Compile Debug Project File Edit Search Run Compile Debug Project Options Window Help Options Window Help
(2) 编辑源文件 新建:单击 “File” 菜单下 的 “New”, 修改:选择 “File”→“Open”( 即单击 “File” 的下拉菜 单中的 “Open” 项,修改已有的源程序。
在编辑 (EDIT) 状态下光标表示当前进行编辑的位 置,在此位置可以进行插入、删除或修改,直到 自已满意为止。
保存:在编辑 (EDIT) 状态下光标表示当前进行编辑 的位置,在此位置可以进行插入、删除或修改, 直到自已满意为止。
(3) 对源程序进行编译 选择 “Compile”( 或 “Alt+F9”) 对源程序进行编译。 c1.cpp 源程序,出现 1 个错误 (error) , 0 个警告 (warming) 。
(4) 将目标程序进行连接 选择菜单 “Compile” →“Link” ,如果不出现错 误,会得到一个后缀为.exe 的可执行文件。 (5) 执行程序 选菜单 “Run” →“Run”( 或按 “Ctrl+F9” 键 ) 。 (6) 退出 Turbo C 环境 选择 “File”→“Quit” 。