第2章C语言基本数据类型及运算
合集下载
第2章_数据类型、运算符和表达式《C语言程序设计(第三版)》-电子教案

2.2 标识符、常量与变量
符号常量
【例2-1】输入圆的半径,计算周长和面积。 #define PI 3.14159 void main() { float r,c,s; scanf("%f",&r); c=2*PI*r; s=PI*r*r; printf("r=%f,c=%f,s=%f\n",r,c,s); }
以下是合法的整型常量:
2.2 标识符、常量与变量
实型常量
实型常量只能用十进制形式表示 表示形式:
小数形式。由数字序列和小数点组成,如 3.1415926、-0.15、.15、2.等都是合法的实型 常量。 指数形式。由十进制数加上阶码标志“e”或 “E”及阶码组成,如3.14e-4或3.14E-4表示 3.14×10-4。
2.2 标识符、常量与变量
2.2.3 变量
在程序运行过程中,其存储的值可以被改变的量称 为变量 变量必须通过标识符进行说明,称为变量名。 变量名和内存单元地址存在映射关系,程序可以通 过变量名寻址,从而访问其存储的数据。
2.2 标识符、常量与变量
变量的定义和说明
数据类型 变量名1[,变量名2,…,变量名n];
long型转换成float型时由原来可达10位整数变成只有7位有效数字精度丢失但由于数的范围扩大了数据类型从较低级提升到较高级随着竞争日益激烈酒店嘴中的肥肉被大肆抢夺各大酒店在这场竞争中几乎溃不成军
21世纪高等学校精品规划教材
第2章 数据类型、运算符 和表达式
掌握C语言的基本数据类型 掌握标识符、关键字、常量和变量的使用 掌握运算符、表达式以及数据类型之间的转换 等 掌握简单数据的输入输出
C语言教程课件第二章 数据类型、运算符和表达式

例 整型变量的定义与使用
#include <stdio.h> void main() { int a,b,c,d; /*指定a、b、c、d为整型变量*/ unsigned u; /*指定u为无符号整型变量*/ a=12;b=-24;u=10; c=a+u;d=b+u; printf("a+u=%d,b+u=%d\n",c,d); }
例 向字符变量赋以整数。 • 运行结果: #include <stdio.h> a b void main() 97 98 { char c1,c2; c1=97; c2=98; printf("%c %c\n",c1,c2); printf("%d %d\n",c1,c2); }
• 说明:在第4和第5行中,将整数97和98分别赋给c1和c2,它 的作用相当于以下两个赋值语句: c1='a';c2='b'; 因为'a'和'b'的ASCII码为97和98
• 字符型变量用来存放字符常量,注意只能放一个字符。 • 字符变量的定义形式如下:char c1,c2; • 在本函数中可以用下面语句对c1,c2赋值: c1='a';c2='b'; • 一个字符变量在内存中占一个字节; • 将一个字符常量放到一个字符变量中,是将该字符的 相应的ASCII代码放到存储单元中,这样使字符型数据 和整型数据之间可以通用。一个字符数据既可以以字 符形式输出,也可以以整数形式输出。
运行结果: total=300 例2.1 符号常量的使用 #define PRICE 30 #include <stdio.h> void main ( ) 说明:如再用赋值语句给PRICE赋值是错的 { PRICE=40;/*错误,不能给符号常量赋值*/ int num, total; num=10; total=num * PRICE; printf(″total=%d\n ″,total); } 说明: 程序中用#define命令行定义PRICE代表常量30,此后凡在 本文件中出现的PRICE都代表30,可以和常量一样进行运算
C语言程序设计教程-第2章

2.2.2 变量 1.变量及定义 一个变量有三个要素:变量名、数据类型和存储类型。 变量的数据类型包括char,int,float,double,void五种。 存储类型决定了变量的生命期和作用域。它包括自动型变量(auto)、 寄存器变量(register)、静态型变量(static)、外部参照变量(extern) 四种。 存储类型符 数据类型符 变量名 例如: static int a float b double a,b 2.变量的初始化 存储类型符 数据类型符 变量名=初值 变量赋初值示例如下: static int a=100; double b=3.245;
2.自增自减运算符 自增运算符记为“++”,其功能是使变量的值自增1。自减1运算符记为“--”, 其功能是使变量值自减1。自增自减运算符均为单目运算,都具有右结合性。 可以有以下几种形式: ++i,i自增1后再参与其他运算。 --i,i自减1后再参与其他运算。 i++,i参与运算后,i的值再自增1。 i--,i参与运算后,i的值再自减1。 main() { int i=5,p,q; printf("%d\n",i++); printf("%d\n",i--); printf("%d\n",++i); printf("%d\n",--i); p=(i++)+(++i); q=(--i)+(i--); printf("%d,%d,%d\n",i,p,q); }
13
2.逻辑运算符 逻辑运算符是对逻辑量进行操作的运算符。逻辑量也只有两个值,1和0, 分别表示“真”和“假”。 C语言的逻辑运算符有: !(逻辑非) &&(逻辑与) ||(逻辑或)
C语言程序设计 第2章 数据类型

2.2常量和变量 变量名与变量值的关系:
2.2常量和变量
变量的使用:先定义后使用
变量定义的一般形式:
数据类型 变量名1,变量名2,…,变量名n;
2.2常量和变量
➢ 凡未被事先定义的,系统不把它认作变量名,这就 能保证程序中变量名使用的正确
例:varname,在使用的时候误写成vaname
➢ 在定义变量时要指定变量的类型,在编译时就能为 变量分配相应的存储单元
5
2.2常量和变量
甘草 三七 干姜 葛根
枸杞 人参 陈皮 地黄
山药 当归 谷芽 黄连
贴上标签 加以区分
用标识符给变量起名字
2.2常量和变量 变量命名规则
➢ 只能由字母(a~z,A~Z)、数字(0~9)和下划线(_)构 成
➢ 第一个字符不能为数字 ➢ 不能与关键字同名
例:a9,_a, A_num √ 9a, a*num,int ×
控制语句:控制语句用于控制程序的流程。 C语言提供三类控制语句: ➢ 选择语句 ➢ 循环语句 ➢ 转移语句。 控制语句会在第三章和第四章详细介绍。
2.7 表达式与语句
复合语句: 复合语句由一对大括号括起来的一 条或多条语句组成。 例:{
turnOn(0,3); turnOn(0,4); turnOn(0,5); turnOn(1,4); }
2.7 表达式与语句
表达式语句:表达式末尾加上“;”就构成一条 表达式语句。 例:
s = 3.14 * r * r; 就是一条赋值表达式语句。表达式语句最后的 分号是语句中必不可少的一部分。
2.7 表达式与语句
函数调用语句:函数调用语句由函数调用加分 号构成。 例:
turnOn(1,1);
C语言第02章 数据类型、运算符与表达式

回到 首页
运算符和结合性 P325,附录3
2.8 算术运算符和算术表达式
3、自增、自减运算符
自增运算符++和自减运算符--均是单目运算符, 功能是使变量的值增1或减1。其优先级高于所有 双目运算符,结合性为右结合性(自右至左)。
回到 首页
例如:++i或i++ 等价于i=i+1; --i或i-- 等价于i=i-1;
2.7数值型数据之间的混合运算
回到 首页
1、整型、实型、字符型数据之间可以混合运 算
整型(包括int,short,long)和实型(包括float,double)数据可 以混合运算,另外字符型数据和整型数据可以通用,因此,整 型、实型、字符型数据之间可以混合运算。 例如,表达式10+'a'+1.5-8765.1234*'b'是合法的。
2.9赋值运算符和赋值表达式
1、赋值运算符和赋值表达式
赋值运算符:“=”为双目运算符,右结合性。 赋值表达式:由赋值运算符组成的表达式称为赋值表达 式。 赋值表达式一般形式: 变量 赋值符 表达式 如 a=5 类型转换:将高精度的数据类型赋值给低精度的数据类 型,可能出错。
回到 首页
2.9赋值运算符和赋值表达式
2.8 算术运算符和算术表达式
3、自增、自减运算符
回到 首页
y=++x;等价于先计算x=x+1(结果x=6),再执行y=x,结果y=6。 y=x++;等价于先执行y=x,再计算x=x+1,结果y=5,x=6。 y=x++*x++;结果y=25,x=7。x++为后缀形式,先取x的值进行“*” 运算,再进行两次x++。 y=++x*++x;结果y=49,x=7。
第2章 C语言,数据类型、运算符和表达式

运算符功能 对运算量(操作数)要求 运算符优先级别 结合方向 运算结果的取值 操作数个数 操作数类型 操作数形式(常量 or 变量) ( )
(C语言运算符总表见教材P26或P325附录C) return 31
C语言程序设计
算术运算符
+ - * / % 功能: 操作数要求: 结合性: 优先级: 注意事项: 算术运算 两个操作数 (当-用作负号时除外) 自左至右(当-用作负号时除外) -(负号) —— * / % —— + - (由高→低) ① 两个整数相除,结果为整数! 例: 3/2=1 ② %要求两个操作数均为整型数据! 且余数与被除数同号!
说明: ① 字符变量中存放的是字符ASCII码值! ② char与int数据间可进行算术运算!
char choice = 'A';
return24
C语言程序设计
字符串常量
字符常量是用双引号括起来的字符序列. 例如: "hello!" , "0" (1) 字符串常量在内存中的存储 (2) 字符串常量.vs.字符常量
整型
浮点型 字符型 说明:
① 数据类型所占字节数随机器硬件不同而不同! ② 可用sizeof(数据类型说明)来计算某一数据类型占内存的字节数! return
C语言程序设计 next part
2. 常量与变量
标识符命名 常量 变量
go go go
6
C语言程序设计
标识符命名
例: 判断下列标识符号合法性
next
ห้องสมุดไป่ตู้
20
C语言程序设计
字符常量
转义字符是用反斜杠\后面跟一个字符或一个八进制或十 六进制数表示的ASCⅡ码值。例如: '\n', '\101' (1) C语言中常用的转义字符 (2) 转义字符使用实例
(C语言运算符总表见教材P26或P325附录C) return 31
C语言程序设计
算术运算符
+ - * / % 功能: 操作数要求: 结合性: 优先级: 注意事项: 算术运算 两个操作数 (当-用作负号时除外) 自左至右(当-用作负号时除外) -(负号) —— * / % —— + - (由高→低) ① 两个整数相除,结果为整数! 例: 3/2=1 ② %要求两个操作数均为整型数据! 且余数与被除数同号!
说明: ① 字符变量中存放的是字符ASCII码值! ② char与int数据间可进行算术运算!
char choice = 'A';
return24
C语言程序设计
字符串常量
字符常量是用双引号括起来的字符序列. 例如: "hello!" , "0" (1) 字符串常量在内存中的存储 (2) 字符串常量.vs.字符常量
整型
浮点型 字符型 说明:
① 数据类型所占字节数随机器硬件不同而不同! ② 可用sizeof(数据类型说明)来计算某一数据类型占内存的字节数! return
C语言程序设计 next part
2. 常量与变量
标识符命名 常量 变量
go go go
6
C语言程序设计
标识符命名
例: 判断下列标识符号合法性
next
ห้องสมุดไป่ตู้
20
C语言程序设计
字符常量
转义字符是用反斜杠\后面跟一个字符或一个八进制或十 六进制数表示的ASCⅡ码值。例如: '\n', '\101' (1) C语言中常用的转义字符 (2) 转义字符使用实例
C语言数据类型ppt课件

21
2.2 常量与变量
(3)整型数据在内存中的存放形式
int x; x=10; 则变量x的值10在内存中的存放形式:
int x;
x=-10; 则变量x的值10在内存中的存放形式:
22
2.2 常量与变量
(4)整型数据的溢出
例2-2 整型数据的溢出问题
#include <stdio.h>
int main()
\r
<
\a
\‘
回车 响铃 单引号
\ddd 3位8进制数代表的字符
转义字符 \t \b \f \\ \“ \xhh
含义 水平制表 退格 换页 反斜线 双引号 2位16进制数代表的字符
12
2.2 常量与变量
如 ‘\101’ -----------‘A’ ‘\012’ -----------’\n’ ‘\376’ -----------’’ ‘\x61’ -----------’a’ ‘\060’ -----------’0’
unsigned short。 ⅲ. 无符号长整型:类型说明符为
unsigned long。
20
2.2 常量与变量
(2)整型变量的定义与使用
例2-1 整型变量的使用
#include <stdio.h> int main() {
int x,y,z; x=10;y=20; z=x+y; printf(“x+y=%d\n”,z); return 0; } 输出结果:x+y=30
说明:数据类型所占字节数随机器硬件不同而不同, 上表以IBM PC机为例。
4
2.2 常量与变量
• 数据是程序的处理对象 • C语言将数据分为常量与变量
2.2 常量与变量
(3)整型数据在内存中的存放形式
int x; x=10; 则变量x的值10在内存中的存放形式:
int x;
x=-10; 则变量x的值10在内存中的存放形式:
22
2.2 常量与变量
(4)整型数据的溢出
例2-2 整型数据的溢出问题
#include <stdio.h>
int main()
\r
<
\a
\‘
回车 响铃 单引号
\ddd 3位8进制数代表的字符
转义字符 \t \b \f \\ \“ \xhh
含义 水平制表 退格 换页 反斜线 双引号 2位16进制数代表的字符
12
2.2 常量与变量
如 ‘\101’ -----------‘A’ ‘\012’ -----------’\n’ ‘\376’ -----------’’ ‘\x61’ -----------’a’ ‘\060’ -----------’0’
unsigned short。 ⅲ. 无符号长整型:类型说明符为
unsigned long。
20
2.2 常量与变量
(2)整型变量的定义与使用
例2-1 整型变量的使用
#include <stdio.h> int main() {
int x,y,z; x=10;y=20; z=x+y; printf(“x+y=%d\n”,z); return 0; } 输出结果:x+y=30
说明:数据类型所占字节数随机器硬件不同而不同, 上表以IBM PC机为例。
4
2.2 常量与变量
• 数据是程序的处理对象 • C语言将数据分为常量与变量
第二章 C语言的基本数据类型及运算

行绝对值相减
解决的方法是: 使用反码或补码的表示方法(按前述
表示的编码称为原码),即能将减法一律 转换为加法。
2020/12/11
原码、反码和补码
11
正数:原码、反码、补码相同
– 符号位为0,数值为对应的二进制数。 +109
[01101101]原 = [01101101]反 = [01101101]补
• 指数只能是整数,而尾数则可以是整数也可以是 小数 ,无论指数或尾数均不能省略 例如:1e、E.5、E-3 非法
• 实型常量的类型:默认为double型,后面加F (或f),则强调表示该数是float类型 例如:3.5f、1e2F
2020/12/11
3. 字符型常量
22
可视字符常量 – 单引号括起来的单个可视字符 例如:'a'、'A' 、'+' 、'3'、' ' 等
例如: #define LEN 2.5
定义符号常量
main( )
{ float a,b;
a= 2*3.14 *LEN;
使用符号常量
b=3.14*LEN*LEN;
printf("a=%f,b=%f\n",a,b);
}
编译前系统进行替换
2020/12/11
5. 符号常量
25
main( )
{ float a,b;
负数:
– 原码符号位为1,数值为绝对值的二进制
数。
-109 [11101101]原
– 反码符号位为1,数值为绝对值的二进制
数各位变反。 -109 [10010010]反
– 补码符号位为1,数值为绝对值的二进制
解决的方法是: 使用反码或补码的表示方法(按前述
表示的编码称为原码),即能将减法一律 转换为加法。
2020/12/11
原码、反码和补码
11
正数:原码、反码、补码相同
– 符号位为0,数值为对应的二进制数。 +109
[01101101]原 = [01101101]反 = [01101101]补
• 指数只能是整数,而尾数则可以是整数也可以是 小数 ,无论指数或尾数均不能省略 例如:1e、E.5、E-3 非法
• 实型常量的类型:默认为double型,后面加F (或f),则强调表示该数是float类型 例如:3.5f、1e2F
2020/12/11
3. 字符型常量
22
可视字符常量 – 单引号括起来的单个可视字符 例如:'a'、'A' 、'+' 、'3'、' ' 等
例如: #define LEN 2.5
定义符号常量
main( )
{ float a,b;
a= 2*3.14 *LEN;
使用符号常量
b=3.14*LEN*LEN;
printf("a=%f,b=%f\n",a,b);
}
编译前系统进行替换
2020/12/11
5. 符号常量
25
main( )
{ float a,b;
负数:
– 原码符号位为1,数值为绝对值的二进制
数。
-109 [11101101]原
– 反码符号位为1,数值为绝对值的二进制
数各位变反。 -109 [10010010]反
– 补码符号位为1,数值为绝对值的二进制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.3 变量
变量是指在程序运行过程中其值可以发生变化的量。 2.3.1变量的数据类型及其定义 1.变量的数据类型(基本)
字符型、整型、单精度实型、双精度实型,它们 分别用关键字char、int、float、double进行定义。 另外,还有无符号整型和无值型,它们分别用关键 字unsigned和void进行定义。 见表2,表3
【例2.1】求一个圆柱体体积,用符号常量代替π。
#include <stdio.h> #define PI 3.14159 main() {
float r,h,v; scanf("%f,%f",&r,&h); v=PI*r*r*h; printf("Volume=%f",v);
}
2.2.5 字符串常量
【例2.4】静态局部变量的使用 f(){
static int a=1; auto b=0; a=a+1; b=b+1; printf("a=%d,b=%d\n",a,b); }
main(){ f(); f(); f();
}
运行结果为: a=2,b=1 a=3,b=1 a4,b=1• 静态全局变量
2.2.2 实型常量
实型数又称实数或浮点数,只用在十进制数中。
表示法如下:
3.14 .9999
-3.14159
0.3e05 6.89E-5 9.99e+16
6.89E-5 表示的是数学算式中的:6.89×10-5。
类型
二进制位数 有效数字 数 值 范 围
Float
32
7
10-38~1038
Double
和动态存储区。) 2. 变量的存储类型的定义
存储类型 数据类型 变量列表; 系统默认类型修饰为auto 类型(自动型) p34
(1) 自动变量 int a, b, c; char ch, str; double f_1, f_2; float x, y, z, _w1, _w2; unsigned int u_1, u_2; long int g1, g2;
运行结果为: b=3
(3) 静态变量
静态变量存放在静态内存数据区中 特点:静态变量在变量定义时就分配了固定的内存单元并根 据所定义的数据类型存入默认值,在程序运行中一直占用内 存单元不释放,直到程序运行结果后。 分类:静态变量又分为静态局部变量和静态全局变量。 • 静态局部变量
在函数或复合语句中定义的变量为静态变量称为静态局 部变量. 特点:该变量在其函数中或复合语句中有效。静态局部变量 所在的函数无论调用多少次,静态局部变量赋值语句只执行 一次,但能够保留住函数多次调用的中间结果。p35
p33
数据类型 变量列表; 系统默认类型int
int a, b, c; char ch, str; double f_1, f_2; float x, y, z, _w1, _w2; unsigned int u_1, u_2; long int g1, g2;
2.3.2 变量的存储类型及定义
1. 变量的存储类型 • CPU寄存器 (register) • 内存 (内存中又分为两个区域,即为静态存储区
第2章 C语言基本数据类型 及运算
2.1 C语言的数据类型
带符号整型
带符号整型(简称整型) 带符号短整型(简称短整型) 带符号长整型(简称长整型)
数据类型
基本类型
构造类型 指针型 枚举型 空类型
整型
无符号整型
实型
单精度型 双精度型
字符型
数组型
结构型
共用型
无符号整型 无符号短整型 无符号长整型
2.2 常量
【例2.5】有一程序文件f1.c,在程序中使用了静态全局 变量。
#include <stdio.h> static int a=1; main(){
64
15~16
10-308~10308
p31
2.2.3 字符常量
字符常量是用单引号括起来的一个字符,它在计算 机存储中占一个字节。 ’x’,’a’,’A’,’b’,’$’,’#’
2.2.4 符号常量
定义格式为:#define 符号常量 字符串 #define PI 3.14159 #define NULL 0 #define EOF –1 定义后当一般常量使用 p32
【例2.2】定义自动整型和字符型变量。 #include<stdio.h> main(){
auto char c1,c2; auto int i1,i2; scanf("%d,%d",&i1,&i2); c1=i1; c2=i2; printf("%c,%c\n",c1,c2); printf("%d,%d\n",c1,c2); } 运行时输入:97,98↙ 运行结果为:a,b
97,98
寄存器型变量的数据是存放在CPU 的通用寄存器中, 可不通过内存来直接访问。Turboc C允许定义的寄 存器型变量一般以2个为宜。动态管理使用.
【例2.3】函数内部定义寄存器变量。
#include <stdio.h>
main()
{
register b; b=3; printf("b=%d",b); }
字符串常量是用一对双引号括起来的零个或多个字符序列。 “I am a student“ ,”x“ ,”” 都为字符串常量。 在内存中存储时,设定一个结束符’\0’。 字符串的长度应为实际长度。
注意: ’\0’和’0’不同,’\0’是编码为0的字符, 而’0’则是数字 0 所对应的字符
在字符串中有转义字符。 例如:“ab\072cdef” 长度为7 ; “\\\n33abcd” 长度为8
常量是程序中其值不发生变化的数据。
2.2.1 整型常量
进制数
表示方式
举例
八进制整型 由数字0开头
034,065,057
十进制整型 如同数学中的数字 123,-78,90
十六进制整型 由0X或0x开头
0x23,0Xff,0xac
p31
限制在本区间使用
1.基本整型常量和短整型-32768~32767。 2.长整型常量-2147483648~2147483647,整数 后面加上字母l(或 L)。 3.无符号整型常量表示的数据全部是正数,没 有符号位。 int , short int,long int ,unsigned int unsigned short int,unsigned long int