Download presentation
Presentation is loading. Please wait.
1
C 程序设计 潘荣江 panrj@sdu.edu.cn vr.sdu.edu.cn/panrj 13708930596
2
课程解读 -C 程序设计 计算机:辅助工具 计算机语言:人 - 机交流途径 交流层次: 编程 应用程序: OA ,网络,数字媒体,科学计算 ,娱乐,游戏 自然语言与自然交互
3
课程解读 课程学习内容 语法(词、短语、句子、篇章架构) 语义 - 算法 - 解决典型问题, 线性数据组织,检索排序 简单语法(描述能力) vs 复杂的问题 C 语言与科研: 逻辑与推理 科学计算软件二次开发
4
课程解读 C 语言,众多高级语言的一种 B, C, C++, C#, Java… 古老(计算机领域)而经典的语言 众多的计算机语言与 C 联系密切 C 语言与科研: 科学计算软件二次开发 培养逻辑思维能力
5
课程解读 实验( 6-13 周) 4 * 8 次,联系实验时间,每周 1 次 实验平台 DEV-CPP , VC 6.0 , Visual C++ Express 2008 课程 4-17 周 教材 C 语言程序设计 第三版 谭浩强
6
第一章
7
本章要点 C 语言的特点 C 语言的特点 C 程序的结构 C 程序的结构 在计算机上运行 C 程序的方法 在计算机上运行 C 程序的方法
8
1.1 C语言出现的历史背景 C 语言是国际上广泛流行的高级语言。 C 语言是在 B 语言的基础上发展起来的。 B ( BCPL )语言是 1970 年由美国贝尔实 验室设计的, 并用于编写了第一个 UNIX 操 作系统, 在 PDP 7 上实现。优点:精练, 接近 硬件,缺点:过于简单, 数据无类型。 1973 年贝尔实验室的 D.M.Ritchie 在 B 语言 的基础上设计出了 C 语言,对 B 取长补短, 并用之改写了原来用汇编编写的 UNIX , ( 即 UNIX 第 5 版),但仅在贝尔实验室使用 。
9
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 ,风靡世界, 成为最广泛的几种计算机语言之一。
10
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 为基础进行开发的。
11
1.1 C语言出现的历史背景 说明: 不同版本的 C 编译系统所实现的语言功 能和语法规则又略有差别,因此读者应 了解所用的 C 语言编译系统的特点 ( 可以 参阅有关手册 ) 。本书的叙述基本上以 ANSI C 为基础。说明:
12
§1-2 C语言的特点 ( 1 )语言简洁、紧凑, 使用方便、灵活。 32 个关键字、 9 种控制语句, 程序形式自由 ( 2 )运算符丰富。 34 种运算符 ( 3 )数据类型丰富, 具有现代语言的各种数据 结构。 ( 4 )具有结构化的控制语句 ,是完全模块化 和结构化的语言。 ( 5 )语法限制不太严格, 程序设计自由度大。
13
§1-2 C语言的特点 ( 6 )允许直接访问物理地址, 能进行位操 作, 能实现汇编语言的大部分功能, 可直 接对硬件进行操作。兼有高级和低级语 言的特点 。 ( 7 )目标代码质量高, 程序执行效率高。 只比汇编程序生成的目标代码效率低 10 % -20% 。 ( 8 )程序可移植性好 ( 与汇编语言比 ) 。基 本上不做修改就能用于各种型号的计算 机和各种操作系统。 接近硬件,过于灵活。
14
§1-2 C语言的特点 解释 1 : 解释 1 : C++ 是由于开发大型应用软件的需 要而产生的,并不是所有的人都要去编 写大型软件; 解释 2 : 解释 2 :面向对象的基础是面向过程。 C++ 是面向对象的语言, C 是面向过程的,学 起来比 C 语言困难得多,所以不太适合程 序设计的初学者。 解释 1 : 解释 1 : C++ 是由于开发大型应用软件的需 要而产生的,并不是所有的人都要去编 写大型软件; 解释 2 : 解释 2 :面向对象的基础是面向过程。 C++ 是面向对象的语言, C 是面向过程的,学 起来比 C 语言困难得多,所以不太适合程 序设计的初学者。 问题: 问题:既然有了面向对象的 C++ 语言,为 什么还要学习 C 语言?
15
§1-3 简单的 C 语言程序介绍 #include 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.
16
例 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
17
例 1.3 求 2 个数中较大者。 #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); 说明: 说明:本程序包括 main 和被调 用函数 max 两个函数。 max 函 数的作用是将 x 和 y 中较大者的 值赋给变量 z 。 return 语句将 z 的值返回给主调函数 main 。
18
§1-3 简单的 C 语言程序介绍 C 程序: (1) C 程序是由函数构成的。 这使得程序容易实现模 块化。 (2) 一个函数由两部分组成 : 函数的首部:例 1.3 中的 max 函数首部 int max(int x,int y ) 函数体:花括号内的部分。若一个函数有多个花括 号, 则最外层的一对花括号为函数体的范围。 函数体包括两部分 : 声明部分: int a,b,c; 可缺省 执行部分:由若干个语句组成。可缺省
19
§1-3 简单的 C 语言程序介绍 注意: 函数的声明部分和执行部分(函数体)都可缺省 ,例如: void dump ( ) { } 这是一个空函数, 什么也不做, 但是合法的函数。
20
§1-3 简单的 C 语言程序介绍 小结: (3) C 程序总是从 main 函数开始执行的, 与 main 函数的 位置无关。 (4) C 程序书写格式自由, 一行内可以写几个语句, 一 个语句可以分写在多行上, C 程序没有行号。 (5) 每个语句和数据声明的最后必须有一个分号。 (6) C 语言本身没有输入输出语句。输入和输出的操 作是由库函数 scanf 和 printf 等函数来完成的。 C 对 输入输出实行 “ 函数化 ” 。
21
§1-4 运行C程序的步骤和方法 运行C程序的步骤 一、运行C程序的步骤 上机输入与编辑源程序 对源程序进行编译 与库函数连接 运行目标程序
22
§1-4 运行C程序的步骤和方法 二、上机运行C程序的方法 目前使用的大多数 C 编译系统都是集成环境 (IDE) 的。 可以用不同的编译系统对 C 程序进行操作 常用的有 Turbo C 2.0 、 Turbo C++ 3.0 、 Visual C++ 等 Turbo C++ 3.0 :是一个集成环境,它具有方便、直观 和易用的界面,虽然它也是 DOS 环境下的集成环境,但 是可以把启动 Turbo C++ 3.0 集成环境的 DOS 执行文件 tc.exe 生成快捷方式,也可以用鼠标操作。 Visual C++ :也可以用 Visual C++ 对 C 程序进行编译。
23
例: Turbo C++ 3.0 的使用 将 Turbo C++ 3.0 编译程序装入磁盘某一目录下 例如: 放在 C 盘根目录下一级 TC3.0 子目录下。 (1) 进入 Turbo C++ 3.0 集成环境 ①在 DOS 环境下 C:\TC3.0>tc ↙
24
② 在 Windows 环境下 找到可执行文件 tc.exe ,执行该文件。 主菜单: 11 个菜单项 : File Edit Search Run Compile Debug Project File Edit Search Run Compile Debug Project Options Window Help Options Window Help
25
(2) 编辑源文件 新建:单击 “File” 菜单下 的 “New”, 修改:选择 “File”→“Open”( 即单击 “File” 的下拉菜 单中的 “Open” 项,修改已有的源程序。
26
在编辑 (EDIT) 状态下光标表示当前进行编辑的位 置,在此位置可以进行插入、删除或修改,直到 自已满意为止。
27
保存:在编辑 (EDIT) 状态下光标表示当前进行编辑 的位置,在此位置可以进行插入、删除或修改, 直到自已满意为止。
28
(3) 对源程序进行编译 选择 “Compile”( 或 “Alt+F9”) 对源程序进行编译。 c1.cpp 源程序,出现 1 个错误 (error) , 0 个警告 (warming) 。
29
(4) 将目标程序进行连接 选择菜单 “Compile” →“Link” ,如果不出现错 误,会得到一个后缀为.exe 的可执行文件。 (5) 执行程序 选菜单 “Run” →“Run”( 或按 “Ctrl+F9” 键 ) 。 (6) 退出 Turbo C++ 3.0 环境 选择 “File”→“Quit” 。
30
在 VS 中编写 ANSI C 程序 1 、启动 Microsoft Visual Studio 2 、在 文件 菜单上指向 新建,和然后单击 项目 3 、项目类型 下, 单击 Visual C++ 项目 4 、在 模板 中选择 Win32 项目 5 、在 名称 文本框中键入 项目名称 6 、在 位置 文本框中键入 路径,然后单击 确定
31
在 VS 中编写 ANSI C 程序 7 、在 Win32 应用程序向导 对话框中框中,在 左边窗口中单击 应用程序设置 8 、在 应用程序类型 中选择 控制台应用程序 9 、在 附加选项 勾选 空项目 10 、单击 完成 11 、在 解决方案资源管理器 中右击 源文件 文 件夹,指向 添加,然后单击 新建项 12 、选择模板下的 C++ 文件 (.cpp) 13 、注意在 名称 文本框中键入 test.c 14 、单击 添加
32
在 VS 中编写 ANSI C 程序 15 、编写代码 #include void main() { printf("hello world !"); } 16 、按 Ctrl+F5 执行
36
36 编译过程: 1 )启动 Visual C++, 选择 “ 文件 ” 菜单中的 “ 新建 ” 命 令,选择 “ 文件 ” 标签中的 “C++ Source File” 选项。 2 )选择源程序存放的目录和输入源程序名,单击 “ 确定 ” 。 3 )在编辑器中编写源程序。 4 )单击 F7 或 “ 编译 ” 中的 “ 重建全部 ” 编译源程序, 若编译通过,单击 “ 执行 ” ,在 DOS 屏上看结果, 任按一键返回编辑器。
37
37 启动 VC++ 编译系统
38
38 VC++ 编译 系统界面 单击 “File” 菜单 中 “New” 命令
39
39 选择 “Files” 选项卡 选择 C++ 源 文件命令 输入文件名 输入文件 存放位置 单击选择 驱动器 选择驱动 器或目录
40
40 C++ 源文件 编辑界面 输入 C++ 源代码
41
41 可以将此源 代码另起文 件名存盘
42
42 选择编译命令,将源文 件.cpp 生成.obj 文件
43
43 如果编译出错,会出现提示信息, 指出错误的位置及种类 错误所在行 错误的原因
44
44 双击错误 所在行 光标移到该行
45
45 生成可执 行文件 通过后单 击该命令 运行程序
46
46 运行结果显示 在 DOS 屏上 注意:不可以在软盘上 运行程序!应该把保存 在软盘中的源文件拷贝 到硬盘的目录中再运行 !
47
47 源程序所在目录 未编译前,只 有一个源程序
48
48 编译运行后,出 现众多附加文件 同时,产生一个 子目录 Debug
49
49 Debug 目录中,有 obj 和 EXE 文件
Similar presentations