第二章 程序设计基础

  • 格式:docx
  • 大小:298.81 KB
  • 文档页数:23

1 2.1 常量、变量和标识符 常量、变量和标识符,包括后面将要讲到的运算符是C语言程序中最小的组成单位,用C语言编写的程序无论多么复杂或多么简单,都离不开这些基本要素。 2.1.1 标识符 【学习提示】理解标识符是否合法的判断 简单地说,标识符就是一个名称,用来表示变量、常量、函数以及文件等名称。例如,我们每个人的姓名,就是每个人所对应的标识符。 合法的标识符由字母(大、小写均可)、数字和下画线组成,并且必须以字母或下画线开头。C语言是一种对大小写敏感的语言,所以abc、aBc 和Abc 是3种不同的标识符。 【例如】 _sun、Mouse、student23、Football、FOOTBALL 都是合法的标识符。 23student、Foot-ball、s.com 和b&c 都是非法的标识符。 【请思考】 为什么说以上标识符是非法的标识符?标识符能否用汉字表示? 本节重点: 合法的用户标识符考查: 合法的要求是由字母,数字,下划线组成。有其它元素就错了。 并且第一个必须为字母或是下划线。第一个为数字就错了。 关键字不可以作为用户标识符号。main、define、scanf、printf 都是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。 2.1.2 关键字 【学习提示】熟记C语言中的常用关键字 所谓关键字是指被C语言保留的,不能用作其他用途的一些标识符,它们在程序中都代表着固定的含义。例如,用来说明变量类型的标识符int、float 以及条件语句中的if、else 等都已经有专门的用途,它们不能再用作变量或函数名。 2.1.3 常量 什么是常量呢?简单地说,在程序运行过程中,其值不能被改变的量称为常量。常量可以分为3类,即整型常量、实型常量和字符型常量,其中整型常量和实型常量又称为数值型常量。 ●整型常量:用不带小数点的数字表示。 ●实型常量:用带小数点的数字表示。 ●字符型常量:用带有单引号的字符表示。 一般情况下,常量的类型可以通过书写形式来判断。 2

【例如】 1、2、12 是整型常量,2.1、12.5、3.14 是实型常量,a、 b、c是字符型常量。 2.1.4 符号常量 【掌握】符号常量的定义和使用 在C语言中,可以用一个标识符表示一个常量,称之为符号常量。符号常量是一种特殊的常量, 其值和类型是通过符号常量的定义命令决定的。由于其较难理解,且是C语言中的重点,故单独讲解它的相关知识。符号常量在使用之前必须先定义,其一般形式为: #define 标识符 常量 【说明】 ●#define 是一条预处理命令,又被称为宏定义命令,其功能是把命令格式中的标识符定义为其后的常量值。 ●一经定义,以后在程序中所有出现该标识符的地方均以该常量值代之。 ●习惯上符号常量的标识符用大写字母表示,变量标识符用小写字母表示,以示区别。 ●用define 进行定义时,必须用“#”号作为一行的开头,在#define 命令行的最后不得加分号结束。 有关#define 命令的作用,将在第10 章中进行更深入的讲解,读者可以先按上述说明简单使用。 【例2-1】求边长为20 的正方形的面积。 程序代码 #define LENGTH 20 #include void main() { float s; s=LENGTH*LENGTH; printf("s=%f\n",s); } 在主函数中,s被定义为float 型,即实型;在主函数之前由宏定义命令定义LENGTH 为20,程序执行过程中即以LENGTH代替20,即 s= LENGTH*LENGTH 等效于s=20*20。 在程序中,不能再用赋值语句对符号常量重新赋值,也就是说,在本例中不能再对LENGTH 赋值。 3

【请注意】 ① 在使用符号常量时,一般要做到“ 见名知意”,如上面的程序中LENGTH 就是正方形的边长。 ② 使用符号常量的一个最大的好处就是能够做到“ 一改全改”,例如,想知道另一个边长为10的正方形的面积,那么就可以只做如下改变: #define LENGTH 10 这样就能够轻松达到目的。读者可以掌握这种程序设计的技巧,这种“ 一改全改”的属性对编写比较大的程序是非常有利的。 2.1.5 变量 【学习提示】熟记变量的定义与初始化 什么是变量呢?简单地说,在程序执行过程中,其值可以被改变的量称为变量。例如,二元一次方程y=12x+16 中,x称为自变量,y称为因变量,也就是说y会随着x的变化而变化,所以,方程中的x和y都是变量。 一个变量具有两个要素:变量名和变量值。每个变量都必须有一个名称,即变量名,变量的命名遵循标识符的命名规则。一个变量名实质上是代表了内存中的一个存储单元,该单元中存储的内容就是变量值。在程序执行的过程中,通过变量名来引用变量的值。 当使用C语言的各种变量时,都必须遵循一个原则,即“先说明,后使用”。这里的“说明”是指在使用变量前要明确变量的数据类型、存储类型和作用域,即变量的定义。存储类型和作用域属于较难的知识点,将在第8章介绍。 1.变量的定义 一条变量定义语句由数据类型和其后的一个或多个变量名组成,其定义形式如下: 数据类型 变量名1[,变量名2,„]; 【说明】 我们把“变量名1, 变量名2,„” 称之为变量名表。变量名表可以是一个或多个标识符,也就是说我们可以同时定义相同数据类型的多个变量。 上述格式中的“[]”表示其中的内容是可选项,即可有可无,如果没有特殊说明,本书中出现的“[]”都表示这个含义。 数据类型与变量名之间至少用一个空格隔开。当定义多个变量时,每两个标识符名之间用“,”隔开。 【例如】 int name, age; 数据类型 变量名1 变量名2 4

习惯上,为了增加程序的可读性,变量名和函数名中的英文字母用小写。对应的标识符,还应该做到“见名知意”。例如,name(姓名)、age(年龄)、student(学生)和teacher(老师)等。 【请思考】 在C语言中,变量名total与变量名TOTAL、ToTaL、tOtAl等是同一个变量吗? 2.变量的初始化 在定义变量之后,可以根据需要赋予它一个初始值,即变量的初始化。在定义变量的同时,也可以对变量进行初始化,它的一般形式如下: 数据类型 变量名1[=初值][, 变量名2[=初值2]„]; float price=2.5 , 数据类型 赋初值的变量名1 (price) length,area ; 未赋初值的变量名(length)2和变量名3(area)

2.2 数据类型 在第1章曾经介绍过:算法处理的对象是数据,而数据是以某种特定的形式存在的(如整数、实数、字符等形式)。 在讲解变量的定义及其初始化时,又多次提到过“数据类型”,那么,什么是数据类型呢? 简单地说,数据类型就是程序给其使用的数据指定的某种数据组织形式,从字面上理解,就是对数据按类型进行分类。例如,可以把人分为男性和女性,那么性别就是一种数据类型。数据类型是按被说明数据的性质、表示形式、占据存储空间的多少、构造特点来划分的。在C语言中,数据类型可分为基本类型、构造类型、指针类型和空类型四大类,基本类型和构造类型又可以再分,如图2-1所示。 5

下面将重点介绍整型、实型和字符型3种基本数据类型。由于指针类型和构造类型使用较少,而且比较难于理解,所以将这两部分内容安排在第9章和第11章中进行介绍。

2.3 整型数据 在实际考试中,有时会遇到这样的问题:求一些整数的某种运算结果,如计算 1~100 所有奇数的和。用C语言来实现的话,就要用到整型数据。整型数据包括整型变量和整型常量。 2.3.1 整型变量 1.整型变量的分类 整型变量的基本类型说明符为int。由于不同的编译系统或计算机系统对整型变量所占用的字节数有不同的规定,因此根据在VC 6.0中各整型变量占用内存字节数的不同,可以将整型变量分为以下3类。 ●基本整型:用int表示,在内存中占4个字节。 ●短整型:用short int或short表示,在内存中占2个字节。 ●长整型:用long int或long表示,在内存中占4个字节。 为了增加变量的取值范围,还可以将变量定义为“无符号”型。以上3类都可以加上修饰符unsigned,以指定是“无符号数”。如果加上修饰符signed,则被指定为“有符号数”。如果既不指定unsigned,也不指定signed,则系统默认为有符号数(signed)。各种无符号类型量所占的内存空间字节数与相应的有符号类型量相同。但由于省去了符号位,故其不能表示负数。 2.整型变量占用内存字节数与值域 6

上述各类型整型变量占用的内存字节数因系统而异。在VC 6.0中,一般用4个字节表示一个int型(基本整型)变量,用2个字节表示一个short型(短整型)变量,用4个字节表示一个long型(长整型)变量。 表2-1列出了各类整型变量所分配的内存字节数及可以表示的数的取值范围。

方括号内的部分是可以不输入的。例如,signed int等价于int,所以,一般情况下signed都不输入。 3.整型变量的定义 整型变量定义的一般形式为: 类型说明符 变量名1[,变量名2„]; 【说明】 允许在一个类型说明符后说明多个相同类型的变量。类型说明符与变量名之间至少用一个空格隔开。当定义多个变量时,两个变量名之间用逗号“,”隔开。 最后一个变量名之后必须以分号“;”结尾。 变量说明必须放在变量使用之前,必须遵循“先说明,后使用”的原则,一般放在函数体的开头部分。 【例如】