第三章 运算符

合集下载

Java编程基础及应用第3章运算符、表达式和语句

Java编程基础及应用第3章运算符、表达式和语句

(1)左移位运算符
左移位运算符的符号为“<<”,是二元运算符。左移位运算符左
面的操作元称为被移位数,右面的操作数称为移位量。

例如:a<<n运算的结果是通过将a的所有位都左移n位,每左移一 个位,左边的高阶位上的0或1被移除丢弃,并用0填充右面的低位 。
3.1.5 移位运算符

(2)右移位运算符
3.1.7 条件运算符

条件运算符是一个多元运算符,它的符号是“? : ”,需要连接三
个操作数,用法如下:a?b:c,要求a的值必须为boolean型数据 。运算法则是:当a的值为true时,a?b:c运算的结果是b的值;
当a的值是false时,a?b:c运算的结果是c的值。

例如: 8>2?10:20的结果是10;
// DevideTest2.java public class DevideTest2 { public static void main(String[] args) { int a = 13, b = 4, k; float f1, f2; k = a / b;//整数相除,结果仍为整数 f1 = a / b;//将整数结果强制转换为浮点型 f2 = (float) a / b;//将a强制转换为浮点 型,结果则为浮点型

(4)“按位异或”运算符
“^”是双目运算符。对两个整型数据a、b按位进行异或运算,运 算结果是一个整型数据c。运算法则是:如果a、b两个数据对应位
相同,则c的该位是0,否则是1。

例如:1001001和0101001进行“异或”运算,表达如下, 1001001 ^0101001 1100000

按照运算类型,可以将运算符分成以下几类:算术运算符,关系

C语言第3章数据类型、运算符与表达式ppt课件

C语言第3章数据类型、运算符与表达式ppt课件
第三章
数据类型、运算符与表达式
1
主要内容
一、C的数据类型 二、常量与变量 三、基本数据类型 四、运算符与表达式
2
一、C的数据类型
(一) 什么是数据类型? (二) C语言的数据类型有哪些?
3
(一) 什么是数据类型?
对数据的描述
对操作的描述
数据结构+算法=程序
C语言中以 “数据类型”形式存在
4
所谓数据类型是按被定义变量的性质,表示形 式,占据存储空间的多少,构造特点来划分的。
int NUM=20; sum=PRICE*NUM;
11
符号常量优点
1、含义清楚。 2、在需要改变一个常量时,能够做到“一
改全改”
12
(二)变量
概念
变量代表内存中具有特定属性的一 个存储单元,它用来存放数据,也 就是变量的值。
13
(1)变量名。每个变量都有一个名字 ──变量名,代表一个地址。 (2)变量值。在程序运行过程中,变 量值存储在内存中。在程序中,通过 变量名来引用变量的值。
#include <stdio.h>
void main() {
int student,age; int if=adrress=1; float score=90;
stadent=2; Age=20; printf("%d %d %d %f",if,student,age,score); }
本程序中有 几处错误?
(5)标识符的有效长度随系统而异,如果超 长,则超长部分被舍弃。VC++6.0中规 定最大长度为247个字符。
23
请选出下列正确的标识符 M.D.John , 12%gf ,1add ,_ce36 ,age& 5thclass, lotus-1-2-3 , cd*ef , float,

第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。

第三章标识符 关键字和数据类型

第三章标识符 关键字和数据类型

注:系统自动引入ng包,因此不需要再使用import语句引入该包
高级循环控制

嵌套式循环 格式:
for (表达式1;表达式2;表达式3) { for(表达式1;表达式2;表达式3) {若干语句 } }
for(int a=1;a<=4;a++) { for(int b=1;b<a;b++) { System.out.print(“*”); } System.out.println(); }
语句

Switch开关语句:适合多分支
格式: switch(表达式)
case 常量值1: 若干个语句 break; case 常量值2 : 若干个语句 break … … … case 常量值n: 若干个语句 break; default: 若干语句 }
{
a. switch语句中表达式的值必须是整 型或字符型 b. 常量值1到常量值 n必须也是整型 或字符型 c. 在同一个switch语句中,case后的 常量值必须互不相同 d. switch语句先计算表达式的值,若 值和某个case 后面的值相同,就 ; 执行该case里的语句直到break语 句为止。 e. 若没有值与表达式的值相同,则执 行default后面的语句。 f. default是可有可无的,若它不存 在,且所有的值都和表达式的值不 同,则switch语句就不会进行任何 处理。
语句

2)循环语句

for循环语句
a. b.
for (表达式1;表达式2;表达式3) c. { 若干语句 }
表达式1负责完成变量的初始化 表达式式2是值为boolean型的表达式, 称为循环条件 表达式3用来修整变量,改变循环条件

3、JavaScript运算符和表达式

3、JavaScript运算符和表达式

var box = Infinity + Infinity;
//Infinity
var box = -Infinity + -Infinity; //-Infinity
var box = Infinity + -Infinity; //NaN,正无穷和负无穷相加等NaN
var box = 100 + '100';
3.逻辑非运算符可以用于任何值。无论这个值是什么数据类型,这个运算符都会返回一个布尔值。它 的流程是:先将这个值转换成布尔值,然后取反
注: JavaScript虽说也有& 和 |,但是这里不是做逻辑运算符,而是位运算符
七、三目运算符
三目运算符,又叫三元条件运算符 三元条件运算符其实就是后面将要学到的if 语句的简写形式。 根据条件在两个语句中执行其中的一个,使用符号 ?: 语法如下: 条件表达式?语句1:语句2 参数说明: 条件表达式,结果会被作为布尔值处理 语句1:如果条件表达式返回true则执行 语句2:如果条件表达式返回false则执行
算术运算符即算术运算符号。是完成基本的算术运算 (arithmetic operators) 符号,就是 用来处理四则运算的符号。
算数运算符分为以下:
二、算术运算符
加法运算符(+)
var box = 1 + 2;
//等于3
var box = 1 + NaN;
//NaN,只要有一个NaN 就为NaN
值 true false false false true true false false false true false
五、比较运算符(关系运算符)
相等运算符 == :判断两个操作数是否相等。 不同的数据类型会自动转换为相等的数据类 型再做比较。

第3章 C语言的运算符

第3章 C语言的运算符
① 前缀形式:++i、--i,它的功能是在使用i之前, i 值先加 (减)1(即先执行i+1或i-1,然后再使用i值)。 ② 后缀形式:i++、i--,它的功能是在使用i 之后, i 值再加 (减)1(即先使用i值,然后再执行i+1或i-1)。
普通高等教育“十一五 ” 国家级规划教材
3.2. 算术运算符与算术表达式
3、C语言的运算符和表达式
3.1.2 运算符的优先级和结合性
例如:
普通高等教育“十一五 ” 国家级规划教材
3*5/3 :表达式中出现了二个运算符即*和/。按 照优先级的次序,5的两侧“*”和“/”优先级相同, 则按结合性处理。“*”和“/”运算符的结合性为从 左到右,则先乘后除,表达式的值为5。
d=a+b-c :表达式中出现了三个运算符即=(赋 值)、+、-。按照优先级的次序,加和减的运算优先 级相同,而赋值运算符优先级较低。根据加和减的结 合性是从左到右,因此先计算加,再计算减,最后进 行赋值。
3 C语言的运算符和表达式
普通高等教育“十一五 ” 国家级规划教材
3.1.1运算符的优先级和结合性
注意所有的单目运算符、赋值运算符
和条件运算符都是从右向左结合的,要 予以特别关注,其余均为从左向右结合 的,与习惯一致。
普通高等教育“十一五 ” 国家级规划教材
学习 C语言的运算符,不仅要掌握各种 运算符的功能,以及它们各自可连接的运算 对象个数,而且还要了解各种运算符彼此之
普通高等教育“十一五 ” 国家级规划教材
第3章 运算符与表达式
作为一种程序设计语言,C 语言规定了一套严密的字符 集和语法规则,程序设计就是根据这些基本字符和语法规则

第三章 数据类型运算符与表达式

第三章 数据类型运算符与表达式

三、变量
3、变量值的存储 变量被定义以后,系统在运行时会为该变量分配一个相 应大小的存储空间,称为存储单元。 给变量赋值后,该变量对应的存储单元中会存放该值, 这个值称为变量的值。 那么变量的值在变量的存储单元中是如何表示的呢? (1)整数是以补码的形式存放的。 (正数的补码是其本身,负数的补码为原码按位取反加1) 如:int a=2, b; b= -2; a 00000000 00000010 b 11111111 11111110
(一)算术运算符和算术表达式
表达式的值: 表达式运算得到的最终结果为表达式的值。 也就是整个式子代表的值 如a=5,b=2; a+b 7
(二)赋值运算符和赋值表达式
赋值运算符:= 格式:变量=表达式 如:int a,b; 下面都是正确的赋值表达式 a=5; b=3; a=2+3; a=a+2; b=a*a; 赋值运算为“从右向左”结合的。 如x=y=z=3 它等价于:x=(y=(z=3))
第三章 数据类型运算符与表达式
信息管理系
3.0、C语言中标识符的概念
• 在程序中,由程序设计者使用的名字成为标 识符。标识符用以标志区分不同的东西。它 可以用作函数的名字、变量、常量的名字, 以及文件的名字等等。
一、C语言中的标识符分类
• 用户标识符 • 关键字(语句标识及类型标识)(P375附录II) 例如:real,main,char,int,float,double, long,if,for,switch,default,break等。 • 预定义标识符(函数名字等) 例如:define,include,printf,scanf,sin等。
2的原码表示:00000000 00000010 -2的补码表示:11111111 11111101+1=11111111 11111110

c语言程序设计第三章答案

c语言程序设计第三章答案

c语言程序设计第三章答案第三章:运算符与表达式一、算术运算符在C语言中,算术运算符用于在表达式中执行各种数学运算。

常见的算术运算符有加法运算符(+)、减法运算符(-)、乘法运算符(*)和除法运算符(/)等。

1. 加法运算符(+)加法运算符用于将两个操作数相加,并返回它们的和。

例如,表达式a + b将返回a和b的和。

2. 减法运算符(-)减法运算符用于从第一个操作数中减去第二个操作数,并返回它们的差。

例如,表达式a - b将返回a和b的差。

3. 乘法运算符(*)乘法运算符用于将两个操作数相乘,并返回它们的积。

例如,表达式a * b将返回a和b的积。

4. 除法运算符(/)除法运算符用于将第一个操作数除以第二个操作数,并返回它们的商。

例如,表达式a / b将返回a除以b的商。

二、关系运算符关系运算符用于比较两个操作数并返回一个布尔值(真或假)。

常见的关系运算符有大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)和不等于(!=)等。

1. 大于运算符(>)大于运算符用于检查第一个操作数是否大于第二个操作数。

如果是,则返回真(1),否则返回假(0)。

例如,表达式a > b将返回真或假。

2. 小于运算符(<)小于运算符用于检查第一个操作数是否小于第二个操作数。

如果是,则返回真(1),否则返回假(0)。

例如,表达式a < b将返回真或假。

3. 大于等于运算符(>=)大于等于运算符用于检查第一个操作数是否大于或等于第二个操作数。

如果是,则返回真(1),否则返回假(0)。

例如,表达式a >= b 将返回真或假。

4. 小于等于运算符(<=)小于等于运算符用于检查第一个操作数是否小于或等于第二个操作数。

如果是,则返回真(1),否则返回假(0)。

例如,表达式a <= b 将返回真或假。

5. 等于运算符(==)等于运算符用于检查两个操作数是否相等。

第三章 数据类型、运算符及表达式§31 字符及标识符

第三章 数据类型、运算符及表达式§31 字符及标识符

2关系运算符
比较两个操作数的大小的运算符,称为关系运算符。 关系运算的表达式,称为关系表达式。 例如, 3+5 > 7-4 关系表达式也有它的值。 如: 8 > 3, 该关系成立,因此关系表达式的值为真, 反之, 其值为假。 在C语言中,用数值1表示真,用数0表示假。 如,7 == 2,关系表达式为假,其值为0。 关系运算符的种类和表达式如下:

*C 语言提供的长整数的表示方法可以用来扩大整数的取值 范围. – 例如, 41l, 037l, 0x1fL 字母后面的l 或 L ,表示该数是长常数., 上面三个数,分别是十进制、八进制、十六进制长整数。 一个在整数中放不下的普通整数也被作为长整数,
因此, 把其后紧跟有 l 或 L 的整数叫显式长整数. • 在16位字长的机器上,长整数的位数是 32 位 ( 增长一倍 )。 故长十进制整数取值范围为 -2147483648 到 2147483647。 (2)整型变量: • 基本整型 int 如: int x; • 长整型 long 如: long int y; 或 long y ; • 无符号 unsugend 如: unsigend int z; 或 unsigend z。
• 关键字
具有固定意义的标识符,用户不能用作为自己的标识符, 它们共有32个,除符号常量外都用小写字母表示,就其用途 分五类。 (1) 数据类型 int char float double short ... (2) 存储类型 extern static register auto typedef (3) 控制语句 if else for while do .... (4) 运算符 sizeof (5) 符号常量 EOF BOF .... *它们的含义后面将会络续提到。 * 用户定义的标识符,不能和关键字同名。

第3章_运算符和表达式

第3章_运算符和表达式

运行结果如下: k=3 f1=3.0 f2=3.75
【例题】编写程序,接收命令行输入的浮点数,
将此浮点数的整数部分输出。
import java.util.*; public class FloatDemo { public static void main(String args[]){ double d; Scanner reader=new Scanner(System.in); d=reader.nextDouble(); System.out.println(d+"的整数部分为"+(long)d); reader.close(); } }
赋值运算符还可以与算术运算符、逻辑运算符和位运算 符组合成复合赋值运算符,使用方法见表。
运算符 += 用例 x += y 等价于 x=x+y 运算符 &= 用例 x &= y 等价于 x=x&y
-= *= /=
%= >>>=
x- = y x*= y x /= y
x %= y x >>>= y
x=x-y x=x*y x=x/y
运算符和表达式
常用的运算符有哪些?
算术运算符:+、-、*、/、% 关系运算符:>、<、>=、<=、==、!= 逻辑运算符:&&、||、! 条件运算符:?:
运算符和表达式
1 运算符 对数据进行加工和处理称为运算,表示各种 运算的符号称为运算符,参与运算的数据称为 操作数。 根据操作数的个数,可以将运算符分为单 目、双目和多目运算符。单目运算符只对1个操 作数运算,双目运算符对2个操作数运算。 根据操作数和运算结果,运算符分为:算 术运算符、关系运算符、逻辑运算符、位运算 符。

C语言教程第3章 数据类型、运算符与表达式

C语言教程第3章  数据类型、运算符与表达式
#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
注意以下几点:
(4) 一个整常量后面加一个字母u,认为 是unsigned int型,如12345u,在内存 中按unsigned int规定的方式存放(存储 单元中最高位不作为符号位,而用来存 储数据,见图2.4(b)。如果写成-12345u, 则先将-12345转换成其补码53191,然 后按无符号数存储。
int a; unsigned int b;
一个整数(以13为例)在存储单元中 的存储情况
3. 整型变量的定义
int a,b; (指定变量a、b为整型) unsigned short c,d; (指定变量c、d为无符号短整型) long e,f; (指定变量e、f为长整型)
例3.2整型变量的定义与使用。
字符型变量用来存放字符常量,请注 意只能放一个字符,不要以为在一个字符 变量中可以放一个字符串(包括若干字符)。 字符变量的定义形式如下: char c1,c2;
c1='a';c2='b';
3.5.3 字符数据在内存中的存储 形式及其使用方法
字符的相应的ASCII代码放到存储单元中
例3.6向字符变量赋予整数。
单精度 ( float 型 占4B) 双精度 ( double 型 占8B )

北大青鸟C语言教程--第三章 运算符

北大青鸟C语言教程--第三章 运算符
7
ACCP V4.0
复合赋值运算符
运算符 += -= *= /=
表达式 X += 5 X -= 5 X *= 5 X /= 5
计算 X=X+5 X=X-5 X=X*5 X=X/5
结果(假设 X=10) 15 5 50 2
%=
X %= 5
X=X%5
0
8
ACCP V4.0
示例
#include <stdio.h> void main () book_price=book_price+12.50; { float book_price = 60.75; printf("\n 书的价格 = %f",book_price); book_price += 12.50; printf("\n 书的新价格 =%f\n",book_price); }
请输入一个字符:T 您输入的字符不是小写字母
25
ACCP V4.0
#include <stdio.h> void main() { float rate1,rate2,rate3; 问题描述: double discount,total; 接受用户输入的三种商品的价格。如果购买的三种商品中 printf("\n请输入第一种商品的价格:"); scanf("%f",&rate1); 至少有一种商品的价格大于 50 或者三种商品的总额大于 printf("\n请输入第二种商品的价格:"); scanf("%f",&rate2); 100,则折扣率为15%,否则折扣率为0,计算并显示用 printf("\n请输入第三种商品的价格:"); 户应付的钱数。 scanf("%f",&rate3); total=rate1+rate2+rate3; if((rate1>50)||(rate2>50)||(rate3>50)||(total>100)) if((rate1>50)||(rate2>50)||(rate3>50)||(total>100)) { 输出: discount=0.15*total; total=total-discount; 请输入第一种商品的价格:34 printf("\n折后总价为:%6.2f\n",total); 请输入第二种商品的价格:42 } else 请输入第三种商品的价格:38 printf("\n总价为:%6.2f\n",total); 折后总价为:96.90 } 26 ACCP

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

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

例如
➢字符常量‘a’占一个字节 ➢字符串常量"a" 占2个字节
‘a’ → “a” →
0110 0001 ……
0110 0001 0000 0000
(97)10
(97)10 (0)10
7.变量赋初值
变量赋初值
C语言允许定义变量时赋予初值。
➢int i = 6;
也可对某个变量赋初值:
➢int a, b, c = 6;
如: 0x16, 0x28
4.整型数据
整型变量
分类:
➢基本型 用“ int ”定义; ➢短整型 用“ short int ”或 “ short ”定义; ➢长整型 用“ long ”或 “ long int ”定义; ➢无符号型 用“ unsigned ”定义,不存放符号;
整型变量定义方式
➢基本整型:int a, b, c; ➢短整型 : short int 或 short a, b, c; ➢长整型: long int 或 long a, b, c; ➢无符号型:unsigned a, b; unsigned short a, b
10+‘a’+1.5–8765.1234 ‘b’
8.各种数值型数据间的混合运算
转换方法(自动转换)
double float

long
unsigned
低 int char, short
图中“ ” 表示必定转换。如'a' +' b',先转换为int,结果为 int。
既使是同一种类型也按" "转换。
对于“++”和“--”的使用要避免二义性
10.赋值运算符和赋值表达式

C语言程序设计:第3章 运算符与表达式

C语言程序设计:第3章 运算符与表达式
注意:C语言中单一的一个变量或者单一的一个常量 是最简单的表达式。
提问:以下程序是输出变量的值还是表达式的值?
int main(void)
{
char a = 0,b = 0; a = 10;
总结:永远输出表达式的值!!!
b = 15;
printf("%d",a);
printБайду номын сангаас("%d\n",a+b);
sizeof(表达式) 结果为表达式的数据类型占据的字节数
课堂练习: 写出以下表达式的值。 int a = 10; sizeof(int) sizeof(unsigned int) sizeof(a) sizeof(165) sizeof(a + 10) sizeof(float) sizeof(double) sizeof(long double)
c = 7/2;
printf("%f\n", c);
c = a*2;
printf("%f\n", c);
return 0;
}
8
算术运算符与表达式: + - * / %
注意:%求余运算符的两个运算对象必须都是整数! 而且表达式结果的正负由被除数决定。
课堂练习: 2.写出以下表达式的结果。
int a = 10,b = 3,c = -7; a/b a%b b%a c%a a%c 20 % 6.5 20%-5 -20%5 -20%-5
《C语言程序设计》 第三章 运算符与表达式
1
课程回顾
❖变量的定义、初始化 ❖变量的使用 ❖三大基本数据类型
2
本次课议题
❖运算符与表达式 ❖优先级与结合性 ❖算术运算符与表达式 ❖关系运算符与表达式 ❖逻辑运算符与表达式 ❖赋值运算符与表达式
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
a+b-c /*+和-的结合方向都是从左向右*/ /*b先与+结合计算a+b,然后执行减法*/ a=b=1 /*=的结合方向是从右向左,先计算b=1*/
运算符的目
一目运算符:运算所需变量为一个的运算符 双目运算符:运算所需变量为两个的运算符
三目运算符:运算所需变量为三个的运算符
算术运算符
算术运算
operandl/operand2
operandi%operand2 operandi++或 ++operandi operandi--或--opemndI
基本算术运算符
优先级 (从高到低)
* / % + (加) – (减)
结合方向(左结合)
+ (加) – (减) * / %:从左向右
注意:
两元远算符 两个整数相除,结果为整数,且直接舍弃小数部分,而不是采用四 舍五入。 两个数中只要有一个是浮点型数, 结果为浮点值。 模运算的两个操作数必须为整数。
}
输出: 商为 1.000000
余数为 2
加 1 后为 26 减 1 后为 11
算术运算符之一元算术运算符
1、如果sum++用于一个赋值语句或printf()语句中,将首先使 表达式 如何计算 结果 (num1=5) 用sum的当前值赋值或将其输出,然后再将sum的值加l。 num2 = ++num1; num1 = num1 + 1; num2 = 6; 算术 2、++和--只能用于整型变量,不能用于常量和表达式 num2 = num1; num1 = 6; num++ num=num+1 ++ 3、++和--的结合方向是“右结合性” num2 = num1++; num2 = num1; num2 = 5; 4、i+++j /* 结果是(i++)+j还是 ++num */num1 = 6; i+(++j) num++ num1 = num1 + 1; --num num-一元
本章结构
表达式和运算符简介 赋值运算符 关系运算符
运算符
条件结构
逻辑运算符 Sizeof运算符 运算符的优先级
表达式
运算符
操作数
操作数
Z = ( X * 2 ) + ( 5 – Y )
表达式 表达 式 表达式
表达式
表达式由操作数和运算符的组合而成 表达式中的操作数可以是变量、常量或者子表达式 一个表达式也可以成为另一个表达式的操作数 运算符的主要类型有: 算术运算符: + - * / % ++ -赋值运算符: = += -= *= /= %= >>= <<= &= ^= |= 关系运算符: > >= < <= == != 逻辑运算符: && || ! 位运算符: << >> ~ | ^ & 条件运算符: ? : 逗号运算符: , 指针运算符: * & 求字节数运算符: sizeof 强制类型转换运算符: (type) 分量运算符: . -> 下标运算符: [] 其它运算符: ()
#include<stdio.h>
main() {
int sum = 5; int sum1 = 5; int a,b; a = sum++; b = --sum1; printf("%d\n",a); printf("%d\n",b); printf("%d\n",sum); printf("%d\n",sum1); printf("%d\n",sum--); printf("%d\n",++sum1); }
注意
逗号运算符的优先级最低, 逗号表达式的值是最后一个表达式的值 用于把多个表达式组合成一个表达式使用
运符优先级与结合方向总结
不同优先级的运算符,运算次序按优先级由高到低执行 同一优先级的运算符,运算次序按结合方向的规定执行 可以使用圆括号( )明确运算次序 圆括号()具有最高的优先级
阶段总结
第3章
运算符
预习检查
表达式由那些元素组成? C语言用什么值代表假和真呢? c = a+++b;后c的值是?
本章目标
写出下面表达式运算后a 的值,设a =24,其中,int a, n;
(1)、a+=a (2)、a*=2+3; (3)、a%=(n%=2),设n=5 (4)、a-=3.5; (5)、a/=a+a; (6)、a+=a-=a*=a 要求: (1)、预测结果 (2)、上机运行 (3)、总结赋值运算符的特点
第2章内容回顾
常量在程序中不能被更改,而变量在程序中可以被更改 C语言中的基本数据类型包括整型、单精度浮点型、双精度浮点型和字 符型 整型分为短整型、整型、长整型,每种整型又可分为有符号型和无符号 型 单精度浮点型和双精度浮点型变量可以存储实数 字符型变量可以存储单个字符,其值是该字符的ASCII 码 printf() 和 scanf() 函数属于格式输入输出函数 getchar() 和 putchar() 函数用来输入输出单个字符的函数
}
sizeof 运算符
使用 sizeof 运算符可以获得数据类型占用内存空间的大小 。其一般形式为: sizeof(type_name) sizeof(variable_name) sizeof 运算符的结果以字节为单位显示 sizeof 运算符 返回的大小 float num; sizeof(int); char 1 sizeof(num);
输出: 书的价格 = 60.750000 书的新价格 = 73.250000
赋值运算符探讨
• a*=b等价于a=a*b的话 那a*=(b+1)等价于a=a*b+1还是a=a*(b+1) • 那么表达式a*=b作为操作数时,它的值是多少? • Index_declared_by_zeffiris project_help[max_world] += 18; 你愿意把它写成a=a+b的形式吗?
赋值运算符
复合赋值运算符 在=前加上算术运算符或位运算符
运算符
+= -= *=
表达式
X += 5 X -= 5 X *= 5
计算
X=X+5 X=X-5 X=X*5
结果(假设 X=10)
15 5 50
/=
%=
X /= 5
X %= 5
X=X/5
X=X%5
2
0
赋值运算符之示例
#include <stdio.h> int main () book_price=book_price+12.50; { float book_price = 60.75; printf("\n 书的价格 = %f",book_price); book_price += 12.50; printf("\n 书的新价格 =%f\n",book_price); }
&& || !
逻辑运算符之注意
条件表达式将从左到右一个一个执行并进行判断,一旦 给定的条件足以判断真假时,之后的条件就会被无视, 换句话说,不执行
&&当两个运算量都是真时,其结果为真
因此,当左边已是0,右边的表达式不再求解。
|| 当两个运算量有一个为真时,其结果为真。 因此,当左边已是1,右边的表达式不再求解
逻辑运算符例
#include<stdio.h> void main() {
int x=10,b=20; printf("!x+b=%d\n",!a+b);//0 printf("!(X+b)>20=%d\n",!(a+b)>20);//0 printf("3&&0||-2=%d\n",3&&0||-2);//1
算术运算符之示例
#include <stdio.h> int main() { int a = 5, b = 3, c = 25, d = 12; float qu; /* 使用算术运算符 */ qu = a / b; // 除法 re = a % b; // 求模 printf ("商为 %f\n",qu); printf ("余数为 %d\n",re);
关系运算符
关系运算符
关系运算符用于测试两个操作数或两个表达式之间的关 系,其中操作数可以是变量、常量或表达式。
操作数
关系运算符
操作数
关系表达式的计算结果:逻辑值(真或假) 在C语言中,“0”表示“假”,“非0”表示“真”
关系运算符
num1=10; num2=5;num3=20;num4=10; (num1 + num2)
4
4
注意:在32位计算机中,int类型的变量占4字节的内存大 小,和long类型的大小一样,所以现在基本上可以直接使 用int类型,而不需要使用long类型。
int short int long float double
4 2 4 4 8
逗号运算符
逗号运算符一般形式
表达式1, 表达式2
其计算规则
比赋值运算符还低,结合性是“自左向右” 先计算表达式1,再计算表达式2,最后值为表达式2的值
相关文档
最新文档