第 1章 C 语 言 基 础第 1章 C 语 言 基 础
1.1 C语言概述
1.2 基本语法成份
1.3 C程序的结构
1.4 C程序的实现第 1章 C 语 言 基 础
1.1 C语言概述
1.1.1 C语言的产生与发展
1,C
C语言于 1972年~ 1973年间,诞生于美国的贝尔实验室,由
Denis.M.Ritchie创建 。
C语言的产生基于两个方面的需要 。 一是为满足 UNIX操作系统开发的需要 。 UNIX操作系统是一个通用的,复杂的计算机管理系统 。
二是为拉近高级语言与硬件之间距离的需要 。
C语言集高级语言与汇编语言优点于一身 。
C语言面对实际应用的需要而产生,直至今日仍不改初衷。
第 1章 C 语 言 基 础
2,C语言的发展
1960年出现的 ALGOL语言是一种面向问题的高级语言,远离硬件,不适于开发系统软件 。 1963年,英国剑桥大学推出 CPL语言,CPL语言比 ALGOL语言接近硬件一些,但规模较大,难以实现 。 1969年,剑桥大学的 M.Richards对
CPL语言进行简化,推出 BCPL语言 (BCPL—Basic Combined
Programming Language) 。 1970 年,贝 尔 实 验 室 的
K.Thompson为 DEC公司 PDP[CD*2]7计算机上运行的一种早期 UNIX操作系统设计了一种类 BCPL语言,称为 B语言 。
B语言规模小,接近硬件,1971年在 PDP-11计算机上实现,并写了 UNIX操作系统 。 1960年~ 1971年是 C语言的萌芽阶段 。
第 1章 C 语 言 基 础
1972年~ 1973年间,贝尔实验室的 D.M.Ritchie在保留
B语言优点的基础上,创建了 C语言 。 1973年,UNIX操作系统被用 C语言改写,称为 UNIX第五版 。 最初的 C语言只是一种 UNIX操作系统的工作语言,依附于 UNIX系统,主要在贝尔实验室内部使用 。
UNIX以后的第六版,第七版,SYSTEM Ⅲ 和
SYSTEMⅤ 都是在第五版的基础上发展起来的,C语言也作了多次改进 。 到 1975年,UNIX第六版的公布,使 C语言受到人们的普遍注意 。
第 1章 C 语 言 基 础
UNIX操作系统的广泛使用,促进了 C语言的迅速发展与普及,C语言的发展与普及也促进了 UNIX操作系统的推广 。 到 1978年出现了独立于 UNIX和 PDP计算机的 C
语言,从而,C语言被迅速移植到大,中,小与微型机上 。
当年,B.W.Kernighan和 D.M.Ritchie以 UNIX第七版的 C编译程序为基础,出版了影响深远的名著,C程序设计语言,。
C++语言是 C语言发展的新阶段,是一种更好的 C语言,是应用广泛的面向对象的程序设计语言 。
第 1章 C 语 言 基 础
3,C语言的标准与方言各机构推出了自己的 C语言与版本,某些执行过程的微小差别不时引起 C程序之间的不兼容 。 美国国家标准协会 ( ANSI) 从 1983年开始,经过长达五年的努力,
制定了 C语言的新标准 ——ANSI C,现在提及 C语言的标准就是指该新标准 。 ANSI C比原标准 C有很大的发展,
解决了经典定义中的二义性,给出了 C语言的新特点 。
K&R也以新标准改写了他们的经典著作 。 任何 C程序都必须遵循 ANSI C标准,本教材的主体也以 ANSI C作为基础 。
第 1章 C 语 言 基 础
1.1.2 C语言的特点
( 1) C语言简洁,紧凑,压缩了一切不必要的成份。
(2) C语言运算丰富,将括号,赋值,强制类型转换、
取变量地址等都以运算实现。
(3) C语言数据类型丰富,具有现代语言的各种数据类型 ;
用户能扩充数据类型,能够实现各种复杂的数据结构,完成各种问题的数据描述。
(4) C语言是一种结构化程序设计语言,具有结构化语言所要求的三种基本结构。
第 1章 C 语 言 基 础
(5) C语言允许直接访问物理地址,能进行位运算,能实现汇编语言的大部分功能,能直接对硬件进行操作 。 C
语言是高级语言中的低级语言 。
(6) C语言提供预处理机制,有利于大程序的编写和调试 。
(7) C语言编译系统小,生成目标代码质量高,程序执行效率高 。
(8) C语言输入/输出功能用库函数实现,编写的程序移植性好 。
(9) C语言语法限制不太严格,程序设计自由度大,对程序员要求不高 。
第 1章 C 语 言 基 础
1.2 基本语法成份
1.2.1 字符集字符是可以区分的最小符号,构成程序的原始基础 。 C语言字符集是 ASCII字符集的一个子集,包括英文字母,数字及特殊字符,
· 英文字母,a~ z和 A~ Z
· 数字,0~ 9
· 特殊字符:空格 ! # % ^ & * - - + = ~ < > /
\ |,,,;? ′ ″ ( ) [ ] { }
由字符集中的字符可以构成 C语言进一步的语法成份,如标识符,关键字,特殊的运算符等 。
第 1章 C 语 言 基 础
1.2.2 标识符标识符在程序中用来标识各种程序成份,命名程序中的一些实体,如变量,常量,函数,类型,标号等对象的名字 。
C语言规定,标识符必须以英文字母或下划线开头,是字母,数字,下划线的序列 。
以下是合法的标识符,
x,c,a1,a2,op,y -1,zhou -prg,radius,prime,program,
prg -1,cout,sun,day
以下是不合法的标识符,
a.1,1computer,x+y,!abc,99999,$100,π,3c
第 1章 C 语 言 基 础
C语言中标识符要区分大小写,标识符 abc与标识符 ABC
是不同的标识符 。 习惯上符号常量用大写字母表示,变量名称用小写字母表示 。
标准 C中,标识符的长度可以是任意的,一般有效长度为
8个字符,TURBO C中标识符最大长度为 32个字符 。
标识符取名时不能与关键字同名,也不能与系统预先定义的标准标识符 ( 如标准函数 ) 同名,最好能,见名知义,,
以提高程序的可读性 。 一般选用相应英文单词或拼音的缩写形式,尽量不要使用简单代数符号,如 a,b,c,x,y,z等 。 标识符大多数采用,匈牙利,表示法,每个单词第一个字母大写,如 StudentName,YearMonthDate。
第 1章 C 语 言 基 础
1.2.3 关键字关键字又称为保留字,由系统提供,用以表示特定的语法成份,如类型名称 int,float,语句特征 if,switch、
while,运算符号 sizeof等,是构成 C语言的语法基础 。
常见关键字有 31个,参见附录 A。
关键字有特定的语法含义,不允许用户重新定义 。
关键字在程序中像国家的名字一样,绝对不能拼错 。
第 1章 C 语 言 基 础
1.2.4 运算符运算符实际上可以认为是系统定义的函数名字,这些函数作用于运算对象,得到一个结果值 。 运算符通常由 1个或多个字符构成 。
根据运算对象的个数不同,运算符可分为单目运算符,双目运算符和三目运算符,又称为一元运算符,二元运算符和三元运算符 。
第 1章 C 语 言 基 础
1.3 C程序的结构例 1-1 在屏幕上输出,C语言程序设计,。
/*程序 1 [CD*2] 1,输出 ″C语言程序设计 ″*/
# include ″stdio.h″
main( )
{
printf( ″C语言程序设计 ″) ;
}
运行结果,C语言程序设计第 1章 C 语 言 基 础例 1– 2 求两个整数之和 。
/*程序 1 - 2,求两个整数之和 */
# include″stdio.h″
main( )
{int a,b;
int sum;
printf( ″请输入两个整数 a,b,″) ;
scanf( ″%d,%d″,&a,&b) ;
sum=a+b;
printf( ″和 =%d\n″,sum) ;
}
输入数据,1999,1
运行结果,和 =2000
第 1章 C 语 言 基 础例 1-3 求两个数的最大值 。
/*程序 1 - 3,求两个数的最大值 */
# include ″stdio.h″
float max( x,y) /*求最大值函数 */
float x,y;
{float t;
if ( x>y) t=x;
else t=y;
return(t); [ZK)]
}
第 1章 C 语 言 基 础
main( ) /*主函数 */
{float a,b;
float m;
printf( ″请输入两个数,″) ;
scanf( ″%f,%f″,&a,&b) ;
m=max( a,b) ; /*调用求最大值的函数 */
printf(″最大值 =%6.2f \n″,m);
}
输入数据,12.1,3.4
运行结果,最大值 = 12.10
第 1章 C 语 言 基 础
1.3.1 C程序的结构
1.
(1) C程序由若干函数组成,其核心成份是函数 。
① 必须有一个且只能有一个主函数 main( ),主函数的名字为 main。
② 可以是系统预定义的标准函数,如 scanf函数,
printf函数等,参见附录 C。 大多数函数由程序员根据实际问题的需要进行定义,函数之间是平行的关系 。 基于此,C
语言被称为函数式语言 。
第 1章 C 语 言 基 础
(2) 函数由函数头 ( 函数的说明部分 ) 与函数体 ( 函数的语句部分 ) 两部分组成 。
① 函数头给出函数的特征描述,包括函数的属性,
类型,名字,参数及参数类型 。
如例 1 [CD*2] 3 中的求最大值函数的函数头,
float max( x,y)
float x,y; /*函数属性缺省,函数类型实型,函数名字
max,函数参数 x,y,实型 */
第 1章 C 语 言 基 础
② 函数体给出函数功能实现的数据描述和操作描述,是程序中用花括号括起的若干语句 。
如例 1 - 1 中的函数体,
{
printf( ″C语言程序设计 ″) ;
}
函数体可以为空,可以没有数据描述部分。
第 1章 C 语 言 基 础
2.
(1) 语句是组成程序的基本单位,函数功能的实现由若干条语句完成 。 说明性语句完成数据描述,执行性语句完成操作描述 。
(2) 语句由若干关键字加以标识,如 if- else语句,do
- while语句等 。 C语言语句必须以分号结束 。
(3) C语言本身没有输入/输出语句,C语言的输入/
输出操作由 scanf函数和 printf函数等库函数完成 。
第 1章 C 语 言 基 础
3,其它
1)
C程序开始往往含有以,#,开头的命令,它们是预处理命令 。 如例 1-1中# include ″stdio.h″,用以指明包含文件 。 请参阅第 12 章 。
2)
在程序中还有以,/*”开始,以,*/”结束的内容,它们是程序中的注释部分,用以帮助阅读程序 。 注释对程序的执行没有任何影响,编译时将被过滤掉 。 加必要的注释只为增加程序的可读性 。
第 1章 C 语 言 基 础
1.3.2 C程序的书写
(1) 一行一般写一条语句 。 当然一行可以写多条语句,
一条语句也可以写在多行上 。
(2) 整个程序采用紧缩格式书写 。 表示同一层次的语句行对齐,缩进同样多的字符位置 。 如循环体中的语句要缩进对齐,选择体中的语句要缩进对齐 。
(3) 花括号的书写方法较多,本书采用花括号对齐的书写方式,左边花括号处于第一条语句的开始位置,右边花括号独占一行,与左边花括号对齐 。
(4) 在程序中恰当地使用空行,分隔程序中的语句块,
增加程序的可读性。
第 1章 C 语 言 基 础
1.4 C程序的实现
1.4.1 实现步骤
C程序在计算机上的实现与其它高级语言程序的实现一样,一般要经过编辑,编译,连接,运行四个步骤,如图 1
- 1 所示 。
图 1 - 1
第 1章 C 语 言 基 础
1,编辑编辑是将 C语言的源程序输入计算机,并以文本文件的形式存储在磁盘 。 编辑是建立 C源程序文件的过程,源程序文件的扩展名为,C或,CPP。
编辑可以用任何文字处理软件完成,一般用编译器本身集成的编辑器进行编辑。
第 1章 C 语 言 基 础
2,编译
C语言是以编译方式实现的高级语言,C程序的实现必须经过编译程序对源程序进行编译,生成目标代码程序 。 目标代码程序的扩展名为,OBJ。
编译前先进行预处理 。 编译过程主要进行词法分析和语法分析 。
编译有错时,在屏幕上列出错误的位置和种类 。 此时,要返回到编辑步骤修改源程序,修改后,再进行编译 。
第 1章 C 语 言 基 础
3,连接编译形成的目标代码程序机器可以识别,但还不能直接执行,还需要将目标代码程序与库文件进行连接处理,连接工作由连接程序完成 。 经过连接,生成可执行文件 。 可执行文件的扩展名为,EXE。
连接有错同样需返回到编辑步骤修改源程序,修改后,再进行编译,连接。
第 1章 C 语 言 基 础
4,运行一个 C源程序经过编译,连接后生成了可执行文件 。 运行可执行文件,可通过编译系统下的运行功能,
也可像执行 DOS的外部命令一样,输入执行文件名运行 。
程序运行后,一般在屏幕上显示运行结果 。 根据运行结果可以判断程序是否还有算法方面的错误 。
编译时产生的错误是语法错误,运行时出现的错误是逻辑错误 。 出现逻辑错误时需要修改算法,重新编辑,
编译,运行程序 。
第 1章 C 语 言 基 础
1.4.2 程序的执行
C程序的执行总是从主函数 main( )开始,不管主函数在程序中什么位置 。 主函数中的语句依先后顺序执行,除非改变了程序的执行流程 。 其它函数通过被调用执行 。
第 1章 C 语 言 基 础
1.4.3 TURBO C上机操作
1,启动 TURBO C
只需执行 TC.EXE文件,即可启动 TURBO C进入
TURBO C的操作界面 。
如使用中文,需先将计算机置于中文操作系统管理之下 。
用 TC加源程序文件名可快速启动 TURBO C,立即进入编辑操作。
第 1章 C 语 言 基 础
2,TURBO C
启动 TURBO C后,主操作界面如图 1 - 2 所示。
图 1 - 2
第 1章 C 语 言 基 础
1)
TURBO C主操作界面由主菜单区,编辑窗口,信息窗口,热键区四部分组成 。
TURBO C的操作采用菜单驱动,主菜单包括 File( 文件操作 ),Edit ( 编辑操作 ),Run( 运行操作 ),
Compile( 编译操作 ),Project( 工程文件 ),Options
( 编译选择 ) 及 Debug( 跟踪排错 ) 各项 。
热键区提供常用操作的快速功能键方式,如 F1( 帮助 ),F2( 保存文件 ),F3( 装入文件 ),F5( 缩放窗口 ),F6( 切换窗口 ),ALT+F5( 用户屏幕 ),ALT+X
( 退出 TURBO C) 等 。
第 1章 C 语 言 基 础
2)
当前操作窗口为主窗口 ( 工作窗口 ),主窗口为双线框表示,按 F6可切换主窗口,按 F5可缩放主窗口 。
3)
方式一,按 F10进入主菜单区,通过菜单项的大写字母选择相应菜单项,或通过光标控制键 ( →,←,↑,↓)
移动高亮度光棒至相应菜单项,按回车选择相应菜单项 。
方式二,用热键 ALT加相应菜单项的大写字母,选择相应菜单项 。
对子菜单项的选择,操作方法类似。
第 1章 C 语 言 基 础
3,编辑编辑在编辑窗口中进行,有多种方式进入编辑环境,
方式一,选择 Edit项 。
方式二,选择 File项的子项 New,用于编辑新程序 。
方式三,选择 File项的子项 Load,装入要修改的程序,用于修改程序 。
方式四,启动时采用快速启动方式 。
TURBO C的编辑操作是 Wordstar,WPS等字处理软件编辑操作的子集,它与 Wordstar,WPS的编辑操作完全类似 。
第 1章 C 语 言 基 础
4.
TURBO C将编译,连接一道完成 。 按热键 F9或选择
Compile项进入编译 。 编译时发生错误,返回编辑步骤,
修改程序后,再编译程序 。
第 1章 C 语 言 基 础
5.
按热键 CTRL+F9或选择 Run项下的子项 Run,运行计算机中的程序 。 按 ALT+F5键或选择 Run项下的子项 User
Screen进入用户屏幕,查看程序运行结果 。
运行时发生错误,返回编辑步骤,修改程序后,再编译,运行程序 。
对于没编译的程序,选择运行会先自动进行编译操作,再运行程序。
第 1章 C 语 言 基 础
6,退出上机过程完成后,按热键 ALT+X或选择 File项的子项 Quit退出 TURBO C,返回操作系统状态 。
退出 TURBO C后还可用操作系统命令来显示源程序和运行程序。