C语言 数据类型、运算符与表达式

合集下载

c语言运算符和表达式

c语言运算符和表达式

}
28
§3.3 逻辑表达式
3.3.1 关系运算符及关系表达式 1.关系运算符
关系运算符是用来比较两个运算对象大 小的,运算结果是成立或不成立。 如果成立,则结果为逻辑值“真”,用整 数 “1”来表示;如:5>=5 如果不成立,则结果为逻辑值假”,用整 数“0”来表示。如:5<5
29
§3.3 逻辑表达式
3,再赋给a。
例如: a+=3 等价于 a=a+3 x*=y+8 等价于 x=x*(y+8) x%=3 等价于 x=x%3
26
是个整体
复合赋值运算表达式: 变量 双目运算符=表达式
注意:如果=右边是包含若干项的表达式,则相 当于它有括号。 步骤: 1)左边变量的当前值与右边整个表达 如: ① x %= y+3 式进行相应运算。 ② x %= (y+3) 2)把1)的结果赋给左边的变量。 3)赋值表达式的值是左边变量的值。 |__↑ ③ x = x %(y+3)(不要错写成x=x%y+3) 27
6
③ 运算符在整个运算符系统中的优先级。优 先级是指在运算对象的左右都有运算符时 运算的先后次序。运算对象先做优先级高 的运算。如:*/比+-优先级高。
④ 运算符操作的数据的结合性。运算符的结 合性规定了在表达式求解过程中,若运算 对象其左右运算符优先级相同时的运算方 向。结合性有两种:左结合(从左到右计 算)和右结合(从右到左计算)。
表达式书写的一般规则: 表达式必须写在同一行上,只能使用圆括号, 且左右括号个数要相同,有多层括号时内层 括号中的运算优先。 如:

1 ax ax 2 4x
写作:
1.0/2*(a*x+(a+x)/4/x)

第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语言的基本数据类型 掌握标识符、关键字、常量和变量的使用 掌握运算符、表达式以及数据类型之间的转换 等 掌握简单数据的输入输出

数据类型、运算符与表达式

数据类型、运算符与表达式
上一页 下一页 返回
6.1 一维数组
例6.4程序中第一个for语句逐个输入10个数到数组a中,然后把a[0]送 入max中。在第一个for语句中,a[1]到a[9]逐个与max中的内容比 较,若比max的值大,则把该下标变量送入max中,因此max在己 比较过的下标变量中总是为最大者。比较结束,输出的max值即 为10个整数的最大值。
2.5 字符型数据
2.5.1 字符常量
1.字符常量的定义 用一对单引号括起来的单个字符,称为字符常量。例如,'
A','6','+'等。 2.转义字符
C语言还允许使用一种特殊形式的字符常量,就是以反斜杠 “\”开头的转义字符,该形式将反斜杠后面的字符转变成另外的 意义,因而称为转义字符。
下一页 返回
第2章 数据类型、运算符与表达式
2.1 C语言的数据类型 2.2 标识符、常量和变量 2.3 整型数据 2.4 实型数据 2.5 字符型数据 2.6 算术运算与算术表达式 2.7 赋值运算与赋值表达式 2.8 自增、自减与逗号运算
2.1 C语言的数据类型
C语言提供有丰富的数据类型。其数据类型及其分类关系如 图2-1所示。
int i,max,a【10」; printf(”input 10 numbers:\n");
上一页 下一页 返回
6.1 一维数组
for(1=0;1<10;1++) scanf(”%d”,&a[i]);
max=a[0]; for(i=1;i<10;i++)
if(a[i]>max) max=a[i]; printf("maxnum=%d\n",max);
形பைடு நூலகம்输出。

C语言第3章(谭浩强)

C语言第3章(谭浩强)
17





void main( ) { int a,b,c,d; unsigned u; a=12;b=-24;u=10; c=a+u;d=b+u; printf(“a+u=%d,b+u=%d\n”,c,d); } 运行结果:a+u=22,b+u=-14 结论:不同类型的整型数据可以进行算 术运算。
位数 16
取值范围 -215-(215-1) -32768—+32767 -32768—+32767
Short [int] Long [int]
短整型 长整型
16 32
16 16 32
Unsinged int 无符号整型 Unsinged short [int] Unsinged long [int] 无符号短整 型 无符号长整 型
8


④大写字母与小写字母意义不同, 被认为是两个不同的字符。一般变 量名用小写字母表示。 注意:常量名常用大写、变量名常 用小写!
year Day a_12 _abcdef #123 .com $100 1999Y a=b 1_2_3 +abcedfghi ∏ -5 等
9

3、变量要先定义后使用


可以改为double型) void main( ) {float x;double y; x=123456.789;y=123456.789; printf(“%f, %f”,x,y);} 结果为: 123456.789062, 123456.789000
29
§3.5
字符型数据
一、字符常量 1、在C语言中字符型常量是用单引号括 起来的一个字符。 如:’a‟、’A‟、’3‟、’?‟、’ ’、 ’$‟等。 2、以‚\”开头的转义字符,如\n不代表 字母n,而是代表换行。

C语言第3章数据类型

C语言第3章数据类型

序 设 计
C
6
§3.1 C语言的基本元素和数据类型
字符型 char 程序=算法+数据结构 基本类型 整型 int 单精度 float 实型(浮点型) 算法处理的对象是数据 双精度 double 数据结构是数据的组织形式 数组型 array 数据类型是指数据的内在表现形式 数据类型 结构体型 (含位段)struct (代码,存储,运算)。 构造类型 共用体型 union 枚举型 enum 自定义型 typedef 指针类型 (pointer) 空类型 void
内容提要:
C语言的基本元素和数据类型 常量与变量
各种数据类型的常量和变量
变量赋初值 各种类型的数据间的混合运算 几种基本运算符及其表达式
3
程 序 设 计
C
§3.1 C语言的基本元素和数据类型
一、符号集(字符集) C语言经常使用的基本符号共有以下五种: (1)大写字母:A~Z (2)小写字母:a~z (3)阿拉伯数字:0~9 (4)下划线:_ (5)标点符号和运算符
程 序 设 计
C
19
§3.4 实型数据
三、实型数据的舍入误差
虽然实型数据的表示形式有两种但在内存中均是以指 数形式存放 数 阶 若数据超过有效位,则被 小数 指数 符 符 舍去,故可能产生误差。 例3-4 #include <stdio.h> Void main( ) { float a, b; a=123456.789e5; b=a+20; printf(“a=%f, b=%f\n”, a,b); } a=12345678848.000000, b=12345678848.000000
C语言程序设计
C Programming Language

第3章数据类型与表达式

第3章数据类型与表达式

//结果i=2;
•赋值语句可以连续进行。 例:a=b=c=0,根据右结合性,该表达式等价于: a=(b=(c=0))
36
2、复合赋值运算
•算术运算符“+ — * / %”和赋值运算符“=”结 合起来,形成复合赋值运算符。
+= :加赋值运算符; 如a+=3,等价于 a=a+3 -= :减赋值运算符; 如a-= b+ 3,等价于 a=a- (b+3) *=、/=、%= 与此类似
20
2)字符变量:char,占1个字节空间,只能存放 一个字符。 例如:char c1,c2; c2=‟a‟; 定义了字符型变量c1,c2,把’a‟存放到c2中 •存储特点: 在字符变量中实际上存储的是字符的ASCII码, 其存储形式与整数的存储形式相同。 字符数据与整型数据可相互赋值,直接运算。 例如: char c; c=97;相当于c=„a‟;
26
“%”是求余运算。a%b计算a除以b后的余数,也 是a模b的值。它要求两个运算对象必须是整型,其 结果也是整型量。 例:5%2结果为1 2%5结果为2 10%3.0 语法错误
27
2.算术表达式
• 用算术运算符和括号将运算对象(操作 数)连接起来的、符合C语法规则的式子。 如:1+3.5*2-10 (x+y)*3-6+‟a‟ • 表达式的值
long [int]
unsigned [int]
unsigned short[int]
4
4 2 4
unsigned long[int]
说明:数据类型所占字节数编译系统的不同而不同,上表以 Visual C++6.0为例 12
整型变量举例:

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语言基础知识二


13
练习: 练习:判断变量名是否正确 B12, xyz-1, #a , Day _sum, abc_3, w>m , mn5 $gqw , 12mn, D.abc, _9_a_d
14
3.3 整型数据
整型常量的表示方法
(1)十进制整数。123,-25 ,0 )十进制整数。 ,
15
(2)八进制整数。 )八进制整数。 以数字0( 开头, 以数字 (零)开头,如:0137, 值 1× +3× +7× 为:1×82+3×81+7×80 = 95
{ int a,b,c,d; unsigned u; a=22; b= -8; u=15; c=a+u; d=b+u; printf(“a+u=%d,b+u=%d\n”,c,d); }
说明:两不同类型的数据可进行算术运算。 说明:两不同类型的数据可进行算术运算。
运行: 运行:a+u=37,b+u=7
(不特别说明,默认为signed) 不特别说明,默认为 )
23
三、整型变量的定义
变量使用前必须定义, 变量使用前必须定义,一般放在函 数开头的声明部分。 数开头的声明部分。 int a,b; long c ; unsigned short d,e,f;
24
例1. 整型变量的定义与使用
main( )
18
补码
一个正数的补码和其原码的形式相同。 一个正数的补码和其原码的形式相同。 负数的补码:将该数绝对值的二进制形式, 负数的补码:将该数绝对值的二进制形式, 按位取反再加1。 按位取反再加 。
例:求-10的补码 的补码
0000000000001010 1111111111110101 1111111111110110

C语言第03章--数据类型和表达式

通常不被初始化的变量,其值为危险的随机数 通常不被初始化的变量,其值为危险的随机数
char int
ch = 'a'; i = 1;
17
变量的属性
例:
int sum=10; 类型
内存存放说明: 内存存放说明: 存放说明 变量名 1001 sum 10 变量值
存储单元的地址
二、 变量
命名规则 在C中变量名 函数名 文件名 数组名 等均称标识符 变量名, 函数名, 文件名, 数组名, 变量名 标识符 (identifier), 可由字母 数字 下划线 字母,数字 下划线组成,且第一个必 字母 数字和下划线 须为字母或下划线 字母或 字母 下划线,前8或32个有效。 注意: 字母大小写敏感; 注意 字母大小写敏感 不可用关键字; 不可用关键字 不可出现空格; 不可出现空格 见名知意; 见名知意 如: a1与A1为不同的变量名 如: int, for, if 等 如: stu 1, a 1等 如: sum, sort 等
e前必须有数 前必须有数 字,e后必须 后必须 有整数
合法:0.123、.123、123.0、123.、0.0 合法: 、 、 、 、 错误: 错误 - 2.0e2.5 e8
(3)字符常量 字符常量 —— 用单引号括起来的一个字符或转义字符 括起来的一个字符或转义字符 一个字符或转义字符. 例: ‘A’, ‘o’ , ‘1’, ‘#’, ‘a’ 等
float
必转
char, short long unsigned int 低
double 高
自动类型转换
34
例:
若:i 为 int , f为float ,d 为 double e 为long
字节数

C语言 第2章 类型、运算符与表达式(2.4~2.7)

第二章
数据类型、运算符和表达式
主要内容
2.1 预备知识 2.2 常量和变量的概念 2.3 各种数据类型的常量及变量 2.4 变量赋初值 2.5 不同类型数据之间的混合运算 2.6 常用运算符和表达式 2.7 输入函数与输出函数
2
2.4.1 变量和内存的概念
变量: 程序运行过程中其值可以改变的量。 系统为程序中的每一个变量开辟存储单元。 变量名: 字母开头,后跟字母、数字和下划线组成。 C语言中的关键字不能作为变量名。
37
2.7.1
格式输出函数printf
printf函数一般格式: printf(格式控制,输出表列) 格式控制是由双引号括起来的字符串,包含三种信息: 1、格式说明:由“%”和格式字符组成,如%d,%f等。 它的作用是将输出的数据按照指定的格式输出。 2、普通字符:需要原样输出的字符。 3、转义字符:用于控制输出。 输出表列是一些要输出的数据。
27
2.5 数据的混合运算
1、自动转换
• 运算转换
• 赋值转换 2、强制类型转换
28
1、自动转换—运算转换

在进行运算时,不同类型的数据要先自动转换成 同一类型,然后进行运算。转换的规则按图所示。
double← float
long unsigned 转换由编译系统自动完成。 转换按数据长度增加的方向进行, 即按“向高看齐”的原则提升“ 较低”类型,以保证不降低精度。

33
2、强制类型转换
注意:对一个变量进行强制转换后,得到一个新的 类型的数据,但原来变量的类型不变。 例:x原为实型变量且值为2.6,在执行 i = (int)x 后得到一个整数 2,并把它赋给整型变量 i, 但 x 仍为实型,值为2.6。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言A
整型数据的溢出
#include <stdio.h> void main() { int a,b; a=32767; b=a+1; printf(“%d,%d\n”,a,b); } 运行结果:32767,-32768
说明:数值是以补码表 示的。一个整型变量 只能容纳-32768~ 32767范围内的数, 无法表示大于32767 或小于-32768的数。 遇此情况就发生‚溢 出‛。
运行结果:total=300
量赋值。 */
C语言A
a
变量名 变量值 存储单元
二、变量
3
变量代表内存中具有特定属性的一个存储单
元,它用来存放数据,这就是变量的值,在 程序运行期间,这些值是可以改变的。 变量名实际上是一个以一个名字对应代表一 个地址,在对程序编译连接时由编译系统给 每一个变量名分配对应的内存地址。从变量 中取值,实际上是通过变量名找到相应的内 存地址,从该存储单元中读取数据。
C语言A
标识符:用来标识变量名、符号常量名、函
数名、数组名、类型名、文件名的有效字符 序列。
符号常量:在C语言中,可以用一个标识符
来表示一个常量,称之为符号常量。
符号常量在使用之前必须先定义,其一
般形式为:
#define 标识符 常量
C语言A
习惯上符号常量的标识符用大写字母,
变量标识符用小写字母,以示区别。 符号常量与变量不同,它的值在其作用 域内不能改变,也不能再被赋值。 使用符号常量的好处是:

例如:求-10的补码。 15
10的原码: 取反:
0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0
再加1,得-10的补码:
由此可知:左面的第一位是表示符号的。
无符号数也可用后缀表示,整型常数的
无符号数的后缀为‚U”或‚u”。
C语言A
二、整型变量
数据在内存中是以二进制形式存放的。
int i; i=10; i 10
15 0
i
0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
C语言A
数值是以补码表示的:
正数的补码和原码相同; 负数的补码:将该数的绝对值的二进制形式按位取 反再加1。
C语言A
每个变量都必须有一个名字──变量名,变量命 名遵循标识符命名规则。 变量命名的规定:C语言规定标识符只能由字母、
数字和下划线三种字符组成,且第一个字符必须为 字母或下划线。 例: sum,_total, month, Student_name, lotus_1_2_3,BASIC, li_ling M.D.John, ¥123, 3D64, a>b
整型 int 单精度实型 字符型 char float 实型(浮点型) 双精度实型 数组类型 [ ] double 结构类型 struct 联合类型 union 枚举类型 enum
基本类型 数据类型 构造类型
指针类型 * 空类型(无值类型) void
C语言A
2.2 常量与变量
对于基本数据类型量,按其取值是否可
C语言A
2.4 浮点型数据
一、浮点型常量
两种表示形式
小数 0.123
指数 3e-3
注意:字母e(或E)之前必须有数字,且e后面的 指数必须为整数:


1e3、1.8e-3、-123e-6、-.1e-3 e3、2.1e3.5、.e3、e
C语言A
规范化的指数形式
在字母e(或E)之前的小数部分中,小数点左 边应有一位(且只能有一位)非零的数字。 例如: 123.456可以表示为: 123.456e0, 12.3456e1, 1.23456e2, 0.123456e3, 0.0123456e4, 0.00123456e 其中的1.23456e3称为‚规范化的指数形式‛。
#include <stdio.h> void main( ) { float r, area ; r=5 ; area=3.14*r*r; printf ("%f\n ", area) ; }
运算结果是输出圆的面积:78.500000
C语言A
2.1 C的数据类型
C语言提供了以下一些数据类型:
含义清楚,“见名知意”;
需要修改时,能做到“一改全改”。
C语言A
【例2.1】符号常量的使用。
#define PRICE 30 说明:如再 #include <stdio.h> 用赋值语句 void main ( ) 给PRICE赋值 { 是错误的。 int num, total; num=10; PRICE=40; total=num * PRICE; /* 错误,不 printf(″total=%d\n″,total); 能给符号常 }
第二章 数据类型、运算符与表达式
C语言A
基本内容
2.1 C的数据类型 2.2 常量与变量 2.3 整型数据 2.4 实型数据 2.5 字符型数据 2.6 变量赋初值 2.7 各类数值型数据间的混合运算 2.8 算术运算符和算术表达式 2.9 赋值运算符和赋值表达式 2.10 逗号运算符和逗号表达式
C语言A
【例2.2】 整型变量的定义与使用。
#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); } 运行结果:a+u=22,b+u=-14
C语言A
根据占用内存字节数的不同,整型变量分为3
类:
1)基本整型(类型关键字为int)。 2)短整型(类型关键字为short (int))。 3)长整型(类型关键字为long (int))。
C语言A
有符号整型和无符号整型一起共有6类:
共六种
有符号基本整型 (signed)int 有符号短整型 (signed)short (int ) 有符号长整型 (signed) long (int) 无符号基本整型 unsigned int 无符号短整型 unsigned short (int) 无符号长整型 unsigned long (int)
余 1 余 1 余 0 余 1 余 1 余 1
1 1 1 0 1 1
(59)10=(111011)2
C语言A
例 把十进制数159转换成八进制数
8 8 8 159 19 余7 余3 余2 2 3 7 例 把十进制数459转换成十六进制数 16 459 余11 余12 余1 1 C B
2 0
(159)10=(237)8
C语言A
【例2.3】浮点型数据的舍入误差。
#include <stdio.h> 说明:一个浮点型变量只能保证 void main() 的有效数字是7位有效数字, { 后面的数字是无意义的,并不 float a,b; 准确地表示该数。应当避免将 a=123456.789e5; b=a+20; 一个很大的数和一个很小的数 printf(“%f\n”,b); 直接相加或相减,否则就会 } ‚丢失‛小的数。 运行结果: 123456.789e5


C语言A
注意:
编译系统将大写字母和小写字母认为是两
个不同的字符。 建议变量名的长度最好不要超过8个字符。 在选择变量名和其它标识符时,应注意做 到‚见名知意‛,即选有含意的英文单词 (或其缩写)作标识符。 要求对所有用到的变量作强制定义,也就 是‚先定义,后使用‛ 。
C语言A
注意:括号表示其中的内容是可选的。
C语言A
整数类型的有关数据:
类型
基本型 短整型 长整型 无符号整型
类型说明符
int short long unsigned int
长度
2字节 2字节 4字节 2字节 4字节
数的范围
-32768~32767 -215~215-1 -231~231-1 0~65535
2.3 整型数据
一、整型常量(整常数)
十进制:没有前缀,数码为0~9
237、-568、65535、1627;023 、23D
八进制:前缀为0,数码为0~7,无符号
015、0101、0177777;256、03A2、-0127
十六机制:前缀为0X或0x,数码为0~9,
A~F或a~f
0X2A、0xA0 、0XFFFF; 5A, 0x3H
C语言A
浮点型常量的类型
C编译系统将浮点型常量作为双精度来处理。 例如:f = 2.45678 * 4523.65 系统先把2.45678和4523.65作为双精度数, 然后进行相乘的运算,得到的乘也是一个双 精度数。最后取其前7位赋给浮点型变量f。 如是在数的后面加字母f或F(如1.65f, 654.87F),这样编译系统就会把它们按单 精度(32位)处理。
16 28 16 1 0
(459)10=(1CB)16
C语言A
整型常数的后缀:在16位字长的机器上,基
本整型的长度也为16位,因此表示的数的范 围也是有限定的。十进制无符号整常数的范 围为0~65535,有符号数为-32768~ +32767。八进制无符号数的表示范围为0~ 0177777。十六进制无符号数的表示范围为 0X0~0XFFFF或0x0~0xFFFF。如果使用的 数超过了上述范围,就必须用长整型数来表 示。长整型数是用后缀‚L”或‚l”来表示的。
相关文档
最新文档