C语言基础及顺序结构程序设计.ppt
《C语言基础及顺序结构程序设计.ppt》由会员分享,可在线阅读,更多相关《C语言基础及顺序结构程序设计.ppt(159页珍藏版)》请在三一办公上搜索。
1、第2章 C语言基础及顺序结构程序设计,作为一种程序设计语言,C 语言规定了一套严密的字符集和语法规则,程序设计就是根据这些基本字符和语法规则按照实际问题的需要编制出相应的 C 语言程序。本章首先介绍C语言的语法基础,包括字符集、数据类型、标识符、关键字、保留标识符、变量和常量的概念,其次介绍基本运算符和表达式的运算规则以及基本输入/输出函数的用法,最后介绍顺序结构程序设计的基本方法,并学习编写一些简单的顺序结构程序。,2.1 C语言的字符集 2.2 C语言的关键字、标识符与保留标识符 2.3 C语言的数据类型 2.4 常量 2.5 变量 2.6 C语言的运算符和表达式 2.7 C语言的最基本的
2、运算符与表达式 2.8 C语言的基本语句 2.9 数据的输入与输出 2.10 顺序结构程序设计 2.11 程序举例,第2章 C语言基础及顺序结构程序设计,第2章,2.1 C语言的字符集,字符是组成C语言的最基本的元素。C语言字符集由字母、数字、空白符、下划线、标点和特殊字符组成(在字符常量、字符串常量和注释中还可以使用汉字等其他图形符号)。由字符集中的字符可以构成C语言的基本的语法单位(如标识符、关键字、运算符等)。,2.1 C语言的字符集,C语言字符集及常规分类如下:字母:小写字母az共26个,大写字母AZ共26个。数字:09共10个。空白符:空格符、制表符和换行符等统称为空白符。空白符 只
3、在字符常量和字符串常量中起作用,在其他地方出现时,只起间隔作用,编译程序时对它们忽略。下划线:_。标点符号、特殊字符:+、-、*、/、%、=、(、)、!、&、#、?、,、.、;、:、。在编写C语言程序时,只能使用C语言字符集中的字符,且区分大小写字母。如果使用其他字符,编译器将把它们视为非法字符而报错。,2.2 C语言的关键字、标识符与保留标识符,正如人类的自然语言具有其语法规则一样,C 语言也规定了自身的语法。为了按照一定的语法规则构成 C 语言的各种成分,C语言规定了基本词法单位。基本的词法单位是单词,而构成单词的最重要的形式是关键字、标识符和保留字符。,2.2 C语言的关键字、标识符与保
4、留标识符,2.2.1 关键字 关键字是具有特定含义的、专门用来说明C语言的特定成分的一类单词。C语言的关键字都用小写字母书写,不能用大写字母书写。表2-1 C语言关键字列表,2.2.2 标识符 在C程序中,用于标识名字的有效字符序列称为标识符。标识符可用来标识变量名、符号常量名函数名、数组名和数据类型名等。标识符的命名应遵循以下规则:标识符只能由英文字母、数字和下划线三种字符组成,且 第一个字符必须为字母或下划线。大小写英文字母被认为是不同的字符。例如,D和d,BOOK和 book,A_b和a_b是三个不同的标识符。标识符不能与关键字和保留标识符重名。在一个标识符中,各个字符之间不允许出现空格
5、。标识符的长度可以为任意,它随编译系统的不同而不同。,2.2 C语言的关键字、标识符与保留标识符,正确的标识符命名:_3a x3 BOOK1 PI sum5 music _3_4 abcD34xz不正确的标识符命名:a+b 3s-3x yes no int ab r#xy bowy-1 yes/no printf,2.2.2 标识符,定义标识符时应尽量做到“见名知意”,以提高程序的可读性。例如,可用sum表示求和,name表示姓名、max表示最大等。,2.2 C语言的关键字、标识符与保留标识符,2.2.3 保留标识符 保留标识符是系统保留的一部分标识符,通常用于系统定义标准库函数的名字。例如,
6、正弦函数名sin、打印函数名printf、预编译命令define等。,2.2 C语言的关键字、标识符与保留标识符,2.3 C语言的数据类型,计算机的基本功能之一是数据处理,计算机语言支持的数据类型越丰富,它的应用范围就越广。数据类型是依据被说明量的性质、表示形式、占据存储空间的多少以及构造特点进行划分的。,2.3 C语言的数据类型,C语言的数据类型如图所示,图2-1 C语言数据类型的分类,在C语言中数据类型可分为4大类:(1)基本数据类型。它是编译系统已定义的类型,特 点是它的值不可以再分解为其他类型。(2)构造数据类型。它是用户自己定义的类型,是根 据已定义的一个或多个数据类型构造出来的。(
7、3)指针类型。它是一种特殊的的数据类型,用来表 示某个变量在内存储器中的存放地址。(4)空类型。它主要用途有两点,一是用作函数的返 回类型,二是用作指针的基本类型。,2.3 C语言的数据类型,2.4 常量,所谓常量是指在程序运行的整个过程中,其值始终不变的量。常量可以有不同的类型,可分为直接常量和符号常量。直接常量也就是日常所说的常数,包括数值常量和字符型常量两种。其中数值常量又包括整型常量和实型常量;字符型常量可分为字符常量和字符串常量;符号常量则是指用标识符定义的常量,从字面上不能直接看出其类型和值。,2.4 常量,C语言中常量的分类,如图2-2所示。,图2-2 C语言的常量,2.4.1
8、整型常量 C语言中整型常量有十进制、八进制、十六进制3种形式。,2.4 常量,1、十进制整型常量 十进制整型常量的表示与数学上的整数表示 相同,十进制整型常量没有前缀,由09的数字 组成。以下各数是合法的十进制整型常量:237,-568,65535,1627 以下各数不是合法的十进制整型常量:023(不能有前导0),23D(含有非十进制数码),2.4.1 整型常量,2.4 常量,2.4.1 整型常量,2、八进制整型常量 八进制整型常量的表示以数字0开头,即以0作为八进制数的前缀,由07的数字组成,八进制数通常是无符号数。以下各数是合法的八进制常数:015(十进制为13)0101(十进制为65)
9、0177777(十进制为65535)以下各数不是合法的八进制常数:256(无前缀0),03A2(包含了非八进制数字A)-0128(出现了非八进制数字8和负号),2.4 常量,3、十六进制整型常量 十六进制整型常量的表示以0 x或0X开头,即以0 x或0X作为前缀(注:十六进制数前缀字符0 x,x前面是数字0而不是字符o),由09,AF或af的数字组成。以下各数是合法的十六进制整型常量:0X2A(十进制为42)0XA0(十进制为160)0XFFFF(十进制为65535)以下各数不是合法的十六进制整型常量:5A(无前缀0X)0X3H(含有非十六进制数码H),2.4.1 整型常量,2.4 常量,另外
10、,整型常量按长度划分为两种:短整型和长整型(后缀为小写字母l或大写字母L),其中默认为短整型,如-377是一个短整型数,而-377l或-377L表示-377是长整型。,2.4.1 整型常量,2.4 常量,2.4.2 实型常量,在C语言中,实型常量只能用十进制形式表示,不能用八进制和十六进制形式表示。它有两种形式:小数形式和指数形式。,2.4 常量,2.4.2 实型常量,1.小数形式 由正负号、09的数字和最多一个小数点组成(必须有小数点)。如:-1.85,0.3456,120.0,.426,-11.都是十进制小数形式实数。小数点前面和后面可以没有数字(不能同时省略)。,2.4 常量,2.4.2
11、 实型常量,2.指数形式 由十进制数加上阶码标志“e”或“E”以及阶码组成。其一般形式为:a E n。其中a为十进制数,n为十进制整数(n为正数时“+”可以省略)其值为:a10n。例如,1.234e+12 表示 1.234*10 0.25e-8 表示 0.25*10-8。合法的实数:1.234e12(等于1.2341012),3.7E-2(等于3.710-2),2.34e+8(等于2.34108)非法的实数:568(无小数点),58.+e5(负号位置不对)2.7E(无阶码),6.4e+5.8(阶码为实数)e-5(阶码标志“e”之前无数字),2.4 常量,字符常量是用单引号括起来的一个字符。例如
12、:a、0、A、-、*都是合法字符常量,注意,a和A是不同的字符常量。除了以上形式的字符常量以外,C 语言还定义了一些特殊的字符常量,是以“”开头的字符序列,称为转义字符。转义字符是一种特殊的字符常量,具有特定的含义,不同于字符原有的意义,故称“转义”字符。例如:如n中的n不表示字母n而作为“换行”符。,2.4.3 字符常量,2.4 常量,表2-2 转义字符及其含义,2.4 常量,注意:(1)字符常量只能用单引号括起来,不能用双引 号或其他括号。例如:“a”是不合法的。(2)字符常量只能是单个字符,不能是字符串。例如:ab是不合法的。(3)字符可以是字符集中任意字符,但数字被定 义为字符型之后就
13、以ASCII码值参与数值运 算。如:6和6是不同的,6是字符常量,而6是 整型常量。,2.4.3 字符常量,2.4 常量,例2.1 分析下面程序的运行结果。#include/*程序需要使用C语言提供的标准函数库*/void main()/*主函数*/printf(Chinan101tn);/*调用库函数printf显示字符串*/,2.4.3 字符常量,2.4 常量,程序运行结果:ChinaA,程序中有4个转移字符,分别是n、101、t、。输出“China”后遇到转义字符n,因此换行,换行后遇到转义字符101,输出A,后遇到转义字符t,水平移动到下一个制表位置,后遇到转义字符,输出。,在C语言中
14、,字符串常量是用双引号括起来的字符序列。例如,以下是合法的字符串常量:“CHINA”“This is a C program.”“402754”“+?ab”“*”“”表示一个空格“”表示什么字符也没有“n”表示一个转义字符换行 ab 既不是字符常量,也不是字符串常量。,2.4.4 字符串常量,2.4 常量,2.4.4 字符串常量,字符串常量在内存中存储时,系统自动在每一个字符串常量的尾部加一个“字符串结束标志”,即字符0(ASCII码值为0)。因此,长度为n个字符的字符串常量在内存中要占用n+1个字节的空间。例如,字符串“C program”的长度为 9(即字符的个数),但在内存中所占的字节数
15、为10,即存放“C program0”。,2.4 常量,再如,字符常量A与字符串常量“A”在内存中存储的方式如下:,2.4.4 字符串常量,2.4 常量,字符常量与字符串常量的区别:定界符不同。字符常量使用单引号,而字符串常量使用双引号。例如,“a”是不合法的。长度不同。字符常量的长度固定为1,而字符串常量的长度可以是0,也可以是某个整数。例如,ab 是不合法的。存储要求不同 字符常量存储的是字符的ASCII码值,而字符串常量除了要存储字符串常量的有效字符外,还要存储一个字符串结束标志0。,2.4.4 字符串常量,2.4 常量,2.4.5 符号常量,在程序中,可以定义一个符号来代表一个常量,这
16、种相应的符号称为符号常量。例如:用PI代表圆周率,即3.14159。符号常量可以增加程序的易读性。例如:用PI代表圆周率,NAME代表姓名等。符号常量提高了程序的通用性和可维护性,使用符号常量可以使修改该常量变得十分方便。,2.4 常量,2.4.5 符号常量,C语言中,用编译预处理命令#define来定义符号常量。例如:#define PI 3.14159#define NUM 35#define NAME“liming”#define END$格式是在#define后面跟一个标识符和一个字符串,彼此之间用空格隔开。它不是C语句,故末尾不要加分号。习惯上,符号常量用大写,变量用小写以示区别。另
17、外,符号常量一旦定义,就不能在程序的其它地方给该标识符再赋值。,2.4 常量,例2.2 编写求一个半径r为3.0的球的体积和表面积的程序。#include/*程序需要使用C语言提供的标准函数库*/#define PI 3.14159/*定义PI为符号常量,其值为3.14159*/void main()/*主函数*/float r,v,s;/*定义实型变量r、v、s分别表示球的半径、体积和表面积*/r=3.0;/*将3赋值给半径r*/v=4.0/3.0*PI*r*r*r;/*求球的体积v*/s=4.0*PI*r*r;/*求球的表面积s*/printf(v=%f,s=%fn,v,s);/*输出球的
18、体积v和表面积s*/,2.4.5 符号常量,2.4 常量,程序运行结果:v=113.097237,s=113.097240,本程序在主函数main()之前,由编译预处理命令#define定义PI为3.14159,在程序中以该值代替PI。v=4.0/3.0*PI*r*r*r等效于=4.0/3.0*3.14159*r*r*r,而s=4.0*PI*r*r等效于s=4.0*3.14159*r*r。,2.5 变量,程序在运行过程中除了使用常量外,还必不可少地要从外部或内部接收数据保存起来,并将程序处理过程中产生的中间结果以及最终结果保存起来。因此,需要引入变量来存放其值随时可以变化的量。,2.5.1 变
19、量的概念,变量是指在程序运行过程中,其值可以改变的量。例如,计算圆的周长的C语句:i=2*3.14159*r;i和r都是变量,其中,r可以有不同的值,i的值因r的值不同而不同。,2.5 变量,2.5.1 变量的概念,变量的特征:(1)它有一个变量名,变量名的命名方式符合标识符的 命名规则。例如,可以用name,sum作为变量名。(2)变量有类型之分。不同类型的变量占用的内存单元(字节)数不同,因此每个变量都有一个确定的类型。例如,整型变 量、实型变量、字符型变量等。(3)变量可以存放值。程序运行过程中用到的变量必须有确切的值,变量 在使用前必须赋值,变量的值存储在内存中。在程 序中通过变量名来
20、引用变量的值。,2.5 变量,2.5.1 变量的概念,变量名和变量值的区别:在程序运行过程中从变量x中取值,实际上是通过变量名x找到相应的内存地址,从其存储单元中取数据30。,图2-5 变量名与变量值的区别,2.5 变量,2.5.2 变量的定义与初始化,1.变量的定义 在C语言程序中,常量是可以不经定义而直接引用的,而程序中用到的所有变量必须先定义后使用。变量定义的一般格式为:数据类型标识符 变量名1,变量名2,变量名3,变量名n;其中,表示可选项。例如:int a;/*定义a为整型变量*/int m,n;/*定义m和n为整型变量*/float x,y,z;/*定义x,y,z为单精度实型变量*
21、/char ch;/*定义ch为字符型变量*/long int t;/*定义t为长整型变量*/static double r;/*定义r为长静态的双精度实型变量*/,2.5 变量,2.5.2 变量的定义与初始化,进行变量定义时,应注意以下几点:(1)允许在一个数据类型标识符后,说明多个相同类型的 变量,各变量名之间用逗号隔开。(2)数据类型标识符与变量名之间至少用一个空格隔开。(3)最后一个变量名之后必须以分号“;”结尾。(4)变量说明必须放在变量使用之前,一般放在函数体的 开头部分。(5)在同一个程序中变量不允许重复定义。例如,以下是 不合法的定义。int x,y,z;int a,b,x;/
22、*变量x被重复定义*,2.5 变量,2.5.2 变量的定义与初始化,2.变量的初始化 在定义变量的同时可以给变量赋初值,称为变量初始化。变量初始化的一般格式为:数据类型标识符 变量名1=常量1,变量名2=常量2,变量名n=常量n 例如:int m=3,n=5;/*定义m和n为整型变量,同时m,n分别赋初值3,5*/float x=0,y=0,z=0;/*定义x,y,z为单精度实型变量,同时x,y,z 都赋初值为0*/char ch=a;/*定义ch为字符型变量,同时赋初值字符a*/long int a=1000,b;/*定义a,b为长整型变量,同时a赋初值1000*/,2.5 变量,2.5.3
23、 整型变量,整型变量通常可分为4类:一般整型(int)、短整型(short)、长整型(long)和无符号型(unsigned)。其中,无符号型又有无符号整型(unsigned int)、无符号短整型(unsigned short)和无符号长整型(unsigned long)之分。变量在内存中都占据着一定的存储长度,随存储长度不同,所能表示的数值范围也不同。本书以VC+6.0作为软件开发环境,整型变量类型标识符、内存中所占空间字节数和所表示的数值范围见表2-3。,2.5 变量,表2-3 整型变量类型,2.5 变量,2.5.4 实型变量,实型变量分为单精度型(float)、双精度型(double)
24、和长双精度型(long double)3种。实型变量类型标识符、内存中所占空间字节数和所表示的数值范围见表2-4。,表2-4 实型变量类型,2.5 变量,一个实型常量可以赋值给一个float型或double型变量。根据变量的类型截取实型常量中相应的有效数字位。假如a已指定为单精度实型变量:float a=333333.333;由于float型变量只能接收7位有效数字,因此最后两位小数不起作用。如果a改为double型,则能全部接收上述9位数字并存储在变量a中。,2.5.4 实型变量,2.5 变量,2.5.4 实型变量,例2.3 浮点型数据的舍入误差分析。#include vo id main(
25、)/*主函数*/float a;/*定义a为单精度实型变量*/double b;/*定义b为双精度实型变量*/a=33333.33333;/*将值赋给单精度实型变量a*/b=33333.33333333333333;/*将值赋给双精度实型变量b*/printf(a=%f,b=%fn,a,b);/*以实型形式输出a和b的值*/,2.5 变量,程序运行结果:a=33333.332031,b=33333.333333,由于a 是单精度浮点型,有效位数只有七位,而整数已占五位,故小数位两位之后均为无效数字。b 是双精度型,有效位为十六位,但由于本运行环境规定小数后最多保留六位,其余部分四舍五入。,#i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 基础 顺序 结构 程序设计
链接地址:https://www.31ppt.com/p-6503809.html