作业━━第1章━━运算符与表达式

合集下载

C语言基本运算符与表达式

C语言基本运算符与表达式

短路求值
在逻辑与和逻辑或运算中,如果 根据前面的操作数已经可以确定 整个逻辑表达式的结果,则后面 的操作数将不会被求值,这种特
性称为短路求值。
逻辑运算注意事项
逻辑运算符的优先级
在使用逻辑运算符时,需要注意它们 的优先级。为了避免出错,可以使用 括号来明确表达式的运算顺序。
逻辑运算符的短路特 性
在编写程序时,可以利用逻辑运算符 的短路特性来提高程序的效率。但是 ,也需要注意这种特性可能会导致一 些潜在的问题,比如在逻辑或运算中 ,如果第一个操作数为真,则整个表 达式的结果为真,此时第二个操作数 将不会被求值,这可能会导致一些错 误没有被发现。
逻辑运算优先级
在复杂的表达式中,需要注意逻辑 运算符的优先级问题,必要时可以 使用括号来改变运算顺序。
05
逻辑运算符与表达式
逻辑运算符及其功能
01
02
03
逻辑非(!)
对操作数的逻辑值取反。 如果操作数为真,则结果 为假;如果操作数为假, 则结果为真。
逻辑与(&&)
当且仅当两个操作数都为 真时,结果才为真。
赋值运算符
用于将右侧的值赋给左侧的变量,如等 于号(=)及其扩展赋值运算符(+= 、-=、*=、/=、%=等)。
条件运算符
也称为三目运算符,用于根据条件选择 值,其格式为“条件 ? 值1 : 值2”。
逗号运算符
用于将多个表达式组合在一起,从左到 右依次执行,并返回最右侧表达式的值 。
运算符优先级和结合性
小于(<)
判断左操作数是否小于右操作数,如果是,则结果为真 (1),否则为假(0)。
大于等于(>=)
判断左操作数是否大于或等于右操作数,如果是,则结 果为真(1),否则为假(0)。

第1章-语法基础-第3讲-运算符及表达式

第1章-语法基础-第3讲-运算符及表达式

方法c:h直ar接ch将=有2符; 号短长度的数据类型的数据作为长长度的数据类 型符数号据位si的)nht低向obr位长t; i部长nt分度a,的=然数-2//后据;假将类设低型为位数2个部据字分的节的高最位高部位分(扩即展有。符号短长度数据的
符号位向高位
部分扩展
unsigned inztxu…;…//…假x设为4个有字算符:+ - * / % ++ -关系运算符:< <= == > >= != 逻辑运算符:! && || 位运算符 :<< >> ~ | ^ & 赋值运算符:= C 条件运算符:?: 运 逗号运算符:, 算 指针运算符:* & 符 求字节数:sizeof 强制类型转换:类型 分量运算符:. -> 下标运算符:[] 其它 :( ) -
第三讲 运算符及表达式
运算符 代表对数据的加工处理方法,用于执行对目标数据 (操作数)的运算
变量用来存放数据;运算符用来处理数据
表达式 用运算符将操作数据对象(操作数,包括变量和常 量)连接起来的,符合C语法规则的式子
a+b/2.0-c
2
运算符的分类:
单目运算符:只带一个操作数的运算符。如:++、--运算符。 双目运算符:带两个操作数的运算符。如:+、-运算符。 三目运算符:带三个操作数的运算符。如?:运算符。
无un符si号gn短e长d l度on的g数u“据; =类”左型//边占→的用无数4符个据号字类或节型有。符然号后长再长赋度值的给数等据类型
方法:直接将无符号短号长左度边的的数变据量类。型的数据作为长长度的数据类
型数据b的=低c位h;部分,长长度的b的数据值类为型0数x0据0f的c 高位部分补零。

C语言运算符与表达式

C语言运算符与表达式

2021/2/15
7
如假设变量a的初值为4,设 c=(++a)*6;
a先加1得5参与运算(即5*6)得结果30。 若c=(a++)*6;
a先参与运算(即4*6)得结果是24。 在赋值表达式运算结束后a加1,因此a值最终也为5

关系运算符用来比较两个表达式值的大小,所
&(位与)、|(位或)、^(位异或) <<(左移)、>>(右移) 1个单目运算符: ~(取反)
整型常量或整型变量通过位运算符组成位运算 表达式。
例如int a=12,b=10则位运算如下: a 0000000000001100 (12) b 0000000000001010 (10)
a&b 0000000000001000 (8) a|b 0000000000001110 (14) a^b 0000000000000110 (6) a<<2 0000000000110000 (48) a>>2 0000000000000011 (3) ~b 1111111111110101 (-11) 当b是unsigned int类型时~b值为(65525)。
2021/2/15
陈孝则
1
• 按运算符所需操作数的多少可分:
• (1) 单目运算符—只需一个操作数。 • (2) 双目运算符—要求有两个操作数。 • (3) 三目运算符—要求有三个操作数。

• C语言中表达式可以是
• 1.一个常量 • 2.一个变量 • 3.由运算符连起来的常量变量
• 表达式可以含有运算符也可以不含有,根据使用运算符的 不同,表达式可分算术表达式、关系表达式、逻辑表达式、 赋值表达式、条件表达式和逗号表达式等。

运算符、表达式和语句

运算符、表达式和语句

运算符、表达式和语句编辑人:沈哲培一、算术运算符:①:+ 加号运算符如1+2----------------------------------------------------------------------------②:- 减号运算符如9-8-----------------------------------------------------------------------------③:* 乘法运算符-----------------------------------------------------------------------------C语言中乘号是用“*”,而不是数学中的“X”,如2*6。

“*”是不能省略的④:/ 除法运算符------------------------------------------------------------------------------“/”运算符是可以实现整数和实数的除法运算,当其左右两边的操作数都是整数时,即整数除整数,结果也是整数,如果符号一侧或两侧均为实数,则结果也为实数。

如1/2=0 9/4=2 1.0/2=0.5 1/2.0=0.5 1.0/2.0=0.5⑤:% 求余运算符如5%5=0 -7%-3=-1 7%-5=2------------------------------------------------------------------------------二、赋值运算符与表达式:1.赋值表达式的一般形式:赋值运算符“=”变量=表达式运算符Sum = num1 + num2变量操作数表达式2.复合赋值运算符a+=5 相当于a=a+5a-=5 相当于a=a-5b*=c-4 相当于b=b*(c-4)b/=c-4 相当于b=b/(c-4)f%=3 相当于f=f%3三、自增自减运算符:①:++i与--i 是指在使用i之前,先把i的值加1或减1②:i++与i—是指在使用i之后,再把i的值加1或减1注意:自增自减运算符的表达式一般形式为j=++i或j=--i,i只能是变量,而不能用于常量或表达式。

运算符和表达式

运算符和表达式
static void prt(String s){
System.out.println(s);
}
static void pInt(String s, int i){
prt(s + " = " + i);
}
// shorthand to print a string and a float:
static void pFrt(String s, float f){
(7)算术运算符的操作数必须是数字类型的,不能在布尔型上使用算数运算符,但可以在char类型上使用,是因为Java中的char类型本质上是int型的一个子集;
(8)如果一个表达式中同时包含了几个加法和减法运算,那么操作运算符按照从左到右的顺序求值;
2.3.3关系运算符
关系运算符用来比较两个数据,确定一个操作数与另一个操作数之间的关系,即进行关系运算,关系运算符如表2.9所示。返回布尔类型的值为true或false。若关系是真实的,关系表达式会生成true(真);若关系不真实,则生成false(假)。
1.一元算术运算符
一元算术运算符涉及的操作数只有一个,一个算术表达式是由一个操作数和一个一元算术运算符构成的。一元算术运算符共有四种,如表2.7所示。
表2.7 一元算术运算符
运算符
名称
表达式
功能
+
一元加
+opt1
取正值
-
一元减
-opt1
取负值
++
增量
++opt1
加1
--
减量
--opt1
减1
一元加和一元减运算符仅仅表示某个操作数的符号,其操作结果为该操作数的正值或负值。增量运算符将操作数加1,如对浮点数进行增量操作,则结果为加1.0;减量运算符将操作数减1,如对浮点数进行减量操作,则结果为减1.0。

运算符和表达式

运算符和表达式

运算符和表达式按运算符的优先级⾼低次序执⾏;若优先级相同,则按照结合性规则执⾏如item+2*num中,*运算符的优先级⽐+运算符⾼,因此,先进⾏”2*num"运算,再与“item"运算*p--中,*和--都是右结合,其运算顺序为p先与--结合,执⾏”p--"运算,所得结果再与*进⾏运算,相当于"*(p--)"算术运算符分为基本算术运算符和⾃增/⾃减算术运算符1.基本算术运算符在C语⾔中,基本运算符有5个,+——加法运算符-—— 减法运算符*——乘法运算符/——除法运算符%——求余运算符注意:对除法运算符,如果两个整数相除,结果仍为整数(商向下取整),如:20/6得6;如果除数或被除数中有⼀个为负值,则舍⼊的⽅向是不固定的。

如果参加+、-、*、/运算的两个数中⾄少有⼀个数为浮点数,则运算结果是double型数据,⾃动转换后所有数都按double型进⾏运算。

求余运算符%,两个操作对象都必须是整数。

结果的符号与运算符%左边的操作数的符号相同。

如:20%6得2,-45%8得-5,45%-8得5.减法运算符还可以进⾏取负运算,此时该运算符为单⽬运算符,只需⼀个操作数。

如num=-num,对num变量值取负。

基本运算符的优先级次序算术运算符的结合⽅向为“⾃左⾄右”。

如在表达式“m-n+a"中,先执⾏”m-n",再与a相加2.⾃增/⾃减算术运算符++——⾃增运算符-- ——⾃减运算符作⽤是使整型变量的值加1或减1。

这两个运算符只能⽤于变量,⽽不能⽤于常量或表达式。

⾃增/⾃减运算符都是单⽬运算符表达式++i将i的值加1,使⽤i的值表达式i++先使⽤i的值,再将i的值加1如:i=51,求j(1)j=++i——i的值先加1变为52,再赋值于j,j=52(2) j=i++——先将i的值赋值给j,j=51,再将i加1,i=52++和--是单⽬运算符,其优先级⾼于基本算术运算符,于取负运算符-的优先级相同。

运算符与表达式优秀课件

运算符与表达式优秀课件

(double )a
将a转换成double类型
(int)(x+y)
将x+y的值转换成整型
(float)(5%3) 将5%3的值转换成float型
【注意】要转换的表达式应该用括号括起来,如 果写成
(int)x+y,则是将x装换成整型,然后与y相加。
3.3 自增运算符与表达式
自增运算符:++
3. 小括号的用途 C语言中小括号也作为一个特殊的运算符来
处理,并且它的优先级别是最高的,所以 在一些比较长或复杂的表达式中,可以恰 当的使用小括号规定运算的先后次序。
【示例】设a=8,b=2,c=16,d=8
(a+b)*(c-d)的值为80 a+b*c-d的值为32 a/(c/d)的值为4 a/c/d的值为0
3.2 算术运算符与表达式
3.2.1 算术运算符
3.2.2 算术表达式
用算术运算符和括号将运算对象(即操作 数)连接起来的、符合C语言语法规则的表 达式,称为算术表达式。
1. 整数算术运算
参加算术运算的两个操作数都是整数,那么 这个表达式就称为整数表达式,该操作称 为整数算术运算,其结果总是一个整数值。
3.2.4 表达式中的类型转换 如果一个运算符两侧的数据类型不同 ,可
以进行
隐式类型转换(系统自动进行) 显式类型转换(强制类型转换)
隐式类型转换
int i , x ; float f; double d; long int l ; 进行x=l/i+i*f-d的运算
显式类型转换(强制类型转换) 强制类型转换运算符的一般形式: (类型名)(表达式)
运算符与表达式优秀 课件
3.1 C语言运算符概述

运算符与表达式

运算符与表达式
?"程序 "-"设计"
&&程序 设计 &&程序设计
第2章
1.3#43;”和“-”. ❖ 它们的运算优先级相同。
运算符 作用
表2.3 日期时间运算符 举例
+
日期/日期时间型数据与数值型 数据:天数/秒数相加
{^2007-10-15}+10 {^2007-10-15,11:04:30a}+20
(2)==和$运算符只适用于字符型数据。 (3)对日期/日期时间型数据的比较,规则是越晚的日期/日期时间越大。 (4)对逻辑型数据的比较,规则是.T.大于.F. 。 (5)对字符型数据的比较,是自左向右逐个对比相应位置的字符,一旦发现不同的字符,就
由这两个字符的大小决定两个字符型数据的大小。字符顺序的大小可以有三种次序: Machine(机器)次序:西文字符(由小到大):空格、大写字母、小写字母;汉字按拼音顺序
第2章
1.2 字符串运算符及表达式
❖ 字符表达式是由字符串运算符将字符型数据 连接起来形成的表达式,其运算结果为字符 型数据。
❖ 字符串运算符的优先级相同。
表2.2 字符串运算符
运算符 +
-
意义
原样连接两个字符串
连接两个字符串,并将 前一个字符串的空格移 到结果字符串的尾部
举例 ?"程序 "+"设计"
第2章
说明:
(6)赋值与相等比较的区别。 (7)“=”运算符在进行字符串比较运算时,其
结果受命令SET EXACT ON|OFF(系统的 默认值为OFF)影响. SET EXACT ON|OFF命令对“==”运算没 有影响。

运算符与表达式

运算符与表达式
知识回顾
基本类型



构造类型

指针类型 空类型void
整型
短整型 short 基本整型 int 长整型 long
浮点型
单精度 float 双精度 double
字符型 char
枚举类型 enum
数组 以[ ]标志
结构体 struct
共同体 union
文件类型 FILE
上章
常量
程序运行中值不能改变的量
③②①
3、赋值表达式
<变量名>=<表达式>
用赋值运算符将变量和表 说明:
达式连接起来的式子。如: 1、赋值表达式的值就是赋给变量的值。
a=b=c=3+5
a、b、c与表达 式的值均为8
如:a=3*5赋值表达式与a的值均为15 2、可以将赋值表达式的值再赋给其它
③②①
a=5+(c=6)
③② ①
c值为6、a与表 达式的值为11
! 高于算术运算。如: (a>b)&&(x>y) 即 a>b && x>y (a= =b)||(x= =y) 即 a= =b || x= =y (!a)||(a>b) 即 !a || a>b
写出描述点A(x,y)落在图中阴影部分(不压线)的C表达式。 -2<x && x<2 && -2<y && y<2 && x*x+y*y>1
long [int] 4 - 231~(231-1)
数 据 有
型 unsigned
short [int] 2

运算符与表达式

运算符与表达式

运算符与表达式运算符的分类根据不同的分类标准,我们可以将运算符分为两类。

第⼀类是按照操作对象的多少进⾏划分的。

我们有下⾯的表格:⼀元运算符⼆元运算符三元运算符+-正负号+-加,减*/%乘,除,取余?:条件运算++⾃加<<>>左移,右移--⾃减&&||!与或⾮运算,^异或运算!⾮<>⼤于,⼩于~按位取反>=<=!=⼤于/⼩于等于,不等于*指针运算符=,&,|赋值按位,与,或第⼆类是按照功能划分。

我们可以分为以下内容算术运算符赋值运算符逻辑运算符------+-加减=赋值&&与*/乘除+=/-=加等减等||或%取余*=//=乘等除等!⾮++⾃增%=取余等==等于--⾃减&=,|=,^=,>>=,<<=位运算等<<左移表达式的分类 根据运算符,我们可以把表达式分为以下⼏类: 1、算术表达式 算术表达式由算术运算符和控制运算优先级的括号组成,是进⾏算术运算的基本表达形式。

(l+o+v+e)*521/1314.0;3.1415926*r; 2、赋值运算符 赋值运算符由赋值运算符,算术运算符和操作对象复合⽽成,最后以'='连接.变量=表达式或者数值//在定义时或者定义完成后初始化都可以eg:love=5211314;变量⼀=变量⼆=变量三=变量N=表达式或者值//只能在定义后初始化使⽤eg:l=o=v=e=1314; 3、逻辑表达式 ⼀般由逻辑运算符和操作对象组合⽽成,属于C语⾔中进⾏逻辑判断的主要表达形式,也是条件控制语句中的常⽤的表达式。

a&&bc||d&&m!x 4、关系表达式 关系表达式⼀般由关系运算符和操作对象组成,关系运算符也常⽤与条件控制语句复合使⽤。

eg:love>1314m==n//注意:等于判断有两个等号 5、逗号表达式 逗号表达式有其他运算符和逗号组成,常⽤于变量定义和for循环中.int a,b,c;c=(a=3,b=5,a=a+b);值得注意的是,逗号表达式的值总是等于最后⼀个表达式的值。

C语言运算符和表达式ppt课件

C语言运算符和表达式ppt课件
依次分解出个位数字、十位数字、百位数字和千 位数字,并分别放到字符变量c1、c2、c3和c4 中。
怎么分解?
利用除法、取模等运算。
顺序输出变量c1、c2、c3和c4中的字符。
3
引例
引例
◦ 源程序 #include <stdio.h>(cw04-01.c)
void main() {
28
小结
运算符的相关概念 运算符的分类
◦ 按操作数个数分 ◦ 按操作类型分
各类运算符及表达式知识 优先级和结合性总结
29
23
赋值运算
运算符和表达式
赋值运算符
◦ 简单赋值运算符:= ◦ 复合赋值运算符:+=,-=,*=,/=,%= ◦ 优先级:14 ◦ 结合性:从右往左
赋值表达式
<变量> <赋值运算符> <表达式>
d = 23 ◦ 作用:将表达式的值赋给变量。 ◦ 赋值表达式的值就是被赋值的变量的值。
24
简单赋值运算
a>b m+n<=20 c!=‘y’ (x>z)==(y>z)
14
关系表达式
关系表达式的值是一个逻辑值:“真” 或“假”
◦ C语言没有逻辑类型,因此
用整数 1 表示“真”
用整数 0 表示“假”
◦ 即关系表达式的值是整数 1 或 0 。
a>b ◦ 举例
0
a+b<=c
1
(a>c)==(b若>ca)=1,b=21,c=3
10
自增和自减运算
举例(cw0404.c)
#include <stdio.h>

运算符与表达式

运算符与表达式
13
1.4 赋值运算符和赋值表达式
例2-4 用程序验证不同类型变量的赋值的类型转换。 void main() { int a,b,c=322;
float x,y=3.14; char ch1='a',ch2; a=y; x=c; b=ch1; ch2=c; printf("%d,%f,%d,%c",a,x,b,ch2); } 程序运行结果是: a=3, x=322.000000, b=97, ch2=8
00001001 (9的二进制补码) & 00000101 (5的二进制补码)
00000001 (1的二进制补码)
主要用途:
1)清零。方法是与一个各位都为零的数值按位与,结果为零。 2)取一个数x中某些指定位。方法是找一个数,此数的各位是这样取 值的:对应x数要取各位,该数对应位为1,其余位为零。
17
(1)运算符的功能;
(2)与运算量的关系
a.求运算量的个数
b.求运算量的类型
(3)运算符的优先级别
(4)运算符的结合性(也称结合方向)
(5)运算结果的类型
单目运算 ++,--,&, 双目运算 +,-,*,% 三目运算 ? :
3
运算符与表达式
1.2 优先级与结合性
C语言的运算符不仅具有不同的优先级(共分为15级。1 级最高,15级最低 ), 而且还有一个特点,就是它的结合性。
结果是:?
有关逗号表达式的说明:
1)逗号运算符优先级最低。
2)程序中使用逗号表达式,通常是要分别求逗号表达式内 各表达式的值,并不一定要求整个逗号表达式的值。
3)并不是在所有出现逗号的地方都组成逗号表达式,如在 变量声明中或函数参数表中的逗号只是用作各变量之间的间隔 符。

运算符与表达式 ppt课件

运算符与表达式 ppt课件


应写成0.5*a*b*sin(alph)。
③ |x-y|应写成fabs(x-y)。
④ y+2X 应写成y+pow(2, x)。
#include “math.h”
运算符与表达式
三、表达式在求值时,遵循以下规则
(1)优先级:不同优先级的运算符出现在同一表达式时,按运算 符的优先级的高低次序执行。
例如: d=a+b*c;
C语言中的数据有常量和变量之分,它们分别属于以上这些类型。 如: 字符型常量 : ‘a’ ‘8’ ‘\n’
字符串型常量:“beijing” “a” 整型常量:2 6 12 实型常量:3.2 1.0 5.2e4
C语言的变量具有三个要素:变量名、数据类型和变量的值。 变量名是变量的名字,用标识符来标识,变量是用来存储数据的,存 储的数据就是变量的值,数据类型决定了变量所占字节的多少。
运算符与表达式
操作数
1 2 2 2 2 2 2 2 2 2 2 3 2 2
结合性 左右 右左 左右 左右 左右 左右 左右 左右 左右 左右 左右 左右 右左 右左 左右
表达式
一、C表达式:由C运算符和运算对象构成的式子。 运算对象可以是常量、变量、函数或表达式。
二、 表达式的书写原则
(1)C语言的表达式只能采用线性的形式书写。 例如:
运算符与表达式
第二章 数据类型及输入输出
主讲教师:刘永花 Yonghua-
运算符与表达式
本章主要内容
标识符 常量和变量的概念 各种数据类型的常量及变量 变量赋初值 几种基本运算符及其表达式 不同类型数据间的混合运算
运算符与表达式
运算符
一、运算符:能够完成某种操作(运算)的符号。

c语言运算符和表达式ppt课件

c语言运算符和表达式ppt课件
3,再赋给a。
例如: a+=3 等价于 a=a+3 x*=y+8 等价于 x=x*(y+8) x%=3 等价于 x=x%3
最新课件
26
是个整体
复合赋值运算表达式: 变量 双目运算符=表达式
注意:如果=右边是包含若干项的表达式,则相
当于它有括号。 步骤:
如: ① x %= y+3
1)左边变量的当前值与右边整个表达 式进行相应运算。
❖如果成立,则结果为逻辑值“真”,用整 数 “1”来表示;如:5>=5
❖如果不成立,则结果为逻辑值假”,用整 数“0”来表示。如:5<5
最新课件
29
§3.3 逻辑表达式
❖C语言提供的6种关系运算符:
运算符 名称
例子
>
大于
a>b
<
小于
a<b
==
等于
a==b
>=
大于等于 a>=b
<=
小于等于 a<=b
② 运算符操作的数据的个数。不同的运算符操 作的数据的个数不一定相同;根据运算符连 接运算对象的个数,一般分为单目运算符 (如++、--)、双目运算符(如* / %)和 三目运算符(如?:)。
最新课件
6
③ 运算符在整个运算符系统中的优先级。优 先级是指在运算对象的左右都有运算符时 运算的先后次序。运算对象先做优先级高 的运算。如:*/比+-优先级高。
❖表达式使用时应注意表达式的值及类型。 a. 不同类型的运算符所表示的表达式类型也是 不同的。表达式一般有算术表达式、赋值表达 式、关系表达式、逻辑表达式、逗号表达式、 条件表达式等表达式。 b. 表达式虽然有各种类型,但它总是有确定的 值的,根据运算符的优先级和结合性进行计算。

常用运算符和表达式

常用运算符和表达式

常⽤运算符和表达式运算符在程序中应⽤⼴泛,尤其在计算功能中,常常需要⼤量的运算符。

运算符结合操作数,便形成了表达式,并返回运算结果。

⼀. 运算符1.算术运算符算术运算符⽤于对数值数据进⾏计算。

在C#语⾔中,根据两个操作数的类型特点,加法运算符具有多重作⽤。

*两个操作数均为数字,相加的结果为两个操作数之和。

*两个操作数均为字符串,把两个字符串连接在⼀起。

*两个操作数分别为数字和字符串,则先把数字转换成字符串,然后连接在⼀起。

*两个操作数分别为数字和字符,则先把字符转换成Unicode代码值,然后求和。

算数运算符中的求模运算(%)本质上也是⼀种除法运算,只不过它舍弃商,⽽把⼩于除数的未除尽部分(即余数)作为运算结果,有称为取与运算2.关系运算符关系运算符⼜称为⽐较运算符,⽤来⽐较两个操作数的⼤⼩,或者判断两个操作数是否相等,运算符的结果为true或false。

操作数只能是值类型的数据。

3.逻辑运算符逻辑运算符读操作数或表达式执⾏布尔逻辑运算,常见的逻辑运算符如下表所⽰:运算符! & | ^ && ||含义逻辑⾮逻辑与逻辑或逻辑异或条件与条件或实例!(8>2) 8&2 8|2 8^2 (8>2)&&(3>4) (8>2)||(3>4)结果 False 0 10 10 False True逻辑⾮(!)运算结果是操作数原有逻辑的反值,逻辑与(&),逻辑或(|),逻辑异或(^)三个运算符都是⽐较两个整数的相应位。

只有当两个整数的对应位都是1时,逻辑与(&)运算符才返回结果1,否则返回结果0;当两个结果整数的对应位都是0时,逻辑或(|)运算符才返回结果0,否则返回结果1;当两个整数的对应位⼀个是1,⽽另⼀个是0时,逻辑异或(^)运算符才返回结果1,否则返回结果0;条件与(&&)与条件或(||)运算符⽤于计算两个条件表达式的值,当两个条件表达式的结果都是真时,条件与(&&)运算符才返回结果真,否则返回结果假;当两个条件表达式的结果都是假时,条件或(||)运算符才返回结果假,否则返回结果真。

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

运算符与表达式【学习要点】1.掌握运算符的目数、优先级、结合性等概念。

2.掌握算术运算及其应用。

3.掌握自增、自减运算及其应用。

4.掌握关系、逻辑运算及其应用。

5.掌握位运算及其应用。

6.掌握赋值、复合赋值运算及其应用,掌握赋值兼容时的类型转换。

7.掌握表达式求值时类型的自动转换和强制转换。

8.掌握表达式的组成,掌握逻辑表达式的优化及其副作用。

9.掌握逗号运算符、sizeof运算符、条件运算符及其应用。

------------------------------------------------------------------------------------------------------------------------------------------------- 【例题分析】1.若int x,y,z;下列表达式中运算结果与x=y=24相同的是______。

A.x=(y=z=8,4*6)B.x=y=(z=8,4*6)C.x=y=z=8,4*6D.x=(y=z=8),4*6【答案】B【解析】①C++语言的赋值运算有别于其它高级语言,逗号运算又是其它高级语言所没有的。

②在赋值表达式中,可以有多个赋值运算符,计算顺序自右向左,运算优先级低,仅高于逗号运算符。

③逗号既是分隔符,又是运算符,可以用一个逗号运算符或多个逗号运算符将多个表达式连接成逗号表达式,计算顺序自左向右,并将最后一个表达式的值作为整个逗号表达式的值,逗号运算优先级最低。

2.若int i=6,k=0;下列表达式中运算结果使k=7的是______。

A.k=i+++kB.k=k+i++C.k=++i+kD.k=k+++i【答案】C【解析】①自增++、自减--运算符是C++语言特有的。

②运算符++、--出现在变量的前面或后面,其运算结果是不同的。

若++、--出现在变量前,则先将变量的值加1(或减1)后,再将变量的值参加运算;反之则先将变量的值参加运算,再将变量的值加1(或减1)。

③自增、自减运算符的优先级高于算术运算符,因此对于k=i+++k:解释为i++,再加k;对于k=k+++i:解释为k++,再加i。

3.表达式‘A’+’B’+20的值是______。

【答案】151【解析】不同类型的数据混合运算时,系统可以自动进行类型转换,将表示范围小的数据类型转换成另一操作数的相同类型后再参与运算,则转换为65+66+20=151。

4.若int e=8;double f=6.4,g=8.9;则f+int(e/3*int(f+g)/2)%4的值是______。

【答案】9.4【解析】①不同类型的数据混合运算时,可以使用强制类型转换符,将一种数据类型强制转换成另一种数据类型后再参与运算。

②表达式中:e/3的值是整型数2,int(f+g)的值是整型数15,int(e/3*int(f+g)/2)的值是整型数15,15%4的值是整型数3,最后加上实型数f,得到最终值是实型数9.4。

5.若int i=65535 ,j=0x000a ,k ;k=i&j ;则i、j、k的值是______。

【答案】65535 、10 、10【解析】将十进制数65535和16进制数000aH在计算机内的二进制数,进行按位与运算,结果为k=10。

6.编写程序:求出三个实数中的最大数。

【答案】编写程序如下:#include<iostream.h>void main(){ float a , b , c ;cout << “请输入三个实数:” ;cin >> a >> b >> c ;cout << “最大数:” ;cout << ( a >= ( b >= c ? b : c ) ? a : ( b >= c ? b : c ) ) << endl ; }------------------------------------------------------------------------------------------------------------------------------------------------- 【思考题】㈠选择题1.若int a=2;cout<<( a=3*5,a*4,a+5 );则cout的输出值、a的值分别是______。

A.7、7B.15、15C.20、15D.7、65【答案】???2.若int a,c=5;a=2+(c+=c++,c+8,++c);则a、c的值分别是______。

A.13、11B.14、12C.15、13D.16、14【答案】???3.从语法的角度来看,语句if(a<=b<=c)x++; 是______。

A.正确的B.语法正确,但在编译时会有警告信息C.语法上是错误的D.编译系统不会进行相关检查【答案】???4.若int x;则表达式( (x=4*5,x*5), x+25 ) 的值是______。

A.20B.45C.100D.125【答案】???5.若int x=1,y=1,z=1,k;k=x++||++y&&++z;则y的值是______。

A.1B.2C.3D.4【答案】???6.若int x=5;则表达式( (x==4*5,x*5), x+25 ) 的值是______。

A.20B.45C.5D.30【答案】???7.若int a=1,b=2;a++&&++b;则a、b的值分别是______。

A.1、2B.2、2C.1、3D.2、3【答案】???8.数学式:a≠b且c≤d,在C++中的表达式为______。

A.a≠b&&c<=dB.a!=b&c<=dC.a=!b&&c<=dD.a!=b&&c<=d【答案】???9.数学式:a≤b≤c,在C++中的表达式为______。

A.a<=b<=cB.! (a>b>c)C.a<=b||b<=cD.a<=b&&b<=c【答案】???10.若int x=100,y=1,z;z = y>0 ? ++x : --x ;则x、z的值是______。

A.100、100B.100、101C.101、100D.101、101【答案】???11.若i nt x=5,y=7,z=8;z = x++ || y++ || ++z;则x、y、z 的值是______。

A.6、7、8B.6、8、9C.6、7、1D.6、8、1【答案】???12.若int a=15,b=17,c;c = a || ( b+=a );则a、b、c 的值是______。

A.15、17、0B.15、32、32C.15、32、1D.15、17、1【答案】???13.若int a=5,b=5,c=5;b= --a>b && ++c>b;则a、b、c的值是______。

A.4、5、5B.4、5、6C.4、0、6D.4、0、5【答案】???14.若int a=3,b=5,c=7,d=9;d= b>a || (c=a+b);则c、d的值是______。

A.7、1B.8、1C.7、0D.8、0【答案】???15.若int a=1,b;float c=3.5;c = (a+=4.8)+(b=5.9);则a、b、c的值是______。

A.1、5、10.7B.5、5、9C.5、5、10D.非法运算【答案】???16.若int a=3,b=5,c=7;c = a++>b*c-31>=a%2;则a、b、c的值是______。

A.3、5、1B.4、5、1C.4、5、0D.3、5、0【答案】???17.若int a=3;a += a -= a * a;则a 的值是______。

A.3B.6C.-3D.-12【答案】???18.若float a;int b,c=2;a = (b=9)/(c==2);则a、b、c 的值是______。

A.9、9、2B.9、9、1C.4、9、2D.4.5、9、2【答案】???------------------------------------------------------------------------------------------------------------------------------------------------- ㈡填空题1.若int x;float y;y = x = 3 / 5;则x、y 的值分别是______。

【答案】???2.若x为整型,a、b为实型,则(6x)÷(7ab)表示成______。

【答案】???3.若int a=10,b=3,c=5;c = !c + -a++ % ~b;则a、b、c 的值是______。

【答案】???4.若int a=1,b=2,c=3;b *= c+ = a <= b <= c;则a、b、c 的值是______。

【答案】???5.若int a=3,b=6,c=2;c == ! a + ~b * a - ! b;则a、b、c 的值是______。

【答案】???6.若int a=5,b=6,c=1;c=(a=c>b)&&(b=a>8);则a、b、c 的值是______。

【答案】???7.若int w=1,x=2,y=3,z=4;则表达式( w>x ? w : z > y ? z : x )的值是______。

【答案】???8.若char a=251;short b;b = a ;则a、b 的值是______。

【答案】???9.若unsigned char a=251;short b;b = a ;则a、b 的值是______。

【答案】???10.若int a=13,b=3;float c;c = a / b;则a、b、c 的值是______。

【答案】???11.若int a=13,b=3;float c;c = a / float(b);则a、b、c 的值是______。

【答案】???12.若int a=13,b=3;float c;c = (float)a / b;则a、b、c 的值是______。

【答案】???13.若int a=13,b=3;float c;c = float(a / b);则a、b、c 的值是______。

【答案】???14.若int a=2,b=3,c;cout << ( c=a+b,a++,a==b ) ;则输出值是______。

相关文档
最新文档