1、第第1章章c语言语言 概述概述 1.1 程序设计语言与程序设计语言与C语言语言1.2 C语言程序的开发环境语言程序的开发环境1.3 C语言词汇语言词汇1.1.1程序设计语言的发展程序设计语言的发展什么是计算机语言?为什么要使用计算机语言?过去,我们一提到语言自然就会想到像英语、汉语等这样的自然语言,因为他是人与人互相交流信息不可缺少的工具。而今天,计算机遍布于我们生活的每一个角落,除了我们人与人之间互相交流外,我们还必须和计算机交流。用什么样的方式和计算机做最直接的交流呢?人们自然1.1 程序设计语言与程序设计语言与C语言语言会想到用最古老和最便捷的方式语言。人和人交流用的是双方都能听懂的自然
2、语言,同样,人和计算机交流也要用人和计算机都容易接受和理解的语言,这个语言就是计算机语言。计算机语言。我们使用计算机语言就是要把我们的意图表达给计算机,其目的就是使用计算机。1.1 程序设计语言与程序设计语言与C语言语言程序程序既然要说程序设计语言,自然要说说“程序”这个词。大家在计算机基础科目中应该了解,计算机它是一种具有内部存储能力并且具有运算的能力,它的本质就是执行指令所规定的操作。比如说,我们想让计算机完成什么工作,只要将完成的步骤用多条指令的形式描述出来,然后存储到计算机的内存储1.1 程序设计语言与程序设计语言与C语言语言中,需要结果的时候,我们只要向计算机发出一个简单的命令,计算
3、机就会逐条按照顺序,一条一条的执行。当指令全部执行完了,那么这件事也就完成了。就像这样,可以被连续执行的一条条指令的就像这样,可以被连续执行的一条条指令的集合称为计算机的程序。集合称为计算机的程序。(换句话说,程序就是计算机指令的序列)(换句话说,程序就是计算机指令的序列)编制程序就是给计算机安排指令的序列。编制程序就是给计算机安排指令的序列。1.1 程序设计语言与程序设计语言与C语言语言程序语言的发展程序语言的发展可以说,程序语言的产生和发展直接推动了计算机的普及和应用。当今人类就发明了上千种程序语言。这些语言之间有什么区别呢,我们应该学习哪一种呢?1.1 程序设计语言与程序设计语言与C语言
4、语言1.1 程序设计语言与程序设计语言与C语言语言计算机语言按照使用的方式和功能可以分为低级语言和高级语言。低级语言(机器语言、汇编语言)机器语言机器语言是第一代计算机语言,它用0和1组成的各种二进制代码表示各种指令。至于为什么用0和1呢,这是计算机中电路的两种状态,(通电状态和关闭状态)优势:计算机能够快速识别,但编写程序的工作量大,效率低,可移植性差,这这台电脑编写的程序,不能再那台运用。1.1 程序设计语言与程序设计语言与C语言语言汇编语言汇编语言汇编语言是第二代语言,它是用符号来表示计算机的指令。如“add ax,ax”代表加法指令。缺点:对计算机硬件依赖性强,可移植性差,且难学难写、
5、难记忆。1.1 程序设计语言与程序设计语言与C语言语言高级语言高级语言它是采用完全符号化的描述过程,用自然语言的形式来描述问题的处理过程。用数学表达式的形式描述对数据的计算过程。优点:高级语言只要求人们向计算机描述问题的求解步骤,而不需要关心计算机的内部结构,所以容易被人们理解和接受。目前普遍使用的有visual C+,visual basic等等,1.1.2 C语言简介语言简介 C语言是一种通用的、结构化的程序设计语言。无论是系统语言是一种通用的、结构化的程序设计语言。无论是系统软件还是应用软件都可以很方便地使用软件还是应用软件都可以很方便地使用C语言。语言。C语言是由美国贝尔实验室的语言是
6、由美国贝尔实验室的D.M.Ritchie于于1972年在年在B语言的基础上设计出来的。它既保持了语言的基础上设计出来的。它既保持了B语言精练和接近硬语言精练和接近硬件的特点,又克服了件的特点,又克服了B语言过于简单和数据无类型等不足。语言过于简单和数据无类型等不足。不过最初的不过最初的C语言只是为描述和实现语言只是为描述和实现UNIX操作系统而提供操作系统而提供的一种工具语言,并主要在贝尔实验室内部使用。的一种工具语言,并主要在贝尔实验室内部使用。1977年年出现了不依赖于具体机器的出现了不依赖于具体机器的C语言编译文本语言编译文本可移植可移植C语言编语言编译程序译程序。C语言因此具有的良好的
7、可移植性,使语言因此具有的良好的可移植性,使UNIX操操作系统迅速在各种机器上运行,并与此相辅相成,也使作系统迅速在各种机器上运行,并与此相辅相成,也使C语语言得到了迅速推广和广泛应用。言得到了迅速推广和广泛应用。1978年以后,年以后,C语言已完全语言已完全独立于独立于UNIX,先后移植到大、中、小和微型计算机上,成,先后移植到大、中、小和微型计算机上,成为计算机程序设计语言的主流语种。为计算机程序设计语言的主流语种。下一页返回1.1.2 C语言简介语言简介 C语言的特点语言的特点C语言已成为国内外广泛使用的一种计算机语言,它具有很语言已成为国内外广泛使用的一种计算机语言,它具有很多突出的优
8、点。多突出的优点。C语言的主要特点有以下几个方面。语言的主要特点有以下几个方面。1.C语言简洁、紧凑语言简洁、紧凑C语言一共只有语言一共只有32个关键字,个关键字,9种控制语句,程序种控制语句,程序书写形式自由,主要用小写字母表示,压缩了一切书写形式自由,主要用小写字母表示,压缩了一切不必要的成分。不必要的成分。上一页 下一页返回2.数据类型丰富数据类型丰富C语言具有现代语言的各种数据类型。C语言的基本数据类型有整型(int)、浮点型(float)和字符型(char)。在此基础上按层次可产生各种构造类型,如数组、指针、结构体和共用体等。同时还提供了用户自定义数据类型。用这些数据类型可以实现复杂
9、的数据结构,如栈、链表和树等。1.1.2 C语言简介语言简介3.提供了丰富的运算符和运算能力提供了丰富的运算符和运算能力有34个运算符(书后有附录部分),大家比较熟悉的有(+、-、*、/),而其他的,我们会在今后的学习红陆陆续续的会讲到。上一页 下一页返回1.1.1 程序设计语言与程序设计语言与C语言语言4.机器生成代码质量高,移植性好机器生成代码质量高,移植性好用C语言编写的程序可移植性好,基本上不做修改就能用于各种型号的计算机和各种操作系统5.具有结构化的控制语句。具有结构化的控制语句。例如:ifelse语句。(这里简要介绍下)If语句是用来判定锁定的条件是否满足,如果满足就会.如果不满足
10、就会.上一页返回例题:判断 x和y值谁大if(xy)x大于y是否满足?printf(“%d”,x);满足的话,打印x值elseprintf(“%d”,y);不满足的话,打印y值C语言的优点很多,但也有一些不足。如语法限制不太严格、类型检验太弱和不同类型数据转换比较随便,这就要求程序员对程序设计的方法和技巧更熟练,以保证程序的正确性。5.可以直接对硬件进行操作可以直接对硬件进行操作C语言因为能进行位(bit)操作,所以能实现汇编语言的大部分功能,可以直接对硬件进行操作。因此C语言既具有高级语言的功能,又具有低级语言的许多功能,可用来写系统软件。回顾计算机基础知识“位”(bit)操作什么是位操作呢
11、?讲到位操作,大家可以回忆一下,我们原来学习的计算机基础课中,曾提到关于计算机存储方面的知识点。“位”(bit)是计算机中数据的最小单位,它是指一个二进制数。(0或1)“字节”:而8个“位”,也就是8个二进制数组成一个字节。(byte)字节是存储单元中的基本单位。回顾计算机基础知识1MB=1024(byte)1GB=1024MB计算机中存储单位是以1024为一个换算单位的。1.1.2 C语言简介语言简介用用C语言编写的源程序,简称语言编写的源程序,简称C程序。程序。C程序是一种程序是一种函数结构,一般由一个或若干个函数组成,其中必函数结构,一般由一个或若干个函数组成,其中必有一个名为有一个名为
12、main()的主函数,程序的执行就是()的主函数,程序的执行就是从这里开始的。从这里开始的。例例1-1 编写一求任意两个整数的和的编写一求任意两个整数的和的C程序。程序。main()/*主函数首部主函数首部*/Printf(“jiu jiang zhi ye da xue!”);/*输输出计算结果出计算结果*/*函数体结束函数体结束*/下一页返回下面来分析本程序的结构:下面来分析本程序的结构:Mian()是主函数,每一个C语言程序都必须,并且只有一个主函数,程序的运行都是从主函数开始的。花括号 它面的内容是有许多语句构成的函数体,“”代表函数体的开始,“”代表函数体的结束。1.1.2 C语言简
13、介语言简介本程序的printf()是C语言的输出函数,其作用是把双引号里面的字符串在电脑显示屏上输出。Printf(“jiu jiang zhi ye da xue!”)“/*”和“*/”之间的内容是程序的注释部分,它描述的是程序流程图中注释框中的内容。这注释仅仅是为程序设计人员对程序的说明信息,对程序的运行是不起作用的。阅读分析例1.2求任意两个整数的积#include /*调用输入输出函数时所需使用的文件,文件名为stdio.h*/Int mul(int a,int b);Main()/*主函数体说明*/Int x,y,z;printf(“input two numbers:n”);/*输
14、出字符串后回车到下行*/Scanf(“%d%d,&x,&y);/*通过键盘输入x,y的值*/z=mul(x,y);/*调用mul函数,然后将调用得到的数值交给z*/printf(“mul=%d”,z);int mul(int a,int b)/*子函数体说明*/int c;c=a*b;return c;/*把C的数值返还给mul函数*/1.1.2 简单的简单的C程序介绍程序介绍下面来分析本程序的结构:下面来分析本程序的结构:#include是编译预处理命令。由双引号括起来的stdio.h称做为“头文件”,在“stdio.h”文件中定义了I/O库所用到的某些宏和变量,其作用是将由双引号(或尖括号
15、)括起来的文件中的内容,读入到此命令的位置处。在使用C语言的输入/输出库函数时,一般需要使用#include命令将“stdio.h”包含到源文件中。上一页 下一页返回1.1.2 简单的简单的C程序介绍程序介绍main()为主函数名,花括号 部分构成主函数的函数体。语句int x,y,z;是变量的定义部分,说明变量x,y,z为3个整型变量,可以用来存放整型数据。scanf功能是调用系统提供的标准库函数读入变量x和y的值。printf功能是调用系统提供的标准库函数输出计算结果z的值。1.1.2 简单的简单的C程序介绍程序介绍本程序由两个函数组成,主函数main()和mul函数。函数之间并列关系,主
16、函数可以调用mul函数。mul函数为用户自定义函数。7.每一个语句和数据声明的最后必须有一个分号,分号是 C语言的必要组成部分。8.函数由函数首部和函数体组成:函数首部函数首部:int mul(int a,int b)函数类型函数类型 函数名(函数参数类型函数名(函数参数类型 函数参数名,函数参数名,函数参数类型函数参数类型 函数参数名)函数参数名)函数体:(包括变量声明部分、执行语句部分)函数体:(包括变量声明部分、执行语句部分)上一页 下一页返回例例1-3阅读并分析下面的程序。阅读并分析下面的程序。main()/*主函数主函数*/int a,b;/*声明部分,定义两个整形变声明部分,定义两
17、个整形变量量a和和b*/int sum;/*定义整形变量定义整形变量sum*/scanf(%d,%d,&a,&b);/*输入变量输入变量a和和b的值的值*/sum=a+b;/*计算计算a和和b的和,结果保存在变的和,结果保存在变量量sum中中*/printf(%d,sum);/*输出输出sum的值的值*/1.1.2 简单的简单的C程序介绍程序介绍 下面来分析一下本程序的程序结构:下面来分析一下本程序的程序结构:1.一个一个C程序由两个部分组成,数据描述和步骤描述。程序由两个部分组成,数据描述和步骤描述。数据描述是为了描述在程序中使用了哪些类型的数据。数据描述是为了描述在程序中使用了哪些类型的数
18、据。比如:比如:int a,b;定义定义a变量和变量和b变量都是整型变量变量都是整型变量 int sum;定义定义sum 为整型变量为整型变量步骤描述是对数据进行操作部分步骤描述是对数据进行操作部分比如:比如:sum=a+b;a加加b的值赋予的值赋予sum scanf(“%d,%d”,&a,&b);通过键盘输入两个整型数值,通过键盘输入两个整型数值,分别赋予分别赋予a和和b。就如同做菜,数据描述就像做菜时准备原料阶段。步骤描述就就如同做菜,数据描述就像做菜时准备原料阶段。步骤描述就像做菜的顺序和过程。像做菜的顺序和过程。上一页 下一页返回1.1.2 简单的简单的C程序介绍程序介绍2.main(
19、)主函数,上个例题说过,C语言中必须要有一个主函数,并且也只能有一个主函数;但可以有零个和多个其他分函数。3.main()主函数的位置可以放在c语言的任何地方,你可以放在开头,也可以其他地方,但不论你放在哪个地方,程序都是先从主函数进行。4.“;”分号,是表示一句话结束的标记,每句话结束都要有一个分号。上一页 下一页返回1.2C程序的开发过程程序的开发过程我们编写我们编写C程序仅仅是程序设计工作中的一个环节,写出来的程程序仅仅是程序设计工作中的一个环节,写出来的程序需要在计算机中运行,直到得到正确的运行结果为止。序需要在计算机中运行,直到得到正确的运行结果为止。C程序上机要经过四个步骤:编辑、
20、编译、连结、运行。程序上机要经过四个步骤:编辑、编译、连结、运行。一、编辑:就是我们编写一、编辑:就是我们编写C语言程序代码的过程,编写好后,通语言程序代码的过程,编写好后,通过文件存储起来,文件名的后缀名为过文件存储起来,文件名的后缀名为“.c”我们称这种文件我们称这种文件为源文件。(比如为源文件。(比如file1.c等。)等。)有时候我们要对我们的程序代码进行修改和编辑的话,可以使有时候我们要对我们的程序代码进行修改和编辑的话,可以使用编辑的程序,如(用编辑的程序,如(windows的写字板、记事本、的写字板、记事本、word等都可以编辑)等都可以编辑)上一页 下一页返回1.2C程序的开发
21、过程程序的开发过程二、编译编译是把编译是把C语言的源程序翻译成二进制代码。语言的源程序翻译成二进制代码。(为什么要翻译成二进制源代码呢?)想想(为什么要翻译成二进制源代码呢?)想想编译程序在编译过程中会检查程序的语句和语法进行检查,如编译程序在编译过程中会检查程序的语句和语法进行检查,如果发现有问题,就会弹出错误对话框。果发现有问题,就会弹出错误对话框。编译结束形成二进制代码后,编译结束形成二进制代码后,C语言会生成一个文件在这些代码语言会生成一个文件在这些代码存储起来,这种文件称为存储起来,这种文件称为“目标文件目标文件”,文件的后缀名为,文件的后缀名为“.obj”。1.2C程序的开发过程程
22、序的开发过程三、连结三、连结生成目标文件后,我们计算机还不能立马开始执行程序,还必须利用系统提供的连结程序将目标程序和系统库函数连结组装起来,形成可执行程序,才能运行。这种可执行程序文件名为“文件名.exe”.四、运行四、运行在运行阶段的时候,可以脱离C程序,直接在系统中运行。但如果运行不正确,还必须重新回到第一步进行修改。图图1-1 上机运行的步骤上机运行的步骤 返回1.2 C程序的上机步骤程序的上机步骤在了解了在了解了C语言的初步知识后,大家最好上机运行一个语言的初步知识后,大家最好上机运行一个C程序,程序,以建立对以建立对C程序的初步认识。程序的初步认识。下面就下面就visula C+6
23、.0环境、环境、win-tc下如何运行一个下如何运行一个C的的源程序作具体介绍。源程序作具体介绍。上一页 下一页返回1.3C语言词汇标识符标识符在程序中有许多需要命名的对象,以便在程序的其他地方使用。如何表示在一些不同地方使用同一对象呢?最基本的方式就是为其对象命名,通过名字在程序中建立定义与使用的关系。为此,每种程序语言都规定了在程序里描述名字的规则,这些名字包括:变量名、常数名、数组名、函数名、文件名等等,通常称为“标识符”。命名规则:标识符由字母、数字或下划线()组成,他的第一个字符必须是字母或下划线。C语言还规定,标识符中字母的大写与小写要看成两个不同的字符。如a 不同于A;game1
24、.exe不同于Game1.exe是两个不同的文件。1.3C语言词汇合法的C标识符 不合法的C标识符call_name call.nametest39 39test_string1 -string11.3C语言词汇关键字关键字C语言中有些具有特殊含义的关键字是不能作为用户自定义的标识符使用的。如:if else int long for case char等等,具体后面几章我们将深入了解,这里只做介绍。1.3C语言词汇运算符运算符 =!=逻辑与&逻辑或!逻辑非!分隔符分隔符“”“,”空格和逗号逗号,主要是用在类型说明和函数参数表中分隔各个变量,如int a,b,c;int mul(int a,int b);空格,主要是在关键字、标识符之间必须要一个以上的空格,要不会出现语法错误。int a;