北京师范大学《c程序设计》期末考试必备考试通关指导.docx

上传人:b****6 文档编号:3353923 上传时间:2022-11-22 格式:DOCX 页数:17 大小:72.66KB
下载 相关 举报
北京师范大学《c程序设计》期末考试必备考试通关指导.docx_第1页
第1页 / 共17页
北京师范大学《c程序设计》期末考试必备考试通关指导.docx_第2页
第2页 / 共17页
北京师范大学《c程序设计》期末考试必备考试通关指导.docx_第3页
第3页 / 共17页
北京师范大学《c程序设计》期末考试必备考试通关指导.docx_第4页
第4页 / 共17页
北京师范大学《c程序设计》期末考试必备考试通关指导.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

北京师范大学《c程序设计》期末考试必备考试通关指导.docx

《北京师范大学《c程序设计》期末考试必备考试通关指导.docx》由会员分享,可在线阅读,更多相关《北京师范大学《c程序设计》期末考试必备考试通关指导.docx(17页珍藏版)》请在冰豆网上搜索。

北京师范大学《c程序设计》期末考试必备考试通关指导.docx

北京师范大学《c程序设计》期末考试必备考试通关指导

0523《C++程序设计》2021年6月期末在线考试指导

一、考试说明

(一)说明

满分为100分,考试时间为90分钟,考试形式为闭卷。

(二)题型及各题型所占分数和相应的答题技巧

1.单选题(每题分,共2021总计50分)

答题技巧:

选择最正确的那个选项,可以考虑排除法等选择技巧。

2.填空题(每题4分,共10题,总计40分)

答题技巧:

先定位考察的知识点是什么,再用专业的术语作答,答案尽量言简意赅。

3.编程题(每题5分,共2题,总计10分)

答题技巧:

按照题目要求,用标准的程序书写,注意细节。

二、复习重点内容

第二章C++简单程序设计

1、C++的特点

C++语言对C语言做了很多改进,引进类和对象的概念使得C语言发生了质变,即从面向过程变成面向对象。

在C++中,封装性、继承性和多态性是面向对象思想的主要特征。

2、C++程序的结构特征

C++程序通常由包括main()在内的一组函数组成,函数是构成C++程序的基本单位。

其中名为main的函数称为主函数,可放在程序的前部、中部和后部,不论放在程序的什么部位,它总是第一个被执行的函数。

因此,一个可运行的C++程序必须有主函数。

其他函数都是被调用函数,它们可以是系统提供的库函数,也可以是用户自己编写的函数。

用户自己编写的函数在使用前应给予“声明”。

可以说,C++是函数式的语言,程序的全部操作都是由函数完成的。

3、将C++源程序进行编译可得到目标文件。

在C++中,int、char和short三种类型数据在内存中所占用的字节数是由所用机器的字长决定

C++中cin是预定义的对象。

4、运算符与表达式

运算符:

如,+-*/%等。

表达式:

由运算符、操作数和括号组成,不带分号。

(1)算术运算符与算术表达式

基本算术运算符

+-*/(若整数相除,结果取整)%(取余,操作数为整数)

优先级与结合性:

先乘除,后加减,同级自左至右进行运算

++,--(自增、自减)例:

i++;--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*pa=

②可以用一个已赋初值的指针去初始化另一个指针变量。

int*p=

int*q=p;

③不要用一个内部auto变量去初始化static指针。

inta;

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;}

cout

usingnamespacestd;

classA{

intnum;

public:

A(inti){num=i;}

A(A}

voidprint(){cout

usingnamespacestd;

structSTU{

charnum[10];floatscore[3];

};

intmain(){

STUs[3]={

{"20211",90,95,85},

{"20212",95,80,75},

{"20213",100,95,90}

},*p=s;

inti;floatsum=0;

for(i=0;iscore[i];

cout

usingnamespacestd;

intfun(inta,intb){

staticintm=1,i=2;

i+=m+1;m=i+a+b;

returnm;

}

intmain(){

intk=5,m=2,p;

p=fun(k,m);cout

usingnamespacestd;

intmain(){

ints;

for(intk=3;k

usingnamespacestd;

intmain(){

intsum=0,t;

for(intj=1;j

usingnamespacestd;

classMyclass{

public:

Myclass(inti=0,intj=0){

x=i;

y=j;

}

voidshow(){cout

usingnamespacestd;

classSample{

public:

staticinti;

voidset(intx){i=x;}

Sample(inti){this->i+=i;}

};

intSample:

:

i=10;

intmain(){

Samples(10);

Sample:

:

i+=100;

cout

usingnamespacestd;

intmain(){

inta=2,b=-1,c=2;

if(a

usingnamespacestd;

voidf(intx,inty){

intt;

if(x

usingnamespacestd;

intfun(char*s){

char*p=s;

while(*p!

='\0')p++;

returnp-s;

}

intmain(){

cout

usingnamespacestd;

classexample{

inta;

public:

example(intb){a=b++;}

voidprint(){a=a+1;cout

usingnamespacestd;

intfun(inta){

staticintx=10;

inty=1;

x+=a;

a++;

y++;

return(x+y+a);

}

intmain(){

inti=3;

while(i

usingnamespacestd;

classSample{

intn;

public:

Sample(inti){n=i;}

friendintadd(Sample

};

intadd(Sample}

intmain(){

Samples1(10),s2(2021

cout

usingnamespacestd;

intmain(){

inta,max=0;

cin>>a;

while(________){

if(max>a;

}

cout

usingnamespacestd;

classA{

inta;

public:

A():

a

(1){}

voidshowa(){cout

usingnamespacestd;

classA{

public:

A(inti=0){m=i;cout

usingnamespacestd;

intmain()

{

inta[]={10,202130,40};

int*pa=a;

for(inti=0;i

usingnamespacestd;

classA

{

public:

A(inti,intj){a=i;b=j;}

voidmove(intx,inty){a+=x;b+=y;}

voidshow(){cout

usingnamespacestd;

classBase

{

public:

virtualvoidf1(){coutf1();

p->f2();

p->f3();

p=

p->f1();

p->f2();

p->f4();

return0;

}

6、下面程序的输出结果是【】。

#include

usingnamespacestd;

intmain()

{

inta=8,b=9;

int*constp=

cout

usingnamespacestd;

intmain()

{

int*p;

【】

*p=25;

cout

#include

usingnamespacestd;

intmain()

{

fstreamfile;

("",ios:

:

out);

if(!

file)

{

cout

usingnamespacestd;

voidf();

classT

{

public:

T()

{

cout

usingnamespacestd;

intn[][3]={90,80,70,40,50,60};

intmain()

{

intn=100;

int

n++;

cout

usingnamespacestd;

classBase

{

charc;

public:

Base(charn):

c(n){}

virtual~Base(){cout

usingnamespacestd;

voidf(intcode)

{

try

{

if(code==0)throwcode;

if(code==1)throw'x';

if(code==2)throw;

}

catch(intn){cout

usingnamespacestd;

intmain()

{

intn[3][2]={10,202130,40,50,60};

for(intj=0;j

usingnamespacestd;

voidswap(int

intmain()

{

inta=17,b=11;

int*p1=

【】;

cout

usingnamespacestd;

classA

{

public:

voiddisp(){cout

usingnamespacestd;

intf(int);

intmain()

{

try

{

cout

usingnamespacestd;

【Swap函数】

intmain(){

inta,b;

cout>a>>b;

Swap(

cout

usingnamespacestd;

【结构体Time】

intmain(){

TimemyTime;

cout>;

cout>;

cout>;

cout>;

cout>;

cout>;

cout

usingnamespacestd;

intGetY(intx);

intmain(){

intx=0,y=0;

cout>x;

cout2

【Swap函数】

intmain(){

inta,b;

cout>a>>b;

Swap(

cout

usingnamespacestd;

classrectangle{

public:

rectangle(){};

rectangle(doublea,doubleb){

length=a;

width=b;

}

voidaddarea(rectangler1,rectangler2){

cout

usingnamespacestd;

【结构体Time】

intmain(){

TimemyTime;

cout>;

cout>;

cout>;

cout>;

cout>;

cout>;

cout<<"时间是:

"<<<<"年"<<<<"月"<<

<<"日"<<<<"小时"<<<<"分"<<<<"秒"<

return0;

}

structTime{

shortyear;

shortmonth;

shortday;

shorthour;

shortminute;

shortsecond;

};

 

考试指导使用说明:

本考试指导适用于202103学期期末考试使用,包括正考和重修。

指导中的章节知识点涵盖考试所有内容,给出的习题为考试类型题,习题答案要点只作为参考,详见课程讲义或课程PPT。

在复习中有任何问题请到课程答疑区咨询。

祝大家考试顺利!

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

当前位置:首页 > 小学教育 > 语文

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

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