第1章 程序设计和C语言
1.1 什么是计算机程序
所谓程序,就是一组计算机能识别和执行的指令。
计算机的本质是程序的机器,程序和指令是计算机系统中最基本的概念。
1.2 什么是计算机语言
机器语言
计算机能直接识别和接受的二进制代码称为机器指令(machine instruction)。机器指令的集合就是该计算机的机器语言(machine language)。
符号语言
符号语言用一些英文字母和数字表示一个指令,如ADD:“加”。
计算机不能直接识别和执行符号语言的指令,需要用一种称为汇编程序的软件将符号语言的指令转换为机器语言。转换过程称为“代真”或“汇编”。因此,符号语言也称为符号汇编语言(symbolic assembler language)或汇编语言(assembler language)。一条符号语言的指令一般对应转换为一条机器指令。
不同型号的计算机的机器语言和汇编语言是互不通用的。机器语言和汇编语言是完全依赖于具体机器特性的,是面向机器的语言,故称为计算机低级语言(low level language)。
高级语言
第一个计算机高级语言——FORTRAN语言。
高级语言功能强,且不依赖于具体机器,称为计算机高级语言(high level language)。
计算机也不能直接识别高级语言,需要进行“翻译”。用编译程序软件(Dev C++)将用高级语言写的程序(源程序(source program))转换为机器指令的程序(目标程序(object program))。
高级语言的一条指令往往对应多条机器指令。
高级语言发展阶段:非结构化语言(BASIC,FORTRAN,ALGOL)、结构化语言(QBASIC,FORTRAN 77,C语言)、面向对象的语言(C++,C#,Visual Basic,Java)
1.3 C语言的发展及其特点
特点:
(1)语言简洁、紧凑,使用灵活方便。
(2)运算符丰富。
(3)数据类型丰富。
(4)具有结构化的控制语句。C语言是完全模块化和结构化的语言。
(5)语法限制不严格,程序设计自由度大。
(6)允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。
(7)用C语言编写的程序可移植性好。
(8)生成目标代码质量高,执行效率高。
1.4 最简单的C语言程序
1.4.1 最简单的C语言程序举例
【例 1.1】要求在屏幕中输出以下一行信息。
This is a C program.
#include <stdio.h> //编译预处理指令
int main() //定义主函数
{ //函数开始标志
print("This is a C program.\n"); //输出所制定的一行信息
return 0; //函数执行完毕时返回函数值0
} //函数结束的标志
运行结果:
在使用函数库中的输入输出函数时,编译系统要求程序提供有关此函数的信息。stdio.h是系统提供的一个文件名,stdio 是 standard input & output 的缩写,文件后缀 .h 的意思是头文件(header file),#include 指令把这些信息调入供使用。
C语言两种注释:(1) // 单行注释; (2) /*.....*/ 多行注释。
【例 1.2】求两个整数之和。
# include <stdio.h>
int main(){
int a=123;
int b=456;
int sum=a+b;
printf("sum is %d\n",sum);
return 0;
}
运行结果:
1.4.2 C语言程序的结构
【例 1.3】求两个整数中的较大者。
#include <stdio.h>
//主函数
int main(){
int max(int x,int y);
int a,b,c;
scanf("%d,%d",&a,&b);
c = max(a,b);
printf("max=%d\n",c);
return 0;
}
//求两个整数中的较大者的max函数
int max(int x,int y){
int z;
if(x>y)z=x;
else z=y;
return(z);
}
运行结果: