c++教案2.docx

上传人:b****8 文档编号:30077423 上传时间:2023-08-04 格式:DOCX 页数:26 大小:29.96KB
下载 相关 举报
c++教案2.docx_第1页
第1页 / 共26页
c++教案2.docx_第2页
第2页 / 共26页
c++教案2.docx_第3页
第3页 / 共26页
c++教案2.docx_第4页
第4页 / 共26页
c++教案2.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

c++教案2.docx

《c++教案2.docx》由会员分享,可在线阅读,更多相关《c++教案2.docx(26页珍藏版)》请在冰豆网上搜索。

c++教案2.docx

c++教案2

第二章基本数据类型与表达式

教学目标:

C++数据类型概述、整型数据

重点:

整型数据

难点:

C++数据类型概述

课时:

2课时总第9-10课时

教法:

讲授法

§2.1C++数据类型概述

一、C++固有的数据类型

1、整型类(int,short,long,char,enum,bool)

2、实型类(float,double,longdouble)

3、数组

4、指针类(指针,引用)

5、记录类(struct,union)

二、几点注意

1、基本数据类型:

整型类和实型类。

2、C++程序中的数据主要体现为常量和变量。

3、不同数据类型的数据存储格式不同,所能实施的操作也不相同。

§2.2整型数据

一、各种整型数据的基本情况(见表2-1)

二、整型(int)常量的表示

1、整型常量的表示方法:

☆十进制:

无前缀。

如:

12

☆八进制:

0前缀。

如:

012

☆十六进制:

0x(或0X)前缀。

如:

0x12

☆无符号数:

U(或u)后缀。

如:

12u

2、短整型(short)常量的表示方法:

由于短整型常量在求值过程中会被无条件地转换为整型常量,因此短整型常量是借助于整型常量来表示的。

3、长整型(long)常量的表示方法:

在整型常量表示方法的基础上加L(或l)后缀。

如:

012L

三、整型变量的定义与初始化

1、定义格式:

类型修饰符变量名[=表达式]

【,变量名[=表达式]】;

如:

inta;inta=3;

inta,b,c;inta,b=4,c=5;

注:

inta=3;

2、如果初始化数据的类型与所定义的变量的类型不一致,该数据将被转换为与变量类型相同。

如:

ints=109L;

longy=99;

§2.3字符型数据

作业:

教材习题全部(本节)

教学目标:

字符型数据

重点:

字符型数据

难点:

字符型数据

课时:

2课时总第11-12课时

教法:

讲授法

一、字符型数据的基本情况(见表2-2)

二、字符型常量的表示

1、除’,”,\之外的可显示字符用该字符直接表示,但必须用’’括起来。

如:

’a’

2、单引号内用\后跟一字母表示某些控制字符。

3、单引号内用\后跟一数被无条件地理解为

八进制数,表示该代码所代表的字符。

如:

’\15’代表CR

4、单引号内用\后跟一16进制数(以X或x打

头)表示该代码所代表的字符。

如:

’\X0D’代表CR

5、’(单引号)”(双引号)\(反斜杠)

的表示:

’(单引号):

’\’’

”(双引号):

’\”’

\(反斜杠):

’\\’

6、字符串常量用双引号括起来的字符序列

表示。

如:

”hello”

’\0’:

字符串结束符。

字符串结束符不显式地表示出来,计算字符串长度时也不把它包含在内,但它占一个字节的存储空间。

如:

”hello”长度为5,但是占6个字节的存储空间。

三、字符型变量的定义和初始化

类型修饰符变量名[=表达式]

【,变量名[=表达式]】;如:

charc1,c2,c3;

charc1=’x’,c2=’y’,c3=’z’;

四、字符型与整型的关系

1、在计算机内部,每个字符都与一个整

型的代码相对应。

如:

’A’的代码是65,’a’的代码是97。

2、在表达式求值过程中,所有的字符将

被转换为与其代码等值的整数。

如:

执行cout<<’A’+’B’;结果是131。

3、在输入输出时,C++的输入流和输出流可明确区分这两种数据类型。

如:

cout<<’A’;输出结果为A

cout<<65;输出结果为65

§2.4枚举型数据

教学目标:

枚举型数据

重点:

枚举型数据

难点:

枚举型数据

课时:

2课时总第13-14课时

教法:

讲授法

一、枚举型数据的基本情况(见表2-3)

1、枚举是一种用户自定义的数据类型,

使用前必须先定义。

2、枚举类型的值域由用户定义的一组

符号常量限定。

二、枚举类型的定义和枚举变量的定义

1、枚举类型的定义格式

enum枚举名{符号表};

如:

enumWEEKDAY{Sun,Mon,Tue,Wed,Thu,Fri,Sat};

2、枚举变量的定义

(1)用已定义的枚举类型名来定义枚举变量。

如:

WEEKDAYw1,w2;

WEEKDAYw1=Wed,w2=Sat;

(2)定义枚举类型的同时定义枚举变量。

如:

enumWEEKDAY{Sun,Mon,Tue,Wed,Thu,Fri,

Sat}w1,w2;

三、枚举型与整型的关系

1、枚举中的符号常量与整数有一一对应的关系,即每个符号常量对应一个整数。

(1)枚举中的符号常量依次与0,1,2…对应

如:

enumWEEKDAY{Sun,Mon,Tue,Wed,Thu,Fri,Sat};

(2)任意规定其对应关系

如:

enumSomeDigits{ONE=1,TWO,FIVE=5,SIX,

SEVEN};

其中符号常量与整数的对应关系为:

ONE=1,TWO=2,FIVE=5,SIX=6,SEVEN=7

注:

可用=为一个符号常量规定任意的对应整数;该整数加1就是下一个符号常量默认的对应整数。

2、在表达式求值过程中,枚举型被无条件转换为相应的整型。

如:

已知今天的值,求明天是星期几。

WEEKDAYnextDayOf(WEEKDAYtoday)

{if(today==Sat)returnSun;

returntoday+1;

}

3、枚举型数据的输入和输出都是借助于

整数来实现的。

如:

SomeDigitsdigit=TWO;

cout<

如:

WEEKDAYd;

cin>>d;则要使d的值为Fri,应键入5。

§2.5实型数据

教学目标:

实型数据

重点:

实型数据

难点:

符号常量与常值变量

课时:

2课时总第15-16课时

教法:

讲授法

一、实型数据的基本情况(见表2-4)

二、实型常量的表示

1、双精度(double)常量的表示

(1)常规表示法如:

32.30.323

(2)科学表示法如:

3.23e+13.23e-1

2、单精度(float)常量的表示:

在双精度常量表示的基础上加F(或f)后缀。

如:

32.3F3.23e+1F

3、长双精度(longdouble)常量的表示:

在双精度常量表示的基础上加L(或l)后缀。

如:

32.3L3.23e+1L

三、实型变量的定义和初始化

类型修饰符变量名[=表达式]

【,变量名[=表达式]】;

如:

doublex,y;

doublex=1.23,y=34.2;

§2.6符号常量与常值变量

一、符号常量

1、定义一个符号来代表某个常量。

如:

#definePI3.1416

2、使用符号常量的好处:

☆提高程序的可读性。

☆提高程序的可维护性。

☆提高程序的一致性。

二、常值变量

1、在一般变量的定义前加上保留字const。

如:

constdoublePI=3.1416;

2、常值变量在定义时必须初始化,且在

程序运行中保持初始值不变。

§2.7数值表达式

教学目标:

数值表达式

重点:

数值表达式

难点:

数值表达式

课时:

2课时总第17-18课时

教法:

讲授法

一、无操作符的表达式—简单表达式

1、最简单的表达式:

常量、变量、函数调用

2、每个表达式都有一个值:

☆常量的值:

常量数据本身。

☆变量的值:

存于该变量空间的数据。

☆函数的值:

函数返回的数据。

3、数值表达式:

整型类表达式和实型类表达式

二、算术操作符

+,-,*,/,%,+,-

1、/:

对于整型和实型有不同的意义。

(1)若两个操作数都是整数,则为整除操作(求商,舍余),操作结果为整数。

如:

10/3=3

(2)只要两个操作数中有一个为实数,则操作结果为实数。

如:

10.0/3=3.3333

2、%:

只用于整数的求余操作(求余,舍商)。

如:

10%3=1

3、+,-(取正,取负):

一元操作符,在表达式中可以跟在其他类型的操作符的后面,但不能跟在+(加号),-(减号)

后面。

如:

p*+qi/-3(√)

P++qi--3(×)

注:

两个操作符在一起,最好使用()

如:

p*(+q)i/(-3)

三、位操作符

<<,>>,|,&,∧,~

1、<<和>>(左移和右移)

如:

5<<20000010100010100(20)

操作数位数

如:

5>>10000010100000010

(2)

☆左移一位相当于乘以2。

☆右移一位相当于整除2。

2、|,&,∧

|:

按位或。

(有1则1,全0则0)

&:

按位与。

(有0则0,全1则1)

∧:

按位异或。

(同则0,异则1)

例见2.7-3

3、~:

按位取反。

(0变1,1变0)

如:

~0001100111100110

四、赋值操作符

1、赋值操作符=

2、赋值语句的格式:

变量=表达式;如:

k=7;

3、赋值操作符可连续使用。

如:

执行k=m=7;则k和m的值都为7。

五、复合赋值操作符

+=,-=,*=,/=,%=,<<=,>>=,|=,&=,^=

复合赋值与普通赋值有严格的对应关系。

即:

变量?

=表达式变量=变量?

(表达式)

(其中?

表示某个二元操作符)

如:

k+=3k=k+3

s*=j-7s=s*(j-7)

六、增1减1操作符(++,--)

教学目标:

数值表达式

重点:

数值表达式

难点:

数值表达式

课时:

2课时总第19-20课时

教法:

讲授法

1、++(前增1,如++i)

--(前减1,如--i)

先对变量增1(或减1),然后变量以增1

(或减1)后的值参与表达式的计算。

(先变值,后计算。

例1:

m=++k;

例2:

intk,d=5;

k=++d*2;

结果为:

d=6,k=12

2、++(后增1,如i++)

--(后减1,如i--)

变量先以原值参与表达式的计算,然后对

变量增1(或减1)。

(先计算,后变值。

例1:

m=k++;

例2:

intk,d=5;

k=d++*2;

结果为:

d=6,k=10

七、sizeof操作符

1、作用:

计算一数据或数据类型所占空间的字节数。

2、格式

例:

doubled=3;

cout<

八、操作符的优先级和结合性

1、优先级(见附录A)

当一个表达式中有多个操作符时,优先级高的先执行。

如:

22-2*5;

2、结合性

若表达式中相邻的两个操作符优先级相同,那么先执行哪个操作符,就由

前一个操作符的结合性确定。

如:

k=j+=5;

3、()具有最高的优先级,可强制改变运算顺序。

如:

x+3/y(x+3)/y

4、C++表达式与数学表达式的区别

(1)所有字符写在同一水平线上。

(2)算术运算符与数学中的运算符在写法

上有所区别。

(3)算术运算符不能省略。

3ab

(4)一些运算用函数实现。

pow:

乘方如:

sqrt:

开平方如:

log:

自然对数如:

lnxlog(x)

log10:

常用对数如:

lgxlog10(x)

exp:

以e为底的乘幂如:

exp(2.5)

sin:

正弦如:

sinxsin(x)

cos:

余弦如:

cosxcos(x)

使用这些函数时应注意:

1、参数必须放在()中。

2、在程序开始必须加上语句#include

(5)括号无大、中、小之分,全部用小括

号()来表示,而且可以嵌套。

九、类型的自动转换与强制转换

1、自动转换

当表达式中一个操作符的两个操作数类型不同时,其中一个操作数的类型将自动转换成与另一个操作数的类型相同。

(1)转换的优先顺序(见图2-1)

(2)转换规律

短的向长的靠拢,有符号的向无符号的靠拢;

整型向实型靠拢,低精度的向高精度的靠拢。

例:

4+23L-5.14L+23L-5.127L-5.1

27.0-5.121.9

(3)转换规律不适用的两种操作

☆只针对特定类型的操作。

(两边向操作符靠拢)

☆赋值或复合赋值操作。

(右边向变量靠拢)

例:

intk=3;doubled=2.718;

k+=d;//k=k+d;cout<

语句执行后的输出结果为5。

2、强制转换

(1)利用类型修饰符控制类型转换的过程。

(2)格式:

☆(类型修饰符)表达式//继承C语言格式

☆类型修饰符(表达式)//C++特有的格式

如:

float(j)或(float)j、(float)(j)

int(3.14+i)或(int)(3.14+i)

3、只有兼容的数据类型才能相互转换。

 

作业:

教材习题全部(本节)

教学目标:

逻辑型数据与逻辑表达式

重点:

逻辑型数据与逻辑表达式

难点:

逻辑型数据与逻辑表达式

课时:

2课时总第21-22课时

教法:

讲授法

§2.8逻辑型数据与逻辑表达式

一、逻辑型数据的基本情况(见表2-5)

1、逻辑型是用来判别真、假状态的数据类型。

2、逻辑常量只有两个:

true(真)和false(假)

3、逻辑变量的定义与初始化(格式同整型变量)

如:

boolx;boolx=true;

boolx,y,z;boolx=false,y=true,z=true;

二、逻辑表达式

1、无操作符的逻辑表达式—简单逻辑表达式

(逻辑常量、逻辑变量和逻辑型函数调用)

2、关系操作符和关系表达式

(1)关系操作符(==,!

=,>,<,>=,<=)

用于判断两个操作数是否相等或比较两者的

大小,比较结果为false或true。

如:

-3!

=3(值为true)-3==3(值为false)

(2)关系表达式:

由关系操作符构成的逻辑

表达式。

3、逻辑操作符和逻辑表达式

(1)逻辑操作符(!

||&&)

操作数必须是逻辑型(或可转换为逻辑型)的数据。

!

逻辑非(false变true,true变false)

||:

逻辑或(有true则true,全false则false)

&&:

逻辑与(有false则false,全true则true)

(2)逻辑表达式

表达式的值只能是false或true。

三、复合条件

1、&&和||可用于构造复合条件,其左右

两边的操作对象称为子条件。

2、子条件1&&子条件2:

表示两个子条件同时成立时这个复合条件才成立。

称为:

“子条件1且子条件2”。

3、子条件1||子条件2:

表示两个子条件中至少有一个成立时这个复合条件就成立。

称为:

“子条件1或子条件2”。

4、复合条件的典型应用:

判断一个数值是否落入指定的值域范围内。

☆若值域是一个连续区间:

用&&连接。

☆若值域是由相互分离的多个区间组成:

用||连接。

5、特殊情况下,可根据一个子条件的值来

判定复合条件的值。

E1&&E2:

若E1和E2中有一个值为false,

则该复合条件的值为false。

E1||E2:

若E1和E2中有一个值为true,则

该复合条件的值为true。

四、相反条件

1、若一个条件为true,则另一个条件必

为false;若一个条件为false,则另一

个条件必为true。

那么这两个条件互

为相反条件。

如:

x>y和x<=y互为相反条件。

2、构造相反条件的方法

☆使用!

如:

x>y的相反条件为!

(x>y)

☆利用配对关系(==和!

=,>和<=,<和>=)

如:

不用操作符!

,x<=y+3的相反条件

可表示为:

x>y+3

作业:

教材习题全部(本节)

教学目标:

逻辑型数据与逻辑表达式

重点:

逻辑型数据与逻辑表达式

难点:

逻辑型数据与逻辑表达式

课时:

2课时总第23-24课时

教法:

讲授法

五、等价条件

1、若两个逻辑表达式在任何情况下同为false或同为true,则这两个表达式所表达的条件称为等价条件。

如:

x>y和!

(x<=y)为等价条件

2、典型的等价形式

!

!

EE

!

(x==y)x!

=y

!

(x!

=y)x==y

!

(x>y)x<=y

!

(x<=y)x>y

!

(x=y

!

(x>=y)x

!

(E1&&E2)!

E1||!

E2

!

(E1||E2)!

E1&&!

E2

E1&&E2E2&&E1

E1||E2E2||E1

3、利用等价条件来求复合条件的相反条件

例1:

不用操作符!

,求x==3||x<-3的相反条件。

解:

!

(x==3||x<-3)!

(x==3)&&!

(x<-3)

x!

=3&&x>=-3

例2:

不用操作符!

,求x>=2&&x<=7的相反条件。

解:

!

(x>=2&&x<=7)!

(x>=2)||!

(x<=7)

x<2||x>7

六、永假条件和永真条件

如:

x<3&&x>15的值永为false,为永假条件。

y>0||y<=0的值永为true,为永真条件。

注:

false是最简单的永假条件,

true是最简单的永真条件。

七、逻辑型数据与其他数据类型的关系

1、逻辑型数据作为数值数据使用时,false转换为0,true转换为1。

2、字符型、枚举型、整型或实型数据值作为逻辑值使用时,一切0值转换成false,一切非0值转换成true。

3、指针值作为逻辑值使用时,空指针值转换成false,非空指针值转换成true。

总结:

0就是false,非0就是true。

说明:

1、数值型数据与逻辑型数据出现在同一表达式中时,逻辑型数据无条件地转换为数值型数据0或1。

例:

boolk=true;

intj=3;

cout<

输出结果为:

40

2、在用数值数据对逻辑变量进行初始化

或者赋值时,任何非0值都转换为1。

例:

boolk=9,h;

h=5;

cout<

输出结果为:

11

注:

逻辑型数据的输入和输出是借助整数

0和1来实现的。

3、逻辑操作符&&,||,!

与位操作符&,|,~的联系。

x&&ybool(x)&bool(y)

x||ybool(x)|bool(y)

!

x~bool(x)

例:

1&&2bool

(1)&bool

(2)1&1

1

八、逻辑型数据的应用

—条件操作符与条件表达式

1、条件操作符:

?

:

2、格式:

条件?

表达式1:

表达式2

3、条件表达式的值:

若条件成立,条件表达式的值就是表达式1的值,否则就是表达式2的值。

例:

intx,w;

cin>>x;

w=x>100?

0:

x*3;

cout<

若输入20,则输出60;若输入120,则输出0;

4、表达式1和表达式2应该是同一数据类型的表达式,若不同则进行类型转换。

5、表达式1和表达式2也可以是条件表达式,

即条件表达式可以嵌套。

例:

x>0?

1:

(x<0?

-1:

0)

则:

x>01

x<=0x<0:

-1

x=0:

0

作业:

教材习题全部(本节)

教学目标:

自定义类型修饰符

重点:

自定义类型修饰符

难点:

自定义类型修饰符

课时:

1课时总第25课时

教法:

讲授法

§2.9自定义类型修饰符

1、用自定义的标识符来代表一个特定的

数据类型。

2、格式:

typedef类型修饰符说明;

例:

typedefintDISTANCE;

DISTANCEi,Beijing_to_Tianjing;

inti,Beijing_to_Tianjing;

3、作用

☆提高程序的可读性。

☆提高程序的可维护性。

☆避免类型使用上的不一致性。

例:

已知程序中用unsignedchar型数据表示年龄,为了增加可读性,决定将之命名为AGE,则完成命名的定义是:

typedefunsignedcharAGE;

作业:

教材习题全部(本节)

教学目标:

表达式的副作用与表达式语句

重点:

表达式的副作用与表达式语句

难点:

表达式的副作用与表达式语句

课时:

2课时总第26-27课时

教法:

讲授法

§2.10表达式的副作用与表达式语句

一、表达式的副作用

1、在表达式的求值过程中不但要提取变

量的值,还可能改变变量的值。

如:

k=m++

2、表达式能产生副作用的原因:

引入了

具有副作用的操作。

☆赋值(=)

☆复合赋值(+=,-=,*=,/=,%=,

<<=,>>=,|=,&=,^=)

☆前增1前减1(++,--)

☆后增1后减1(++,--)

上述操作所作用的对象必须是变量,因此这些操作也称为:

作用于变量的操作。

3、对于“作用于变量的操作”(除后增1和后减1),作为操作结果的表达式的值就是所作用的变量所获得的值。

例:

intk=3;

cout<<(k+=2);

cout<<’’<

输出结果为:

55

4、可对同一变量连续施加若干个“作用于变量的操作”。

例:

intk=3;

cout<<++(k+=2);

cout<<’’<

输出结果为:

66

注:

(1)“作用于变量的操作”只能施加于变量对象。

如:

(p+3)-=k,++5,100=p都是错误的。

(2)当若干个“作用于变量的操作”施加于一变量时,除了最后一个外,不得有后增1或后减1操作。

如:

k++*=5是错误的.

二、表达式副作用的应用

1、逗号操作符与逗号表达式

(1)逗号操作符:

(2)格式:

表达式1,表达式2

(3)逗号表达式的值:

逗号表达式的值

就是表达式2的值。

如:

由x=(i++,j)可知:

x与j同值。

2、表达式语句

(1)表达式作为语句来使用。

(2)构成:

表达式后加分号;。

(3)功能:

表达式作为语句使用时,它的功能通过副作用来体现。

因此把没有副作用的表达式作为语句使用是无意义的。

如:

x+=5;(有意义)k+1;(无意义)

作业:

教材习题全部(本节)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 动物植物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1