第二章 C语言基本数据类型及表示
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
enum
extern float
for
goto
if
register return
short signed
sizeof static
struct switch typedef while
volatile union unsigned void
10
特定字
特定字是C语言定义的一些作为指令的标识符,它们 主要用在预处理命令中,习惯将它们看作是关键字。 特定字主要有以下7个:
练习2、写下第二章的看到的新词; 练习3、人口、体重,姓名,工资用什么数据类型表示好? 练习4、为什么要有这么多的数据类型?
4
第一节 C语言数据类型
整型 基本数据类型 字符型
实型(浮点型)
单精度型 双精度型
数组
数据类型 构造数据类型 结构 联合 枚举
指针类型
空类型
5
第二节 字符集及词法规则
25
#include "stdio.h" main() { float a; double b; a = 1234567.89F; b = 1234567.89; a = a +10; b = b + 10; printf("%f\n %f\n",a, b); }
26
三、字符型变量
字符型变量用来存储字符常量。它在定义时使用类 型名char,
23
3、整型变量的定义
例 2.4 整型变量的定义与使用
main() { int a, b, c, d; unsigned u; a =12; b = - u = 10; 24; c = a+u; d = b+u; printf("a+u = %d, b+u = %d \n", c, d); }
24
上机验证
14
实型常量
实型常量又称为浮点数,可以用十进制浮点数表示法和科学计 数法表示,与数学中实数的表示类似。 (一) 点数表示法
例如,3.14、0.0
(二)科学计数法
例如,123e3或123E3 -→ 123×103 e3、2.1e3.5、.e3 是非法的实数。 一个实数可以用科学计数法表示为多种指数形式。 例如:123.456 123.456e0 12.3456e1 1.23456e2 ← 规范化的指数形式 0.0123456e4
例如:字符串“Student”,存放在内存中是
S
t
u
d
e
n
t
\0
18
四、符号常量
一个常量也可以用一个标识符来代表,称为符号常量。 例 2.3 输入球的半径,计算圆面积、球的表面积和体积。
#include "stdio.h" #define P 3.14 main() { double r, s1, s2, v; /* 定义变量 */ scanf("%f",&r); s1= P*r*r; s2 =4.0*P*r*r; v =4.0/3.0*P*r*r*r; printf("s1=%7.4f\n,s2=%7.4f\n,v=%7.4f\n",s1, s2, v); }
13
例2.1 不同形式的整数的赋值和输出
main() { int a, b, c; a = 13; b = 013; c = 0x13; printf ("%d,%d,%d \n",a, b, c); printf ("%x,%x,%x \n",a, b, c); printf ("%o,%o,%o \n",a, b, c); }
一、字符集
字符是语言的最小构成单位,由一个语言使用的所有字符 构成的集合称为该语言的字符集。 (一)ASCII字符集 ASCII字符集中列出了所有可以使用的字符,共256个,它 具有以下特征: ⑴ 每个字符都有一个唯一的次序值,即ASCII码。 ⑵ 数字字符‘0’、‘1’、‘2’、…、‘9’的ASCII码从49 开始,按升序连续排列。 ⑶ 大写字母‘A’、‘B’、‘C’、…、‘Z’的ASCII码从65 开始,按升序连续排列。 ⑷ 小写字母‘a’、‘b’、‘c’、…、‘z’的ASCII码从97 开始,按升序连续排列。
例如,‘A’、‘a’、‘1’、‘&’是字符常量,它们分别表示字母A、a、 数字字符1和符号&。每个字符在内存中占用一个字节,用于存储它 的ASCII码。 所以C语言中的字符具有数值特征,可以像整数一样参加运算,例如, ‘A’+1= 66,对应于字符‘B’,因为字符‘B’的ASCII码是66。
20
第四节
变量及其类型说明
在程序运行过程中,其值可以改变的量称为变量。 一旦定义了某个变量,该变量表示的都将是同一个内 存位置,程序员只需提供一个名字,就可在程序的其 它部分引用该内存位置,直到释放该变量。
21
变量具有名字和数据类型两个基本属性
每一变量被指定为一确定数据类型,在编译时就能为 其分配相应的存储单元。
C语言中,标识符中的字母区分大小写。
例如,Sum和sum是两个不同的标识符。 用户自己定义标识符时,不能使用以下列出的关键字。
9
关键字
在C语言中,关键字是有特定含义和专门用途的标识 符,C语言中的关键字一共有32个:
auto break case char const continue do default double else int long
字符型数据和整型数据之间就可以通用。既可以用一 个字符对字符变量赋值,也可以用一个整数对字符变 量赋值(此时整数的取值范围应是有效的ASCII码)。
同样,一个字符数据既可以以字符形式输出,也可以以整 数形式(字符的ASCII码)输出。 对字符数据进行算术运算,相当于对它们的ASCII码进行 相应运算。
6
转义字符
C语言也经常使用转义字符,用于表示一些控制字符 或其他字符集无法表示的字符。 转义字符由反斜杠跟上一个字符或数字组成,它把反 斜杠后面的字符或数字转换成别的意义。虽然转义字 符形式上由多个字符组成,但它只代表一个字符。
7
二、词法规则
在C语言中,单词一般被分成五类:标识符、关键字 (保留字)、常量和字符串、运算符、其它分隔符。 (一) 标识符 标识符用来标识或表示程序、函数、数据类型、变量 等。 C语言规定,标识符由字母、数字及下划线组成,必 须以字母或下划线开头。
definLeabharlann Baidu, include, undef, ifdef, ifndef, endif, line
11
第三节
常量
在程序运行过程中,其值不能改变的量称为常量。 C语言中,常量是有数据类型的,它的类型由书写格 式决定。
10、017、0x2f是整型常量, 123.23、4.3e2是实型常量, ‘a’、‘\n’是字符常量, “12345”、“China”是字符串常量。
标识符所包含的字符个数不限,但一般不要超过8个字符, 如果超过8个字符,系统只识别前8个字符,标识符的英文 字母区分大小写。
8
例子
下面是合法的标识符:
sum,_total, Class,student_name,lotus_1_2_3, li_ling
下面是不合法的标识符:
M.D.john,$123,3a54,a>b
19
课中练习
练习1、P40页2.4 写出以下程序的运行结果
#include "stdio.h" main() { char c1='a', c2 ='b',c3 ='c',c4 ='\101',c5 ='\116'; printf("a%d b%d \t c%c \t abc\n",c1, c2, c3); printf(" \t \b %c%c",c4, c5); } 练习2、P40页2.4 写出以下程序的运行结果 #include "stdio.h" main() { char c1,c2; c1=97;c2=98; printf("%c %c \n",c1, c2); printf(" %d %d\n",c1, c2); }
第三次课
1
第一章 复习
C语言程序的组成 C语言程序的编辑运行和调试 函数的组成 头文件 变量和函数的说明 输入和输出函数 新词和关键字:char, int, float ,main,
书写格式,头文件,函数和函数体,函数声明,格式符, 转义字符,单精度和双精度,进制,编译、连接,运行, 调试,可执行文件,ANSI ,C99,
2
第二章 C语言基本数据类型 及表示方法
3
课前练习
练习1、下列程序的输出结果是什么?
#include "stdio.h" main () { char s[15]; int a=3; float b=3.14962f; double c=1.23456; printf("Enter a string: "); gets(s); printf("a=%d,s=%s\n",a,s); printf("a=%c,b=%f\n",a,b); printf("c=%.3lf b=%8.6f\n",c,b); printf("ok!"); }
1
0
0
0
0
0
0
1 +1 0
17
1
0
0
0
0
0
1
(二)字符串常量
字符串常量是一对双引号括起来的字符序列。
“How are you?”、“student”、“a”、“123.456” 注意‘a’是字符常量,而“a”是字符串常量。 C语言规定,在每一个字符串的结尾加一个字符串结束标志 ‘\0’。‘\0’是一个“空操作字符”,它不引起任何控制动作, 也不是一个可显示字符。
例如: char c1,c2;
定义了两个字符变量,各可以放一个字符,因此可 以用下面的语句对它们赋值:
c1 = ˊAˊ; c2 = ˊ#ˊ;
27
字符变量的特点
将一个字符常量赋予一个字符变量,实际上是把该字 符的ASCII码存放到字符变量的存储单元中。
例如字符‘A’的ASCII码是65,即将65以存储整数数据的方 式进行存储。
15
例2.2
#include "stdio.h" main() { float a = 123.45f; printf ("%f \n",a); printf ("%e \n",a); }
实型数据的输出
上机验证
16
字符常量和字符串常量
(一)字符常量 字符常量是指单个字符,用一对单引号及其所括起的字符来 表示。
12
一、整型常量
C语言中的整型常量(整数)有十进制、八进制、十 六进制3种表现形式。
⑴ 十进制整数。由正、负号和数字0~9组成,但首位数 字不能是0。如123、0、12等。 ⑵ 八进制整数。由正、负号和数字0~7组成,首位数字 必须是0。如0123、011等。 ⑶ 十六进制整数。由正、负号和数字0~9、英文字符a~ f或A~F组成,首位数字前必须有前缀0x或0X.。如0x12a、 0X34D等。
如指定a、b为int 型,编译系统将为a和b各分配两个字节, 并按整数方式存储数据。
一个变量在一个时刻只能存放一个值。如果某一个变 量在程序运行中数据发生变化,则现行值将取代原来 的数据。
22
一、整型变量
1、整型变量的存储 2、整型变量的分类
表2.2 整数类型 名称 类型名 数据长度 最小取值范围 有符号整型 int 16位 32768~32767 (215~2151) 无符号整型 unsigned int 16位 0~65535 (0~2161) 有符号短整型 short [int] 16位 32768~32767 (215~2151) 无符号短整型 unsigned short[int] 16位 0~65535 (0~2161) 有符号长整型 long [int] 32位 2147483648~2147483647 (- 31~2312 1) 无符号长整型 unsigned long [int] 32 位 0~4294967295 (0~2321)
二、实型变量
单精度( float型)
每个float型在内存中占用4个字节,它的有效数字一般有 7~8位,取值范围约为±(10-37~1038) 。 单精度实型变量只能保证8位有效数字,有效数字6位
双精度(double型)两类。
double 型所占的存储空间是float型的两倍,即8个字节, 它的有效数字一般有15~16位,取值范围约为±(10-307~ 10308)。