第02章数据类型与表达式(4学时)_第1页
第02章数据类型与表达式(4学时)_第2页
第02章数据类型与表达式(4学时)_第3页
第02章数据类型与表达式(4学时)_第4页
第02章数据类型与表达式(4学时)_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章数据类型与表达式2.1数据类型2.2常量2.3变量2.4运算符2.5算术运算符2.6赋值运算符2.7逗号运算符2.1C++的数据类型回顾:数的分类和概念

2.1C++的数据类型同样计算机处理的数据,也可以分类;例如:整型数据、浮点型数据、字符型数据、音频数据、视频数据等。数据类型的定义:值的集合以及这个集合上的一组操作。例如:int

={n|-231≤n≤231-1,n∈Z},+,-,*,/,…shortint={n|-215≤n≤

215-1,n∈Z},+,-,*,/,…2.1C++的数据类型

2.1C++的数据类型

2.2常量C++的数据包括常量与变量;2.2.1什么是常量回顾:常数是指固定不变的数值。如圆周率π≈3.1415926535﹑真空光速c=2.99792458×108

m/s等。常数是具有一定含义的名称,用于代替数字或字符串,其值从不改变。计算机:常量是指在程序运行过程中其值不能改变的量。常量分为直接常量和符号常量。例如:#definePI32常量直接常量直接常量分为整型常量、实型常量、字符常量和字符串常量。1.整型常量可以用3种不同的方式表示:十进制整数:1357,-432,0,123L,0L等;八进制整数:020。十六进制整数:0X20,0x20。2.实型常量两种不同的表示方式:小数形式:21.5,-7.9,12F,-43f;1234L,-43l。指数形式:2.3e-2,3e8;2.2.2直接常量3.字符常量用单撇号界定的一个字符。如′a′,′#′,′?′。以\开头的字符常量为转义字符,转义字符表见表2.2。字符数据是以ASCII码存储的。4.字符串常量用双撇号括起来的多个字符,如″abc″,″Hello!″,″a+b″。字符串最后具有一个′\0′作为结束标志。字符串常量″abc\n″包含几个字符?cout<<″abc\\\n″<<endl;//输出?cout<<″Isay\″Thankyou!\″\n″;2.2.2直接常量例2.1将字符赋给整型变量。#include<iostream>using

namespace

std;int

main(){

inti,j; i=′A′;//字符常量赋给整型变量i j=′B′; cout<<i<<′′<<j<<′\n′;

return0;}2.2.2直接常量例2.2小写字母转换为大写字母。#include<iostream>using

namespacestd;int

main(){

charc1,c2; c1=′a′; c2=′b′; c1=c1-32; c2=c2-32; cout<<c1<<′′<<c2<<endl;

return0;}2.2.4符号常量符号常量用符号名代表一个常量。如圆周率:#define

PI3.14真空光速:#deifne

c2.99792458e8使用符号常量含义清楚,修改方便。2.2.4符号常量例2.3计算圆的面积s。#include<iostream>usingnamespacestd;#definePI3.1415926535intmain(){ floats,r; cin>>r; s=PI*r*r; cout<<″s=″<<s<<endl;

return0;}2.3变量2.3.1什么是变量回顾:变量是指没有固定的值,可以改变的数。用字母符号来表达变量,如y=x2+2*x+1。计算机:变量是指程序运行期间其值可以改变的量。变量有变量名,并在内存中占一定的存储单元,在该存储单元中存放变量的值。2.3变量2.3.2变量名规则标识符(identifier)的命名规则标识符由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。标识符区分大小写字母。标识符不能与关键字,或其他标识符同名。下列是不是合法的标识符?sum,SUM,average,total,day,x1,li_lingU.S.A.,$12.3,3G,Lingli,int,float.2.3

变量2.3.3变量定义变量必须先定义,后使用;定义变量的一般形式是变量类型变量名1,变量名2,…;float

a,b,c,d,e;可以在定义变量时指定它的初值。如floata=83.5,b,c=64.5,d=81.2,e;2.3变量2.3.4变量初始化初始化值是常量,或有确定值的表达式。如floata=0,b=5.78*3.5,c=2*sin(2.0);如果变量未初始化,则初始值不确定。例如,inta;a的值可能:1.48544e-38;inta=3;相当于:int

a;

a=3;多个变量赋予同一初值,必须分别指定。float

a=b=c=4.5;

//错误float

a=4.5,b=4.5,c=4.5;

//正确float

a,b,c=4.5;

a=b=c;

//正确2.3变量2.3.5常变量(constantvariable)在定义变量时,如果加上const,则变量的值在程序运行期间不能改变,这种变量称为常变量。定义常变量时必须初始化,此后它的值不能再改变。又称为只读变量(read-only-variable)。例如,const

int

a=3;const

intb=3+6,c=3*cos(1.5);2.3变量例2.4:大约在1500年前,《孙子算经》中就记载了这个有趣的问题。书中是这样叙述的:“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?”思路:解一元一次方程解:设兔有x只,则鸡有(35-x)只。4x+2(35-x)=94x=12鸡:35-12=23(只)2.3变量编程解答:雉兔同笼#include<stdio.h>int

main(){

const

int

heads=35,foots=94;

//已知条件

intx;

//设兔有x只,则鸡有(35-x)只。

//列方程:x*4+(heads-x)*2=foots;x=(foots-2*heads)/2;printf("兔:%d只,鸡;%d只\n",

x,

heads-x);

return0;}2.4C++的运算符C++的运算符:算术运算符:+-*/%++--关系运算符:>

<

==

>=

<=

!=逻辑运算符:&&

||!位运算符:<<>>

&

|

^

~赋值运算符:

=+=-=*=…条件运算符:

?:逗号运算符:

,2.4C++的运算符C++的运算符指针运算符:

*引用运算符和地址运算符:

&求字节数运算符:

sizeof强制类型转换运算符:

(类型)

或类型(

)成员运算符.指向成员的运算符->下标运算符[]其他如函数调用运算符()2.5算术运算符2.5.1基本算术运算符基本算术运算符:+

-*/

模运算符:

%

%两侧均应为整型数据,如7%4=3。说明两个整数相除的结果为整数,舍去小数部分,如5/3=1,-5/3=-1。如果参加+,-,*,/运算的两个数中有一个数为float型数据,则运算的结果是double型。2.5算术运算符2.5.2算术表达式用算术运算符和括号将运算对象连接起来的符合语法规则的式子;例如:a*b/c-1.5+′a′优先级和结合性。优先级,如:

a-b*c结合方向,左结合性,如:a-b+c运算符的优先级别和结合性见附录B。2.5算术运算符2.5.3混合运算不同类型数据之间进行运算,要先转换成同一类型,然后进行运算。10+′a′+1.5-8765.1234*′b′转换的规则按图所示。例如:inti;floatf;double

d;longe;10+′a′+i*f-d/e2.5算术运算符2.5.4自增和自减运算符前置递增,前置递减++i,例如,

i=3,

j=++i,

j=?,i=?--i,例如,

i=3,

j=++i,

j=?,i=?后置递增,后置递减i++例如,

i=3

,

j=i++,

j=?,i=?i--例如,

i=3

,

j=i--,

j=?,i=?请注意:自增(减)运算符只能用于变量,而不能用于常量或表达式。自增(减)运算符的结合方向是右结合性。2.5算术运算符2.5.5强制类型转换运算符自动类型转化,在表达式中不同类型的数据会自动地转换类型,以进行运算。强制类型转换,

一般形式为:(类型名)(表达式)或类型名(表达式);强制类型转换时,得到一个所需类型的中间变量,但原来变量的类型未发生变化。例如:doublea=(double)(x+y);

float

x;inty=(int)x;x原来的类型和值都不变。2.5算术运算符例2.5强制类型转换。#include<iostream>using

namespace

std;int

main(){

floatx;int

i;

x=3.6;i=(int)x;cout<<″x=″<<x<<″,i=″<<i<<endl;

return

0;}2.6赋值运算符

2.6.1赋值运算符=赋值符号的作用是将一个数据赋给一个变量。如int

r=3;doubles=3.14159*r*r;结合方向是右结合性。inta,b,c;a=b=c=4.5;2.6赋值运算符2.6.2赋值过程中的类型转换。赋值过程中右边表达式要转化为左边变量的数据类型。int

n=2.6;//舍弃其小数部分。floatf=9;inta=‘A’;short

inti=289;charc=i;//发生截断unsigned

shorta;short

intb=-1;a=b;。?2.6赋值运算符2.6.3复合的赋值运算符语法格式:aoperator=b;等价于a=aoperator

b;例如,可以有a+=3等价于a=a+3x*=y+8等价于x=x*(y+8)x%=3等价于x=x%3有10种复合运算符:+=,

-=,

*=,

/=,

%=,<<=,

>>=,

&=,

^=,

|=2.6赋值运算符2.6.4赋值表达式由赋值运算符将一个变量和一个表达式连接起来的式子。一般形式:<变量><赋值运算符><表达式>左侧的变量称为左值(leftvalue)。右侧的表达式称为右值(rightvalue)。例如:a=b=c=5

a=(b=4)+(c=6)(a=3*5)=4*3

//? a+=a-=a*a//?a=3*5=4*3//?对与错2.7逗号运算符逗号运算符的一般形式为表达式1,表达式2,…,表达式n优先级:最低;结合方向为:左结合性;例如,分析下列逗号表达式的值a=3*5,

a*4(a=3*5,a*4),

a+5x=(a=3,6*3)x=a=3,6*a2.8综合应用题例2.6数学趣味小故事:高斯念小学的时候,有一次在老师教完加法后,因为老师想要休息,所以便出了一道题目要同学们算算看,题目是:1+2+3+…+97+98+99+100=?老师心里正想,这下子小朋友一定要算到下课了吧!正要借口出去时,却被高斯叫住了!原来呀,高斯已经算出来了,小朋友你可知道他是如何算的吗?2.8综合应用题编程解答:1+2+3+…+97+98+99+100=?#include<stdio.h>int

main(){

//已知条件

const

intn=100;

//求sn=1+2+…+n;

//使用高斯方法解答

intsn=(1+n)*n/2;printf("sn=1+2+…+n=%d\n",

sn);

return0;}2.8综合应用题编程解答:1+2+3+…+97+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论