第一章 程序设计和C语言 主讲人:高晓娟 计算机学院
本章内容: 1.1 程序的概念 1.2 计算机语言 1.3 c语言的发展及其特点 1.4 简单的c程序介绍 1.5 运行c程序的步骤和方法
1.1程序的概念 计算机的每一个操作都是根据人们事先指定的指令进行的。 程序就是一组计算机能识别和执行的指令的集合。 C语言程序举例: 1.输入10个数,按从小到大的顺序排序。 2.汉诺塔问题。
高级语言经历了非结构化语言、结构化语言、面向对象语言三个阶段 1.2 计算机语言 1 机器语言 能够被计算机直接识别和接受的二进制代码成为机器指令。机器指令的集合称为机器语言。 2 汇编语言(符号语言) 计算机不能直接识别和执行符号语言的指令,需要由汇编程序将其转换成机器指令后执行。 3 高级语言 高级语言经历了非结构化语言、结构化语言、面向对象语言三个阶段
1.3 c语言的发展及其特点 在C语言诞生以前,系统软件主要是用汇编语言编写的。由于汇编语言程序依赖于计算机硬件,其可读性和可移植性都很差;但一般的高级语言又难以实现对计算机硬件的直接操作(这正是汇编语言的优势),于是需要一种易于理解、易于编写、可移植性强的,同时又具有低级语言特性(能对硬件直接操作)的语言。C语言就在这种情况下应运而生了。
C语言是贝尔实验室于70年代初研制出来的,后来又被多次改进,并出现了多种版本。80年代初,美国国家标准化协会(ANSI),根据C语言问世以来各种版本对C语言的发展和扩充,制定了ANSI C标准(1989年再次做了修订)。 本书以ANSI C新标准来介绍。
本书选定的上机环境是Visual C++ 6.0。 目前,在微机上广泛使用的C语言编译系统有Microsoft C、Turbo C 、VC等。虽然它们的基本部分都是相同的,但还是有一些差异, 所以请大家注意自己所使用的C编译系统的特点和规定(参阅相应的手册)。 本书选定的上机环境是Visual C++ 6.0。 返回
C语言的特点 语言简洁、紧凑,使用方便、灵活。 运算符极其丰富。 数据结构丰富 。 具有结构化的控制语句和模块化的程序结构。 语法限制不太严格,程序设计自由度大。 C 语言允许直接访问物理地址,能进行位操作。 生成的目标代码质量高,程序执行效率高。 可移植性好(较之汇编语言)。 返回
1.4 简单的c程序介绍 } 例1.1 #include “stdio.h” void main( ) { printf("Hello Word! \n"); } 主函数 函数体 } 运行结果: Hello Word!
例2. void main() { int a,b,sum; /*这是变量定义*/ a=123;b=456; /*以下3行为c语句*/ #include “stdio.h” void main() { int a,b,sum; /*这是变量定义*/ a=123;b=456; /*以下3行为c语句*/ sum=a+b; printf("sum is %d",sum); } 声明部分 执行部分 运行结果:sum is 579
void 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函数*/ { int z; /*max函数的声明部分*/ if (x>y) z=x; else z=y; return (z); /*将z的值返回,通过max带回调用处*/ }
1.4.2 C语言程序的结构 1.一个程序由一个或多个源程序文件组成 一个源文件包括: 预处理命令 全局声明 函数定义
1.4.2 C语言程序的结构 2.函数是C程序的主要组成部分 一个C源程序至少包含一个main函数,也可以包含一个main函数和若干个其他函数。函数是程序的基本单位,被调函数既可以是系统提供的库函数,也可以是自定义函数。
3. 函数的组成 函数首部: 包括函数类型、 函数名、 函数参数类型、参数名 函数体: { 声明部分 执行部分 } int max ( int x , int y ) 函数名 函数参数名 函数类型 函数参数类型 函数参数类型 函数参数名
4. 一个C程序总是从main函数开始执行,而不论main在整个程序中的位置如何。 6. 每个语句和数据定义的最后必须有一个分号。 7. C本身没有输入/输出语句,输入/输出操作是由库函数(printf,scanf等)完成。 8. 可以用/*……*/ 在任何位置对C程序加以注释。 返回
1.5 运行c程序的步骤和方法 输入与编辑源程序 编译生成目标程序 与库函数及其他目标程序连接,形成可执行的目标程序 执行
1.6 程序设计的任务 问题分析 设计算法 编写程序 对源程序进行编辑 运行程序,分析结果 编写程序文档