学习目标:
理解变量的概念及变量定义、赋值
掌握变量的命名规则
理解常量和符号常量
掌握C语言的数据类型
掌握不同数据类型间的转换与运算
重点:
理解变量的概念及变量定义、赋值
掌握变量的命名规则
掌握C语言的数据类型
难点:
掌握不同数据类型间的转换与运算
掌握不同数据类型表达的值范围和精度
引言:
理解最简单的C语言程序
掌握运行C程序的步骤与方法
掌握怎样表示一个算法
理解结构化程序设计方法
一、变量
1、变量的基本概念
Ø 程序运行时,其值能被改变的量称为变量。
Ø 每个变量都有一个名字,通过变量的名字可以访问到变量的存储空间并获得变量的数值。
Ø 在C语言程序中通过定义变量来申请并命名这样的存储空间,并通过变量的名字来使用这段存储空间。
Ø 变量是程序中数据的临时存放场所,可以用以保存程序运行时用户输入的数据和运算结果等。
2、变量定义
int m , n , sum ;
1行定义了3个用于存放整数的整型变量。int表示整型数据类型。
在C语言中,变量的必须遵循“先定义,后使用”的原则。
变量定义的格式:
数据类型变量1[,变量2,…,变量n];
每个变量必须有一个类型,如整型、字符型等,它指明给这个变量分配多大的存储空间;
每个变量还必须有一个名字,如x,y等,它指明是哪个变量。
变量的命名规则
C语言规定:
标识符只能由字母、数字、下划线组成,并且只能由字母、下划线开头,不能是关键字。 如:abc、a12、x是合法的标识符,abc$、12a、x+y、int不是合法的标识符。
3、变量赋值
m = 32 ;
n = 64 ;
2行为变量赋值。 将“=”右边的常量值赋给左边的变量。
实际上,变量在定义后其值是不确定的,因此在使用前应该先赋值,然后使用。变量的首次赋值可以称为变量的初始化。
变量的初始化,还可以在定义的同时进行初始化。
4、运算并保存结果
sum = m + n ;
1行为计算m+n的值赋值给变量sum。
5、显示结果
printf( "sum=%d\n" , sum ) ;
1行在屏幕上显示运算结果。
格式控制符说明. 普通字符说明.
二、常量
1、在程序运行时,其值不能被改变的量叫常量。
在C语言中也可以用一个标识符代表一个常量,这种标识符称为符号常量,即标识符形式的常量,一般用大写字母。
例如,用PI表示3.14159。
【例3.2】符号常量的使用。
#include <stdio.h>
#define PRICE 30
int main( )
{
int num , total ;
num = 10;
total = num * PRICE ;
printf( "total=%d\n" , total ) ;
return 0 ;
}
说明:程序中用“#define PRICE 30”命令行定义PRICE代表常量30,此后凡在此源程序中出现的PRICE在预编译阶段均被30替换。
使用符号常量的优点:
①含义清楚。
②需要改变一个常量的值时能做到“一改全改”。
注意:“#define”是预处理命令,不要以“;”号结束。
三、数据类型
1、 整型
(1)整型常量 补充十进制与八进制、十六进制转换知识
C语言中整常数可用以下三种形式表示。
①十进制整数。十进制整型常量直接用数字表示,例如:5、100、0、-10等。
②八进制整数。以0开头的数是八进制数。例如:05、0100等。
③十六进制整数。以0x或0X开头的数是十六进制数。例如:0x5、0x1A0 等。
(2)整型变量
整型变量的定义: int long
C语言规定在程序中所有用到的变量都必须在程序中指定其类型,即“定义”。
int a , b ; /* 指定变量a,b为整型 */
unsigned short c , d ; /* 指定变量c,d为无符号短整型 */
1ong e , f ; /*指定变量e,f为长整型 */
注意:变量的定义,一般是放在一个函数的开头部分。
2、浮点型
(1)实型常量
实型常量即实数,在C语言中又称浮点数,实型常量有两种表达形式:
Ø (1)十进制数形式:由数字和小数点组成。
Ø 例如:3.14、9.8、.135等。注意:小数形式表示的实型常量必须要有小数点。
Ø (2)指数形式:尾数E(e)整型指数。
Ø 例如:3.0E+5、123e3等。
Ø 注意:字母E(或e)之前是十进制数形式的实数,之后是整数,二者都不可缺少。
Ø 例如:e5、2.1e2.7、e等都不是合法的指数形式。
(2)实型变量
C语言中实型变量分为单精度(float型)和双精度(double型)两类,每一个实型变量都应在使用前加以定义。
float x , y ; /* 指定x,y为单精度实数 */
double z ; /* 指定z为双精度实数 */
3、字符型
(1)字符常量 补充ASCII码表知识
Ø C语言中的字符常量是用单引号括起来的一个字符,
Ø 例如,'A'、'b'、'1'、'+'、'? '、'$' 等都是字符常量。
Ø 字符常量实质上就是字符对应的ASCII码的值。
Ø 例如,'A'实际上就是65。
Ø 转义字符,就是以一个“\”开头的字符序列,例如,前面已经遇到过的,在printf()函数中的'\n',它代表一个“换行”符。反斜杠引导的字符称为转义字符,其意思是将反斜杠(\)后面的字符变成另外的意思。如果字符常量是反斜杠或单引号本身,必须使用转义字符:'\\'、'\'’表示。
(2)字符变量 补充ASCII码表知识(大小写字符转换)
Ø 字符型变量用来存储字符常量。
Ø 将一个字符常量存储到一个字符变量中,实际上是将该字符的ASCII码值存储到内存单元中。
Ø 字符变量的定义形式如下:
Ø char c1,c2;
Ø 它表示c1和c2为字符型变量,分别可以用于存放一个字符,因此可以用下面语句对c1、c2赋值:
Ø c1='a';
Ø c2='b';
Ø 一般以一个字节来存放一个字符,或者说一个字符变量在内存中占一个字节。
Ø 字符数据在内存中是以ASCII码的值来存储的,它的存储形式与整数的存储形式相类似。
在C语言中,字符型数据和整型数据之间可以相互通用。
【例3.6】字符变量分别以字符形式和整数形式输出。
#include <stdio.h>
int main( )
{
char ch1 , ch2 ;
ch1 = 'a' ;
ch2 = 'b' ;
printf( "ch1 = %c , ch2 = %c\n" , ch1 , ch2 ) ;
printf( "ch1 = %d , ch2 = %d\n" , ch1 , ch2) ;
return 0 ;
}
Ø 字符数据与整型数据可以互相赋值。
Ø 例如:
Ø int i ; char c ;
Ø i = 'a' ; c = 97 ;
Ø 上述赋值是合法的。如果将i的值输出得到97,如按字符形式输出c可得字符'a'。
Ø C程序允许对字符数据进行算术运算,此时就是对它们的ASCII码值进行算术运算。
(3)字符串常量 与字符常量的区别
Ø 字符串常量是用一对双引号括起来的若干字符序列。
Ø 字符串中字符的个数称为字符串长度。 与存储长度区别。
Ø 例如,"How do you do. "、"Good morning. "等,都是字符串常量,其长度分别为14和13(空格也是一个字符)。
Ø 长度为0的字符串(即一个字符都没有的字符串)称为空串。
Ø 如果反斜杠和双引号作为字符串中的有效字符,则必须使用转义字符。
Ø 例如:
Ø ①字符串C:\windows对应的字符串常量表示为"C:\\windows"
Ø ②字符串I say:"Goodbye!"对应的字符串常量表示为"I say:\"Goodbye!\" "
Ø 不要将字符常量与字符串常量混淆,二者是完全不同的概念。字符常量使用单引号,而字符串常量使用双引号。'a'是字符常量,"a"是字符串常量,两者不同。假设c被指定为字符变量:
Ø char c ;
Ø c = 'a' ; 是正确的。而
Ø c = "a" ; 是错误的。
Ø 在C语言中,每一个字符串的结尾包含一个“字符串结束标志”,以便系统据此判断字符串是否结束。C语言以字符'\0'作为字符串结束标志。'\0'是一个ASCII码值为0的字符。
Ø 空串""实际在内存中占有一个字节,即包含一个字符'\0'。
4、类型转换
强制类型转换
C语言提供了强制类型转换运算符来实现强制类型转换。
Ø 语法格式:
Ø (类型)表达式
Ø 例如: (int)3.5
5、sizeof运算符
sizeof是C语言的一种单目运算符,sizeof运算符以字节形式给出了其操作数的存储空间大小。可以利用sizeof运算符判断数据类型的字节长度。
使用方法:
sizeof(类型说明符);
四、应用举例
1.例3.1:计算两数之和。
2.例3.2:符号常量的使用。
3.例3.3:八进制与十六进制数。
4.例3.4:整型变量的定义与使用。
5.例3.5:转义字符的应用。
6.例3.6:字符变量分别以字符形式和整数形式输出。
7.例3.7:字符数据的算术运算。
讨论题:
1)例3.6和例3.7里都涉及ASCII码值,问:’A’和’a’对应的ASCII码值分别是多少?

