版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据类型、运算符、表达式和分支结构通过C++如何计算两个整数之和?先看如下代码voidmain(){ c=a+b}任何一个C++程序都必须有一个且只能有一个main函数,该函数用来作为程序运行的入口。编译系统能识别a、b、c的真正含义吗?计算机并不聪明,我们必须先定义a、b、c,告诉编译器a、b、c的功能,然后再使用!变量及变量的定义voidmain(){ inta; intb; intc; c=a+b;}变量的定义语句,告诉编译器a为一个整型变量。思考如下问题:1)什么是变量?为何要定义a为变量?2)int是什么意思?本程序是计算任意两个整数之和,a、b的值是可以变化的。数据类型,表示变量存放什么种类的数据。还有实型(即小数,用float表示,如商品价格)、字符型(用char表示,如英文字母)等。变量及变量的定义voidmain(){ inta; intb; intc; c=a+b;}分号是一条语句的结束标志,语句相当于指令。语句必须以分号结束,但要切记:不是每一行都要以分号结束!因为不是每一行都表示一条语句!a、b、c表示某几个变量的名字,C++规定变量的命名必须为合法的标识符。标识符以字母或下划线开始的字母、数字以及下划线组成的字符序列称为标识符。在程序设计中标识符可用作变量名、常量名、函数名、用户自定义的数据类型名等。关于标识符的几点说明标识符的有效长度为1~247个字符。当标识符的长度超过247个字符时,超过限度的字符无效。标识符区分大小写。标识符不能为关键字。在C++语言中,已有特殊含义和用途的英文单词称为关键字或保留字,如int、float、char等(详细见教材P10-11),它们在程序中将不另作它用。
课内练习:指出下列用户自定义的标识符中哪些是合法的,哪些是非法的?为什么?abcEnglish2xyx-yifElse√√关键字√E大写,非关键字。注意:c++中标识符区分大小写。b(3)’def’Chine_bbb3yAbsFloatfloat√√√C++中的标点符号voidmain(){ inta; intb; intc; c=a+b;}C++中的标点符号共有9个:#()
{},:;…尝试运行程序voidmain(){ inta; intb; intc; c=a+b;}没有输出任何结果!?使用cout输出结果#include<iostream.h>voidmain(){ inta; intb; intc; c=a+b; cout<<c;}此语句表示将变量c的值输出显示在屏幕上要使用cout,必须引用头文件iostream.h,通常在程序的第一行加上此语句。#include<iostream.h>voidmain(){ inta; intb; intc; c=a+b; cout<<c<<endl;}再看输出结果此语句表示输出c的值后再输出一个回车换行符一个非常奇怪的结果?!原来a、b还没有具体的值!#include<iostream.h>voidmain(){ inta; intb; intc; a=1; b=2; c=a+b; cout<<c<<endl;}如何为变量赋值C++中“=“表示赋值运算符,不是数学中的等于符号!赋值运算符的左边必须为变量!三条赋值语句,表示将1赋值给变量a,将2赋值给变量b,将a与b的和赋值给变量c。变量初始化定义变量的同时为变量赋值,称为变量初始化。#include<iostream.h>voidmain(){ inta=1; intb=2; intc; c=a+b; cout<<c<<endl;}可简化为inta=1,b=2,c;相同数据类型的变量可在一条语句内定义,变量名之间用逗号隔开。通过cin为变量赋值#include<iostream.h>voidmain(){ inta,b,c; cin>>a; cin>>b; c=a+b; cout<<c<<endl;}程序运行时,通过键盘输入为a、b赋值,体现了程序的通用性。键盘输入,将1赋值给变量a键盘输入,将2赋值给变量b通过cin为变量赋值#include<iostream.h>voidmain(){ inta,b,c; cout<<"inputa:"; cin>>a; cout<<"inputb:"; cin>>b; c=a+b; cout<<c<<endl;}整型常量语句”inta=1;”中的1即为整型常量。十进制常量:第一位为1~9的任意整数(由0~9之间的整数构成),比如123,-45八进制常量:以0(零)开头的整数(由0~7之间的整数构成),比如043,071十六进制常量:以0X或0x开头的整数(由0~9之间的整数以及A~F之间的字母构成),比如,0X32,0xA3F长整型常量:以L或l结尾的整数,比如:123L,824l无符号整形常量:以U或u结尾的整数,比如:123u,824U计算两个小数之和#include<iostream.h>voidmain(){
floata,b,c; cout<<"inputa:"; cin>>a; cout<<"inputb:"; cin>>b; c=a+b; cout<<c<<endl;}a、b、c为float实型变量实型常量十进制小数形式:比如,1.23、.23、1.指数形式:格式为<小数>E(或e)<指数>,比如,2e3表示2000,2E-4表示0.0002
注意:E前必须有数字,E后指数部分必须是整数。计算两个小数的平均值#include<iostream.h>voidmain(){
floata,b; cout<<"inputa:"; cin>>a; cout<<"inputb:"; cin>>b; cout<<(a+b)/2<<endl;}可将整数赋值给实型变量b的值实际为3.0计算两个整数的平均值#include<iostream.h>voidmain(){
inta,b; cout<<"inputa:"; cin>>a; cout<<"inputb:"; cin>>b; cout<<(a+b)/2<<endl;}平均值为何不为2.5?C++规定:两个整数的运算结果还是整数。如,针对除号”/”,有:
5/2=2(取整,不四舍五入) 而5.0/2=2.5计算两个整数的平均值#include<iostream.h>voidmain(){
inta,b; cout<<"inputa:"; cin>>a; cout<<"inputb:"; cin>>b; cout<<(a+b)/2.0<<endl;}或者使用强制类型转化:float(a+b)/2具体请参照教材P27如何输出英文字母A#include<iostream.h>voidmain(){ cout<<A<<endl;}编译错误:A未申明的标识符。即A没有定义。前面已经强调过变量需先定义后使用,而此处的A是一个未定义的变量,而不是英文字母A。字符型常量用单引号‘
括起来的单个字符叫字符型常量。字符常量在计算机内是采用该字符的ASCII码值来表示的,其数据类型为char,如英文字母‘A’的ASCII码值为65。根据上一点,字符常量可参与算术运算。注意两个字符:‘和
\,不能直接表示为’
‘
’,‘
\’,而必须采用转义序列方法(见教材P15)。
转义序列法表示字符反斜杠+字母:表示控制字符,比如'\a'
表示响铃,'\n'
表示回车符。反斜杠+特殊字符(',\),表示该字符。比如,
'\\'
表示反斜杠“
\”,
'
\'
'
表示单引号“
'
”。
反斜杠+整型常量:此时整型常量必须是一个八进制(以0开头)或十六进制数(以0X或0x或X或x开头,但在VC++开发环境中只能以x开头!),其取值通常在0~255之间,此时,如果在整数之前没有0,表示八进制。比如:'\141'、'\X61'都与'a'等价。如要表示字符常量双引号''
,可采用或不采用转义序列法,即'
''
'
和'
\''
'
均可。正确输出英文字母A#include<iostream.h>voidmain(){
charc='A'; cout<<c<<endl; cout<<'A'<<'\n'; cout<<'\101'<<'\n'; cout<<'\x41'<<'\n';}字符串常量用双引号"
括起来的若干个字符。当双引号(")或反斜杠(\)作为字符串中的一个字符时,必须采用转义序列法;而单引号(')出现在字符串中时,可采用或不采用转义序列法。字符串常量和字符常量的区别:在每一个字符串常量的末尾,存储时都要存放一个“\0”,表示字符串的结束符。字符串常量不能直接运用一些运算,比如算术运算、比较运算等,而字符常量可以。输出一个简单图形#include<iostream.h>voidmain(){ cout<<"**********"<<'\n'; cout<<"**"<<'\n'; cout<<"**"<<'\n'; cout<<"**********"<<'\n';}小节,课内练习
下列常量的表示在c++中是否合法?若不合法,指出原因;若合法,指出常量的类型。3276735u1.25e3.43L0.0086e-32’\87’”ComputerSystem”整型无符号整型长整型实型字符串”a”’a’’\96\45’-0+0.5-.567字符串字符整型整型实型实型小节,课内练习
下列符号中哪些表示字符?哪些表示字符串?哪些即不表示字符也不表示字符串?’a’’0x66’”a”China”中国””8.42”’\0x33’字符’\0x66’字符串”China”字符串字符串字符”\n\t\0x34”56.34’\r’’\\’’\8.34’”\0x33”字符串字符字符字符串小节,课内练习
将下列数学表达式写成C++的表达式。sin(x)/(x-y)C++数学库函数见教材P402sqrt(s*(s-a)*(s-b)*(s-c))星号’*’表示数学里的乘号,不可省略!小节,课内练习
求出下列数学表达式的值。(1)5+7/3*4(2)’a’+23(3)23.5+9/5+0.5(4)23.5+9%5=13=120=25.0=27.5取模运算,即求余数,左右操作数必须为整数。程序的三种基本结构任一程序或函数从其执行行为的角度来分析,都是由三种基本结构组合而成的:顺序结构选择结构循环结构顺序结构这是一种最简单、最基本的结构。它的特点是:在这个结构内各块是按它们出现的顺序依次执行的。如下图所示:
顺序结构a块b块AB选择结构根据给定的条件判断在两条或多条可能的路径中选择哪一条。如下图所示:分支选择结构a块b块成立不成立条件AB循环结构根据某一种条件,重复执行某一个语句或若干序列。如下图所示:条件a块成立不成立AB
当型循环结构关系运算符与关系表达式
关系运算是对两个操作数进行的比较运算,C++中有六个关系运算符:
<<=>>=
==
!=
关系运算符都是二目运算符。关系表达式的运算结果是一个整数,当关系成立时,结果为1,而当关系不成立时,结果为0。选择结构之条件语句条件语句利用关键字if选择执行两个分支中的一个分支,因此通常也称为“if语句”,它有三种基本形式。单选条件语句二中选一条件语句嵌套条件语句例:当x≤1时,y=x,其中x、y均为整数。#include<iostream.h>voidmain(){ intx,y; cout<<"inputx:"; cin>>x;
if(x<=1) y=x; cout<<"y="<<y<<'\n';}单选条件语句单选if语句,注意:①条件表达式”x<=1”要用圆括号括起来②if所在行末尾没有分号!为什么???二中选一条件语句#include<iostream.h>voidmain(){ intx,y; cout<<"inputx:"; cin>>x; if(x<=1) y=x;
if(x>1) y=2*x-1; cout<<"y="<<y<<'\n';}分段函数y=x当x≤1y=2x-1当x>1可简化为:if(x<=1)y=x;elsey=2*x-1;代表条件x>1嵌套条件语句#include<iostream.h>voidmain(){ intx,y; cout<<"inputx:"; cin>>x; if(x<=1) y=x; if(x>1&&x<10) y=2*x-1; if(x>=10) y=3*x+11; cout<<"y="<<y<<'\n';}分段函数y=x当x≤1y=2x-1当1<x<10y=3x+11当x≥10疑问:①
能不能用else简化?怎么简化?②&&是什么?x>1&&x<10是何意?为何不写成1<x<10?&&为逻辑运算符,对应的表达式为逻辑表达式。逻辑运算符及逻辑表达式逻辑运算符用来表示操作数之间的逻辑关系。操作数可以是表达式,也可以为变量或常量。操作数的值为非0时,表示逻辑真,而0表示逻辑假。C++中,逻辑运算符有三种:
&&:逻辑与
||:逻辑或
!
:逻辑非逻辑与&&双目运算符只有当操作数全为逻辑真时,逻辑关系才成立,此时逻辑表达式的值为1;否者,为0。例:(以下的”=”均表示数学里的等于)如果x=1,y=1,则逻辑表达式
x>0&&y>0成立;
x&&y>0成立;x&&y成立。如果x=-1,y=1,则逻辑表达式
x>0&&y>0不成立;
但x&&y
成立。如果x=-1,y=0,则逻辑表达式
x&&y
不成立。逻辑或||双目运算符只要有一个操作数为逻辑真,逻辑关系就成立,此时逻辑表达式的值为1;否者,为0。例:(以下的”=”均表示数学里的等于)如果x=1,y=-1,则逻辑表达式
x>0||y>0成立;x||y成立。如果x=-1,y=1,则逻辑表达式
x>0||y>0成立;x||y成立。如果x=-1,y=-1,则逻辑表达式
x>0||y>0不成立;但x||y成立。逻辑非!单目运算符操作数为逻辑真时,逻辑关系不成立;反之,逻辑关系成立。例:
如果x的值为1,则逻辑表达式
!(x>0)不成立;
!(x<0)成立;
!(x==1)不成立;
!(x!=1)成立;
!x不成立。课内练习:
(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回到嵌套条件语句#include<iostream.h>voidmain(){ intx,y; cout<<"inputx:"; cin>>x; if(x<=1) y=x; if(x>1&&x<10) y=2*x-1; if(x>=10) y=3*x+11; cout<<"y="<<y<<'\n';}分段函数y=x当x≤1y=2x-1当1<x<10y=3x+11当x≥10可简化为:if(x<=1) y=x;elseif(x<10) y=2*x-1;
else y=3*x+11;为何不写成x>1&&x<10代表条件x>1代表条件x>=10条件运算符”?:”条件运算符“?:”为三目运算符,要求有三个操作对象,使用格式为:
<表达式1>?<表达式2>:<表达式3>
其中<表达式i>(i=1,2,3)为任一合法表达式。由条件运算符构成的式子称为条件表达式。计算条件表达式值的具体过程如下:先计算<表达式1>,若其值不等于0,则计算<表达式2>,并将计算的值作为该条件表达式的值;否则求解<表达式3>的值,并将该值作为条件表达式的值。例:求两个整数中的较大数#include<iostream.h>voidmain(){ inta,b,max; cout<<"inputa:"; cin>>a; cout<<"inputb:"; cin>>b; if(a<=b) max=b; else max=a; cout<<"max="<<max<<'\n';}可简化为:max=(a<=b)?b:a;例:输入两个整数,按从小到大的顺序输出这两个数。#include<iostream.h>voidmain(){ inta,b; cout<<"inputa:";cin>>a; cout<<"inputb:";cin>>b; if(a<=b) cout<<a<<','<<b<<'\n'; else cout<<b<<','<<a<<'\n';}一行可以写多条语句。另一种方法:如果a比b大,则将a、b的值交换后再输出。第一个算法:交换两个变量的值#include<iostream.h>voidmain(){ inta,b,t; cout<<"inputa:";cin>>a; cout<<"inputb:";cin>>b; if(a>b) {
t=a; a=b; b=t; } cout<<a<<','<<b<<'\n'; }可不可以写成:a=b;b=a;if分支语句如果不只一条,则须把这些语句用花括号括起来。用花括号括起来的语句称之为复合语句。逻辑表达式的副作用C++规定:在计算逻辑表达式的过程中,一旦可以确定整个表达式的值,就不再继续计算该表达式的剩余部分。这就是所谓的逻辑表达式的副作用。具体地说:对于a&&b&&c,只有a为非0时,才需要计算b的值,因为当a为0时,不管后面的项如何,都能得到该表达式的值就为0。同样只有在a和b都为非0的情况下才需要计算c的值。对于a||b||c,只要a为非0,就不需要判断b和c的值,而只有当a、b都为0时才需要计算c项。其它情况可以类推。几种运算符的优先级(详细见教材P18表2-6):
!>算术运算符>关系运算符>&&>||>赋值运算符
课内练习:设有变量说明: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自增、自减运算符在C++中,自增自减运算符有如下四种格式:
++i(前置自增:先将i的值加1,再将变化后的i值参与运算)
i++(后置自增:先将i参与运算,再将i的值加1)
--i(前置自减:先将i的值减1,再将变化后的i值参与运算)
i--
(后置自减:先将i参与运算,再将i的值减1)
它们都是单目运算符,操作数必须为变量,一般是整型变量,但也可以是实型或字符型变量。
自增、自减运算符的主要难点是前置和后置的区别,这也是今后使用这类运算符时容易出错的地方。概括地说,若++(或--)在变量之前(前置),则先使变量的值加1(或减1),再将改变之后的变量值参加运算;而当++(或--)在变量之后(后置)时,则先把变量的值参加运算,然后再将变量的值加1(或减1)。课内练习:已知inti=5,j;
求下列语句执行后i,j的值。①i++;②++i;j=i++;j=--i;即i=i+1,表达式i++的值为5,i=6即i=i+1,表达式i++的值为6,i=6即j=i;i=i+1;则i=6,j=5即i=i-1;j=i;则i=4,j=4课内练习:设有说明”inta=2,b=5,m;”,则执行表达式”m=a++>=3&&++b”后,a的值为________;b的值为________;m的值为________。350课内练习:设有说明:intx=13,y=14,z=16,k;执行下面语句后,x,y,z,k的值为多少?
k=(x++>--y)?y--:(--z<y)?--x:z++;结果x=14,y=13,z=16,k=15switch语句例:判断分数(百分制)的等级(五分制)#include<iostream.h>voidmain(){ intscore; chardegree; cout<<"inputscore:";cin>>score; if(score>=90&&score<=100) degree='A'; elseif(score>=80) degree='B'; elseif(score>=70) degree='C';
…… cout<<"degree="<<degree<<'\n';}score=score/10;if(score==9||score==10) degree='A';elseif(score==8) degree='B';elseif(score==7) degree='C';elseif(score==6)
degree='D';else
degree='E';使用switch语句score=score/10;if(score==9||score==10) degree='A';elseif(score==8) degree='B';elseif(score==7) degree='C';elseif(score==6)
degree='D';else
degree='E';score=score/10;switch(score){
case10: case9:degree='A';break; case8:degree='B';break; case7:degree='C';break; case6:degree='D';break;
default:degree='E';break;}不能写成casescore==9:使用switch语句的注意点score=score/10;switch(score){ case10: case9:degree='A';break; case8:degree='B';break; case7:degree='C';break; case6:degree='D';break; default:degree='E';break;}控制表达式,其值必须是整型、字符型或枚举类型!分支表达式,其值必须是整型、字符型或枚举类
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年农村人居环境整治红黑榜制度
- 神经外科患者饮食宣教
- 极端天气急救标准化建设
- 原发性肝癌的诊断与分期
- 老年人家庭环境安全评估与改造
- 医学26年:肿瘤治疗相关心血管损伤管理 心内科查房
- 广东省韶关市仁化县2025-2026学年八年级下学期期中质量监测物理试题(含答案)
- 脑梗塞康复护理指南
- 注:加★与为备用曲目说课稿2025学年初中音乐粤教版九年级下册-粤教版
- 2026年说课稿空白图片
- 仪表联锁培训课件
- 职工退休及养老待遇证明书(6篇)
- 可再生能源法解读
- 殡仪服务员职业技能竞赛考试题(附答案)
- 车间材料损耗管理制度
- 实验动物咽拭子采集流程规范
- 《神奇的马达加斯加》课件
- 《城市道路人行道设施设置规范》
- 初一到初三英语单词表2182个带音标打印版
- 《25 黄帝的传说》公开课一等奖创新教学设计及反思
- 国有林场(苗圃)财务制度
评论
0/150
提交评论