第1章 程序设计和C语言
程序设计和C语言
计算机程序 指令 可以被计算机理解并执行的基本 操作命令。 程序 组计算机能识别和执行的指令。 一个特定的指令序列用来完成 定的功能。 软件 与计算机系统操作有关的计算机 程序、规程、规则,以及可能有 的文件、文档及数据
计算机程序 可以被计算机理解并执行的基本 操作命令。 指令 与计算机系统操作有关的计算机 程序、规程、规则,以及可能有 的文件、文档及数据。 软件 一组计算机能识别和执行的指令。 一个特定的指令序列用来完成一 定的功能。 程序
计算机语言 机器语言 汇编语言 高级语言 计算机能直接识别和接受 机器语言的符号化。用英 高级语言更接近于人们习 的二进制代码称为机器指 文字母和数字表示指令的 惯使用的自然语言和数学 令。机器指令的集合就是 符号语言。 语言。 该计算机的机器语言。 特点:相比机器语言简单 特点:功能强大,不依赖 特点:难学,难记,难检 好记,但仍然难以普及。 于具体机器。用高级语言 汇编指令需通过汇编程序 查,难修改, 难以推广使 编写的源程序需要通过编 转换为机器指令才能被计 用。依赖具体机器难以移 算机执行。依赖具体机器 译程序转换为机器指令的 植。 难以移植。 目标程序。 B87F01 MOV AX 383 BB2102 MOV BX 545 03D8 ADD BX AX S=1055-(383+545) B81F04 MOV AX 1055 2B C3 SUB AX BX
计算机语言 机器语言 计算机能直接识别和接受 的二进制代码称为机器指 令。机器指令的集合就是 该计算机的机器语言。 特点:难学,难记,难检 查,难修改,难以推广使 用。依赖具体机器难以移 植。 汇编语言 机器语言的符号化。用英 文字母和数字表示指令的 符号语言。 特点:相比机器语言简单 好记,但仍然难以普及。 汇编指令需通过汇编程序 转换为机器指令才能被计 算机执行。依赖具体机器 难以移植。 高级语言 高级语言更接近于人们习 惯使用的自然语言和数学 语言。 特点:功能强大,不依赖 于具体机器。用高级语言 编写的源程序需要通过编 译程序转换为机器指令的 目标程序。 B8 7F 01 BB 21 02 03 D8 B8 1F 04 2B C3 MOV AX 383 MOV BX 545 ADD BX AX MOV AX 1055 SUB AX BX S=1055-(383+545)
高级语言的发展 非结构化的语言 01 02 结构化语言 规定 程序必须由具有良好特性的基本结构(顺序结构、选 面向对象的语言 03 择结构、循环结构)构成,程序中的流程不允许随意 跳转,程序总是由上而下顺序执行各个基本结构。 特点 程序结构清晰,易于编写、阅读和维护
高级语言的发展 01 02 03 非结构化的语言 规定: 程序必须由具有良好特性的基本结构(顺序结构、选 择结构、循环结构)构成,程序中的流程不允许随意 跳转,程序总是由上而下顺序执行各个基本结构。 特点: 程序结构清晰,易于编写、阅读和维护。 面向对象的语言 结构化语言
C语言的发展 。 1972一1973年间,美国贝尔实验室的D.M.Ritchie在B语言的基础上设计出了C语言。 最初的C语言只是为描述和实现UNⅨ操作系统提供一种工作语言而设计的。 ·随着UNIX的日益广泛使用,C语言也迅速得到推广。1978年以后,C语言先后移植到大、中、小和微型计 算机上。C语言便很快风靡全世界,成为世界上应用最广泛的程序设计高级语言。 ·以UNlX第7版中的C语言编译程序为基础,I978年,Brian W.Kernighan和Dennis M.Ritchie合著了影响深远 的名著The C Programming Language,这本书中介绍的C语言成为后来广泛使用的C语言版本的基础,它 是实际上第一个C语言标准。 D.M.Ritchie 1983年,美国国家标准协会(ANS),根据C语言问世以来各种版本对C语言的发展和扩充,制定了第一个C 语言标准草案(83ANSC)。 ·1989年,ANS1公布了一个完整的C语言标准一ANS1X3.159一1989(常称为ANSI C或C89)。 1990年,国际标准化组织I1SO(International Standard Organization)接受C89作为国际标准ISO/IEC9899: 1990,它和ANS的C89基本上是相同的。 1999年,1SO又对C语言标准进行了修订,在基本保留原来的C语言特征的基础上,针对应用的需要,增加 了一些功能,尤其是C++中的一些功能,并在2001年和2004年先后进行了两次技术修正,它被称为C99, C99是C89的扩充。 目前由不同软件公司所提供的一些C语言编译系统并未完全实现C99建议的功能,它们多以C89为基础开发
C语言的发展 D.M.Ritchie • 1972—1973年间,美国贝尔实验室的D.M.Ritchie 在B语言的基础上设计出了C语言。 • 最初的C语言只是为描述和实现UNIX操作系统提供一种工作语言而设计的。 • 随着UNIX的日益广泛使用,C语言也迅速得到推广。1978年以后,C语言先后移植到大、中、小和微型计 算机上。C语言便很快风靡全世界,成为世界上应用最广泛的程序设计高级语言。 • 以UNIX第7版中的C语言编译程序为基础,1978年,Brian W.Kernighan和Dennis M.Ritchie 合著了影响深远 的名著The C Programming Language,这本书中介绍的C语言成为后来广泛使用的C语言版本的基础,它 是实际上第一个C语言标准。 • 1983年,美国国家标准协会(ANSI),根据C语言问世以来各种版本对C语言的发展和扩充,制定了第一个C 语言标准草案(’83 ANSI C)。 • 1989年,ANSI公布了一个完整的C语言标准——ANSI X3.159—1989(常称为ANSI C或C 89)。 • 1990年,国际标准化组织ISO(International Standard Organization)接受C 89作为国际标准ISO/IEC 9899: 1990,它和ANSI的C 89基本上是相同的。 • 1999年,ISO又对C语言标准进行了修订,在基本保留原来的C语言特征的基础上,针对应用的需要,增加 了一些功能,尤其是C++中的一些功能,并在2001年和2004年先后进行了两次技术修正,它被称为C 99, C 99是C 89的扩充。 目前由不同软件公司所提供的一些C语言编译系统并未完全实现C 99建议的功能,它们多以C 89为基础开发
C语言的特点 语言简洁、紧凑,使用方便、灵活 01 生成目标代码质量高,程序执行效率高 08 02 运算符丰富 程序可移植性好 0 数据类型丰富 允许直接访问物理地址 具有结构化的控制语句 06 04 能进行位(bit)操作 用函数作为程序的模块单位,便于实现程序的模块化 能实现汇编语言的大部分功能 05 C语言是完全模块化和结构化的语言 可以直接对硬件进行操作 语法限制不太严格,程序设计自由度大 因此C语言既具有高级语言的功能,又具有 低级语言的许多功能,可用来编写系统软件
C语言的特点 语言简洁、紧凑,使用方便、灵活 01 02 03 04 05 06 07 08 C 语法限制不太严格,程序设计自由度大 运算符丰富 数据类型丰富 具有结构化的控制语句 用函数作为程序的模块单位,便于实现程序的模块化 C语言是完全模块化和结构化的语言 生成目标代码质量高,程序执行效率高 程序可移植性好 允许直接访问物理地址 能进行位(bit)操作 能实现汇编语言的大部分功能 可以直接对硬件进行操作 因此C语言既具有高级语言的功能,又具有 低级语言的许多功能,可用来编写系统软件
最简单的C语言程序 程序分析 main是函数的名宇,表示主函数";每一 个C语言程序都必须有一个main函数。 【例1.1】要求在屏幕上输出:This is a C program. main前面的int表示此函数的类型是int类型 (整型),即在执行主函数后会得到一个值(即 解题思路:在主函数中用printf函数原样输出以上文字。 函数值),其值为整型。 return0:的作用是当main函数执行结束前 #include /这是编译预处理指令 将整数0作为函数值,返回到调用函数处。 int main( /定义主函数 /函数开始的标志 函数体由花括号B括起来。 printf("This is a C program.\n"): /输出所指定的一行信息 printf是C编译系统提供的函数库中的输出 return 0; /函数执行完毕时返回函数值0 函数(详见第4章)。printfe函数中双引号内的 /函数结束的标志 字符串This is a C program."按原样输出。 n是换行符,即在输出"This is a C C:\WINDOWS\system32\cmd.exe X program.“后,显示屏上的光标位置移到下 一行的开头。 每个语句最后都有一个分号,表示语句结 束
最简单的C语言程序 【例1.1】要求在屏幕上输出:This is a C program. 解题思路: 在主函数中用printf函数原样输出以上文字。 #include //这是编译预处理指令 int main() //定义主函数 { //函数开始的标志 printf("This is a C program.\n"); //输出所指定的一行信息 return 0; //函数执行完毕时返回函数值0 } //函数结束的标志 程 序 分 析 • main是函数的名字,表示“主函数”;每一 个C语言程序都必须有一个 main 函数。 • main前面的int表示此函数的类型是int类型 (整型),即在执行主函数后会得到一个值(即 函数值),其值为整型。 • return 0;的作用是当main函数执行结束前 将整数0作为函数值,返回到调用函数处。 • 函数体由花括号{}括起来。 • printf是C编译系统提供的函数库中的输出 函数(详见第4章)。printf函数中双引号内的 字符串″This is a C program.″按原样输出。 \n是换行符,即在输出″This is a C program.″后,显示屏上的光标位置移到下 一行的开头。 • 每个语句最后都有一个分号,表示语句结 束
最简单的C语言程序 【例1.1】要求在屏幕上输出:This is a C program. 解题思路:在主函数中用printf函数原样输出以上文字。 #include /这是编译预处理指令 C:\WINDOWS\system32\cmd.exe int main( /定义主函数 This is a C ogram /函数开始的标志 请按任意键继续 printf("This is a C program.\n"); /输出所指定的一行信息 return 0; /函数执行完毕时返回函数值0 /函数结束的标志
最简单的C语言程序 【例1.1】要求在屏幕上输出:This is a C program. 解题思路: 在主函数中用printf函数原样输出以上文字。 #include //这是编译预处理指令 int main() //定义主函数 { //函数开始的标志 printf("This is a C program.\n"); //输出所指定的一行信息 return 0; //函数执行完毕时返回函数值0 } //函数结束的标志
最简单的C语言程序 #include /这是编译预处理指令 int main( /定义主函数 /函数开始的标志 printf("This is a C program.\n"); /输出所指定的一行信息 return 0; /函数执行完毕时返回函数值0 /川函数结束的标志 程序分析 main是函数的名字,表示“主函数";每一个C语言程序都必须有一个main函数。 main前面的int表示此函数的类型是int类型(整型),即在执行主函数后会得到一个值(即函数值),其值为整型。 return 0;的作用是当main函数执行结束前将整数0作为函数值,返回到调用函数处。 函数体由花括号括起来
最简单的C语言程序 #include //这是编译预处理指令 int main() //定义主函数 { //函数开始的标志 printf("This is a C program.\n"); //输出所指定的一行信息 return 0; //函数执行完毕时返回函数值0 } //函数结束的标志 程 序 分 析 • main是函数的名字,表示“主函数”;每一个C语言程序都必须有一个 main 函数。 • main前面的int表示此函数的类型是int类型(整型),即在执行主函数后会得到一个值(即函数值),其值为整型。 • return 0;的作用是当main函数执行结束前将整数0作为函数值,返回到调用函数处。 • 函数体由花括号{}括起来
最简单的C语言程序 #include /这是编译预处理指令 int main( /定义主函数 /函数开始的标志 printf("This is a C program.n"): /输出所指定的一行信息 return 0; /函数执行完毕时返回函数值0 /川函数结束的标志 程序分析 printf是C编译系统提供的函数库中的输出函数(详见第4章)。printf函数中双引号内的字符串"This is a C program."按原样输出。\n是换行符,即在输出"This is a C program."后,显示屏上的光标位置移到下一行的 开头。 每个语句最后都有一个分号,表示语句结束
最简单的C语言程序 #include //这是编译预处理指令 int main() //定义主函数 { //函数开始的标志 printf("This is a C program.\n"); //输出所指定的一行信息 return 0; //函数执行完毕时返回函数值0 } //函数结束的标志 程 序 分 析 • printf是C编译系统提供的函数库中的输出函数(详见第4章)。printf函数中双引号内的字符串″This is a C program.″按原样输出。\n是换行符,即在输出″This is a C program.″后,显示屏上的光标位置移到下一行的 开头。 • 每个语句最后都有一个分号,表示语句结束