西北大学《面向对象程序设计》2020-2021学年期末试卷.docxVIP

  • 0
  • 0
  • 约2.67千字
  • 约 6页
  • 2026-01-20 发布于江西
  • 举报

西北大学《面向对象程序设计》2020-2021学年期末试卷.docx

西北大学《面向对象程序设计》2020—2021学年第一学期期末试卷一、选择题(20分)

1.下列函数原型声明语句中,错误的是

A.intf(void);B.voidf(hat);C.intf(a);D.voidf(doublea);

2.如果有洒t型变量a,则定义指向变量a的指针P正确的写法是 A.intP=aB.int*P=&aC.int&p=*aD.int*P=a

3.假定指针变量P定义为“int冰P=flewint(100);”,要释放P所指向盼动态内存,应使用语句

A.deletep;B.delete*p;C.delete&p;D.delete[]p;4.假定A为一个类,则执行“Aa[3],b(3);”语句时调用该类构造函数的次数为

A.3B.4C.5D.9

5.C++中定义标准输入输出的痒为

A.stdioB.mathC。iostream;D.stdlib

6.允许用户为类定义一种模式,使碍类中的某些数据成员及某些成员函数的返函值能

取任意类型,这是l个

A.类模板B.模板类C.函数模板D.模板函数7.下列关于运算符重载的叙述中,正确的是

A.通过运算符重载,可以定义新的运算符

B.有的运算符只能作为成员函数重载

C.若重载运算符+,则相应的运算符函数名是+

D.重载一个二元运算符时,必须声明两个形参

8.当使用ofstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式

A.ios::out|ios::binaryB.ios::in|ios::binary C.ios::outD.ios::in

9.有关函数模板和模板函数说法错误的是

A.函数模板只是对函数的描述,编译器不为其产生任何执行代码,所以它不是一个

实实在在的函数

B.模板函数是实实在在的函数,它由编译系统在遇到具体函数调用时所生成,并调

用执行

C.函数模板需要实例化为模板函数后才能执行

D.当函数模板和一般函数同名时,系统先去匹配函数模板,将其实例化后进行调用

10.对类的构造函数和析构函数描述正确的是”

A.构造函数可以重载,析构函数不能重载

B.构造函数不能重载,析构函数可以重载C.构造函数可以重载,析构函数也可以重载

D.构造函数不能重载,析构函数也不能重载

二、填空题(30分)

1、类的继承是指子类继承基类的________和成员函数。

2、不同对象可以调用相同名称的函数,但可导致完全不同的行为的现象称为________。

3、________指令指示编译器将一个源文件嵌入到带该指令的源文件之中。

4、设类A有成员函数

voidFun(void);

若要定义一个指向类成员函数的指针变量pafn来指向Fun,该指针变量的声明语句是:________。

5、设在程序中使用如下语句申请了一个对象数组:

Point*ptr=newPoint[2];

则在需要释放ptr指向的动态数组对象时,所使用的语句是________。

6.复杂对象可以由简单对象构成,这种现象称为____。

7.如有“char*p=Hello;”,则语句“cout*(p+1);”输出值是_____。

8.基类和派生类的关系称为_____。

9.C++对其对象的数据成员和成员函数的访问是通过_____来限制的。10.假定x=10,则表达式x=10?20:30的值为_____。

三、程序分析题(60分)

1.给出下面程序的输出结果。

#includeiostream

usingnamespacestd;

templateclassT

Tmax(Tml,Tm2)

{return(mlm2)?ml:m2;}

voidmain(){

coutmax(1,7)\tmax(2.0,5.0)endl;

coutmax(‘y,‘b)\tmax(A,a)endl;}

2.给出下面程序的输出结果

#includeiostream

usingnamespacestd;

voidmain()

{

inta[]={10,20,30,40},*pa=a;int*pb=pa;

pb++;

cout*paendl;

3.给出下面程序的输出结果

#includeiostream

usingnamespacestd;

templateclassT

文档评论(0)

1亿VIP精品文档

相关文档