第2章C语言基础
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言字符集由以下几部分组成:
① 字母:大、小写英文字母共52个。
② 数字:0~9共10个 ③ 空白符:空格符、制表符、换行符等统称为空白符共3个。 ④ 标点和特殊字符:+ | ( ) [ ] { } ; * ? / : ‟ % ” _ ! . = < > & #等25个。
3
2、标识符:
标识符是指用来标识变量名、符号常量名、函数名、文件 名以及一些具有专门含义的有效字符序列。 ①以字母或下划线(_)开头,由字母、数字、下划线组成的 字符序列。 如:num,a8,no_1 3d,no 1,xk#1(不合法) ② 大写字母和小写字母视为两个不同的字符。 ③ 不同的C语言编译器规定的标识符的长度可能会不同, 一般规定取前面8个字符,多余的不被识别。例如: student_name和student_num被认为是相同的标识符 4 student_。
阶 符
指数部分
数 符
尾数部分
17
2. 实型变量的定义
float f,f1; double d; /* 定义f、f1为单精度实型变量 */ /* 定义d为双精度实型变量 */
18
3. 实型常量(又称实数,只有十进制形式)
小数形式 由数字和小数点组成(必有小数点,但其前后0可省) 例如:0.246 指数形式 .246 5.0 5. 等。 由小数或整数、字母E或e及指数部分组成。(e前必有
unsigned short 型
0000 0000 0000 0000 0000 0010 1010 0100
unsigned long 型 图2.2 整型数据676的存储情况
12
如何求整数的补码?
反码+1 补码
正整数: 原码=补码=反码 负整数: 原码
原码除符号位其余位取反+1
如:求-5的补码
求11111010对应的负整数
如:x=„a‟;
将字符 a 赋值给字符变量 x 实际上是把 a的ASCII 代码值 97 放到 x 对应的内存单元中去
字符变量=字符常量/字符变量/0-255的整数
22
如:Baidu Nhomakorabea
char c1,c2; int i; c1=„a‟; ===== c1=97; c2=c1-32 ; === c2=„A‟; === c2=65; === c2=„a‟-32; i=97; ====== i=„a‟; printf(„%c,%d\n‟, c1,c1); ===== printf(„%c,%d \n‟, i,i); c1 97 c2 65 i 97
(4)变量的地址:即变量所占内存空间的首字节的编号。
8
【例】用price代表商品单价、num代表商品数量,然后计 算商品的总价total。 #include "stdio.h" main( ) {
int num;
float price,total; num=5; price=3; total=price*num;
2
2 2 2 2 4 4 4
-32768~32767
0~65535 -32768~32767 -32768~32767 0~65535 2147483648~2147483647 2147483648~2147483647 11 0~4294967295
unsigned short [int] 无符号短整型 int signed [int] unsigned [int] long [int] signed long [int] 整型 带符号整型 无符号整型 长整型 带符号长整型
注意: **在内存中,字符数据和整型数据的存储形式相似,所以在c 语言中二者可以通用。
23
3. 字符型常量
• 字符常量: 用单引号括起来的字符。 代表ASCII字符集中的一个字符 两种表示形式: 由单引号括起来的普通字符常量;如 ‘A‟,’a‟,„3‟ ,„ ‟
由单引号括起来的转义字符;如‘\n‟,‘\t‟
第2章 C语言基础
2.1 数据类型 2.2 标识符、常量和变量 2.3 基本类型数据 2.4 运算符及表达式
1
2.1 数据类型
标准类型
基本类型 (简单) 数 据 类 型
整型 实型 字符型 用户自定义类型: 枚举类型 数组类型 单精度型 双精度型
构造类型
结构体类型
共用体类型 指针类型
空类型
2
2.2 标识符、常量与变量 1、字符集
} 程序运行的结果:
x=123456792.000000, y=123456789.000000
20
三. 字符型数据
1. 字符型数据类型标识符
类型标识符为char,在内存中存储一个字符型数据
需要一个字节。
21
2.字符型变量的定义
• 说明字符变量用 char 作标识符
如: char x;
• 一个字符变量在内存中占一个字节,一个字符变量只能存 放一个字符
无符号型:表示不带符号的整数。又可分为以下三种: 无符号整型:类型标识符为unsigned int。
无符号短整型:类型标识符为unsigned short
无符号长整型,类型标识符为unsigned 1ong。 10
2.3.1 基本数据类型(一)
1. 整型数据 整型数据分为一般整型(int)、短整型(short)和长整型 (long),并且每一种类型又分为带符号(signed)和无符号 (unsigned)两种类型 。整型数据的特性见下表:
5
3、常量:
在程序运行过程中,其值不能被改变的量称为常量。
算术型运算常量:123,3.1415926
直接常量:
常量类型:
字符型常量:’a‟,”hello”
符号常量: #define 符号常量名 常量
#define PI 3.1415926
6
【例】计算圆的面积和周长。
#include "stdio.h" #define PI 3.1415926 main( ) { float radius; /* radius圆的半径 */ float area,length; /* area圆的面积 */ printf ("Please input radius:"); scanf ("%f",&radius); /* 输入圆的半径 */ area = 3.1415926 *radius*radius; /* 计算圆的面积 */ PI length = 2* 3.1415926 *radius; /* 计算圆的周长*/ PI printf (“area=%f,length=%f",area,length); 7 }
unsigned long [int] 无符号长整型
补码
整数在内存中的存储方式:
int 型
0000 0000 0000 0000 0000 0010 1010 0100
符 号 位
0000 0010 1010 0100
short 型
long 型 unsigned int 型
0000 0000 0000 0000 0000 0010 1010 0100 0000 0000 0000 0000 0000 0010 1010 0100 0000 0010 1010 0100
26
【例】使用转义字符控制输出。 #include "stdio.h" main( ) { printf("\n\t\101"); printf("\n\t\b\b\b\b"); printf("\\*hello*\\"); printf("\n\t\x41"); }
数据类型名 short [int] 说明 字节 短整型 2
Visual C++ 6.0环境
取值范围 -32768~32767 字节 2
Turbo C2.0环境
取值范围 -32768~32767
signed short [int]
带符号短整型
2
2 4 4 4 4 4 4
-32768~32767
0~65535 -2147483648~2147483647 -2147483648~2147483647 0~4294967295 -2147483648~2147483647 -2147483648~2147483647 0~4294967295
数字,后必为整数)
其格式为:整数部分.小数部分E指数部分 例如:135e3 12.12e-5 .123e4 0e0
e2 ×
3.5e1.5 ×
在程序中,实数可以用小数或指数形式表示,但在内存 中,实数都以规范化的指数形式存放。
19
【例】将一个有效数字位超过7位的数赋值给实型变量,然后输 出实型变量的值。 #include "stdio.h" main( ) { 实型常量不区分float型和 double型,可以赋给float型和 float x=123456789; double型变量,根据变量的类型 double y=123456789; 截取常量中的有效位数字。 printf("\nx=%f,y=%f",x,y);
② 八进制数,如 0234,0777; ③ 十六进制数,如0x234,0X9A。 整型数又分为基本整型、短整型、长整型(后加l或L) 和无符 号整型数(后加u或U) 。 前缀、后缀可同时使用以表示不同类型不同进制的整型数。 如03456LU表示八进制无符号长整型数。
15
二.
实型数据
1. 实型数据类型标识符 实型数据有单精度型和双精度型两种。 单精度型:类型标识符为float。 双精度型:类型标识符为double。 类型 float 占用字节数 有效数字 数值范围 4 7 12-16 3.4*10-383.4*1038 1.7*10-3081.7*10308
13
任何一种数据类型都有常量和变量之分
2、整型变量的定义
例如:int long
k; p, l; short n,
变量定义后,只是在内 存中申请了相应的空间 ,此时存储空间中并没 有有意义的数据,即变 量没有确定的值。
m;
unsigned
14
3、整型常量
C语言中整型常量可以用3种形式表示:
① 十进制数,如+123,-234,0,23;
标识符分类
关键字标识符:代表固定含义,不能另作它用。P17表2.1 预定义标识符:代表特定含义(一般是库函数名和预编 译处理命令名),一般不另作它用。如 用户标识符: scanf、define等。
定义用户标识符时注意:
大小写有区分。 如book,BOOK, Book。 标识符做到“见名知意”。如average, sum, length等。 关键字不能作为标识符。如do , int, if 等。
printf("total=%d",total);
9
}
2.3 一.整型数据
基本类型数据
1.整型数据类型标识符
整型数据有基本型、短整型、长整型和无符号型四种。 基本整型(简称整型):类型标识符为int。 短整型:类型标识符为short int或short。
长整型:类型标识符为1ong int或1ong。
a
4、变量:
程序执行过程中,其值可以被改变的量
6
(1)变量名:既代表某存储空间,又代表该空间存储的数据。
标识符
(2)变量的值:存放在存储单元中的数据(存储单元内容)。 (3)变量的数据类型:决定了存储空间的大小。 C要求:变量必须先声明后使用,指明其数据类型 变量定义格式: 数据类型标识符 如: int a , b , c; float 变量名表 d;
24
一、普通字符常量
•
• • • •
单引号中的大小写字母代表不同的字符常量。如:’a‟,‟A‟
‟a‟和a的区别 ‘ ’是一个字符常量,有一空格,和’’的区别。 单引号中只能包含一个字符 只能用‘’表示字符常量,“”表示的是字符串常量
•
•
C语言规定: 字符型常量在内存中占8位(一个字节)。
字符常量在内存中实际存储的是其ASCII码的值 ‘A‟—
16
double 8
实型数据存储方式:规范化的指数形式 N=2E*M 指其尾数部分(M)为纯小数,阶码部分(E)为纯整数。
二进制数据0.00000011101011的存储形式 假设机器字长为32位,其指数(即阶码)部分占8位,尾数占24 位,则如图所示。
3130 242322 1 0 1 1 1 1 1 0 1 0 0 1 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
65
如:
‟a‟ — 97
„3‟ —51
25
字符常量和整型常量是可以混用的。
二、转义字符常量
•
以一个反斜线开头后跟一个特定的字符,代表某一
特定的ASCII字符。
•
•
又称反斜线字符。如:’\n‟,‟\‟‟
\后可跟8进制或16进制数,表示一个ASCII字符 如:’A‟也可用’\101‟ ‟\x41‟表示(\后不允许用X,0x)
① 字母:大、小写英文字母共52个。
② 数字:0~9共10个 ③ 空白符:空格符、制表符、换行符等统称为空白符共3个。 ④ 标点和特殊字符:+ | ( ) [ ] { } ; * ? / : ‟ % ” _ ! . = < > & #等25个。
3
2、标识符:
标识符是指用来标识变量名、符号常量名、函数名、文件 名以及一些具有专门含义的有效字符序列。 ①以字母或下划线(_)开头,由字母、数字、下划线组成的 字符序列。 如:num,a8,no_1 3d,no 1,xk#1(不合法) ② 大写字母和小写字母视为两个不同的字符。 ③ 不同的C语言编译器规定的标识符的长度可能会不同, 一般规定取前面8个字符,多余的不被识别。例如: student_name和student_num被认为是相同的标识符 4 student_。
阶 符
指数部分
数 符
尾数部分
17
2. 实型变量的定义
float f,f1; double d; /* 定义f、f1为单精度实型变量 */ /* 定义d为双精度实型变量 */
18
3. 实型常量(又称实数,只有十进制形式)
小数形式 由数字和小数点组成(必有小数点,但其前后0可省) 例如:0.246 指数形式 .246 5.0 5. 等。 由小数或整数、字母E或e及指数部分组成。(e前必有
unsigned short 型
0000 0000 0000 0000 0000 0010 1010 0100
unsigned long 型 图2.2 整型数据676的存储情况
12
如何求整数的补码?
反码+1 补码
正整数: 原码=补码=反码 负整数: 原码
原码除符号位其余位取反+1
如:求-5的补码
求11111010对应的负整数
如:x=„a‟;
将字符 a 赋值给字符变量 x 实际上是把 a的ASCII 代码值 97 放到 x 对应的内存单元中去
字符变量=字符常量/字符变量/0-255的整数
22
如:Baidu Nhomakorabea
char c1,c2; int i; c1=„a‟; ===== c1=97; c2=c1-32 ; === c2=„A‟; === c2=65; === c2=„a‟-32; i=97; ====== i=„a‟; printf(„%c,%d\n‟, c1,c1); ===== printf(„%c,%d \n‟, i,i); c1 97 c2 65 i 97
(4)变量的地址:即变量所占内存空间的首字节的编号。
8
【例】用price代表商品单价、num代表商品数量,然后计 算商品的总价total。 #include "stdio.h" main( ) {
int num;
float price,total; num=5; price=3; total=price*num;
2
2 2 2 2 4 4 4
-32768~32767
0~65535 -32768~32767 -32768~32767 0~65535 2147483648~2147483647 2147483648~2147483647 11 0~4294967295
unsigned short [int] 无符号短整型 int signed [int] unsigned [int] long [int] signed long [int] 整型 带符号整型 无符号整型 长整型 带符号长整型
注意: **在内存中,字符数据和整型数据的存储形式相似,所以在c 语言中二者可以通用。
23
3. 字符型常量
• 字符常量: 用单引号括起来的字符。 代表ASCII字符集中的一个字符 两种表示形式: 由单引号括起来的普通字符常量;如 ‘A‟,’a‟,„3‟ ,„ ‟
由单引号括起来的转义字符;如‘\n‟,‘\t‟
第2章 C语言基础
2.1 数据类型 2.2 标识符、常量和变量 2.3 基本类型数据 2.4 运算符及表达式
1
2.1 数据类型
标准类型
基本类型 (简单) 数 据 类 型
整型 实型 字符型 用户自定义类型: 枚举类型 数组类型 单精度型 双精度型
构造类型
结构体类型
共用体类型 指针类型
空类型
2
2.2 标识符、常量与变量 1、字符集
} 程序运行的结果:
x=123456792.000000, y=123456789.000000
20
三. 字符型数据
1. 字符型数据类型标识符
类型标识符为char,在内存中存储一个字符型数据
需要一个字节。
21
2.字符型变量的定义
• 说明字符变量用 char 作标识符
如: char x;
• 一个字符变量在内存中占一个字节,一个字符变量只能存 放一个字符
无符号型:表示不带符号的整数。又可分为以下三种: 无符号整型:类型标识符为unsigned int。
无符号短整型:类型标识符为unsigned short
无符号长整型,类型标识符为unsigned 1ong。 10
2.3.1 基本数据类型(一)
1. 整型数据 整型数据分为一般整型(int)、短整型(short)和长整型 (long),并且每一种类型又分为带符号(signed)和无符号 (unsigned)两种类型 。整型数据的特性见下表:
5
3、常量:
在程序运行过程中,其值不能被改变的量称为常量。
算术型运算常量:123,3.1415926
直接常量:
常量类型:
字符型常量:’a‟,”hello”
符号常量: #define 符号常量名 常量
#define PI 3.1415926
6
【例】计算圆的面积和周长。
#include "stdio.h" #define PI 3.1415926 main( ) { float radius; /* radius圆的半径 */ float area,length; /* area圆的面积 */ printf ("Please input radius:"); scanf ("%f",&radius); /* 输入圆的半径 */ area = 3.1415926 *radius*radius; /* 计算圆的面积 */ PI length = 2* 3.1415926 *radius; /* 计算圆的周长*/ PI printf (“area=%f,length=%f",area,length); 7 }
unsigned long [int] 无符号长整型
补码
整数在内存中的存储方式:
int 型
0000 0000 0000 0000 0000 0010 1010 0100
符 号 位
0000 0010 1010 0100
short 型
long 型 unsigned int 型
0000 0000 0000 0000 0000 0010 1010 0100 0000 0000 0000 0000 0000 0010 1010 0100 0000 0010 1010 0100
26
【例】使用转义字符控制输出。 #include "stdio.h" main( ) { printf("\n\t\101"); printf("\n\t\b\b\b\b"); printf("\\*hello*\\"); printf("\n\t\x41"); }
数据类型名 short [int] 说明 字节 短整型 2
Visual C++ 6.0环境
取值范围 -32768~32767 字节 2
Turbo C2.0环境
取值范围 -32768~32767
signed short [int]
带符号短整型
2
2 4 4 4 4 4 4
-32768~32767
0~65535 -2147483648~2147483647 -2147483648~2147483647 0~4294967295 -2147483648~2147483647 -2147483648~2147483647 0~4294967295
数字,后必为整数)
其格式为:整数部分.小数部分E指数部分 例如:135e3 12.12e-5 .123e4 0e0
e2 ×
3.5e1.5 ×
在程序中,实数可以用小数或指数形式表示,但在内存 中,实数都以规范化的指数形式存放。
19
【例】将一个有效数字位超过7位的数赋值给实型变量,然后输 出实型变量的值。 #include "stdio.h" main( ) { 实型常量不区分float型和 double型,可以赋给float型和 float x=123456789; double型变量,根据变量的类型 double y=123456789; 截取常量中的有效位数字。 printf("\nx=%f,y=%f",x,y);
② 八进制数,如 0234,0777; ③ 十六进制数,如0x234,0X9A。 整型数又分为基本整型、短整型、长整型(后加l或L) 和无符 号整型数(后加u或U) 。 前缀、后缀可同时使用以表示不同类型不同进制的整型数。 如03456LU表示八进制无符号长整型数。
15
二.
实型数据
1. 实型数据类型标识符 实型数据有单精度型和双精度型两种。 单精度型:类型标识符为float。 双精度型:类型标识符为double。 类型 float 占用字节数 有效数字 数值范围 4 7 12-16 3.4*10-383.4*1038 1.7*10-3081.7*10308
13
任何一种数据类型都有常量和变量之分
2、整型变量的定义
例如:int long
k; p, l; short n,
变量定义后,只是在内 存中申请了相应的空间 ,此时存储空间中并没 有有意义的数据,即变 量没有确定的值。
m;
unsigned
14
3、整型常量
C语言中整型常量可以用3种形式表示:
① 十进制数,如+123,-234,0,23;
标识符分类
关键字标识符:代表固定含义,不能另作它用。P17表2.1 预定义标识符:代表特定含义(一般是库函数名和预编 译处理命令名),一般不另作它用。如 用户标识符: scanf、define等。
定义用户标识符时注意:
大小写有区分。 如book,BOOK, Book。 标识符做到“见名知意”。如average, sum, length等。 关键字不能作为标识符。如do , int, if 等。
printf("total=%d",total);
9
}
2.3 一.整型数据
基本类型数据
1.整型数据类型标识符
整型数据有基本型、短整型、长整型和无符号型四种。 基本整型(简称整型):类型标识符为int。 短整型:类型标识符为short int或short。
长整型:类型标识符为1ong int或1ong。
a
4、变量:
程序执行过程中,其值可以被改变的量
6
(1)变量名:既代表某存储空间,又代表该空间存储的数据。
标识符
(2)变量的值:存放在存储单元中的数据(存储单元内容)。 (3)变量的数据类型:决定了存储空间的大小。 C要求:变量必须先声明后使用,指明其数据类型 变量定义格式: 数据类型标识符 如: int a , b , c; float 变量名表 d;
24
一、普通字符常量
•
• • • •
单引号中的大小写字母代表不同的字符常量。如:’a‟,‟A‟
‟a‟和a的区别 ‘ ’是一个字符常量,有一空格,和’’的区别。 单引号中只能包含一个字符 只能用‘’表示字符常量,“”表示的是字符串常量
•
•
C语言规定: 字符型常量在内存中占8位(一个字节)。
字符常量在内存中实际存储的是其ASCII码的值 ‘A‟—
16
double 8
实型数据存储方式:规范化的指数形式 N=2E*M 指其尾数部分(M)为纯小数,阶码部分(E)为纯整数。
二进制数据0.00000011101011的存储形式 假设机器字长为32位,其指数(即阶码)部分占8位,尾数占24 位,则如图所示。
3130 242322 1 0 1 1 1 1 1 0 1 0 0 1 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
65
如:
‟a‟ — 97
„3‟ —51
25
字符常量和整型常量是可以混用的。
二、转义字符常量
•
以一个反斜线开头后跟一个特定的字符,代表某一
特定的ASCII字符。
•
•
又称反斜线字符。如:’\n‟,‟\‟‟
\后可跟8进制或16进制数,表示一个ASCII字符 如:’A‟也可用’\101‟ ‟\x41‟表示(\后不允许用X,0x)