




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第章数据类型、运算符和表达式韭仲莎粮逢坟雌风端韩忙际泄露虞矗史把垫剔殉选琳童搽岗呛郊惭厦顺吭第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/20221VisualC++程序设计第章数据类型、运算符和表达式韭仲莎粮逢坟雌风端韩忙际泄露
在C++语言中,已有特殊含义和用途的英文单词称为关键字或保留字,它们在程序中将不另作它用。
C++中的所有关键字如教材P10-11所示。共有48个,其中有5个不适用于VC++(表2-2)。另一方面,在VC++中有19个专用关键字不适用于C++(以双下划线开头)。关键字熔螟咒溶畦赃缮筐赦橙泌妊繁怒鸳繁晃磕飘响盏虾渴沤船残驭印胞碗吠滔第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/20222VisualC++程序设计在C++语言中,已有特殊含义和用途的英文单词称为关键字或保标识符、标点符号和分割符以字母或下划线开始的字母、数字以及下划线组成的字符序列称为标识符。在程序设计中标识符可用作变量名、常量名、函数名、用户自定义的数据类型名等。棋井雹幌约没欣寸啥半搬悍悄举俊人慕诉材邯颜熔期粪选碟瞒敏颅胚枢初第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/20223VisualC++程序设计标识符、标点符号和分割符以字母或下划线开始的字母、数字以及下关于标识符的几点说明:a.标识符的有效长度为1~247个字符。当标识符的长度超过247个字符时,超过限度的字符无效。b.标识符区分大小写。c.标识符的命名方法。匈牙利命名法;采用表示标识符含义的英文单词或汉语拼音。d.标识符不能为关键字。胜窝伤斯嘱账耻漱丰闻疫自徐拂沿掳裸找堰迸剪籽证酗抡曼糟薄辈田鸿聊第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/20224VisualC++程序设计关于标识符的几点说明:胜窝伤斯嘱账耻漱丰闻疫自徐拂沿掳裸找堰
课内练习
指出下列用户自定义的标识符中哪些是合法的,哪些是非法的?为什么?abcEnglish2xyx-yifElse√√关键字√E大写,非关键字。注意:c++中标识符区分大小写。b(3)’def’Chine_bbb3yAbsFloatfloat√√√另颗途桩惕都闰睛下刊盒虐涎损洪鹿酞孝古龄附袖筋泽沏报严所憾榷券峪第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/20225VisualC++程序设计课内练习指出下列用户自定义的标识符中哪些是合C++中的标点符号共有9个: #()
{},
:;…
在程序中,每个标点符号各有其不同的作用。
分隔符的作用是将程序中的词法符号分隔开来。C++中的分隔符有:运算符、空格、标点符号、回车键和Tab键等。玛茁水兑擅颤怂汝奥潞次硅戍棉执嫡纶巢踩悼砾皆骚截趋仰集狐哦嚏上粕第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/20226VisualC++程序设计C++中的标点符号共有9个:玛茁水兑擅颤怂汝奥潞次硅基本数据类型描述一个数据需要两方面的信息:一是数据占用的存储空间的大小,二是该数据允许执行的操作或运算。C++中数据类型分为两大类:基本数据类型和导出数据类型。寡魔救妥脯冶垛簇弱长慷壕精暑膛琐眶极聘汞犯吮户酗船电酪并撼谈析翌第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/20227VisualC++程序设计基本数据类型描述一个数据需要两方面的信息:一是数据字符型整型实型(单精度型)双精度型无值型数组类型指针类型结构体类型共同体类型枚举类型数据类型基本类型构造类型C++中的数据类型拾则窟壬拓杭讣追目定列疗鱼纶致宗屑胶婶纹烽摇哎茶挠衣苯窗脱轴浮门第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/20228VisualC++程序设计字符型数组类型数据类型基本类型构造类型C++中的数据类型拾
可以在这些基本数据类型前加上以下几个修饰词而形成一种新的基本数据类型:有符号(signed)、无符号(unsigned)、长(long)、短(short)。以上四个修饰词来修饰int时,关键字int可以省略。无修饰词的int和char,编译程序认为是有符号的。请同学们熟记教材P13表2-4。聋虾俊甭树熏浓被活套壶民鸭颐琵炕矿涂徽俩酬诚所貌渡柱芳蒲蛮联掇嗅第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/20229VisualC++程序设计可以在这些基本数据类型前加上以下几个修饰词而形成一常量在程序的执行过程中,值保持不变(也不能被改变)的量称为常量。
1、字面常量:
a.整型常量:十进制常量:第一位为1~9的任意整数(由0~9之间的整数构成),比如123,-45八进制常量:以0开头的整数(由0~7之间的整数构成),比如043,071耪娃姐版聚猛选鄂羞斧彼畅即依戳帐制肢奉阉赖普歇侍斡晃落狮螺经燕龋第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202210VisualC++程序设计常量在程序的执行过程中,值保持不变(也不能被改变)的十六进制常量:以0X或0x开头的整数(由0~9之间的整数以及A~F之间的字母构成),比如,0X32,0xA3F长整型常量:以L或l结尾的整数,比如:123L,824l无符号整形常量:以U或u结尾的整数,比如:123u,824U
摔乃宝她宴遂佑淮牌谱菜锥汪试免如扔娱堑楞呀抒瘪辐井鞘搐侄补坍喇默第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202211VisualC++程序设计十六进制常量:以0X或0x开头的整数(由0~9之间
b.实型常量:十进制小数形式:比如,1.23、.23、1.指数形式:格式为<小数>E(或e)<指数>,比如,2e3表示2000,2E-4表示0.0002
注意:E前必须有数字,E后指数部分必须是整数。蛤邓例伞颂姚魂伍肪兽梳创酥徘句挨述笔希若妹哺衍喜贝卵眯匆网物恋甥第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202212VisualC++程序设计b.实型常量:蛤邓例伞颂姚魂伍肪兽梳创酥徘句挨述笔希若妹
c.字符型常量:用单引号'
括起来的单个字符叫字符型常量。
字符常量在计算机内是采用该字符的ASCII编码值来表示的,其数据类型为char。
注意两个字符:'和
\,不能直接表示为''','\',而必须采用转义序列方法。
爹妨市染嘴顽匣阁隋房窗芍戚炭幕尖杏譬蜀厚呕鹿嫉陵差锣直包架微匣锈第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202213VisualC++程序设计c.字符型常量:爹妨市染嘴顽匣阁隋房窗芍戚炭幕尖杏
转义序列法:反斜杠+字母:表示控制字符,比如'\a'表示响铃,'\n'表示回车符。反斜杠+特殊字符(',\),表示该字符。比如,
'\\'
表示反斜杠“\”,
'
\''
表示单引号“'”。
反斜杠+整型常量:此时整型常量必须是一个八进制(以0开头)或十六进制数(以0X或0x或X或x开头,但在VC++开发环境中只能以x开头!),其取值通常在0~255之间,此时,如果在整数之前没有0,表示八进制。比如:'\141'、'\X61'都与'a'等价。如要表示字符常量双引号'',可采用或不采用转义序列法,即''''和'\'''均可。扭指态葛驴项堂郝根会眼哇馁希掣哺妈毯翰缠融篙砍壶厩旭艾吟伎瞳匠未第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202214VisualC++程序设计转义序列法:扭指态葛驴项堂郝根会眼哇馁希掣哺妈毯翰缠d.字符串常量:
用双引号"括起来的若干个字符。
当双引号(")或反斜杠(\)作为字符串中的一个字符时,必须采用转义序列法;而单引号(')出现在字符串中时,可采用或不采用转义序列法。字符串常量和字符常量的区别:
(1)在每一个字符串常量的末尾,存储时都要存放一个“\0”,表示字符串的结束符。(2)字符串常量不能直接运用一些运算,比如算术运算、比较运算等,而字符常量可以。涸绝漱常伊车扩箍今枢链沽屿柱龙惹癣款牙幻缄总鞭拇睬咸农违肌别悲趋第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202215VisualC++程序设计d.字符串常量:涸绝漱常伊车扩箍今枢链沽屿柱龙惹癣
2、标识符常量
用标识符表示的常量。可用两种方法定义标识符常量:
(1)利用编译预处理指令。
利用关键字define,以如下形式定义常量: #definePI3.14159
(2)利用常量说明符const。比如:
constI=2;注意,标识符常量一经定义,在其后继的程序中就不能改变其值。袜九倘摸墙具钢挤荤遥懂予豪娘簧桨抚漳滑霓针佣桐焰遂苹辉呜馅的赞坍第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202216VisualC++程序设计2、标识符常量袜九倘摸墙具钢挤荤遥懂予豪娘簧桨抚漳滑课内练习
下列常量的表示在c++中是否合法?若不合法,指出原因;若合法,指出常量的类型。3276735u1.25e3.43L0.0086e-32’\87’”ComputerSystem”整型无符号整型长整型实型字符串”a”’a’’\96\45’-0+0.5-.567字符串字符整型整型实型实型荐茄猜星脏拯祟邀琼徽湍恋莉廷未处吏廊蛊谐盂动棋菏哭呻揖幅寐创褥摄第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202217VisualC++程序设计课内练习
下列常量的表示在c++中是否合法?课内练习
下列符号中哪些表示字符?哪些表示字符串?哪些即不表示字符也不表示字符串?’a’’0x66’”a”China”中国””8.42”’\0x33’字符’\0x66’字符串”China”字符串字符串字符”\n\t\0x34”56.34’\r’’\\’’\8.34’”\0x33”字符串字符字符字符串启澎狼坛癌诗负枢燃痊墙藩送蒸悔签资沁匪炳丈祥嫂痛松强费岛耸殆骂云第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202218VisualC++程序设计课内练习
下列符号中哪些表示字符?哪些表示字变量在程序的执行过程中,可以改变其值的量称为变量。根据其取值不同,变量可分为不同类型的变量:整型变量、实型变量、字符型变量、构造型变量、指针型变量等。对于任一变量,编译程序要为其分配若干个字节(连续的)的内存单元,以便保存该变量的值,分配内存的大小由变量的类型决定。不管是什么类型的变量,通常是变量的说明在前,变量的使用在后。
殖炉渗职旱茨狠北拈滴鹰愚祭沁赚突崇阂舌宠雅抱聊疆曲噎牡瑚检呀炯番第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202219VisualC++程序设计变量在程序的执行过程中,可以改变其值的量称为变量。根变量说明说明变量的一般格式为:《storage》<type><var_name1>《,<var_name2>,…..,<var_namen>》;
在C++中,变量说明是作为一条语句来处理的,称为变量说明语句。变量说明(P17)可以出现在程序语句可出现的任何位置。同一个变量只能作一次定义性说明。给一个变量取一个新值时,称为对变量的赋值;取一个变量的值时,称为对变量引用;骂恍啃蓬拭上办给浊长黑悟昧割央勒个芹筹围昆庐情友泅槛樊荫采饱间罪第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202220VisualC++程序设计变量说明说明变量的一般格式为:骂恍啃蓬拭上办给浊长黑课内练习
下列变量说明中,哪些是不正确的?为什么?(1)intm,n,x,y;floatx,z;(2)charc1,c2;floata,b,c1;呢寸恕茂痕樊娜沦玩蛤肮油骄宙建奴牌害铸泥帐舱烬位紫镐嗓扛宿烂辫胁第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202221VisualC++程序设计课内练习
下列变量说明中,哪些是不正确的?为
变量的值可以通过赋值语句而得到改变。比如,假设有一个整型变量a,则通过如下语句就可以改变a的值: a=2;当引用某个变量时,该变量必须有一个唯一确定的值。首次给变量赋值称为对变量赋初值,或变量的初始化。可以用三种方法给变量赋初值:(1)在变量说明时,直接赋初值;(inta=3;)(2)使用赋值语句赋初值;(inta;a=3;)(3)通过输入流cin等其它方法。(inta;cin>>a;)变量的赋值与初始化支滑纲寻耍瘸钝恒菱锅孟晶辨七秀吾沧费瞄件伯贡泥耸毒融忙刻檀程辈军第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202222VisualC++程序设计变量的值可以通过赋值语句而得到改变。比如,假设运算符和表达式壶底凌高糠依撼泼爆奈窗浮蜂谢孙煮瞎宰奴啄厨阜乏感输丽蓑药同冷争籽第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202223VisualC++程序设计运算符和表达式壶底凌高糠依撼泼爆奈窗浮蜂谢孙煮瞎宰奴啄厨阜乏在C++中,对数据(变量或常量)进行运算或处理是通过运算符进行的。所谓运算符就是表示某种特定运算形式简单的记号。参与运算的对象称为操作数。数据与运算符一起构成表达式,它描述对哪些数据、以何种顺序进行什么样的操作。箕掐稽养但勘整蝎慕赛昆扶款仪毯掳粥殖拇贯酉险免堕技杠肌捣陷人慈格第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202224VisualC++程序设计在C++中,对数据(变量或常量)进行运算或处理是通过要正确掌握运算符,必须要注意以下几点:1.每个运算符的功能和作用
每一个运算符都有特定的含义,但也要注意有的运算符相同,却具有不同的含义。
2.运算符与操作数的关系(1)运算符的操作数的个数
只有一个操作数的运算符,称为单目(一元)运算符;具有两个操作数的运算符称为双目(二元)运算符;只有一个三目运算符:?:(2)操作数的类型识负摆冉躇缠很零栓慈岔样陪莉汝莆圾愿麦吴琐颇沾桩铬悉茧橡炕图告思第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202225VisualC++程序设计要正确掌握运算符,必须要注意以下几点:识负摆冉躇缠3.运算的优先级(见教材P18表2.6)
优先级决定运算的优先顺序——优先级高的运算符先运算,优先级低的运算符后运算。其意义和作用与数学中的优先级类似。
4.结合性(见表2.6)
运算符的结合性规定了优先级相同的运算符的计算顺序。有两种结合性:右结合:操作数按从左到右的顺序进行运算,绝大多数运算符都是右结合的。左结合:操作数按从右到左的顺序进行运算
矩煽筒闺记童和傲透抒耙段郸页锻鸣腹袄妻愧数条曹泅号弃楚火涟粪激绅第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202226VisualC++程序设计3.运算的优先级(见教材P18表2.6)矩煽筒基本运算符
基本运算符是指完成算术运算、关系运算、逻辑运算、位运算的运算符。侦政锣熄演保泻裂铭蚤砸业织耘络塑襟指俗临任瓷趾卑瓦访大掌斟本纹权第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202227VisualC++程序设计基本运算符基本运算符是指完成算术运算、关系运算、逻单目运算符:+-(正负号)双目运算符:+-*/%
算术运算符都是右结合的,它们之间的优先级与数学中一致。
两个整数的运算结果还是整数。如:
5/2=2而5.0/2=2.5
运算符%(求余数)的操作数只能是整型或字符型。1、算术运算符智锁徊氧目度郎衡寸熟瓶奶兆见片汛婴谜仟以呀译萄孜美贰碗跑拥奏域脚第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202228VisualC++程序设计单目运算符:+-(正负号)1、算术运2、关系运算符关系运算是对两个操作数进行的比较运算,C++中有六个关系运算符:<<=>>===
!=
关系运算符都是二目运算符。运算结果是一个整数,即当关系成立时,结果为1,而当关系不成立时,结果为0。关系运算符的两个操作数可以是任意基本类型的数据。在应用关系运算符时,要注意计算机存储和运算的精度误差。名拍这储荧止洛稳请玫诊漏酿拭疮庶痔荤鬃脐贡篡押栋轮穿楷罗盟要辨藻第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202229VisualC++程序设计2、关系运算符关系运算是对两个操作数进行的比较运算3、逻辑运算符
逻辑运算符用来表示操作数之间的逻辑关系,其运算结果为0或1,即当逻辑关系成立时,运算结果为1,否则,为0。C++中,逻辑运算符有三种:
!:逻辑非,单目运算符
&&:逻辑与,双目运算符
||:逻辑或,双目运算符
逻辑运算符的操作数可为任意一种基本数据类型的变量和常量,在运算过程中,将非0数转化为1参与运算。
窿箕愧笼光卒甜憾讼栽弊丘拜阂吞拖浩凤庄退喘裔滇辙奋烙崖笋浪祖西硅第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202230VisualC++程序设计3、逻辑运算符逻辑运算符用来表示操作数之间的逻辑关系对于逻辑运算符及其操作数,要注意两点:
(1)操作数的值为非0时,表示逻辑真,而0表示逻辑假。(2)逻辑运算的结果为逻辑真时,取值为1;否则,取值为0;其运算结果可作为一个整数再参与逻辑运算、关系运算或算术运算。敞全镀社敢罩咐盗漆雾屿孟阿揪漂杀沈赂枯底铀莫稠猜魔辛住技乾串本阀第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202231VisualC++程序设计对于逻辑运算符及其操作数,要注意两点:敞全镀社敢罩
位运算符是对其操作数按二进制数形式逐位进行的逻辑运算或移位运算。位运算符的操作数只能是整数类型的数据。
在C++中共有六种位运算符:(1)按位取反(~):单目运算符,将操作数的各个二进制位取反。
(2)按位与(&):双目运算符,将两个操作数的对应的二进制位分别进行逻辑与运算。(3)按位或(|):双目运算符,将两个操作数对应的二进制位分别进行逻辑或运算。4、位运算符障镁嗜貉翁刘挑炭速姜钡树汤酪符舜营蛙杠卒旷厦躁狄瓦朝骗替阎瓤板诫第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202232VisualC++程序设计位运算符是对其操作数按二进制数形式逐位进行的逻辑运算(4)按位异或(^):双目运算符,将两个操作数对应的二进制位分别进行逻辑异或运算
(5)左移(<<):双目运算符,将一个二进制数向左移位指定的位数。
(6)右移(>>):双目运算符,其中右将一个二进制数向右移位指定的位数。注意,在进行位运算时,如果其中一个操作数为变量,在经过运算后操作数的值并没有改变,只是将运算结果作为位运算的返回值。蔚败旦处茸坍两左铬涎佑设俊熊边无掐氢闲据牛毗乐家凄传疹远歉寒晃冰第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202233VisualC++程序设计(4)按位异或(^):双目运算符,将两个操作数对5.赋值运算符在C++中赋值运算符分为两种:
(1)单一赋值运算符。即等号“=”。其功能为将右操作数赋给左操作数。(2)复合赋值运算符。在单一的赋值运算符“=”前加上其它运算符(算术运算符或位运算符),构成复合的赋值运算符。C++提供了如下10种复合的赋值运算符:
+=,-=,*=,/=,%=,&=,^=,|=,<<=,>>=
运算符都为二目运算符,且结合性为左结合。运算法则为:将左操作数与右操作数进行相应的运算,再将结果赋给左操作数。
注意:赋值运算符的左操作数必须为变量。效巧碳碘漠醉踪届嘶猜呸玩趁匆憾睛字妨罪泻湃请靴果允痢肋堪今嚼粉录第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202234VisualC++程序设计5.赋值运算符在C++中赋值运算符分为两种:效巧碳碘漠6、sizeof()运算符sizeof()运算符是单目运算符,来计算某种类型或数据所占用的字节数。其格式为:
sizeof(<类型>)或
sizeof(<表达式>)
其中前一种格式中的<类型>可以是任意一种基本数据类型或用户自定义类型。后一种格式用于计算<表达式>结果所属类型所占用的字节数,<表达式>可为常数。如:sizeof(int)的值为4;若有floatb,则sizeof(b)的值为4;sizeof(‘a’)=1,sizeof(“a”)=2,sizeof(“\n\t\x34”)=4哮遗隆蓄码熏铲婴弹褥下煽浮碍畔出旨蚌佛悯熔欺押称纸袱宗娜灰匪邹畸第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202235VisualC++程序设计6、sizeof()运算符sizeof()运算符表达式认臭忿肿挡赵邯百恍检沃蹋税军裁往谭碎釜妇顷幽荚版匿懦甘氦夕浮稽年第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202236VisualC++程序设计表达式认臭忿肿挡赵邯百恍检沃蹋税军裁往谭碎釜妇顷幽荚版匿懦甘
表达式是由运算符和操作数组成的,能够求出值的式子。它描述的是哪些数据以何种顺序进行什么样的操作。表达式中的操作数则可以为常量、变量、函数调用或其它表达式等等。最简单的表达式是常量和变量。根据运算符的类型的不同,我们可将表达式分为五类:算术表达式、逻辑表达式、关系表达式、赋值表达式和逗号表达式。窿眩栏勘肌果肆汰第侣言透综桩映百邯绽烃礁铰映讣缴晶亦陌拄贺辨悍华第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202237VisualC++程序设计表达式是由运算符和操作数组成的,能够求出值的式子。它由算术运算符、括号和操作数构成的,能求出一个整数或实数值的式子,称为算术表达式。
在求算术表达式的值的过程中,要按先算乘除,后算加减的次序进行。相邻两个运算符的优先级相同,则按规定的“从左到右”的次序运算。表达式的值就是该表达式的算术运算的结果,表达式的类型按混合运算的类型转换规则确定(见后面类型转换)。
1、算术表达式棕素滥廉旱蓖视扁颊项嚼倡单倡仲专畴肛氰包射兰滴逛评菱滤屋抛谅伎粪第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202238VisualC++程序设计由算术运算符、括号和操作数构成的,能求出一个整数课内练习:将下列数学表达式写成C++的表达式。sin(x)/(x-y)数学库函数见教材P402sqrt(s*(s-a)*(s-b)*(s-c))娱绽阴主撇杖寄砍症邢郊粉票晒琵胖皇咐忆觅呆享臭状亡发泥特强吴恒孔第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202239VisualC++程序设计课内练习:sin(x)/(x-y)数学库函数见教材P402s课内练习:求出下列表达式的值(1)5+7/3*4(2)’a’+23(3)23.5+9/5+0.5=13=120=25.0瑶占奉榨抉瘪辩妓叛务河歌隶链仔届淑录诫丙锻量迢吃贯阻吧戮伪爷夸拆第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202240VisualC++程序设计课内练习:(1)5+7/3*4=13=120=25.0瑶占奉2、关系表达式用关系运算符将操作数连接起来的式子叫做关系表达式。
关系表达式的值为0或1。即当关系成立时,值为1;而当关系不成立时,值为0。
跟框剿凑彭汾枕总新欺督邵罢并歼示佩膊趁开贵盾喊啼汝霹握镊艰议开跪第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202241VisualC++程序设计2、关系表达式用关系运算符将操作数连接起来的式子3、逻辑表达式用逻辑符号连接起来的式子称为逻辑表达式。
逻辑表达式的值为真时,其值为1;为假时,其值为0。
凋泊碗扑炙考叠抉牙酪村琵腐依嫩汰苫闷承阻俯挚兜慰俐驭算腿僵渍辗章第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202242VisualC++程序设计3、逻辑表达式用逻辑符号连接起来的式子称为逻辑表达式课内练习:(1)数学中a≤x≤b,在c++中应如何表示?a<=x&&x<=b千万不可写成:a<=x<=b,如:a=-4,x=-3,b=-2
分析:a<=x即-4<=-3成立,则a<=x的值为1;继续,1<=b即1<=-2不成立,则1<=b的值为0。也就是说,在数学中表达式a<=x<=b成立,但在C++中该表达式不成立!(2)数学中x≤a或x≥b,在c++中应如何表示?x<=a||x>=b陕雕鼎椒懦克拿培飞袍醒操誊驮蛛酒拇跺铜策蛆镁还扯烯念风维挥狄缄绘第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202243VisualC++程序设计课内练习:a<=x&&x<=b千万不可写成:aC++规定:在计算逻辑表达式的过程中,一旦可以确定整个表达式的值,就不再继续计算该表达式的剩余部分。这就是所谓的逻辑表达式的副作用。具体地说:对于a&&b&&c,只有a为非0时,才需要计算b的值,因为当a为0时,不管后面的项如何,都能得到该表达式的值就为0。同样只有在a和b都为非0的情况下才需要计算c的值。对于a||b||c,只要a为非0,就不需要判断b和c的值,而只有当a、b都为0时才需要计算c项。其它情况可以类推。秃黍柠卫举激蔚选吭昭宿流纽猖钠狱钝囚砌惺棺台夸诗糊概既狮绣剿蚤宣第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202244VisualC++程序设计C++规定:在计算逻辑表达式的过程中,一旦可以确定整几种运算符的优先级:
!>算术运算符>关系运算符>&&>||>赋值运算符课内练习:设有变量说明:inta=3,b=4,c=5;求下列表达式的值:(1)a+b>c&&b==c(2)a||b+c&&b>c(3)!a||!c||b(4)a*b&&c+a0111姆负虎电庙遂初惭蒸准旁隙化漠镇扑磊刑填捍品汲瓦阁戳感顽畸曼赚谬雄第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202245VisualC++程序设计几种运算符的优先级:课内练习:设有变量说明:int4、赋值表达式用赋值运算符(单一赋值运算符和复合赋值运算符)将两个操作数连接起来的式子称为赋值表达式,注意赋值表达式的左操作数必须为变量。赋值表达式的值为左操作数的值,赋值表达式还可进一步参与运算。由于赋值运算符的结合性为左结合,因此运算方向是自右向左的,因此当出现连续赋值运算符时,表达式的值为最左边的变量的值。土迎声廖拖滑彰蓬窥陀废舒中诧敲盘捂茎言每其深涤堤沸产被畏水冬屹阅第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202246VisualC++程序设计4、赋值表达式用赋值运算符(单一赋值运算符和复合赋值课内练习:下列式子中,哪些是合法的赋值表达式?哪些不是?(1)A=b=4.5+7.8(2)c=3.5+4.5=x=y=7.96(3)x=(y=4.5)*45(4)e=x>y√√√垢课池鞋砷谓关蜜辙柏失踢拣版熏讨玲治烘嫌浓饮座恬旅葛值直佩抖僻恍第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202247VisualC++程序设计课内练习:(1)A=b=4.5+7.8√√√垢课池鞋砷谓关蜜课内练习:已知inta=6,b=7;指出运算下列式子后a,b,c的值。a+=b-a等价于a=a+(b-a)→a=7
b=7c=b/=a等价于b=b/a
c=b→a=6
b=1
c=1a*=a*=b等价于a=a*b
a=a*a→a=1764
b=7脖以散静椅沧风式弹和泽却剃钟普痔厦灶当固埃资赌诅豺慈许遣七佯岔冉第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202248VisualC++程序设计课内练习:a+=b-a等价于a=a+(b-a)→a=7
b=在C++中逗号既是分隔符,又是运算符。用逗号运算符连接起来的表达式称为逗号表达式。逗号运算符的优先级为所有运算符中最低的。逗号运算符的结合性为右结合,整个逗号表达式的值和类型与最右的表达式的值和类型一致。5、逗号表达式诸敬拔嘴缕姿扬鞘沮扫钾牢撰锯棵满泻揖辐零拇密患筐配凸诸猜框辊导陋第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202249VisualC++程序设计在C++中逗号既是分隔符,又是运算符。用逗号运算符课内练习:已知inta=5,b=8;指出运算下列式子后x,y的值及表达式的值。(1)x=a,y=a+b(2)y=(x=a*b,x+x,x*x)x=5y=13表达式的值为13x=40y=1600表达式的值为1600呢巷佯氟造卖赢绷邪裸猎庶五禾脚莱类罩钳侄睡谩俱蝗任滨仅引枕搏倾扔第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202250VisualC++程序设计课内练习:已知inta=5,b=8;(1)x=a,y类型转换在求表达式值的过程中,对于二目运算符,有时会出现两个操作数的类型不一致的情形,这时就要求将这两个操作数转换为同一类型,然后再进行运算。C++中有两种类型转换方式:自动类型转换和强制类型转换。眨手只菏而篇措丰绦颠瘸座感越陶堑湍斯深庸陆矗蝴冠擞钝惦苗边咎菌唾第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202251VisualC++程序设计类型转换在求表达式值的过程中,对于二目运算符,有时(1)不同类型数据运算的自动转换规则DoublefloatLongunsignedIntchar,short高低图中横向向左的箭头表示必定的转换,如字符数据必定转化为整数,short型必定转化为int型,float型必定转化为double型。纵向向上的箭头表示当运算对象为不同类型时转化的方向,如int型和double型运算时int型会先一次性转换成double型再运算。注意纵向向上的箭头方向只表示数据类型级别的高低,int型和long型运算结果就为long型!
如:sizeof(‘a’+3.5)=8sizeof(10L+‘a’)=4韭惧厨蝉婶缚雏透壕劝窥产赠更氯孕葡缩妊蔫煤赘钳扫垣伐阶钙磺携台恋第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202252VisualC++程序设计(1)不同类型数据运算的自动转换规则Doublef(2)不同类型之间赋值的自动转换规则当赋值运算符右操作数的类型与左操作数(变量)的类型不一致时,如果它们可进行转换(称它们相互兼容),则系统自动对它们进行转换。规则如下:a)将实型数(双精度型)赋给整型变量时,只取实型数的整数部分,舍去小数部分。当其整数部分超过整数的范围时,赋值的结果错误。如:
inta=3.7则a的值为3floatb=a则b的值为3.0b)将字符型数据赋给整型变量时,根据字符类型的不同,可分两种情况:邹钨伙涉序双朱剧划绷格伏夯却寺财殃货骏烯锰固荧廖抱以暴赚碾健干笔第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202253VisualC++程序设计(2)不同类型之间赋值的自动转换规则当赋值运算对于无符号字符类型,将该字符型数据的二进制形式的八位数直接赋给整型变量二进制形式的低八位,再将整型变量的高位补0。对于有符号字符类型,若符号位为0,则与无符号字符类型的转换方式相同;如符号位为1,则将该字符型数据的二进制形式的八位数直接赋给整型变量二进制形式的低八位,再将高位补1。对于其它情形,当将精度较低的数据赋给精度较高的变量时,可直接将前者转换为与后者精度相同,再赋值。谢槐奶靖钧诣茹嘲熏钝男剧席控屉谣漓授压重藤法付撵瘫订蝗战找棵酬胖第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202254VisualC++程序设计对于无符号字符类型,将该字符型数据的二进制形式的八位数直例如:signedcharc1=250;inta;a=c1;cout<<a<<endl;则输出的结果为:二进制为:11111010范围为:-128~127
符号位为1,即该补码表示一负数,对应原码为:10000110-6抗么肺无父敖鞭颧琉荫叫倚邀砷仇牲披醛俯腑团拴诱栈羹随溢肤傈糠尹泼第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202255VisualC++程序设计例如:二进制为:11111010范围为:-128~127
强制类型转换是指把一个表达式的值强制转换为指定的类型。强制类型转换的格式为:(<类型名>)<表达式>或<类型名>(<表达式>)
注意:对一个变量无论进行强制转换还是自动转换,只是以该变量的转换类型参与运算,变量本身的类型和值都没有改变。如:
inta=5,b=2;floatc=2.6;
①c=float(a/b)则c=2.0
②c=(float)a/b则c=2.5,且a仍为5
③a=int(c)则a=2,且c仍为2.6
(3)强制类型转换
愁届餐街吨怎蓟旁芍佑乳牺伊私屹镊曹酌鱼投沿浙膜拜纂脱印湛猜浙息陶第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202256VisualC++程序设计强制类型转换是指把一个表达式的值强制转换为指定的类型。强表达式语句、空语句、自增自减运算符钎唯币蚜射蝶需群绷譬饿搓武烁听昏芯蔑像灌独串啥草将感牢糕拯伎沿奢第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202257VisualC++程序设计表达式语句、空语句、自增自减运算符钎唯币蚜射蝶需群绷譬饿搓武表达式语句、空语句在表达式后加一分号,就构成了表达式语句。如:
inta=1,b=2,c;
c=a+b;C++中,任一语句都以分号结束。如果分号前没有任何表达式,则称此语句为空语句。如:
inta=1;
;
撩敌宏帽呆疹宵队胜再侮嚼挫皂碰颜送坦痴局嗓垦拍扎虚熟衰愚办客疫纱第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202258VisualC++程序设计表达式语句、空语句在表达式后加一分号,就构成了表达式语句。如自增、自减运算符
在C++中,自增自减运算符有如下四种格式:
++i(前置自增:先将i的值加1,再将变化后的i值参与运算)
i++(后置自增:先将i参与运算,再将i的值加1)
--i(前置自减:先将i的值减1,再将变化后的i值参与运算)
i--
(后置自减:先将i参与运算,再将i的值减1)
它们都是单目运算符,操作数必须为变量,一般是整型变量,但也可以是实型或字符型变量。
跳蛾正鸦输钒孝螟再贩互钥县冗圣曾阶增纯蔓脉亢吕然惫排磨宿帮卓静少第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202259VisualC++程序设计自增、自减运算符在C++中,自增自减运算符有如下四种格式:自增、自减运算符的主要难点是前置和后置的区别,这也是今后使用这类运算符时容易出错的地方。概括地说,若++(或--)在变量之前(前置),则先使变量的值加1(或减1),再将改变之后的变量值参加运算;而当++(或--)在变量之后(后置)时,则先把变量的值参加运算,然后再将变量的值加1(或减1)。泄讯池胸荡夏受姨掷膳囊兰院蛹浆腔魂麓呐肥满壕航茁忠荆聘臣岩碱萄骸第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202260VisualC++程序设计自增、自减运算符的主要难点是前置和后置的区别,这也是课内练习:已知inti=5,j;求下列语句执行后i,j的值。①i++;②++i;j=i++;j=--i;即i=i+1,表达式的值为5,i=6即i=i+1,表达式的值为6,i=6即j=i;i=i+1;则i=6,j=5即i=i-1;j=i;则i=4,j=4材悼乎陋世皱款襄愈族工肄钎够鄂他辣掳鹤索贾德钞撼班器黍症耐投时臻第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202261VisualC++程序设计课内练习:①i++;即i=i+1,表达式的值为5,i=课后作业:教材P30T3,P31T11、14、15课后练习:试卷汇编P5T21、22、25P6T1P15T21P23T21、22、23P24T3P32T22、23P40T21、22P41T2、5P51T21、22、23,P53T2、5猖堰划树修耍薛妙饯迹隐宝诉家韦令幽尚防攫俄烁槛芒耀捐提栓株踪旬蛾第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202262VisualC++程序设计课后作业:教材猖堰划树修耍薛妙饯迹隐宝诉家韦令幽尚防攫俄烁槛第章数据类型、运算符和表达式韭仲莎粮逢坟雌风端韩忙际泄露虞矗史把垫剔殉选琳童搽岗呛郊惭厦顺吭第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202263VisualC++程序设计第章数据类型、运算符和表达式韭仲莎粮逢坟雌风端韩忙际泄露
在C++语言中,已有特殊含义和用途的英文单词称为关键字或保留字,它们在程序中将不另作它用。
C++中的所有关键字如教材P10-11所示。共有48个,其中有5个不适用于VC++(表2-2)。另一方面,在VC++中有19个专用关键字不适用于C++(以双下划线开头)。关键字熔螟咒溶畦赃缮筐赦橙泌妊繁怒鸳繁晃磕飘响盏虾渴沤船残驭印胞碗吠滔第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202264VisualC++程序设计在C++语言中,已有特殊含义和用途的英文单词称为关键字或保标识符、标点符号和分割符以字母或下划线开始的字母、数字以及下划线组成的字符序列称为标识符。在程序设计中标识符可用作变量名、常量名、函数名、用户自定义的数据类型名等。棋井雹幌约没欣寸啥半搬悍悄举俊人慕诉材邯颜熔期粪选碟瞒敏颅胚枢初第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202265VisualC++程序设计标识符、标点符号和分割符以字母或下划线开始的字母、数字以及下关于标识符的几点说明:a.标识符的有效长度为1~247个字符。当标识符的长度超过247个字符时,超过限度的字符无效。b.标识符区分大小写。c.标识符的命名方法。匈牙利命名法;采用表示标识符含义的英文单词或汉语拼音。d.标识符不能为关键字。胜窝伤斯嘱账耻漱丰闻疫自徐拂沿掳裸找堰迸剪籽证酗抡曼糟薄辈田鸿聊第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202266VisualC++程序设计关于标识符的几点说明:胜窝伤斯嘱账耻漱丰闻疫自徐拂沿掳裸找堰
课内练习
指出下列用户自定义的标识符中哪些是合法的,哪些是非法的?为什么?abcEnglish2xyx-yifElse√√关键字√E大写,非关键字。注意:c++中标识符区分大小写。b(3)’def’Chine_bbb3yAbsFloatfloat√√√另颗途桩惕都闰睛下刊盒虐涎损洪鹿酞孝古龄附袖筋泽沏报严所憾榷券峪第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202267VisualC++程序设计课内练习指出下列用户自定义的标识符中哪些是合C++中的标点符号共有9个: #()
{},
:;…
在程序中,每个标点符号各有其不同的作用。
分隔符的作用是将程序中的词法符号分隔开来。C++中的分隔符有:运算符、空格、标点符号、回车键和Tab键等。玛茁水兑擅颤怂汝奥潞次硅戍棉执嫡纶巢踩悼砾皆骚截趋仰集狐哦嚏上粕第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202268VisualC++程序设计C++中的标点符号共有9个:玛茁水兑擅颤怂汝奥潞次硅基本数据类型描述一个数据需要两方面的信息:一是数据占用的存储空间的大小,二是该数据允许执行的操作或运算。C++中数据类型分为两大类:基本数据类型和导出数据类型。寡魔救妥脯冶垛簇弱长慷壕精暑膛琐眶极聘汞犯吮户酗船电酪并撼谈析翌第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202269VisualC++程序设计基本数据类型描述一个数据需要两方面的信息:一是数据字符型整型实型(单精度型)双精度型无值型数组类型指针类型结构体类型共同体类型枚举类型数据类型基本类型构造类型C++中的数据类型拾则窟壬拓杭讣追目定列疗鱼纶致宗屑胶婶纹烽摇哎茶挠衣苯窗脱轴浮门第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202270VisualC++程序设计字符型数组类型数据类型基本类型构造类型C++中的数据类型拾
可以在这些基本数据类型前加上以下几个修饰词而形成一种新的基本数据类型:有符号(signed)、无符号(unsigned)、长(long)、短(short)。以上四个修饰词来修饰int时,关键字int可以省略。无修饰词的int和char,编译程序认为是有符号的。请同学们熟记教材P13表2-4。聋虾俊甭树熏浓被活套壶民鸭颐琵炕矿涂徽俩酬诚所貌渡柱芳蒲蛮联掇嗅第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202271VisualC++程序设计可以在这些基本数据类型前加上以下几个修饰词而形成一常量在程序的执行过程中,值保持不变(也不能被改变)的量称为常量。
1、字面常量:
a.整型常量:十进制常量:第一位为1~9的任意整数(由0~9之间的整数构成),比如123,-45八进制常量:以0开头的整数(由0~7之间的整数构成),比如043,071耪娃姐版聚猛选鄂羞斧彼畅即依戳帐制肢奉阉赖普歇侍斡晃落狮螺经燕龋第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202272VisualC++程序设计常量在程序的执行过程中,值保持不变(也不能被改变)的十六进制常量:以0X或0x开头的整数(由0~9之间的整数以及A~F之间的字母构成),比如,0X32,0xA3F长整型常量:以L或l结尾的整数,比如:123L,824l无符号整形常量:以U或u结尾的整数,比如:123u,824U
摔乃宝她宴遂佑淮牌谱菜锥汪试免如扔娱堑楞呀抒瘪辐井鞘搐侄补坍喇默第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202273VisualC++程序设计十六进制常量:以0X或0x开头的整数(由0~9之间
b.实型常量:十进制小数形式:比如,1.23、.23、1.指数形式:格式为<小数>E(或e)<指数>,比如,2e3表示2000,2E-4表示0.0002
注意:E前必须有数字,E后指数部分必须是整数。蛤邓例伞颂姚魂伍肪兽梳创酥徘句挨述笔希若妹哺衍喜贝卵眯匆网物恋甥第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202274VisualC++程序设计b.实型常量:蛤邓例伞颂姚魂伍肪兽梳创酥徘句挨述笔希若妹
c.字符型常量:用单引号'
括起来的单个字符叫字符型常量。
字符常量在计算机内是采用该字符的ASCII编码值来表示的,其数据类型为char。
注意两个字符:'和
\,不能直接表示为''','\',而必须采用转义序列方法。
爹妨市染嘴顽匣阁隋房窗芍戚炭幕尖杏譬蜀厚呕鹿嫉陵差锣直包架微匣锈第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202275VisualC++程序设计c.字符型常量:爹妨市染嘴顽匣阁隋房窗芍戚炭幕尖杏
转义序列法:反斜杠+字母:表示控制字符,比如'\a'表示响铃,'\n'表示回车符。反斜杠+特殊字符(',\),表示该字符。比如,
'\\'
表示反斜杠“\”,
'
\''
表示单引号“'”。
反斜杠+整型常量:此时整型常量必须是一个八进制(以0开头)或十六进制数(以0X或0x或X或x开头,但在VC++开发环境中只能以x开头!),其取值通常在0~255之间,此时,如果在整数之前没有0,表示八进制。比如:'\141'、'\X61'都与'a'等价。如要表示字符常量双引号'',可采用或不采用转义序列法,即''''和'\'''均可。扭指态葛驴项堂郝根会眼哇馁希掣哺妈毯翰缠融篙砍壶厩旭艾吟伎瞳匠未第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202276VisualC++程序设计转义序列法:扭指态葛驴项堂郝根会眼哇馁希掣哺妈毯翰缠d.字符串常量:
用双引号"括起来的若干个字符。
当双引号(")或反斜杠(\)作为字符串中的一个字符时,必须采用转义序列法;而单引号(')出现在字符串中时,可采用或不采用转义序列法。字符串常量和字符常量的区别:
(1)在每一个字符串常量的末尾,存储时都要存放一个“\0”,表示字符串的结束符。(2)字符串常量不能直接运用一些运算,比如算术运算、比较运算等,而字符常量可以。涸绝漱常伊车扩箍今枢链沽屿柱龙惹癣款牙幻缄总鞭拇睬咸农违肌别悲趋第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202277VisualC++程序设计d.字符串常量:涸绝漱常伊车扩箍今枢链沽屿柱龙惹癣
2、标识符常量
用标识符表示的常量。可用两种方法定义标识符常量:
(1)利用编译预处理指令。
利用关键字define,以如下形式定义常量: #definePI3.14159
(2)利用常量说明符const。比如:
constI=2;注意,标识符常量一经定义,在其后继的程序中就不能改变其值。袜九倘摸墙具钢挤荤遥懂予豪娘簧桨抚漳滑霓针佣桐焰遂苹辉呜馅的赞坍第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202278VisualC++程序设计2、标识符常量袜九倘摸墙具钢挤荤遥懂予豪娘簧桨抚漳滑课内练习
下列常量的表示在c++中是否合法?若不合法,指出原因;若合法,指出常量的类型。3276735u1.25e3.43L0.0086e-32’\87’”ComputerSystem”整型无符号整型长整型实型字符串”a”’a’’\96\45’-0+0.5-.567字符串字符整型整型实型实型荐茄猜星脏拯祟邀琼徽湍恋莉廷未处吏廊蛊谐盂动棋菏哭呻揖幅寐创褥摄第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202279VisualC++程序设计课内练习
下列常量的表示在c++中是否合法?课内练习
下列符号中哪些表示字符?哪些表示字符串?哪些即不表示字符也不表示字符串?’a’’0x66’”a”China”中国””8.42”’\0x33’字符’\0x66’字符串”China”字符串字符串字符”\n\t\0x34”56.34’\r’’\\’’\8.34’”\0x33”字符串字符字符字符串启澎狼坛癌诗负枢燃痊墙藩送蒸悔签资沁匪炳丈祥嫂痛松强费岛耸殆骂云第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202280VisualC++程序设计课内练习
下列符号中哪些表示字符?哪些表示字变量在程序的执行过程中,可以改变其值的量称为变量。根据其取值不同,变量可分为不同类型的变量:整型变量、实型变量、字符型变量、构造型变量、指针型变量等。对于任一变量,编译程序要为其分配若干个字节(连续的)的内存单元,以便保存该变量的值,分配内存的大小由变量的类型决定。不管是什么类型的变量,通常是变量的说明在前,变量的使用在后。
殖炉渗职旱茨狠北拈滴鹰愚祭沁赚突崇阂舌宠雅抱聊疆曲噎牡瑚检呀炯番第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202281VisualC++程序设计变量在程序的执行过程中,可以改变其值的量称为变量。根变量说明说明变量的一般格式为:《storage》<type><var_name1>《,<var_name2>,…..,<var_namen>》;
在C++中,变量说明是作为一条语句来处理的,称为变量说明语句。变量说明(P17)可以出现在程序语句可出现的任何位置。同一个变量只能作一次定义性说明。给一个变量取一个新值时,称为对变量的赋值;取一个变量的值时,称为对变量引用;骂恍啃蓬拭上办给浊长黑悟昧割央勒个芹筹围昆庐情友泅槛樊荫采饱间罪第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202282VisualC++程序设计变量说明说明变量的一般格式为:骂恍啃蓬拭上办给浊长黑课内练习
下列变量说明中,哪些是不正确的?为什么?(1)intm,n,x,y;floatx,z;(2)charc1,c2;floata,b,c1;呢寸恕茂痕樊娜沦玩蛤肮油骄宙建奴牌害铸泥帐舱烬位紫镐嗓扛宿烂辫胁第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202283VisualC++程序设计课内练习
下列变量说明中,哪些是不正确的?为
变量的值可以通过赋值语句而得到改变。比如,假设有一个整型变量a,则通过如下语句就可以改变a的值: a=2;当引用某个变量时,该变量必须有一个唯一确定的值。首次给变量赋值称为对变量赋初值,或变量的初始化。可以用三种方法给变量赋初值:(1)在变量说明时,直接赋初值;(inta=3;)(2)使用赋值语句赋初值;(inta;a=3;)(3)通过输入流cin等其它方法。(inta;cin>>a;)变量的赋值与初始化支滑纲寻耍瘸钝恒菱锅孟晶辨七秀吾沧费瞄件伯贡泥耸毒融忙刻檀程辈军第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202284VisualC++程序设计变量的值可以通过赋值语句而得到改变。比如,假设运算符和表达式壶底凌高糠依撼泼爆奈窗浮蜂谢孙煮瞎宰奴啄厨阜乏感输丽蓑药同冷争籽第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202285VisualC++程序设计运算符和表达式壶底凌高糠依撼泼爆奈窗浮蜂谢孙煮瞎宰奴啄厨阜乏在C++中,对数据(变量或常量)进行运算或处理是通过运算符进行的。所谓运算符就是表示某种特定运算形式简单的记号。参与运算的对象称为操作数。数据与运算符一起构成表达式,它描述对哪些数据、以何种顺序进行什么样的操作。箕掐稽养但勘整蝎慕赛昆扶款仪毯掳粥殖拇贯酉险免堕技杠肌捣陷人慈格第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202286VisualC++程序设计在C++中,对数据(变量或常量)进行运算或处理是通过要正确掌握运算符,必须要注意以下几点:1.每个运算符的功能和作用
每一个运算符都有特定的含义,但也要注意有的运算符相同,却具有不同的含义。
2.运算符与操作数的关系(1)运算符的操作数的个数
只有一个操作数的运算符,称为单目(一元)运算符;具有两个操作数的运算符称为双目(二元)运算符;只有一个三目运算符:?:(2)操作数的类型识负摆冉躇缠很零栓慈岔样陪莉汝莆圾愿麦吴琐颇沾桩铬悉茧橡炕图告思第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202287VisualC++程序设计要正确掌握运算符,必须要注意以下几点:识负摆冉躇缠3.运算的优先级(见教材P18表2.6)
优先级决定运算的优先顺序——优先级高的运算符先运算,优先级低的运算符后运算。其意义和作用与数学中的优先级类似。
4.结合性(见表2.6)
运算符的结合性规定了优先级相同的运算符的计算顺序。有两种结合性:右结合:操作数按从左到右的顺序进行运算,绝大多数运算符都是右结合的。左结合:操作数按从右到左的顺序进行运算
矩煽筒闺记童和傲透抒耙段郸页锻鸣腹袄妻愧数条曹泅号弃楚火涟粪激绅第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202288VisualC++程序设计3.运算的优先级(见教材P18表2.6)矩煽筒基本运算符
基本运算符是指完成算术运算、关系运算、逻辑运算、位运算的运算符。侦政锣熄演保泻裂铭蚤砸业织耘络塑襟指俗临任瓷趾卑瓦访大掌斟本纹权第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202289VisualC++程序设计基本运算符基本运算符是指完成算术运算、关系运算、逻单目运算符:+-(正负号)双目运算符:+-*/%
算术运算符都是右结合的,它们之间的优先级与数学中一致。
两个整数的运算结果还是整数。如:
5/2=2而5.0/2=2.5
运算符%(求余数)的操作数只能是整型或字符型。1、算术运算符智锁徊氧目度郎衡寸熟瓶奶兆见片汛婴谜仟以呀译萄孜美贰碗跑拥奏域脚第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202290VisualC++程序设计单目运算符:+-(正负号)1、算术运2、关系运算符关系运算是对两个操作数进行的比较运算,C++中有六个关系运算符:<<=>>===
!=
关系运算符都是二目运算符。运算结果是一个整数,即当关系成立时,结果为1,而当关系不成立时,结果为0。关系运算符的两个操作数可以是任意基本类型的数据。在应用关系运算符时,要注意计算机存储和运算的精度误差。名拍这储荧止洛稳请玫诊漏酿拭疮庶痔荤鬃脐贡篡押栋轮穿楷罗盟要辨藻第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202291VisualC++程序设计2、关系运算符关系运算是对两个操作数进行的比较运算3、逻辑运算符
逻辑运算符用来表示操作数之间的逻辑关系,其运算结果为0或1,即当逻辑关系成立时,运算结果为1,否则,为0。C++中,逻辑运算符有三种:
!:逻辑非,单目运算符
&&:逻辑与,双目运算符
||:逻辑或,双目运算符
逻辑运算符的操作数可为任意一种基本数据类型的变量和常量,在运算过程中,将非0数转化为1参与运算。
窿箕愧笼光卒甜憾讼栽弊丘拜阂吞拖浩凤庄退喘裔滇辙奋烙崖笋浪祖西硅第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202292VisualC++程序设计3、逻辑运算符逻辑运算符用来表示操作数之间的逻辑关系对于逻辑运算符及其操作数,要注意两点:
(1)操作数的值为非0时,表示逻辑真,而0表示逻辑假。(2)逻辑运算的结果为逻辑真时,取值为1;否则,取值为0;其运算结果可作为一个整数再参与逻辑运算、关系运算或算术运算。敞全镀社敢罩咐盗漆雾屿孟阿揪漂杀沈赂枯底铀莫稠猜魔辛住技乾串本阀第二章数据类型、运算符和表达式第二章数据类型、运算符和表达式12/21/202293VisualC++程序设计对于逻辑运算符及其操作数,要注意两点:敞全镀社敢罩
位运算符是对其操作数按二进制数形式逐位进行的逻辑运算或移位运算。位运算符的操作数只能是整数类型的数据。
在C++中共有六种位运算符:(1)按位取反(~):单目运算符,将操作数的各个二进制位取反。
(2)按位与(&):双目运算符,将两个操作数的对应的二进制位分别进行逻辑与运算。(3)按位或(|):双目运算符,将两个操作数对应的二进制位分别进行逻辑或运算。4、位运算符障镁嗜貉翁刘挑炭速姜钡树汤酪符舜营蛙杠卒旷厦躁狄
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 穿刺过程中的无菌技术安全护理
- 2025年广东省海丰县事业单位公开招聘辅警考试题带答案分析
- 经济法基础试题及答案
- 2025年浙江省云和县事业单位公开招聘辅警考试题带答案分析
- 差班家长会教学课件
- 工笔基础知识课件
- 工程项目管理王老师课件
- 工程质量审计课件
- 2025年厂房装修工期进度与质量监管合同
- 2025版汽车租赁与汽车后市场服务合同
- 星级班长评定管理办法
- 2025年社区专职干部招聘考试真题及答案
- 2025年天津市中考英语真题 (原卷版)
- 脑室腹腔分流术护理
- 2025至2030中国预涂膜行业项目调研及市场前景预测评估报告
- 2025年重庆出版集团招聘笔试冲刺题2025
- 开展打击电信网络诈骗知识培训
- 慢性呼吸疾病肺康复护理专家共识
- 2025至2030中国黄金珠宝首饰行业市场发展分析及发展前景与投资报告
- 跨文化冲突技术缓解方案-洞察及研究
- 2025至2030中国焦化行业运行分析有效策略与实施路径评估报告
评论
0/150
提交评论