C语言 第2章 数据类型运算符和表达式

合集下载

第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语言教程课件第二章 数据类型、运算符和表达式

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,可以和常量一样进行运算

数据类型,运算符和表达式

数据类型,运算符和表达式
2) 指数形式:由十进制数,加阶码标志“e”或“E”以及阶码 (只能为整数,可以带符号)组成。 其一般形式为: a E n(a为十进制数,n为十进制整数)
1 - 21
如: 2.1E5 (等于2.1*105) 3.7E-2 (等于3.7*10-2) 0.5E7 (等于0.5*107) -2.8E-2 (等于-2.8*10-2)
• 习惯上符号常量的标识符用大写字母,变量标识符用小写字母,以示 区别。
1-4
【例3.1】符号常量的使用。
#define PRICE 30
•用标识符代表一个常量,称为符号
void main()
常量。
{
int num,total;
•符号常量与变量不同,它的值在其
num=10;
作用域内不能改变,也不能再被赋值。
total=num* PRICE;
printf(“total=%d”,total); 使用符号常量的好处是:
}
1.含义清楚;
2.能做到“一改全改”。
1-5
• 标识符 用来对变量、符号常量、函数、数组等命名的字符序列。 C语言规定标识符只能由字母、数字和下划线3种字符组成, 且第一个字符不能是数字,区别大小写。
1-2
常量分为几类: 整型常量 1000,-245 实型常量-----小数形式 0.34、指数形式1.45e+001 字符常量------普通字符 ‘a’,‘?’,‘#’、转义字符
\n 字符串常量 “boy”,“123”,“china” 符号常量 #define PI 3.1416 常变量 const int a=3;
《C程序设计》
第二章 数据类型、运算符和表达式
第二章 数据类型、运算符和表达式

C语言程序设计 第2章 数据类型

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章 数据类型、运算符与表达式

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章数据类型、运算符和表达式

第2章数据类型、运算符和表达式

(2)预定义的标识符 预定义的标识符在C语言中都有特殊含义,如 scanf和 printf 是库函数名,系统中用来作为输入输出函数。用户一般不要用 它们作为自定义标识符。 (3)用户自定义标识符 在程序中使用的变量名、符号常量名、函数名、数组名、类 型名、文件名、标号名等有效的字符序列,除库函数的函数名、 关键字由系统定义外,其余都由用户自定义,统称为用户自定 义标识符。 例如: total,area,_ab,sum,average,student_name,等 都是合法的标识符。 标识符虽然可由程序员随意定义,但标识 符是用于标识某个量的符号。因此,命名应尽量有相应的意义, 以便阅读理解,做到“见名知义”。 变量名要用小写字母,符号常量名要用大写字母。即在标识 符中,大小写是有区别的。例如:A和a是两个不同的标识符。
数据类型 类型说明符 数值范围
整型 int -32768~32767 -215~215-1 0~65535 -32768~32767 -215~215-1
字节
2 2 2 2 4
无符号整型 unsigned int 短整型 short
无符号短整 unsigned short 型 long 长整型 无符号长整 unsigned ong 型
2.2.4 字符串常量
字符串常量是由一对双引号括起的字符序列。例如: "CHINA" ,"C program." , "$12.5" 等都是合法的字符串常 量。字符串常量和字符常量是不同的量。它们之间主要有以下 区别: ①字符常量由单引号括起来,字符串常量由双引号括起来。 ②字符常量只能是单个字符,字符串常量则可以含零个或多个 字符。
3、十进制整常数 十进制整常数没有前缀。其数码为0~9。 以下各数是合法的十进制整常数:237,-568 ,65535 4、整型常数的后缀 在16位字长的机器上,基本整型的长度也为16位,因此表 示的数的范围也是有限定的。十进制无符号整常数的范围为 0~65535,有符号数为-32768~+32767。如果使用的数超过了 上述范围,就必须用长整型数来表示。长整型数是用后缀“L” 或“l”来表示的。例如: 十进制长整常数 158L (十进制为158) 358000L (十进制为358000) 八进制长整常数 012L (十进制为10) 077L (十进制为63) 0200000L (十进制为65536) 十六进制长整常数 0X15L (十进制为21) 0XA5L (十进制为165) 0X10000L (十进制为65536

第2章 C语言,数据类型、运算符和表达式

第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) 转义字符使用实例

第2章 数据类型%2C运算符与表达式

第2章 数据类型%2C运算符与表达式

字符型 ‘a‟,
„b‟,‘2‟
2013-7-5
第4页
运行结果: total=300 【例2.1】在程序中使用符号常量 #define PRICE 30 #include <stdio.h> void main ( ) 如再用赋值语句给PRICE赋值 PRICE=40;/* 错误,不能给符 { 号常量赋值*/ int num, total; int PRICE; /* 错误,PRICE不 num=10; 是变量,不能指定类型 */ total=num * PRICE; printf(″total=%d\n″,total); } 符号常量: 用一个标识符代表一个常量。 符号常量的值在其作用域内不能改变, 也不能再被赋值。
2013-7-5
第19页
2.3
整型数据
2.3.2 整型变量 • 整数类型的有关数据(Turbo C 2.0)
类型 基本型 类型说明符 int 长度 2字节 数的范围 -32768~32767
短整型
长整型 无符号整型
short
long unsigned
2字节
4字节 2字节 4字节
-215~215-1
短整型
长整型 无符号整型
short
long unsigned
2字节
4字节 2字节 4字节
-215~215-1
-231~231-1 0~(232-1) 0~65535 0~(232-1)
无符号短整型 unsigned short 2字节 无符号长整型 unsigned long
2013-7-5
第21页
2013-7-5 第22页
2.3
整型数据
数据在内存中以二进制形式存放。 如: int i; /* 定义为整型变量 */
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1 MB == 1,024 KB
1 KB == 1,024 B
2020/12/10
1 B == 89/9b8
如何衡量变量所占空间大小?
一个位有多大?
– 只能是“0”或者“1”,二进

一个字节有多大?
– 可以表示数字0~255之间的
整数
– 保存一个字符(英文字母、
数字、符号)
ASCII(美国标准信息交换 码)编码
定义
声明的顺序无关紧要 一条声明语句可声明若干个同类型 的变量 声明变量是初始化变量的最好时机
– 不被初始化的变量,其值为随机数
结果会是什么量赋值(Variable Assignment)
Example:
int number1, number2;
number1 = 25; number2 = 23; number1 = number2; … …
•Input: •Output: •Process:
quantity and pricePerkg price price = quantity * pricePerkg
2020/12/10
15/98
变量赋值(Variable Assignment)
Example:
How does this
int quantity;
2020/12/10
31/98
不同类型数据 在内存中的存储形式不同
字符型 整型 实型
N=S×2j
所占位数决定 实数的取值范围
所占位数决定 实数的精度
阶码j
尾数S
阶码符号 阶码的数值 尾数符号 尾数的数值
2020/12/10
32/98
常量(Constant)
A value that will not change
结构体类型
共用体类型
2020/12/10
指针类型 空类型
20/98
基本数据类型
int – 整数,在目前绝大多数机器上占4个字节 – TC2.0,2个字节
float – 单精度浮点数,4个字节
double – 双精度浮点数,8个字节
char – 字符,1个字节 – 表示256个ASCII字符,或0~255的整数
Windows 风格
不允许使用关键字作为标识符的名字
– int, float, for, while, if等 某些功能的变量采用习惯命名
– 如:for语句所采用的循环变量习惯用i, j, k
P45, 2.1
2020/12/10
7/98
何谓变量(Variable )?
A name associated with a memory cell whose value can change
int quantity;
quantity ?2
float pricePerkg, price;
pricePerkg 4.?50
quantity = 2;
price 9.?00
pricePerkg = 4.50;
price = quantity * pricePerkg;

2020/12/10
17/98
为什么要区分类型? 不同类型有什么不同? – 数据表示形式 – 合法的取值范围 – 占用内存空间大小 – 可参与的运算种类
2020/12/10
19/98
数据类型(Data Type)
数据类型
基本类型 构造类型
整型
基本整型 长整型 短整型 无符号整型
单精度实型
实型(浮点型)
字符型
双精度实型
枚举类型
数组类型
2020/12/10
number1 2?53 number2 2?3
13/98
变量赋值(Variable Assignment)
Algorithm 变量 表达式
Syntax 变量 = 表达式 ;
Rules:类型一致 Expression’s type must be the same as variable’s type
变量类型(Variable Type)
Example:
int quantity;
Why did we declare
it as int?
float pricePerkg;
float price;
Why did we declare them as
float?
2020/12/10
18/98
数据类型(Data Type)
第2章 数据类型、运算符与表达式
本章学习内容
标识符命名; 变量和常量; 数据类型; 常用运算符和表达式; 运算符的优先级与结合性
2020/12/10
2/98
C Program Structure
Preprocessor Instruction
Still remember this diagram?
GPleonbgailsyDteihclaarraantigolnobl
main () {
PLeoncgaislyDtiehcalarraantisoentempat Statement }
2020/12/10
3/98
例2.1:一个简单的C程序例子
#include <stdio.h>
编译预处理命令
2020/12/10
10/98
变量声明(Variable Declaration)
Needs to be declared: 变量类型 变量名;
Example: int sum; int x,y,sum=0;
2020/12/10
11/98
变量声明(Variable Declaration)
使用变量的基本原则 – 变量必须先定义,后使用 – 所有变量必须在第一条可执行语句前
2020/12/10
6/98
标识符命名
变量名,函数名
由英文字母、数字和下划线组成,大小写敏感
不可以是数字开头
直观,见名知意,便于记忆和阅读
– 最好使用英文单词或其组合 – 切忌使用汉语拼音 下划线和大小写通常用来增强可读性
UNIX 风格
– variablename – variable_name – variableName
C语言的关键字,并非函数 – 计算类型占用的字节数
两种语法形式 sizeof(类型)
– 结果为类型占用的字节数
sizeof(表达式)
– 结果为表达式值所属类型占用的字节数
一般都使用sizeof(变量名)
2020/12/10
30/98
现场演示例2.3 在TC和VC、CB下的运行结果
#include <stdio.h>
– 用户自定义标识符
变量,函数名,…
2020/12/10
5/98
C程序常见符号分类
运算符(Operator) – 34种,详见附录2
分隔符(Separator) – 空格、回车/换行、逗号等
其它符号 – “{”和“}”标识函数体或语句块 – “/*”和“*/”程序注释的定界符
常量(Constant)
/*函数功能:计算两个整数相加之和 入口参数:整型数据a和b 返回值: 整型数a和b之和
*/ int Add(int a, int b) {
return (a + b); }
/*主函数*/ main() {
int x, y, sum = 0;
程序注释
并列的两个函数 其中一个是 程序的入口
printf("Input two integers:");
2020/12/10
小蛇能吞 下大象吗

typeoverflow.c26/98
何谓类型溢出(Overflow)?
生活中的例子: – 身份证号码中的出生年 – 阿利亚娜号火箭发射失败
现象与危害: – 溢出后的数值是可预料的,但不同平台会有所不同 – 当程序从高位计算机向低位计算机移植(比如从64位
系统移植到32位系统)时,以前从不出现的溢出问题 可能出现
scanf("%d%d", &x, &y);
/*输入两个整型数x和y*/
sum = Add(x, y);
/*调用函数Add计算x和y相加之和*/
printf("sum = %d\n", sum);
/*输出x和y相加之和*/
} 2020/12/10
4/98
C程序常见符号分类
关键字(Keyword) – 又称保留字( C Reserved Word )
2020/12/10
33/98
字符常量
转义字符 – 一些特殊字符(无法从键盘输入或者另有它用)用
main()
{
printf("Data type
Number of bytes\n");
printf("------------ ---------------------\n");
printf("char
%d\n", sizeof(char));
printf("int
%d\n", sizeof(int));
printf("short int
%d\n", sizeof(short));
printf("long int
%d\n", sizeof(long));
printf("float
%d\n", sizeof(float));
printf("double
%d\n", sizeof(double));
相关文档
最新文档