C语言第3章2类型、运算符与表达式

合集下载

c语言的数据类型、运算符和表达式

c语言的数据类型、运算符和表达式

数据类型、运算符和表达式一、C 语言的基本数据类型数据是程序处理的对象。

C 中将数据分为不同的数据类型,任何数据都属于某一种特定的数据类型。

数据类型的作用有两个:一是指明为数据分配多大的存储空间和规定了数据的存储结构,进而规定了数据的取值范围;二是规定了数据所能进行的操作。

C 的数据类型分为基本数据类型和构造类型。

基本数据类型是系统定义的,用户可以直接使用。

构造类型由用户自行定义。

C 的数据类型如图所示。

C 标准没有规定各类数据所占用内存位数。

所以不同c 编译系统的各类数据所占用内存位数是不一样的。

上机使用时,应注意使用的c 编译系统的具体规定。

Turbo C 基本类型 所占位数 数的范围 [signed] char 8 -128~127 unsigned char 8 0~255 [signed]int 16 -32768~32767 short [int] 16 -32768~32767long [int] 32 -2147483648~2147483647 unsigned [int] 16 0~65535 unsigned short [int] 16 0~65535 unsigned long [int]320~4294967295C++数据类型基本类型字符型(char) 空类型(void)整型短整型(short int) 无符号整型(unsigned int)长整型(long int)基本整型(int) 实型(浮点型) 双精度型(double)单精度型(float) 指针构造类型枚举(enum) 联合(union)结构体(struct)数组float 32 约6位有效数字double 64 约12位有效数字在Visual C++中:char:1 Byteint:4 Byteshort:2 Bytelong:4 Bytefloat:4 Bytedouble:8 Byte二、常量常量:整型常量、实型常量、字符常量、字符串常量、符号常量1.整型常量C语言程序中可以使用十进制、八进制和十六进制来表示整型常量。

C语言程序设计教案第3讲 数据类型、运算符与表达式

C语言程序设计教案第3讲 数据类型、运算符与表达式
12
<
>
2,实型变量的分类
说明: C并没有具体规定每种类型的长度 并没有具体规定每种类型的长度, 说明:ANSI C并没有具体规定每种类型的长度,精度和数值 范围.下面是常用的C 范围.下面是常用的C编译系统的情况 类 型 字节数 有效数字 最小取值范围 float 4 6~7 -3.4*10-38~ 3.4*1038 double 8 15~16 -1.7*10-308~ 1.7*10308 long double 16 18~19 -1.2*10-4932~1.2*104932
8
取反
<
>
2.
整型变量分类
基本类型: 基本类型:int 根据数值的范围分为: , 根据数值的范围分为:int,short,long , 根据有无符号(singed/unsigned)及范围可分: 及范围可分: 根据有无符号 及范围可分
类 型 举例: 举例: [signed] int unsigned [int] [signed] short [int] unsigned short [int] [signed] long [int] unsinged long [int]
C 数 据 类 型
构造类型 指针类型 空类型 void
定义类型 typedef
<
>
2
2.2 常量与变量
一,标识符
定义:用来标识变量名,符号常量名, 定义:用来标识变量名,符号常量名,函数 数组名,类型名, 名,数组名,类型名,文件名的有效字符序 列称为标识符.(即一个名字) .(即一个名字 列称为标识符.(即一个名字) 使用规则
32767,32767,-32768,8
<

第3章 运算符和表达式

第3章  运算符和表达式

double long
unsigned
float

int
char,short
横向箭头表示必须的转换 ,纵向箭头表示当运 算符两侧的运算对象为不同类型时的转换, 这些转换都是由系统自动进行的 。
北京邮电大学出版社
3.4 不同数据类型数据间的混合运算
二.强制类型转换 强制类型转换是通过类型转换运算来实现的。 其一般形式为: (类型说明符)(表达式) (类型说明符)是类型转换运算符,单目运算, 优先级别为2级,具右结合性。在类型转换 运算符的右侧跟上表达式形成类型转换表达 式,其功能是把表达式的运算结果强制转换 成类型说明符所表示的类型。
北京邮电大学出版社
3.2 算术运算符
二.算术表达式
算术表达式是用算术运算符和括号将运算对象连接起来 的、符合C语言的语法规则的式子。 使用算术表达式时应注意: (1) 当双目算术运算符两侧运算对象的类型一致时,运算 结果的类型与运算对象的类型相同,如果类型不一 致,系统将自动按规律先将运算对象转换为同一类 型,然后再进行运算。 (2) 可以用括号改变表达式的运算顺序,左右括号必须配 对,多层括号都用小括号“()”表示。 (3) 注意算术表达式的书写形式,不要写成代数式的形式。
北京邮电大学出版社
3.4 不同数据类型数据间的混合运算
三.强制类型转换 赋值表达式的类型转换 当赋值运算符两侧的运算对象数据类型不同时, 系统也将进行自动类型转换,转换规则为: 将赋值运算符右侧表达式的类型转换为左侧变量 的类型。
北京邮电大学出版社
3.4 不同数据类型数据间的混合运算
1.浮点型与整型相互转换 将浮点数据(包括单、双精度)转换为整型时,将舍弃浮点数的小 数部分,只保留整数部分。 2.单、双精度浮点型相互转换 由于C语言中的浮点值总是用双精度表示的,所以float型数据只是 在尾部加0延长为double型数据参加运算,然后直接赋值。 double型数据转换为float型时,先截取双精度实数的前7位有效数 字,然后再赋给单精度类型的变量。 3.字符型与整型相互转换 将整型数据赋给字符型变量时,由于整型数据用两个字节存放,而 字符型数据用一个字节存放,所以只保留其低8位赋给字符型 变量,高位部分舍弃。 字符型数据赋给整型变量时,将字符数据的8位放入整型变量的低8 位中,有些编译系统在整型变量的高8位补0;而有些编译系 统(如Turbo C),根据字符的最高位为0或1将高8位全部补 0或补1。

c语言程序设计第三章运算符与表达式

c语言程序设计第三章运算符与表达式

第三章运算符和表达式3.1 运算符和表达式概述使用运算符可以对运算对象(包括常量和变量)进行计算以得到计算结果。

用运算符将运算对象连接成一个符合C语言语法规则的式称为表达式。

另外,C语言中的表达式是可以嵌套的,即简单表达式经过运算符连接后还可以形成更为复杂的表达式。

根据运算符所连接的运算对象(操作数)的个数,可以将C语言中的运算符分为三类:(1) 单目(一元)运算符:只连接一个操作数的运算符。

(2) 双目(二元)运算符:带有两个操作数的运算符。

(3) 三目(三元)运算符:同时对三个操作数进行计算的运算符。

C语言中的表达式可以分为三类:(1) 单个常量或者单个变量是最简单的表达式。

(2) 带有运算符的表达式。

(3) 函数调用。

任何一种运算都是将一定的运算符作用于一定的运算对象上,得到预期的运算结果。

所以运算对象、运算符和运算结果是运算的三大要素。

3.2 算术运算符和算术表达式一、基本算术运算符和简单算术表达式1. 基本算术运算符C语言为用户提供的基本算术运算符包括:+(加)、-(减)、*(乘),/(除)、%(求余),这些运算符都是双目运算符,也即在生成算术表达式的时,基本算术运算符左右两侧都必须出现运算对象。

2. 简单算术表达式当用基本算术运算符去连接常量或者变量时,就形成简单算术表达式。

简单算术表达式的基本形式:data1 op data2。

data1和data2表示某个常量或者变量,op代表上述5个基本算术运算符之一。

假设有变量定义:int a=20,b=-5;则a+b、a-b、a*-2、20/-b、20%6、a%b等都是简单算术表达式。

3. 基本算术运算符使用说明(1) +、-、*,/既可以连接整型数据,也可以连接实型数据。

当参与这4个运算符的运算对象都是整型数据时,得到整型数据运算结果;否则表示浮点运算。

例如,int a=15,b=2;则a*b等于30,而a/b等于7;a*2.0等于30.0,而a/2.0等于7.5。

C语言课件第三章

C语言课件第三章

三、 自增、自减运算符 ++ --
++、- -运算符的作用是使变量的值加1或减1
1)该运算符为单目运算符,其运算对象只能是 变量,不能为常量或者表达式。 例如: i++ 、x- - 都是正确的 5++ 、(x+y)++ 都是错误的
2)该运算符作前缀、后缀都可以 例如 i++、++i、i- - 、- -i 都是正确的
3)对变量而言 i++ 或者++i都相当于i=i+1 i- -或者- -i都相当于i=i-1
例如: main( ) { int i=3 , j=3; +i+++i; j---j;; printf (“%d, %d\n”, i, j ); }
运行结果:4,2
4)但如果作为表达式,前缀和后缀则不同: 后缀:先取值再运算(i++,先取i值,i再自加) 前缀:先运算再取值(++i,i先自加,再取i值)
2)强制类型转换运算符优先级高于算术运算符
float x=3.6; int y; y=(int)x%3+2;
x = ?3.6 y=?2
计算下列表达式的值 设 x=2.5, a=7,y=4.7
x+a%3 * (int)(7x7+.2y ) % 2 / 4
设 a=2,b=3,x=3.5,y=2.5
(float5).(0a+b )/2+(int3)(x)%(int2)(y)
例如: main() { int i=3; printf(“%d\n”+, +i+i+ ); printf(“%d”, i ); }

3 数据类型、运算符和表达式

3 数据类型、运算符和表达式

三、整型数据
3.1.整型常量 整型常量即整常数按不同的进制区分, 整型常量即整常数按不同的进制区分 , 整型常数 有三种表示方法: 有三种表示方法:
十进制数: 以非0 220, 560, 十进制数: 以非0开始的数 如:220, -560, 45900 八进制数: 06; 0106, 八进制数: 以0开始的数 如:06; 0106, 十六进制数: 十六进制数: 以0X或0x开始的数 如:0X0D, 0XFF, 0x4e
一般情况下,符号常量名用大写、变量用小写。 一般情况下,符号常量名用大写、变量用小写。
3、符号常量的声明和使用 一般放在程序的前端, <…>在一块: 一般放在程序的前端,与#include < >在一块: #define 符号常量名 值 如:#define Zero 0 好处: 好处: 含义清楚 (#define Second 60) (#define (#define 一改全改 (#define PI 3.14)
3. 整型变量的溢出
main(){ i,j; int i,j; unsigned k,l,m; k,l,m; i=32767 32767; i=32767; j=i+1 j=i+1; l=65535 65535u l=65535u; m=l+2 m=l+2; printf("j=%d\n",j); printf("j=% n",j); printf("l=% n",l); printf("l=%u\n",l); printf("m=% n",m); printf("m=%u\n",m); }
3.2、整型变量 整型变量的分类:加上不同的修饰符 1 . 整型变量的分类 : 加上不同的修饰 符 , 整型变 量有以下几种类型; 量有以下几种类型; C 语言标准没有规定整型变量在计算机内存中所 占的字节数,它与具体的机器和操作系统有关: 占的字节数,它与具体的机器和操作系统有关:

3 数据类型.运算符与表达式

3 数据类型.运算符与表达式
THE C PROGRAMMING LANGUAGE
C语言程序设计
第6页
符号常量
一般来说,下列两种情况用符号常量比较方便。 1)当某一常数在程序中多处出现时,可事先定义一个符 号常量。 2)有时,程序中的常数是有意义的,但写一个具体数字,程 序的阅读者则很难明白该常数的意义,此时可定义一个符 号常量。 例如: # define PI 3.1415926 注意:1)表示常量的标识符一般用大写 2)不能给符号常量赋值 PI=6; 错误 思考题:使用符号常量的好处? 含义清晰;一改全改
C语言程序设计
第14页
3.4 实型数据 3.4.1 实型常量
注意:1)没有unsigned和signed 之分。 2)实型常量没有单、双精度数之分;但可以赋给 一个float型或double型变量。赋值时要注意有效 数字位数。 float a; a=12345.6789 (只能接受前7位) 3)C编译系统将浮点型常量作为双精度来处理
C语言程序设计
第11页
3.3.2 整型变量
有三种整型变量(int、short int、long int): 但也可以将变量的类型定义为无符号(unsigned int) 1)有符号基本整型:signed int signed int 2)无符号基本整型:unsigned int 3)有符号短整型: signed short int signed int 4)无符号短整型: unsigned short int unsigned short 5)有符号长整型: signed long int signed long long 6)无符号长整型: unsigned long int unsigned long
THE C PROGRAMMING LANGUAGE

c语言运算符及其表达式

c语言运算符及其表达式

c语言运算符及其表达式(总14页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--C语言的数据类型运算符表达式1.基本数据类型基本数据类型最主要的特点是,其值不可以再分解为其它类型。

也就是说,基本数据类型是自我说明的。

2.构造数据类型构造数据类型是根据已定义的一个或多个数据类型用构造的方法来定义的。

也就是说,一个构造类型的值可以分解成若干个“成员”或“元素”。

每个“成员”都是一个基本数据类型或又是一个构造类型。

在C语言中,构造类型有以下几种:·数组类型·结构类型·联合类型3.指针类型指针是一种特殊的,同时又是具有重要作用的数据类型。

其值用来表示某个量在内存储器中的地址。

虽然指针变量的取值类似于整型量,但这是两个类型完全不同的量,因此不能混为一谈。

4.空类型在调用函数值时,通常应向调用者返回一个函数值。

这个返回的函数值是具有一定的数据类型的,应在函数定义及函数说明中给以说明,例如在例题中给出的max函数定义中,函数头为: int max(int a,int b);其中“int ”类型说明符即表示该函数的返回值为整型量。

又如在例题中,使用了库函数 sin,由于系统规定其函数返回值为双精度浮点型,因此在赋值语句s=sin (x);中,s 也必须是双精度浮点型,以便与sin函数的返回值一致。

所以在说明部分,把s说明为双精度浮点型。

但是,也有一类函数,调用后并不需要向调用者返回函数值,这种函数可以定义为“空类型”。

其类型说明符为void。

在第五章函数中还要详细介绍。

在本章中,我们先介绍基本数据类型中的整型、浮点型和字符型。

其余类型在以后各章中陆续介绍。

对于基本数据类型量,按其取值是否可改变又分为常量和变量两种。

在程序执行过程中,其值不发生改变的量称为常量,取值可变的量称为变量。

它们可与数据类型结合起来分类。

例如,可分为整型常量、整型变量、浮点常量、浮点变量、字符常量、字符变量、枚举常量、枚举变量。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

代数表达式: s=2πr
算术表达式:s=2*3.14159*r
20
练习:
1.下列运算符的操作数不能是float型的运算符是()。
A. * B. % C. ―― D. /
答案: B
2.执行以下程序段,c的值是( )。 int a=1,b=2,c;
答案: A
c=a/b;
A. 0 B. 1/2 C. 0.5
第三章 数据类型、运算符和表达式
主要内容
1. 预备知识 2. 常量和变量的概念 3. 各种数据类型的常量及变量 4. 变量赋初值 5. 不同类型数据之间的混合运算 6. 常用运算符和表达式 7. 输入函数与输出函数
2
3.4.1 变量和内存的概念
变量: 程序运行过程中其值可以改变的量。 系统为程序中的每一个变量开辟存储单元。
分量运算符: . ->
下标运算符: [ ]
其它 : ( ) -
13
学习运算符应注意:
运算符功能 与运算量关系
要求运算量个数 要求运算量类型
运算符优先级别 结合方向 结果的类型
14
计算机实现操作有两种方式:
运算:数学中所规定的各种基本运算,由运算符来 实现。
函数:对于复杂的运算,需要编制子函数来实现。 标准函数(库函数); 用户自定义函数;
算术运算符的结合性 从左到右
19
(1)求三个数的算术平均值
代数表达式:ave= a b c
3
算 术
算术表达式:ave=(a + b + c)/3 (2)根据三角形三边计算三角形面积
表 代数表达式: s(s a)(s b)(s c)
达 算术表达式:sqrt(s*(s-a)*(s-b)*(s-c)) 式 (3)根据半径计算圆的周长
15
运算符与表达式
1. 算术运算符和算术表达式 2. 赋值运算符和赋值表达式
16
算术运算符
完成现实世界的算术运算( + 、-、×、÷)
+
加法运算或正号运算符
-
减法运算或负号运算符
*
乘法运算符

除法运算符
%
求余运算符,或称模运算符
17
关于求余运算:
求余运算A % B表示:求A 除以 B 的余数 求余运算要求%两侧都是整型数据。 对于除法,如果参加运算的两个数中有一个数为 实数,则结果是实数 (实数除法)
D. 1
21
算术运算符的优先级
(、)(括号)
最优先! 无括号时我最高!
- (负号运算符) *、 /、 %
第二级!
+ 、-(加减运算符)
最低!
22
自增( ++ )和自减运算( - - )
• ++ 运算符的作用:是使变量的值增 1。
原始值 变量
++
原始值+ 1 变量
• -- 运算符的作用:是使变量的值减1。
原始值 变量
--
原始值-和自减运算( -- )
自增和自减运算只能应用于整型变量和指针型变 量。 ++ 和 -- 可以写在变量的左侧或右侧;而且其 意义不同。 • “ ++ 变量名”和“ -- 变量名”:
先做运算,后取值 • “变量名 ++ ”和“变量名 -- ”:
先取值,后做运算
8
26
练习
例: 8%5 的运算结果:3 8/5 的运算结果:1 5.6/2 :2.800000 8.43/5:1.686000
18
算术表达式:
算术表达式:用算术运算符和括号将运算对象连接起 来的式子称为算术表达式。 运算符有优先级和结合性: • 计算表达式的值时,按照优先级的高低依次计算; • 如果运算符优先级相同,则按规定的结合方向进行。
char c = 'a' ; /*指定c的初值为’a’*/
6
注意: 变量的“名”和变量的“值”不同,变量的“
名”是该变量所代表的存储单元的标志,而变量的 “值”是指存储单元中的内容。
如:int a;

a=5;
5
a=10;
10
7
8
9
10
11
主要内容
1. 预备知识 2. 常量和变量的概念 3. 各种数据类型的常量及变量 4. 变量赋初值 5. 不同类型数据之间的混合运算 6. 常用运算符和表达式 7. 输入函数与输出函数
24
自增( ++ )和自减运算( - - )举例
变量I 变量N
10 N = I ++ 0
1?1 变量I 1?0 变量N
变量I 变量N
10 N = ++ I 0
1?1 变量I 1?1 变量N
25
练习 : 已知 i = 7 j = i ++ ; j = ? 7
i=? 8
j = ++ i; j = ? 8 i = ?
变量名: 字母开头,后跟字母、数字和下划线组成。 C语言中的关键字不能作为变量名。
3
3.4.1 变量和内存的概念
#include<stdio.h> #define PI 3.1415926 void main( ) { float r, s, ar;
scanf(“%f”, &r); s = 2 * PI * r; ar = PI * r * r; printf("s=%7.2f, " , s ); printf(" ar=%7.2f “ , ar ) ; }
类型标识符 变量名1[=常量1], 变量名2[=常量2],… ;
5
3.4.2 变量定义和赋初值
变量赋初值
int i = 0 ;
/*指定i为整型变量,初值为0*/
int a = 5 , b = 5 , c = 5; /*指定a,b,c的初值为5*/
float ep = 0.001; /*指定ep的初值为0.001*/
说明:
变量必须先定义后使用;
变量中存储的只能是一个 数据,往变量中存放数据 的操作称为赋值。
变量改变的是其值,而不 是变量名。
4
3.4.2 变量赋初值
变量定义 int a , b , c ; /*指定a,b,c为整型变量*/ float w ; /*指定w为单精度实型变量*/ double z; /*指定z为双精度实型变量*/ char c1 , c2; /*指定c1,c2为字符型变量*/
12
3.6 运算符和表达式
算术运算符:+ - * / % ++ --
关系运算符:< <= == > >= !=
逻辑运算符:(! && ||
位运算符 : << >> ~ | ^ &
C
赋值运算符: = 及其扩展

条件运算符: ? :

逗号运算符: ,

指针运算符: * &
求字节数 :sizeof
强制类型转换:(类型)
相关文档
最新文档