《c语言程序设计基础讲义》由会员分享,可在线阅读,更多相关《c语言程序设计基础讲义(36页珍藏版)》请在金锄头文库上搜索。
1、第1章:C语言程序设计基础,学习的意义,从本章开始我们正式进入C语言程序设计的学习,也许大家会问:为什么我们要学习C语言呢?理由1:因为C语言流行.理由2:因为C语言考研时必考。理由3: 因为C语言在各种程序考试中首当其中。理由4:因为它是必修课,是老师逼的,不学不能拿学分理由n:,别急!让我想想,这些理由都只是从表面上来回答,其实要真正来回答这一问题,我们有必要了解程序设计语言的发展历史及其特点,知道C语言是属于那种类型的语言;C语言是如何产生和发展的,C语言的特点有哪些,它应用在哪些方面等,这样我们就可以做到学习目的明确,才能有意识地去学好C语言程序设计。,了解程序设计语言的发展及其特点;
2、 掌握机器语言、汇编语言和高级语言的差异; 了解C语言的发展历史及特点和应用; 掌握C语言程序的基本结构; 掌握编写C程序的基本步骤和调试过程。,另外,本章我们将带领大家来实际感受一下C语言程序是一个什么样子,它的结构特点是什么,这是我们进行C语言程序设计必须遵循的规范。最后,我们应该掌握的是如何来编写和调试一个C语言程序,这是我们每一个C语言程序员所必须具备的基本功。,学习的意义,学习目标,学习内容,程序设计语言的发展及其特点 C语言的发展及其特点和应用 C语言程序的基本结构 编制C语言程序的基本步骤,了解历史 抓住现在 展望未来,1.1 程序设计语言的发展及其特点,CPU指令系统,由0、1
3、序列构成的指令码组成 如:10000000 加10010000 减,用助记符号描述的指令系统 如 ADD A, B,程序设计是数据被加工的过程,客观世界可以分类,对象是类的实例 对象是数据和方法的封装 对象间通过发送和接受消息发生联系,程序设计关键是定义类,并由类派生对象,Ada,ALGOL60,ALGOL68,Pascal,Modula-2,CPL,BCPL,B,C,C+,Java,LISP,PROLOG,COBOL,FORTRAN77,FORTRAN,PL/1,Simula 67,Smalltalk 80,BASIC,ANSI-BASIC,QBASIC,VB,FORTRAN90,1.2 C
4、语言的发展及其特点、应用,C语言发展史,ALGOL 60语言,CPL语言,Combined Programming Language,1963年,剑桥大学,BCPL语言,1967年,剑桥大学的Matin Richards对CPL语言进行了简化,B语言,C语言,1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,将CPL语言煮干,提炼出它的精华,1973年,B语言也给人“煮”了一下,美国贝尔实验室的D.M.RITCHIE在B语言的基础上最终设计出了一种新的语言,BCPL的第二个字母作为这种语言的名字,这就是C语言,C语言发展史,产生背景 产生过程时间: 19721973地点
5、: 美国贝尔实验室目的: UNIX操作系统设计人: Ken.Thompson和Dennis.M.Ritchie C标准标准C: K&R合著The C Programming LanguageANSI C: 1983年87 ANSI C: 1987年1990年国际标准的ANSI C,C语言版本,C语言有不同的版本,常用的编译软件有Microsoft Visual C+、Borland C+、Borland C+ Builder、Watcom C+、GNU DJGPP C+、Lccwin32 C、Microsoft C、Turbo C、High C等等。,本课程的内容将基于ANSI C进行展开,主
6、要是针对Visual C+ 6.0。,C语言的特点,简洁紧凑、灵活方便 运算符丰富 数据结构丰富 C是结构式语言 C语法限制不太严格、程序设计自由度大 C语言允许直接访问物理地址,可以直接对硬件进行操作 C语言程序生成代码质量高,程序执行效率高 C语言适用范围大,可移植性好 具有预处理功能 具有递归功能,C语言一共只有30多个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C语言可以象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。,C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类
7、型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算(具体见后面的章节)。,C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、联合体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。,结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环
8、、条件语句控制程序流向,从而使程序完全结构化。,一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。,C语言既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。,一般只比汇编程序生成的目标代码效率低1020%。,C语言有一个突出的优点就是适合于多种操作系统,如DOS、WINDOWS、UNIX。也适用于多种机型,在一种计算机上编写的程序,无须修改或经过很少的修改,就可以在其它类型的计算机上运行。,C语言提供了预处理器,程序可以利用宏指令提高可读性和可移植性。
9、,C语言允许递归调用,在解决递归问题上具有独特优势。,C语言的应用,C语言的应用非常广,也非常多,在此仅列出其中的一些应用: C语言可以用来开发许多系统软件和大型应用软件。如UNIX,LINUX等操作系统。 在软件需要对硬件进行操作的场合,用C语言明显优于其它高级语言。例如,各种硬件设备的驱动程序(象显卡驱动程序、打印机驱动程序等)一般都是用C语言编写的。 在图形、图像及动画处理方面,C语言具有绝对优势,特别是游戏软件的开发主要就是使用C语言。 随着计算机网络飞速发展,特别是Internet的出现,计算机通信就显得尤其重要,而通信程序的编制首选就是C语言。 C语言适用于多种操作系统,象WIND
10、OWS、UNIX、LINUX等绝大多数操作系统都支持C语言,其它高级语言未必能得到支持,所以在某个特定操作系统下运行的软件用C语言编制是最佳选择。,1.3 C语言程序的基本结构,了解了C语言的基本特性及其应用以后,接下来就来看看C语言程序是什么样子。一个C语言程序可以是非常简单的,也可以是特别复杂的,这取决于程序所要实现的功能。我们先来认识一个最为简单的C程序。,【例1】 最简单的C程序。,/* This is the first C program */ #include void main ( )printf (“Hello C Language!n“);,运行结果: Hello C La
11、nguage!,在C程序中,注释由“/*”开始,由“*/”结束,可以实现多行注释 。在C+程序中也可使用“/”进行单行注释。例如:/ 注释信息,C语言的预处理命令都是以“#” 号开头。stdio.h是一个头文件,C程序中允许插入若干行空行,它不影响程序的功能,同注释一样。为了程序的易读性,在编写C程序时,根据需要可插入一定的空行,main是主函数名,一个C语言程序有且仅有一个main函数。C程序执行时就是从main函数开始,具体讲就是从“”开始,到“”结束。,printf是C语言的内部函数名,因为它后面跟着( ),其功能是将“Hello C Language!n”显示在计算机的屏幕上(双引号和
12、n不显示),C语言规定:语句以分号结束,1.3 C语言程序的基本结构,【例2】计算输入的两个整数的和 。,/* This is the second C program */ #include void main ( ) int x, y, z;scanf (“%d%d“, ,假设输入:10 20 运行结果:the sum of two integer is 30,1.3 C语言程序的基本结构,C语言程序的函数由两部分构成:一部分定义变量(变量代表数据),称为声明部分;另一部分代表操作,由C语句构成,称为执行部分。在C程序中,要求函数的声明部分在前面,执行在后面,它们的顺序不能颠倒,也不能交叉
13、。但在C+程序中,声明部分和执行部分可以相互交叉,没有严格的界限,当然执行部分中所使用的变量只要在其之前进行定义即可。,/C语言程序 void main ( ) int a; a = 10; int b; b = a + 20; ,/C+语言程序 void main ( ) int a; a = 10; int b; b = a + 20; ,/C或C+语言程序 void main ( ) int a; a = 10;b = a + 20;int b; ,再次强调:在C语言程序中,变量必须先定义,后使用,顺序不能颠倒!,1.3 C语言程序的基本结构,【例3】计算输入的两个整数的最大值 。,/*
14、 This is the third C program */ #include int max (int a, int b);void main ( ) int x, y, z;scanf (“%d%d“, ,int max (int a, int b) int c;if (a b)c = a;elsec = b;return (c); ,自定义函数max,假设输入:10 20 运行结果:max = 20,1.3 C语言程序的基本结构,C语言的标识符,C语言中变量和函数都有自己的名字,它们都必须是合法的标识符。标识符就是一个名字,C语言规定标识符只能由字母、数字和下划线三中字符构成,并且第一
15、个字符必须是字母或下划线。C语言是大小写敏感的语言,因此hello和Hello是不同的标识符。C语言中有一些特别的标识符,它们的用途已经事先规定好了,程序员不能再将它们另做它用。这些特别的标识符被称为关键字(也称保留字)。到目前为止,我们见过的关键字有void、int、main、if、else、return。以后随着学习的深入,我们将会遇到越来越多的关键字。,1.3 C语言程序的基本结构,总结,C程序是由多个函数构成的。 每个C程序中有且只有一个main函数。 main函数是程序的入口和出口。 不使用行号,无程序行的概念。 程序中可使用空行和空格。 C程序格式常用锯齿形书写格式。 C程序中可加
16、任意多的注释。 引用C语言标准库函数,一般要用文件包含预处理命令将其头文件包含进来。 用户自定义的函数,必须先定义后使用。 变量必须先定义后使用。 变量名、函数名必须是合法的标识符,标识符习惯用小写字母,大小写敏感。 不能用关键字来命名变量和函数。 函数包含两个部分:声明部分和执行部分,在C程序中,声明部分在前,执行部分在后,这两部分的顺序不能颠倒,也不能有交叉。 C语言的语句都是以分号结尾。,1.4 编制C语言程序的基本步骤,编 辑,程序代码的录入,生成源程序*.c或*.cpp,编 译,语法分析查错,翻译生成目标程序*.obj,链 接,与其它目标程序或库链接装配,生成可执行程序*.exe,运 行,编写C程序的步骤,用VC+运行一个C程序的操作步骤,Microsoft Visual C+编译器 注意: Visual C+是一种开发应用软件的开发工具,而C+语言是软件开发工具Visual C+所使用的语言。 启动Visual C+:开始 Microsoft Visual studio 6.0 Microsoft Visual C+ 6.0,