第01章——C语言程序设计基础
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.4 编制C语言程序的基本步骤
编 辑
程序代码的录 入,生成源程 序*.c或*.cpp
语法分析查错, 翻译生成目标程 序*.obj 与其它目标程 序或库链接装 配,生成可执 行程序*.exe
开始 编辑 源程序file.c 编译 有 有错? 无 链接 执行 库函数和其 它目标程序 目标程序 file.obj
C语言的应用
C语言的应用非常广,也非常多,在此仅列出其中的一 些应用: C语言可以用来开发许多系统软件和大型应用软件。如UNIX, LINUX等操作系统。 在软件需要对硬件进行操作的场合,用C语言明显优于其它 高级语言。例如,各种硬件设备的驱动程序(象显卡驱动程 序、打印机驱动程序等)一般都是用C语言编写的。 在图形、图像及动画处理方面,C语言具有绝对优势,特别 是游戏软件的开发主要就是使用C语言。 随着计算机网络飞速发展,特别是Internet的出现,计算 机通信就显得尤其重要,而通信程序的编制首选就是C语言。 C语言适用于多种操作系统,象WINDOWS、UNIX、LINUX等绝 大多数操作系统都支持C语言,其它高级语言未必能得到支持, 所以在某个特定操作系统下运行的软件用C语言编制是最佳选 择。
纸 上 得 来 终 觉 浅 绝 知 此 事 要 躬 形
1.3
C语言程序的基本结构
了解了C语言的基本特性及其应用以后,接下来就来看看C C语言的预处理命令都是以“#” 在C程序中,注释由“/*”开始,由 语言程序是什么样子。一个C语言程序可以是非常简单的, 号开头。stdio.h是一个头文件 “*/”结束,可以实现多行注释 。 也可以是特别复杂的,这取决于程序所要实现的功能。我们 在C++程序中也可使用“//”进行单 先来认识一个最为简单的C程序。 行注释。例如:// 注释信息 【例1】 最简单的C程序。
C语言的特点
简洁紧凑、灵活方便 运算符丰富 C语言一共只有30多个关键字,9种控制语句,程序书写 数据结构丰富 C的运算符包含的范围很广泛,共有种34个运算符。C 自由,主要用小写字母表示。它把高级语言的基本结构 C是结构化的编程语言 语言把括号、赋值、强制类型转换等都作为运算符处理。 和语句与低级语言的实用性结合起来。C语言可以象汇 C的数据类型有:整型、实型、字符型、数组类型、 C语法限制不太严格、程序设计自由度大 结构化的编程语言的显著特点是代码及数据的分隔化, 从而使C的运算类型极其丰富表达式类型多样化,灵活 编语言一样对位、字节和地址进行操作,而这三者是计 指针类型、结构体类型、联合体类型等。能用来实现各 C语言允许直接访问物理地址,可以直接对硬件进行操作 即程序的各个部分除了必要的信息交流外彼此独立。这 使用各种运算符可以实现在其它高级语言中难以实现的 一般的高级语言语法检查比较严,能够检查出几乎所 算机最基本的工作单元。 种复杂的数据类型的运算。并引入了指针概念,使程序 C语言程序生成代码质量高,程序执行效率高 C语言既具有高级语言的功能,又具有低级语言的许 种结构化方式可使程序层次清晰,便于使用、维护以及 运算(具体见后面的章节)。 有的语法错误。而C语言允许程序编写者有较大的自由 效率更高。另外C语言具有强大的图形功能,支持多种 C语言适用范围大,可移植性好 多功能,能够象汇编语言一样对位、字节和地址进行操 调试。C语言是以函数形式提供给用户的,这些函数可 度。 显示器和驱动器。且计算功能、逻辑判断功能强大。 具有预处理功能 作,而这三者是计算机最基本的工作单元,可以用来写 方便的调用,并具有多种循环、条件语句控制程序流向, 一般只比汇编程序生成的目标代码效率低10~20%。 C语言有一个突出的优点就是适合于多种操作系统, 具有递归功能 系统软件。 从而使程序完全结构化。 如DOS、WINDOWS、UNIX。也适用于多种机型,在一种计 算机上编写的程序,无须修改或经过很少的修改,就可 C语言提供了预处理器,程序可以利用宏指令提高可 以在其它类型的计算机上运行。 读性和可移植性。 C语言允许递归调用,在解决递归问题上具有独特优 势。
if (a > b) c = a; else c = b; return (c); }
返回a、b中最大值c 返回值为整型数
void main ( ) { 自定义函数调用 int x, y, z; scanf ("%d%d", &x, &y); z = max (x, y); printf ("max = %d\n", z); } 假设输入:10 20↙ 运行结果:max = 20
C语言发展史
ALGOL 60语言
将CPL语 言煮干, 提炼出它 的精华
CPL语言 BCPL语言 B语言 C语言
1963年,剑桥大学 Combined Programming Language 1967年,剑桥大学的Matin Richards对CPL语言进行了简化 1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改 1973年,B语言也给人“煮” 了一下,美国贝尔实验室的 D.M.RITCHIE在B语言的基础 上最终设计出了一种新的语言
求和的值给Z 带有三个参数,以“,”分隔。&表 示取变量的地址。
1.3
C语言程序的基本结构
C语言程序的函数由两部分构成:一部分定义变量(变量 代表数据),称为声明部分;另一部分代表操作,由C语句 构成,称为执行部分。 在C程序中,要求函数的声明部分在前面,执行在后面, 再次强调:在C语言程 它们的顺序不能颠倒,也不能交叉。但在C++程序中,声明 序中,变量必须先定 部分和执行部分可以相互交叉,没有严格的界限,当然执行 义,后使用,顺序不 部分中所使用的变量只要在其之前进行定义即可。
C语言版本
C语言有不同的版本,常用的编译软件有Microsoft Visual C++、Borland C++、Borland C++ Builder、Watcom C++、GNU DJGPP C++、Lccwin32 C、Microsoft C、 Turbo C、High C等等。
本课程的内容将基于ANSI C进行展开,主要是针对 Visual C++ 6.0
/* This is the first C program */ 注释信息 C程序中允许插入若干行空行,它不影响程 #include <stdio.h> 预处理命令 printf是C语言的内部函数名,因为它后面跟着( ),其功 序的功能,同注释一样。为了程序的易读性,
能是将“Hello C Language!\n”显示在计算机的屏幕上 无返回值 在编写C程序时,根据需要可插入一定的空行 void main (双引号和\n不显示) ( ) 无参数、无返回值的主函数 C语言规定:语句以分号结束 主函数名 { 函数开始 main是主函数名,一个C语言程序有且仅有 内部函数名 回车换行符 一个main函数。C程序执行时就是从main函 函数体 printf ("Hello C Language!\n"); 函数调用 数开始,具体讲就是从“{”开始,到“}”结 语句结束标志 束。 参数
编 译
链 接
可执行程 序file.exe
运 行
不正确
结果正确?
正确 源程序 目标程序 可执行程序 编写C程序的步骤 内容 程序设计语言 结 束 机器语言 机器语言 可执行 不可以 调试C程序的流程 不可以 可以 文件名后缀 .c或.cpp .obj .exe
1.1 程序设计语言的发展及其特点
程序设计是数据被加工的过程 机 汇 器 编 语 语 言 言 冯.诺依曼结构: 高 级 语 言 面向过程
面向对象
运算器 中央处理器CPU CPU指令系统,由0、1序列构成的指令码组成 客观世界可以分类,对象是类的实例 面向机器的语言 用助记符号描述的指令系统 如:10000000 加 主机: 控制器 对象是数据和方法的封装 程序设计关键是定义类,并由类派生对象 如 10010000ADD 对象间通过发送和接受消息发生联系 减 A, B 存储器 计算机 I/O设备:键盘、显示器等
}
函数结束
运行结果:
Hello C Language!
1.3
C语言程序的基本结构
【例2】计算输入的两个整数的和 。
/* This is the second C program */ #include <stdio.h>
数据类型名
void main ( ) { int x, y, z;
定义的变量名,以“,”分隔
调用内部函数,接受键盘输入数据
scanf ("%d%d", &x, &y );
z = x + y; printf ("the sum of two integer is %d\n", z); }
假设输入:10 20↙ 调用内部函数,输出计算的和数
运行结果:the sum of two integer is 30
1.3
C语言程序的基本结构
C语言的标识符
C语言中变量和函数都有自己的名字,它们都必须是 合法的标识符。 标识符就是一个名字,C语言规定标识符只能由字母、 数字和下划线三中字符构成,并且第一个字符必须是字母 或下划线。 C语言是大小写敏感的语言,因此hello和Hello是不 同的标识符。 C语言中有一些特别的标识符,它们的用途已经事先 规定好了,程序员不能再将它们另做它用。这些特别的标 识符被称为关键字(也称保留字)。到目前为止,我们见 过的关键字有void、int、main、if、else、return。以 后随着学习的深入,我们将会遇到越来越多的关键字(C 语言关键字可参考附录3)。
//C语言wenku.baidu.com序 //C++语言程序
能颠倒!!!
//C或C++语言程序
void main ( ) void main ( ) void main ( ) 只要执行部分所 { 变量定义放到了 { { 使用的变量在前 int a; int a; 执行部分之后。 int a; 面已经定义 a = 10; a = 10; a = 10; b = a + 20; int b; int b; int b; b = a + 20; b = a + 20; 变量定义放到了 } } }
BCPL的第二个 字母作为这种 语言的名字, 这就是C语言
C语言发展史
产生过程 时间: 1972~1973 地点: 美国贝尔实验室 目的: UNIX操作系统 设计人: Ken.Thompson和Dennis.M.Ritchie C标准 标准C: K&R合著《The C Programming Language》 ANSI C: 1983年 87 ANSI C: 1987年 1990年国际标准的ANSI C
执行部分之后。
1.3
C语言程序的基本结构
自定义函数max
【例3】计算输入的两个整数的最大值 。
/* This is the third C program */ #include <stdio.h>
int max (int a, int b);
自定义函数声明
int max (int a, int b) { int c; 带两个形参