北京师范大学《c程序设计》期末考试必备考试通关指导Word文档下载推荐.docx
- 文档编号:16259419
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:17
- 大小:72.66KB
北京师范大学《c程序设计》期末考试必备考试通关指导Word文档下载推荐.docx
《北京师范大学《c程序设计》期末考试必备考试通关指导Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《北京师范大学《c程序设计》期末考试必备考试通关指导Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。
--j;
(2)赋值运算符与赋值表达式
简单的赋值运算符"
="
表达式的类型:
等号左边对象(或变量)的类型
表达式的值:
等号左边对象(或变量)被赋值后的值
复合的赋值运算符
(3)关系运算与关系表达式
关系运算是一种比较简单的逻辑运算,优先次序为:
>
===!
=
优先级相同(高)优先级相同(低)
关系表达式是一种最简单的逻辑表达式,其结果类型为bool,值只能为true或false。
例如:
a>
b,cb)
C++中类的定义结束声明的符号是;
(2)类的成员
类定义中包括数据成员和成员函数的声明
(3)对象
一个对象由一组属性和对这组属性进行操作的一组服务组成,通俗地讲类的对象是该类的某一特定实体,即该类型的变量。
声明形式:
类名对象名;
对象是类的实例,为对象分配存储空间而不为类分配存储空间。
对象具有多态性、继承性和封装性。
(4)类中成员的访问方式
类中成员互访:
直接使用成员名
类外访问:
使用“对象名.成员名”方式访问public属性的成员
(5)成员函数
①成员函数的实现
成员函数的函数原型声明要写在类体中,函数原型说明了函数的参数表和返回值类型。
成员函数的具体实现写在类定义之外。
注意:
实现成员函数时要指明类的名称。
②成员函数调用中的目的对象
调用普通函数可以直接通过函数及其参数表进行调用。
调用成员函数需要通过一个对象名加上“.”,再加上成员函数名及其参数才能调用。
③带默认形参值的成员函数
像普通函数一样,类的成员函数也可以有默认形参值,其调用规则与普通函数相同。
类的成员函数的默认值一定要写在类定义中,而不能写在类定义之外的函数实现中。
classClock{
public:
voidsetTime(intnewH=0,intnewM=0,intnewS=0);
……
};
2、构造函数
构造函数是用于为对象分配内存空间、对类数据成员进行初始化并执行其他内部管理操作的函数。
构造函数(包括析构函数)是不能被继承的,所以,一个派生类只能调用它的直接基类的构造函数。
在对象创建时(如:
Clocka;
时)由系统自动调用构造函数。
如果程序中未声明,则系统自动产生出一个默认形式的构造函数——如:
Clock(){}。
构造函数允许为内联函数、重载函数、带默认形参值的函数。
(1)复制构造函数
复制构造函数(拷贝构造函数)是一种特殊的构造函数,其形参为本类的对象引用。
class类名
{public:
类名(形参);
.
类名:
:
类(类名
inta[10];
表示a为整型数组,有10个元素:
a[0]...a[9]
使用:
①必须先声明,后使用。
②只能逐个引用数组元素,而不能一次引用整个数组。
a[0]=a[5]+a[7]-a[2*3];
2、指针
指针提供了一种较为直接的地址操作手段。
正确地使用指针,可以方便、灵活而有效地组织和表示复杂的数据结构。
(1)内存空间的访问方式
①通过变量名访问——直接访问
②通过地址访问——间接访问
③地址运算符:
则
int*prt;
定义了一个指向int型数据的指针变量,这个指针的名称是ptr,专门用来存放int型数据的地址。
指针变量的初始化语法形式:
存储类型数据类型*指针名=初始地址;
例:
int*pa=
注意事项:
①用变量地址作为初时,该变量必须在指针初始化之前已说明过,且变量类型应与指针类型一致。
inta;
②可以用一个已赋初值的指针去初始化另一个指针变量。
int*p=
int*q=p;
③不要用一个内部auto变量去初始化static指针。
staticint*p=etx();
3、动态内存分配
在C++程序中建立和删除堆对象使用两个运算符:
new和delete。
(1)动态申请内存操作符new
new类型名T(初值列表)
功能:
在程序执行期间,申请用于存放T类型对象的内存空间,并依初值列表赋以初值。
结果值:
成功:
T类型的指针,指向新分配的内存。
失败:
0(NULL)
(2)释放内存操作符delete
delete指针P
释放指针P所指向的内存。
P必须是new操作的返回值。
第七章继承与派生
1、类的继承与派生
以原有的类为基础产生新的类,就是说新类继承了原有类的特征,也可以说是从原有类派生出新类。
通过C++中的继承机制,可以从现存类中构建其子类。
继承具有传递性。
派生新类的过程一般包括:
①吸收已有类的成员、②调整已有类成员、③添加新成员3个步骤。
继承的目的:
实现代码重用。
在类继承中,缺省的继承方式私有继承。
派生的目的:
当新的问题出现,原有程序无法解决(或不能完全解决)时,需要对原有程序进行改造。
(1)派生类生成过程
派生新类的3个步骤:
1.吸收基类成员——实现代码重用
2.改造基类成员——实现代码扩充
3.添加新的成员——实现代码扩充
2、类型兼容规则
类型兼容规则是指在需要基类对象的任何地方,都可以使用公有派生类的对象来替代。
一个公有派生类的对象在使用上可以被当作基类的对象,反之则禁止。
具体表现在:
①派生类的对象可以隐含转换为基类对象。
②派生类的对象可以初始化基类的引用。
③派生类的指针可以隐含转换为基类的指针。
根据类型兼容规则,可以在基类对象出现的场合使用派生类对象进行替代,但是替代之后派生类仅仅发挥出基类的作用。
因为,在替代之后,派生类对象就可以作为基类的对象使用,但通过基类对象名、指针只能使用从基类继承的成员。
3、派生类的构造函数
构造派生类的对象时,就要对基类的数据成员和派生类新增的数据成员进行初始化。
(1)单一继承时的构造函数
派生类名:
派生类名(基类所需的形参,本类成员所需的形参):
基类名(参数表)
{
本类成员初始化赋值语句;
(2)构造函数的调用顺序
①调用基类构造函数,调用顺序按照它们被继承时声明的顺序(从左向右)。
②调用成员对象的构造函数,调用顺序按照它们在类中声明的顺序。
③派生类的构造函数体中的内容。
第九章流类库与输入输出
1.在C++中,打开一个文件就是将这个文件与一个流建立关联;
关闭一个文件就是取消这种关联。
2.当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为ios:
in。
++的流类库预定义的.与标准输出设备相关联的流是cout,cin是输入流对象。
O流类列表:
三、重点习题
(一)单选题
1、若要在if后一对圆括号中表示条件“a不等于0成立”,则能正确表示这一关系的表达式为()。
0
B.!
a
=0
2、有如下程序:
intmain(){
intn=9;
while(n>
6){n--;
cout
usingnamespacestd;
intx=100;
intmain(){
intx=2021
x+=:
x;
{intx=500;
:
x+=x;
}
classA{
intnum;
A(inti){num=i;
A(A}
voidprint(){cout
structSTU{
charnum[10];
floatscore[3];
STUs[3]={
{"
20211"
90,95,85},
20212"
95,80,75},
20213"
100,95,90}
},*p=s;
inti;
floatsum=0;
for(i=0;
iscore[i];
intfun(inta,intb){
staticintm=1,i=2;
i+=m+1;
m=i+a+b;
returnm;
intk=5,m=2,p;
p=fun(k,m);
ints;
for(intk=3;
k
intsum=0,t;
for(intj=1;
j
classMyclass{
Myclass(inti=0,intj=0){
x=i;
y=j;
}
voidshow(){cout
classSample{
staticinti;
voidset(intx){i=x;
Sample(inti){this->
i+=i;
intSample:
i=10;
Samples(10);
Sample:
i+=100;
inta=2,b=-1,c=2;
if(a
voidf(intx,inty){
intt;
if(x
intfun(char*s){
char*p=s;
while(*p!
='
\0'
)p++;
returnp-s;
classexample{
example(intb){a=b++;
voidprint(){a=a+1;
intfun(inta){
staticintx=10;
inty=1;
x+=a;
a++;
y++;
return(x+y+a);
inti=3;
while(i
intn;
Sample(inti){n=i;
friendintadd(Sample
intadd(Sample}
Samples1(10),s2(2021
inta,max=0;
cin>
>
a;
while(________){
if(max>
A():
a
(1){}
voidshowa(){cout
A(inti=0){m=i;
intmain()
inta[]={10,202130,40};
int*pa=a;
for(inti=0;
i
classA
A(inti,intj){a=i;
b=j;
voidmove(intx,inty){a+=x;
b+=y;
voidshow(){cout
classBase
virtualvoidf1(){coutf1();
p->
f2();
f3();
p=
f1();
f4();
return0;
6、下面程序的输出结果是【】。
#include
inta=8,b=9;
int*constp=
cout
int*p;
【】
*p=25;
fstreamfile;
("
"
ios:
out);
if(!
file)
{
cout
voidf();
classT
T()
intn[][3]={90,80,70,40,50,60};
intn=100;
int
n++;
charc;
Base(charn):
c(n){}
virtual~Base(){cout
voidf(intcode)
try
if(code==0)throwcode;
if(code==1)throw'
x'
;
if(code==2)throw;
catch(intn){cout
intn[3][2]={10,202130,40,50,60};
for(intj=0;
voidswap(int
inta=17,b=11;
int*p1=
【】;
voiddisp(){cout
intf(int);
【Swap函数】
inta,b;
cout>
a>
b;
Swap(
【结构体Time】
TimemyTime;
;
intGetY(intx);
intx=0,y=0;
x;
cout2
classrectangle{
rectangle(){};
rectangle(doublea,doubleb){
length=a;
width=b;
voidaddarea(rectangler1,rectangler2){
cout<
<
"
时间是:
<
年"
月"
<
日"
小时"
分"
秒"
endl;
structTime{
shortyear;
shortmonth;
shortday;
shorthour;
shortminute;
shortsecond;
考试指导使用说明:
本考试指导适用于202103学期期末考试使用,包括正考和重修。
指导中的章节知识点涵盖考试所有内容,给出的习题为考试类型题,习题答案要点只作为参考,详见课程讲义或课程PPT。
在复习中有任何问题请到课程答疑区咨询。
祝大家考试顺利!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c 程序设计 北京师范大学c 程序设计期末考试必备考试通关指导 北京师范大学 程序设计 期末考试 必备 考试 通关 指导
![提示](https://static.bdocx.com/images/bang_tan.gif)