计算机语言
计算机语言种类有很多,根据其发展的过程和面向的对象,可分为三类:机器语言、汇编语言、高级语言。
机器语言(第一代语言)
由二进制代码0和1构成的指令序列,面向计算机CPU系统,是计算机可以直接识别并执行的计算机语言。
例:加法指令 10000000、减法指令 10010000
优点:机器语言能被计算机CPU直接理解和执行,不需要另外的翻译软件,占用空间少,执行速度快。
缺点:机器语言缺点主要表现在难理解、难编写、难修改、难移植等。
汇编语言(第二代语言)
为克服机器语言缺点,采用助记符和符号地址代替机器指令所形成的计算机语言。
计算机硬件不能直接理解和执行汇编语言编写的程序,需要翻译软件(汇编程序)将其翻译成机器语言目标程序后,计算机才可以执行。
例:加法指令 ADD A, B、减法指令 SUB A, B
优点:执行效率高,与机器语言相比,其学习和记忆难度有所下降。
缺点:仍是面向计算机硬件系统的语言,通用性较差,用户难掌握,仍属于计算机的低级语言。
高级语言
高级语言是由表示不同意义的英文单词和数学符号按照一定的逻辑关系及严格的语法规则构成的程序设计语言。
例:加法指令 “+”、减法指令 “-”
高级语言接近于自然语言,便于用户学习和记忆,且通用性较强。
用高级语言编写的程序,计算机硬件也不能直接理解和执行,需要另外的语言处理程序,经过编译程序或解释程序,将其翻译成机器语言程序。
高级语言可分为面向过程的高级语言(如:C语言)和面向对象的高级语言(如:C++)。
头文件函数
在使用系统库函数时,要用预编译命令“#include”将有关的“头文件”导入。
当使用标准输入、输出库函数时,要用到“stdio.h”文件中提供的信息。
例:#include "stdio.h" 或 #include <stdio.h>
“stdio”是standard input&output的缩写,包含输入/输出有关的变量定义和宏定义,以及函数声明。
文件名后缀中“h”是“head”缩写,预编译命令都放在程序开头,因此这类文件也称为头文件。
数学函数的头文件math.h、字符串函数的头文件string.h等。
C语言程序的结构
C语言程序由一个或若干个函数组成,其中有且仅有一个函数名为main的主函数。
无论主函数写在什么位置,C语言程序总是从主函数开始执行,结束于主函数。
每一个函数由函数首部和函数体组成。被调用的函数可以是系统提供的库函数,也能使用户自定义函数。
函数首部,包括函数类型、函数名、函数参数类型、函数参数名。
对照如下: ↓ ↓ ↓ ↓
例: int max (int x ,int y)
函数体,函数首部下的花括号内的部分。
函数体由若干C语句组成,可包括声明语句、赋值语句、返回语句、注释语句等。C语句必须以分号“;”作为语句结束符。
C语句书写比较自由,可在一行书写多条语句,也可将一条语句写在多行,但习惯上一行只写一条语句。
例:
int max(int x, int y) //该代码为用户自定义max函数,用于返回两个数间较大值。
{
int z; //声明语句
if (x > y) //条件语句
z = x; //赋值语句
else
z = y;
return z; //返回语句
}
/*
我是多行注释
我是多行注释
*/
//我是单行注释
C语言程序的运行步骤
输入和编辑源程序
将程序编写好后,借助编程环境建立C语言程序的源代码,并形成代码文件,扩展名为“.c”。
编译程序
计算机系统无法识别C语言编写的高级语言的源程序,必须将C语言程序的源代码文件转换为用机器语言表示的目标代码文件,扩展名为“.obj”。
连接程序
C语言程序引用了一些库函数,如printf()函数等,系统还必须从库中引用库函数代码,将其加入到本程序代码中,使得各程序模块结合为一个有机的整体,最终形成计算机可以理解的可直接执行的程序,扩展名为“.exe”。
运行程序
得到可执行文件后,将文件调入内存并使之执行,即可按照程序要求得到程序的结果。
章节习题要点
在C语言程序中,主函数可以放在任意位置;在C语言程序中,一行可以写多条语句;C语言程序的基本结构不是程序行,而是函数;C语句是完成某种程序功能的最小单位。
一个C语言程序的执行是从本程序的主函数main()开始,到本程序的主函数main()结束。
C语句的结束符为分号;
在一个C语言程序中,有且只能有一个主函数。
计算机的硬件系统可以直接识别并执行机器语言程序。
程序设计语言分为:机器语言、汇编语言、高级语言。
C语言的主要特点:简介紧凑、数据类型齐全、运算符丰富、是结构化语言,语法限制不太严格、直接被硬件系统识别并执行操作。
C语言程序由一个或若干个函数、函数体、头文件构成。
在编译环境下运行一个C语言程序的步骤:输入、编辑源程序,编译程序,连接程序,运行程序。
章节代码
例1-1
#include "stdio.h"
int main()
//该程序实现输出字符串“Hello world!”
{
printf("Hello World!");
return 0; //返回函数值语句,功能是验证主函数是否正常执行,若是则返回0
}
例1-2
#include "stdio.h"
int main()
//该程序实现求三个数的平均数
{
int x, y, z; //定义x y z为整型变量,分别表示三个数
float ave; //定义ave为实型变量,表示平均值
x = 5; //赋值语句
y = 12;
z = 35;
ave = (x + y + z) / 3.0; //因为ave为float类型(实型),分子与分母不能同为整型
printf("ave = %f", ave); //“%f”为格式控制符,控制输出ave为实型数据,后会详细讲
return 0;
}
例1-3
#include <stdio.h>
int main()
//此程序实现求两个数中的大数,使用了max自定义函数
{
int max(int x, int y); //声明要调用的max自定义函数
int a, b, c;
scanf("%d%d",&a,&b); //标准输入函数,获取用户键盘输入的值
c = max(a, b); //调用max函数
printf("两个数中最大的数是:%d",c);
return 0;
}
int max(int x, int y) //定义max子函数
{
int z;
if(x > y)
z = x;
else
z = y;
return z; //返回两个数中的大数
}
例1-4
#include "stdio.h"
int main(){
//此程序实现,求两个数的和
int a, b, sum;
scanf("%d%d", &a, &b);
sum=a+b;
printf("两个数和为:%d", sum);
return 0;
}