第二章 顺序结构程序设计
教学时间: 6学时 教学目的:
1、掌握常量与变量的书写和定义 2、掌握三种基本数据类型 3、掌握运算符和表达式的使用 内容、重点、难点: 内容:
2.1 常量和变量 2.2 整型数据 2.3 实型数据 2.4 字符型数据 2.5 变量的初始化 2.6 运算符和表达式 重点:
1、三种基本数据类型的定义和使用 2、各种运算符的使用 难点: 1、运算符的使用 2、使用顺序结构编程
第2章 顺序结构程序设计
顺序结构是一组按书写顺序执行的语句。本章将主要介绍程序中用到的一些基本要素(常量、变量、运算符、表达式和输入输出语句等),以及基本的数据类型(整型、实型和字符型)。
2.1 常量和变量 2.1.1常量
1)常量:在程序运行的过程中,其值不能被改变的量。 如2、4、-1.6等。
2)分类:普通常量和符号常量
3)符号常量:用一个标识符代表一个常量,这样的标识符称为符号常量。如用PI代表3.1415926
4)注意:符号常量的值在其作用域内不能改变,也不能再被赋值。如在程序中,对PI重新赋值: PI=2;这样是不允许的。
2.1.2变量
1)变量
C语言规定在程序运行的过程中,其值可以改变的量,称为变量。
2)标识符:用来标识变量名、符号常量名、函数名、数组名、类型名和文件名的有效字符序列。
3)C语言规定:标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。一般变量名的长度不能超过8个字符。 如下面是合法的标识符,也是合法的变量名:
sum,average,day,month,student,_above,k_1_2_3,basic 下面是不合法的标识符和变量名:
M.D.John,$123,#33,3D64,a>,-ab
在C语言中,要求对所有用到的变量作强制定义,也就是″先定义,后使用″。
2.2 整型数据 2.2.1整型常量
C语言整型常数可用以下三种形式表示: 1. 十进制整数:数码直接开头的十进制数。 2. 八进制整数:以0开头的常量是八进制数。 3. 十六进制整数:以0x开头的数是16进制数。
2.2.2整型变量
1.整型变量的分类
整型变量可分为:基本型、短整型、长整型和无符号型四种,其定义的关键字如下: (1)基本型,以int表示。范围为-32768~32767,即-215~(215-1)。 (2)短整型,以short int或short表示。范围与基本型相同。
(3)长整型,以long int或long表示。若一个整型常量后面加上一个字母l或L,则认为是long int型常量。范围为-2147483648~214783647即-231~(231-1)
(4)无符号型,在实际应用中变量的值常常是正的,如年龄、工资、成绩等,因此可以将变量定义为″无符号″类型。 无符号型又分为:
① 无符号整型,以unsigned int或unsigned表示。 范围:0~65535 即0~(216-1)。 ② 无符号短整型,以unsigned short表示。范围:0~65535即0~(216-1)。 ③ 无符号长整型,以unsigned long表示。范围:0~4294967295即0~(232-1)。 2. 整型变量的定义
变量的定义格式为:数据类型 变量表列; 其中若定义多个同类型的变量,则用逗号分开。 例: int a,b;(指定变量a,b为整型)
unsigned short c,d;(指定变量c,d为无符号短整型) long e,f;(指定变量e,f为长整型) 3. 整型数据的输入
整型变量键盘输入,是通过scanf函数实现的,scanf函数是数据输入函数,格式为: scanf (格式控制,地址表列); 例如:scanf (″%d%d″,&a,&b);
(1)格式控制是用双引号括起来的字符串,由″%″和格式字符组成,作用是将输入数据转换为指定的格式输入。
(2)格式字符,对于不同的数据用不同的格式字符。d格式符是用来输入十进制整数的。因为本节问题中变量a,b是整型变量,所以输入时,用了d格式符。
(3)&a,&b中的″&″是″地址运算符″,&a是指a在内存中的地址。上面scanf函数的作用是:将a、b的值放到a,b在内存的地址单元中去。所以,在该问题中,若输入:3 5↙
则输出结果为 a+b=8 4. 整型数据的输出
整型数据的输出用printf函数来实现。如printf(″a+b=%d″,c); printf函数的格式为:
printf(格式控制,输出表列);
(1)格式控制和输入函数scanf的格式控制基本一致。 (2)输出表列是需要输出的数据或表达式。 (3)在输出整型数据时,格式字符如下: ① %d,按整型数据的实际长度输出。
② %md,m为输出字段的宽度,如果输出数据的位数小于m则左端补以空格,若大于m,则按实际位数输出。例如
printf (″%4d,M″,a,b); 若a=123,d=12345,则输出结果为
V123,12345(注:V表示空格字符,下同) ③ %ld,输出长整型数据。如 long a=135790; printf (″%8ld″,a); 输出结果为:VV135790
一个int型数据可以用%d或%ld格式输出。
④ %u,输出unsigned型数据,即无符号类型,如unsigned u;那么u在输出的时候,应该用u格式控制符,那么输出时应使用语句: printf (″%u″,u);
例2.1 从键盘输入任意一个整数,输出这个数的平方的值。 main( ) { int a; long s;
scanf(″%d″,&a); s=a*a;
printf(″s=%ld\\n″,s);}
2.3 实型数据 2.3.1实型常量
实数在C语言中,又称浮点数。实数有两种表示形式:
1.十进制数形式。由数字和小数点组成(注意必须有小数点)。
2.指数形式。但注意字母e(或E)之前必须有数字,且e后面指数必须为整数,如e3、2.1e3.5、.e3、e都不是合法的指数形式。
2.3.2实型变量
在本节问题中,已知两个数是实数,那么两数之和与积也必定为实数,所以需要设四个实型变量,分别为a,b,sum,mul。定义语句为: float a,b,sum,mul; C实型变量分为:
1. 单精度型(float型)
一个float型数据在内存中占4个字节(32位),在TURBO C中,
单精度实数的范围约为-1038~1038之间并提供7位有效位;小于10-38 的数被处理成零值。
2. 双精度型(double型)
一个double型数据在内存中占8个字节,双精度实数的数值范围约为
-10308~10308。并提供15~16位有效位,具体精确多少位与机器有关;小于10-308的数被处理成零值。
2.3.3实型数据的输入和输出
1. 实型数据的输入
实型数据的输入也用scanf函数实现的,格式符使用的是f字符,以小数的形式输入数据,也可以使用e字符,以指数的形式输入数据。 如本节问题中的scanf(″%f%f″,&a,&b); 2. 实型数据的输出
实型数据的输出用printf函数实现,格式符使用f字符,以小数的形式输出数据。输出时应注意:
(1)%f:不指定字段宽度,整数部分会全部输出,并输出6位小数。 (2)%m.n:指定输出数据共占m列,其中有n位小数。如果数值长 度小于m,则左端补空格。
(3)%-m.n:指定输出数据共占m列,其中有n位小数。如果数值长度小于m,则右端补空格。
(4)若是双精度型变量输出时应用%lf格式控制,如 double f; 输出时应使用语句: printf (″%lf″,f);
2.4 字符型数据 2.4.1字符常量
1.字符常量
C语言的字符常量是用一对单引号括起来的单个字符。如:′a′、′b′、′x′、′D′、′?′、′$′等都是字符常量。 2.转义字符
除了这样的字符常量外,C语言还允许用一种特殊形式的字符常量,就是以一个′\\′开头的字符序列.例如,前面已经用到,在printf函数中的′\\n′,它表示一个″换行″符。 例2.2 字符常量的输出。 main ( ) {
printf (″ab c\\n\\tde″); }
运行结果: ab c
de
2.4.2字符变量
在本节问题中,设了两个字符型变量c1和c2。定义形式如下: char c1,c2;
它表示 c1和 c2为字符型变量,各可以放一个字符。可以用下面语句对 c1,c2赋值: c1=′a′;;c2=′b′;
因此在内存中一个字符变量只占一个字节。
2.4.3字符数据的存储形式
字符在内存中存储的不是字符本身,而是它的ASCII码,例如字符′a′的ASCII码为97,′b′的ASCII码为98。那么字符的存储形式与整数的存储形式是类似的。C语言使字符型数据和整型数据是通用的。 例2.3 main ( ) {
char a1,a2;
a1=97;a2=98;
printf (″%c %c\\n″,a1,a2); printf (″%d %d\\n″,a1,a2); }
程序运行时输出如下: a b 97 98
第二章 顺序结构程序设计



