C语言概述和上机运行简单C程序
- 一、C语言的发展过程
- 二、当代最优秀的程序设计语言
- 三、C语言的特点
- 四、面对过程和面向对象的程序设计思想
- 五、简单的C程序
一、C语言的发展过程
C语言是在70年代初问世的。 一九七八年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言,同时由B.W.Kernighan和D.M.Ritchit合著了著名的《THE C PROGRAMMING LANGUAGE》一书 ,通常简称为《K&R》,也有人称之为 《K&R》标准。 但是,在《K&R》中并没有定义一个完整的C语言标准,后来由美国国家标准协会(American National Standards Institute)在此基础上制定了一个C语言标准,于1983年发表,通常称之为ANSI C。
二、当代最优秀的程序设计语言
早期的C语言主要是用于UNIX系统。 由于C语言的强大功能和各方面的优点逐渐为人们认识,到了八十年代,C开始进入其它操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用,成为当代最优秀的程序设计语言之一。
三、C语言的特点
- C语言简洁、紧凑,使用方便、灵活。 ANSIC一共只有32个关键字: auto、break、case、char、const、continue、default、do、double、else、enum、extern、float、for、goto、if、int、long、register、return、short、signed、static、sizof、struct、switch、typedef、union、unsigned、void、volatile、while。
- 9种控制语句,程序书写自由,主要用小写字母表示(C语言大小写敏感),压缩了一切不必要的成分。
- 运算符丰富。 共有34种运算符。C把括号、赋值、逗号等都作为运算符处理,从而使C的运算类型很丰富,使用极为灵活,可以实现其他高级语言难以实现的运算。
- 数据结构类型丰富。
- 具有结构化的控制语句。
- 语法限制不太严格,程序设计自由度大。
- C语言允许直接访问物理地址,能进行位(bit)操作,可以嵌入汇编语言、实现汇编语言的大部分功能,还可以直接对硬件进行操作。因此有人把它称为中级语言。
- 生成目标代码质量高,程序执行效率高。
- 与汇编语言相比,用C语言写的程序可移植性好。 但是,C语言对程序员要求也高,程序员用C写程序会感到限制少、灵活性大,功能强,但较其他高级语言在学习上要困难一些。
四、面对过程和面向对象的程序设计思想
- 面向过程 “面向过程”是一种以事件为中心的编程思想。就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
- 面向对象 “面向对象”(Object Oriented,简称OO)是一种以事物为中心的编程思想。
面向对象的底层基础还是面向过程。
以走这个动作举例来说明面向对象和面向过程: 面向过程会将走这个动作分成几个步骤:抬腿、向前迈出指定角度、向下放腿、身体前移、迈出另一只脚…通过一系列的过程,进而实现整个功能; 而面向对象会将走封装进一个对象,这个对象的一个实例里有很多方法,包括抬腿、迈出、放腿等,通过调用方法来实现功能。
五、简单的C程序
学习一门语言首先就是要向世界发出问候hello world
,第一个C程序如下:
#include <stdio.h>
void main()
{
printf("hello world!n");
}
打印:
代码语言:javascript复制hello world!
main是主函数的函数名,表示这是一个主函数。
每一个C程序都必须有,且只能有一个主函数(main函数)。
函数调用语句,printf
函数的功能是把要输出的内容送到显示器去显示。
printf
函数是一个由系统定义的标准函数,可在程序中直接调用。
再举一个例子:
代码语言:javascript复制#include <math.h>
#include <stdio.h>
main()
{
double x, s;
printf("input a number:n");
scanf("%lf", &x);
s = sin(x);
printf("sin of %lf is %lfn", x, s);
}
打印:
代码语言:javascript复制input a number:
1
sin of 1.000000 is 0.841471
程序执行说明: include称为文件包含命令; 扩展名为.h的文件称为头文件; 定义两个实数变量,以被后面程序使用打印显示提示信息; 从键盘获得一个实数x,求x的正弦,并把它赋给变量s; 显示程序运算结果; main函数结束。
再看一个稍复杂的例子:
代码语言:javascript复制#include <stdio.h>
int max(int a, int b); /* 函数说明 */
main() /* 主函数 */
{
int x, y, z; /* 变量说明 */
int max(int a, int b); /* 函数说明 */
printf("input two numbers:n");
scanf("%d%d", &x, &y); /* 输入x、y值 */
z = max(x, y); /* 调用max函数 */
printf("max num = %d", z); /* 输出 */
}
int max(int a, int b) /* 定义max函数 */
{
if(a > b) return a; else return b; /* 把结果返回主调函数 */
}
打印:
代码语言:javascript复制input two numbers:
10 20
max num = 20
这个简单的程序实现了比较两个数的大小并返回较大的数的功能。