第3章 语句、表达式、运算符

合集下载

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。

第三章VB运算符和表达式

第三章VB运算符和表达式
规则1.VB代码中不区分字母的大小写
(1) 关键字 首字母自动改为大写, 其余字母改为小写 (2) 自定义的变量名、过程名 系统以第一次定义的为准
规则2. 语句书写自由
语句是构成VB程序的最基本成分,程序 是按行书写的。
(1)一行写多个语句时,语句间用冒号(:) 分隔。 例:n=100:m=1000
(三)变量声明
使用变量前,一般必须先声明变量名及其 数据类型(变量的两个特性),然后才能在程序 中使用
1.用Dim语句声明变量 语句格式:
Dim 变量名 [As 类型] [,变量名 [As 类型]] …
• 说明:Dim语句定义的变量其作用范围由 Dim语 句所在的位置决定。 Dim 语句出现在窗体代码 的声明部分时,则窗体以及窗体中各控件的事 件过程都可以使用这些变量。这种变量称为窗 体级变量; 在过程内部用 Dim 语句声明的
举例
(2)一个语句可写在几行上 (3)一行允许最多达255个字符
用续行符(空格加下划线“ _”)连接。
规则3. 代码中必要时添加注释
说明: (在VB程序中呈绿色)
1. 注释有利于程序的可读性。
2. 注释部分在程序运行时不执行
3. 续行符后不能加注释
4. 三种设置方式如下 1)以Rem开头 2)单引号“ ‘ ”引导注释见 3)使用注释块
它是内存单元位置的命名,一旦定 义了某个变量,该变量就表示某个内存 单元的位置,用户可以使用变量名访问 该内存单元中的数据。 举例如下
举例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 ); }

Java实用PPT课件第3章运算符、表达式与语句

Java实用PPT课件第3章运算符、表达式与语句
12
(4)“按位异或”运算符
"^"是双目运算符。对两个整型数据a、b按位进行运算, 运算结果是一个整型数据c。运算法则是:如果a、b两个数据 对应位相同,则c的该位是0,否则是1。如果b的精度高于a, 那么结果c的精度和b相同。
位运算符在操作逻辑型数据时,与逻辑运算符&&、||、! 不同的是位运算要计算完a和b之后再给出运算的结果。
(2)“按位或”运算符 "|"是双目运算符。对两个整型数据a、b按位进行运算,运 算结果是一个整型数据c。运算法则是:如果a、b两个数据对应 位都是0,则c的该位是0,否则是1。如果b的精度高于a,那么 结果c的精度和b相同。 (3)“按位非”运算符 "~"是单目运算符。对一个整型数据a按位进行运算,运算结 果是一个整型数据c。运算法则是:如果a对应位是0,则c的该 位是1,否则是0。
a>>n运算的结果是通过将a的所有位都右移n位,每右移一 个位,右边的低阶位被移出丢弃,并用0或1填充左边的高位, a是正数用0填充,负数时用1填充。
因此,a每右移一次,如果该数的每一计算有效位都没有 从低位移出时,就相当于将a除以2并舍弃了余数。整数不断右 移位的最后结果一定是0,而负数不断右移位的最后结果是-1。
符的级别是7级。 (3)关系表达式
结果为数值型的变量或表达式可以通过关系运算符形成关系表达式。 例如,24>18,(x+y+z)>30+x等。
5
3.3逻辑运算符与逻辑表达式
逻辑运算用来实现boolean型数据的逻辑“与”、“或”和“非”运算, 运算结果是boolean型数据。 (1)逻辑“与”和逻辑“或”
在下面的例子3-2中,利用“异或”运算的性质,对几个 字符进行加密并输出密文,然后再解密。运行结果见图3-2。

java3 表达式及语句

java3 表达式及语句

运算符与表达式
5.移位操作符 与表达式 移
<<(左移) >>(右移 >>>(无符号右移 右移) 无符号右移) <<(左移) >>(右移) >>>(无符号右移) 左移 左移位:空位补0 左移位:空位补0 右移位:正数补 正数补0,负数复制高位 右移位 正数补 负数复制高位 无符号右移:空位补0 无符号右移:空位补 例如: 例如:4<<3,-4<<3,4>>3,-4>>3, 4>>>3 公式:左移位 左移位( 公式 左移位(y=a<<x;y=a*2x) 公式:右移位(y=a(a为正数)>>x;y=a/2x) 公式 右移位(y=a(a为正数)>>x;y=a/2 右移位 为正数)>> 公式:右移位 y=a(a为负数)>>x;y= 右移位( 为负数)>>x;y=公式 右移位(y=a(a为负数)>>x;y=-a/2x+1) 公式:无符号右移 y=a(a为正数)>>>x;y=a/2 无符号右移( 为正数)>>> 公式 无符号右移(y=a(a为正数)>>>x;y=a/2x)
语句
2)循环语句 )
for循环语句 循环语句
for (表达式1;表达式2;表达式3) { 若干语句 }
a. b. c. 表达式1负责完成变量的初始化 表达式 负责完成变量的初始化 表达式式2是值为 表达式式 是值为boolean型的表达式, 型的表达式, 是值为 型的表达式 称为循环条件 表达式3用来修整变量, 表达式3用来修整变量,改变循环条件

第3章 表达式与运算符

第3章 表达式与运算符
其它运算符
– 对象属性存取运算符 ,用符号“.”表示。其作用是读取对象 的属性、或保存值到对象的属性、或调用对象的方法。 – 数组存取运算符 ,JavaScript提供“[]”运算符用于存取数组 元素,方括号中是要存取的元素的下标。这个运算符大大方 便了数组的编程 。 – delete运算符,它可以删除对象的一个属性或数组的一个元 素,JavaScript对象的属性可以动态添加。对于动态添加的 属性可以用delete运算符将其删除 。 – this运算符 ,“this”严格的说是一个关键字,也可以理解为 运算符。面向对象的编程中要引用当前对象,this运算符可以 返回当前对象的引用。this通常用在对象构造函数中,用来引 用函数对象本身。

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

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
字节数

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

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

三、变量
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语言教程第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.赋值运算符和赋值表达式

第3章练习 表达式和语句

第3章练习 表达式和语句

编程题:1.输入一名学生的成绩,判断该成绩的等级。

如>=60的,显示“合格”,<60的显示“不合格”。

程序:#include<iostream.h> //输入输出流对象的头文件void main(){ int score; //声明成绩变量,用来保存分数cout<<”输入成绩:”; //提示用户的信息cin>>score; //从键盘上输入分数传递给scoreif( score>=60) //判断该条件是否真或假cout<<”合格”<<endl; //当score>=60是真的时候,运行该语句elsecout<<”不合格”<<endl; //当score>=60是假的时候,运行该语句}分析:(1)首先该题目要求输入一个分数,则事先声明一个整型变量score。

(2)其次从键盘上输入该分数,应有输入语句cin,并由上面定义的变量来保存分数。

(3)然后根据分数来判断等级,有两种情况应该用if语句。

(4)输出的信息是根据不同条件显示字符串,用到cout输出流对象。

(5)用到标准输入输出流对象,所以在程序前加相应头文件。

2.编写一个能输出以下信息的程序。

How are you.Fine,thank you.程序:#include<iostream.h>V oid main(){ Cout<<”How are you.”<<endl; //输出字符串并换行。

Cout<<”Fine,thank you.”<<endl;}3.编写一个求两个数78、45之差的程序。

程序:#include <iostream.h>void main(){ int sum=0;sum=78+45; //求和cout<<"78+45= "<<sum<<endl;}4.编写一个求三个数14、25、16之和的程序。

3-第3章-表达式和语句clt

3-第3章-表达式和语句clt
int weight = 42896 ; 在16位机器中将不能得到值42896,而是-22640。因为 有符号整数的表示范围是-32768~32767。
3.3算术类型转换
C++遇到两种不同数据类型的数值进行计算时,会将两 个数作适当的类型转换,然后再进行运算。转换的方向见下 图:
类型转换分为:隐式转换和显示转换 (1)隐式转换 数据运算过程中自动进行的类型转换称为隐式类型转换 例如:
每一级中的操作符是同优先级的。
4.语句与块 C++中所有的操作运算都能通过表达式来实现。由表达 式组成的语句称为表达式语句,它由一个表达式后接一个分 毫“;”组成。 通过计算表达式即执行了表达式语句。 语句可以是空语句。空语句是只有一个分号而没有表达 式的语句,其形式为: ; 它不产生任何操作运算,只作为形式上的语句。
cout<<(unsigned long )234 * 456 / 6<<endl; cout<<unsigned long (234) * 456 / 6<<endl; //error
注意下面语句不能产生所期望的效果:
cout<<long(234*456)/6<<endl;
3.4增量和减量
增量和减量操作符表示为:++和--。 增量操作表示加1,减量操作表示减1。例如: a++ ; //相当于a = a + 1; ++a ; //相当于a = a + 1;
块(或称复合语句)是指括在一对花括号{}里的语句 序列。从语法上来说,块可以被认为是单个语句。例如:
if( x > 9 ) { cout<<“The number is perfect.\n”; cout<<“It is larger than 9\n”; } else

第3章-基本数据类型、运算符和表达式

第3章-基本数据类型、运算符和表达式
整型常量
问题:
0123 = (
)10
0x123 = (
)10
0Xff = (
)10
形式
表示方式
举例
十进制整数 由数字0~9和正负号表示 123,-456,0
八进制整数
由数字0开头,后跟数字0~7 表示
十六进制整数 由0x开头,后跟
0~9,a~f,A~F表示
0123,011 0x123,0Xff
整型常量的类型

(signed) long

unsigned int
无 unsigned short
unsigned long
实 有 float 型 有 double
字有
符 型

char unsigned char
说明:数据类型 所占字节数随机 器硬件不同而不 同,上表以IBM 所占位P数C机为例 数的表示范围
16
#define PRICE 30
main()
{
int num,total; num=10;
运行结果:total=300
total=num*PRICE;
printf("total=%d",total);
}
变量
其值可以改变的量称为变量 变量也可以为任意数据类型 变量定义的一般格式
数据类型 变量1[,变量2,…,变量n];
组讨成论::判断下列标识符号合法性
su•m只能S由um字母M、.D数.J字oh、n 下划d线ay组成D,ate且第3一day个s 字母必 须是字母或下划线
stu•d大en小t_n写am敏e感#33 lotus_1_2_3 char a>b ab•ov不e 能使$1用23关_键toD字ay
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

y
16.0
分析程序
int x = 20; x = x + 10; Console.WriteLine(x);
这样行不行??
在数学上,x=x+10 是一个不可能成立的式子 在C#中,x=x+10; 却是常见的赋值表达式
运行结果: 16.0
简单赋值表达式
赋值表达式并非数学上的 恒等式!!
试一试: 这段程序输出什么?
double x, y; x=4.0; y=x*x; x=5.0; Console.WriteLine(y);
16.0 25.0

×
简单赋值表达式
内存
程序运行分析:
x
4.0 5.0 16.0
double x, y; x=4.0; y=x*x; x=5.0; Console.WriteLine(y);
3.2.1 算术运算符
运算符 ++ -+ * / % + 含义 增量 减量 一元+ 一元乘法 除法 模数 加法 减法 说明 操作数加 1 操作数减 1 操作数的值 操作数的反数 操作数的积 第二个操作数除第一个操作数 第二个操作数除第一个操作数后的余 数 两个操作数之和 从第一个操作数中减去第二个操作数 优先级 1 1 2 2 3 3 3 4 4 实例 ++num, num++ --num,num-+num -num num*num*2 10 / num 10.0 / num 10 % num 8 % 2.2 10 + num 10 - num 结果 9 7 8 -8 128 1 1.25 2 1.4 18 2
• 【例3.4】赋值运算符=、+=、-=、*=、/=、%= 、&=、|=、^=、<<=、>>=等示例
简单赋值表达式
y=3.0*4.0;
一般格式: 变量 = 表达式; double x, y; x=4.0; y=x*x; Console.WriteLine(y);
计算出等号右边表达式的值,并 存放到左边的变量中
调用函数的时候,必须将参数使用()括起来
例:海伦公式:
已知三角形的三边:a,b,c,计算面积
s S abc 2 s ( s a )( s b )( s c )
如果 a=10, b=12, c=15,编 程求三角形面积
变量必须先定义,后使用
double a,b,c; a=10; s, S是两个不同的变量 b=12; c=15; 开平方的计算 double s, S; s=(a+b+c)/2; S=Math.Sqrt(s*(s-a)*(s-b)*(s-c)); Console.WriteLine("S={0}", S);
• 由花括号({ 和 })括起来的一系列语 句构成代码块(block)
3.1 语句(2)
• 声明语句(declaration statement)用于声明局部变量和常量 • 表达式语句(expression statement)用于对表达式求值。可用作语 句的表达式包括方法调用、使用 new 运算符的对象分配、使用 = 和复合赋值运算符的赋值,以及使用 ++ 和 -- 运算符的增量和减 量运算 • 选择语句(selection statement)用于根据表达式的值从若干个给 定的语句中选择一个来执行。这一组语句有 if 和 switch 语句 • 迭代/循环语句(iteration statement)用于重复执行嵌入语句。这 一组语句有 while、do、for 和 foreach 语句 • 跳转语句(jump statement)用于转移控制。这一组语句有 break 、continue、goto、return、和throw语句等 • try...catch 语句用于捕获在块的执行期间发生的异常,try...finally 语句用于指定终止代码,不管是否发生异常,该代码都始终要执 行 • using 语句用于获得一个资源,执行一个语句,然后释放该资源 • 【例3.1】C#语句示例:声明语句、控制语句、赋值语句、循环语 句、调用静态方法、调用对象方法等
3.2.3 逻辑运算符
运算符 ! & 含义 逻辑非 逻辑与 说明 优先级 实例 !True 当操作数为False时返回True; 1 !False 当操作数为True时返回False True & True 两个操作数均为True时,结果 2 True & False 才为True,否则为False False & True False & False True ^ True 两个操作数不相同,即一个为 3 True ^ False True一个为False时,结果才为 False ^ True True,否则为False False ^ False 4 True | True 两个操作数中有一个为True时, True | False 结果即为True,否则为False False | True False | False True && True 两个操作数均为True时,结果 5 True && False 才为 True。但仅在必要时才计 False && True 算第二个操作数 False && False 6 True || True 两个操作数中有一个为True时, True || False 结果即为True。但仅在必要时 False || True 才计算第二个操作数 False || False 结果 False True True False False False False True True False True True True False True False False False True True True False
11
练习
int a; a = 2; ++a; Console.WriteLine( a); Console.WriteLine(++a); Console.WriteLine(a++);
二元运算符的意义与数学意义相同,包括: +
(加)、-(减)、*(乘)、/(除)、%(求余/求模)。
其中%(求余)运算符是以除法的余数作为运算 结果,求余运算也叫求模。 例如: int x=6,y=2,z; z=x%y; // x除以y的结果不是3(商),而是0(余数) 要注意数据类型。 例如: int a,b=39; a=b/2; // a的值为18
注意: (1)算术运算符两边的操作应是数值型。若是字符型,则自 动转换成字符所对应的ASCII码值后再进行运算 (2)增量运算符(++、--)可以出现在操作数之前 (++variable、 --variable )或之后(variable++ 、 variable -- ) 【例3.2】算术运算符++、--、一元+、一元-、二元+、二元-、 *、/、%等示例
3.2 运算符
• C#运算符(operator)是术语或符号,用于在 表达式中对一个或多个称为操作数的进行计算 并返回结果值。接受一个操作数的运算符被称作一
元运算符,例如增量运算符(++)或new。接受两个 操作数的运算符被称作二元运算符,例如算术运算符+ 、-、*、/。接受三个操作数的运算符被称作三元运算 符,条件运算符“?:”是C#中唯一的三元运算符 • 当表达式包含多个运算符时,运算符的优先级控制各 运算符的计算顺序 • 通过运算符重载(overload)(具体可参见7.6节)可以 为用户自定义的类型定义新的运算符
3.2.2 关系和类型测试运算符
运算符 == != > >= < <= x is T x as T 实例 "ABCDEF" == "ABCD" 相等 "ABCD" != "abcd" 不等 "ABC" > "ABD" 大于 123 >= 23 大于等于 小于 "ABC" < "上海" "123" <= "23" 小于等于 数据x是否属于类 myArray is int myArray is int[] 型T 返回转换为类型T myArray as int[] 的x,如果x不是T myArray as object 则返回null 含义 结果 False True False False True True False True System.Int32[] System.Int32[]
“-”与“+”只能放在操作数的左边 。 增量与减 量运算符只能用于变量。
x=x+1 这是一个极为常见的赋值表达式, 叫“计数器” x可以是其它变量 ++x == == 与x=x+1功能相同 与++x相似,但不完全相同 区别在哪里呢??
x++
++x 与 x++比较
int x=10; ++x; Console.WriteLine(x) ; int x=10; x++; Console.WriteLine(x);
注 • • •


意: 关系运算符的优先级相同。 对于两个预定义的数值类型,关系运算符按照操作数的数值大小进行比较。 对于string类型,关系运算符比较字符串的值,即按字符的ASCII码值从左到右一 一比较:首先比较两个字符串的第一个字符,其ASCII码值大的字符串大,若第一 个字符相等,则继续比较第二个字符,依此类推,直至出现不同的字符为止。 对于string以外的引用类型,如果两个操作数引用同一个对象,则==返回True。如 果两个操作数引用不同的对象,则!=返回True。 int 和System.Int32是相同的数据类型
相关文档
最新文档