第一章  C语言概述
本章要求:
1C语句概述;
2)程序的三种基本结构;
3)赋值语句;
4)数据的输入与输出。
教学重点:
1. C语言的特点。
2. C语言的编程环境。
教学难点:
掌握编程环境的使用方法
教学方法:
采用多媒体教学的方法进行讲授,学生在教师指导下通过计算机进行操作练习。
课时数:4(讲授2节课,上机练习2节课)
1.1 C语言的发展及特点
1.1.1  C语言的发展过程
1C语言是国际上流行的、很有发展前途的计算机高级语言。C语言适合于作为“系统描述语言”。它既可以用来编写系统软件,也可以用来编写应用程序。
以前操作系统等系统软件主要采用汇编语言编写。汇编语言依赖于计算机硬件,程序的可读性、可移植性都比较差。为了提高可读性和可移植性,人们希望采用高级语言编写这些软件,但是一般的高级语言难以实现汇编语言的某些操作,特别是针对硬件的一些操作(如:内存地址的读写-直接硬件、二进制位的操作)。人们设法寻一种既具有一般高级语言特性,又具有低级语言特性的语言C语言就在这种情况下应运而生。
2C语言的发展见下图:
ALGOL60 -> CPL -> BCPC -> B -> C -> 标准C -> ANSI C -> ISO C
ALGOL60:一种面向问题的高级语言。ALGOL60离硬件较远,不适合编写系统程序。
CPLCombined Programming language,组合编程语言)CPL是一种在ALGOL60基础上更接近硬件的一种语言。CPL规模大,实现困难。
BCPLBasic Combined Programming language,基本的组合编程语言):BCPL是对CPL进行简化后的一种语言。
B语言:是对BCPL进一步简化所得到的一种很简单接近硬件的语言。B语言取BCPL语言的第一个字母。B语言精练、接近硬件,但过于简单,数据无类型。B语言诞生后,Unix开始用B语言改写。
C语言:是在B语言基础上增加数据类型而设计出的一种语言。C语言取BCPL的第二个字母。C语言诞生后,Unix很快用C语言改写,并被移植到其它计算机系统。
标准C ANSI CISO CC语言的标准化。
注:最初Unix操作系统是采用汇编语言编写的,B语言版本的Unix是第一个用高级语言编写
Unix。在C语言诞生后,Unix很快用C语言改写,C语言良好的可移植性很快使UnixPDP计算机移植到其它计算机平台,随着Unix的广泛应用,C语言也得到推广。从此C语言和Unix像一对孪生兄弟,在发展中相辅相成,UnixC很快风靡全球。
3C语言的发展历史可以看出,C语言是一种既具有一般高级语言特性(ALGOL60带来的高级语言特性),又具有低级语言特性(BCPL带来的接近硬件的低级语言特性)的程序设计语言C语言从一开始就是用于编写大型、复杂系统软件的,当然C语言也可以用来编写一般的应用程序。也就是说:C语言是程序员的语言!
IBM PC微机DOSWindows平台上常见的C语言版本有:
Borland公司:
Turbo C,Turbo C++,Borland C++
C++ Builder(Windows版本)
Microsoft公司:
Microsoft C
Visual C++(Windows版本)
1.1.2  C语言的特点
C语言是从“组合编程语言”CPL发展而来,C语言既具有一般高级语言特性(ALGOL60带来的高级语言特性),又具有低级语言特性(BCPL带来的接近硬件的低级语言特性)C语言具有下面特点(其中1-6属于高级语言特性,78属于低级语言特性)
1、 C语言的语言成分简洁,紧凑,书写形式自由
例:将C语言程序段与实现同样功能的PASCAL语言程序段进行比较。
scanf输入整型数组
C语言
PASCAL语言
含义
说明
1
{…}
BEGIN…END
复合语句
(:语句块)
PASCAL显得罗嗦
2
if(e)S;
IF(e)THEN S;
条件语句
PASCAL至少多了一个THEN关键词
3
int i;
VAR i:INTEGER
定义i为整型变量
PASCAL至少多了一个VAR关键词
4
int a[10];
VAR a:ARRAY[1..10] OF INTEGER
定义a为整型一维数组,10个元素
PASCAL多了VARARRAYOF等关键词
5
int f();
FUNCTION f():INTEGER
定义f为返回值为整型的函数
PASCAL至少多了一个FUNCTION关键词
6
int *p;
VAR p:^INTEGER
定义p为指向整型变量的指针变量
PASCAL至少多了一个VAR关键词
7
i+=2;
i:=i+2
赋值语句
C中如果将一个变量与另外一个操作数运算后赋值给原来的变量,使用复合的运算符可以不要重复书写此变量。C形式上更加简洁。
8
I++
I=I+1
I自增1
C定义了常用的自增1、自减1运算符。形式上显得相当简洁
2、 C语言拥有丰富的数据类型
C语言具有整型、实型、字符型、数组类型、指针类型、结构体类型、共同体类型等数据类型。能方便地构造更加复杂的数据结构(如:使用指针构造链表、树、栈)
3、 C语言的运算符丰富、功能更强大
例如:
(1) C语言具有复合的赋值运算符“+[-*/%]=(加等、减等、乘等、除等) ,>>=”“<<=(右移等、左移等),&[^|]=(与等、或等、非等)
x+=5等价于x=x+5
(2) C语言有条件运算符“?:”可代替简单的if/else语句。
如果需要表示:“如果x小于或等于0y0;否则y1”可以采用:
y=x<=0?0:1;
如果用一般的程序设计语言表示就应该像下面这样表示:
if(x<=0)y=0;
else y=1;
C语言避免了一切可能的罗嗦,
(3) C语言中连赋值这种操作都定义为运算符,也就是说赋值操作本身可以作为表达式的一部分,参与运算。如:
if((p=malloc(sizeof(int)))==NULL){printf(“Error!”);exit(1);}
如果改写为一般形式:
p=malloc(sizeof(int));
if(p==NULL){printf(“Error!”);exit(1);}
又如下面算式是正确的:
x=y=z=6;
    如果改写为一般形式:
        z=6;y=6;x=6;
4、 C语言是结构化的程序设计语言
C语言具有结构化的控制语句(if/else,switch/case,for,while,do…while)
函数是C语言程序的模块单位。
5、 C语言对语法限制不严格,程序设计灵活
C语言不检查数组下标越界,C语言不限制对各种数据转化(编译系统可能对不合适的转化进行警告,但不限制),不限制指针的使用,程序正确性由程序员保证。
实践中,C语言程序编译时会提示:“警告错”“严重错误”。警告错误表示你使用的语法可能有问题,但是你有时可以忽略,你的程序仍然可以完成编译工作,然后运行。(但是一般情
况下警告错,往往意味着程序真的有问题,你应该认真地检查)“严重错”是不能忽略的,编译系统发现严重错误,就不会产生目标代码。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。