- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C讲义-第八章习题
C++讲义-第八章习题
名词解释
成员指针;对象指针;对象数组;常对象;常数据成员;常成员函数;转换函数
选择题
1.已知一个类A,指向类A成员函数的指针是( )。假设类有三个公有成员:void f1(int)、void f2(int)和int a。
A.A *p; B.int A::*pc=A::a C.void A:: *pa( ) D.void (A::*pa)(int);
2.运算符-*的功能是( )。
A.用来表示指向对象指针对指向类成员指针的操作
B.用来表示对象对指向类成员指针的操作
C.用来表示指向对象指针对类成员的操作
D.用来表示对象类成员的操作
3.已知f1(int )是类A的公有成员函数,p是指向成员函数f1()的指针,下列引用正确的是( )
A.p=f1; B.p=A::f1; C.p=A::f1(); D.p=f1();
4.已知:p是一个指向类A数据成员m的指针,A1是类A的一个对象。如果要给m赋值为5。下列正确的是( )。
A.A1.p=5; B.A1-p=5; C.A1.*p=5; D.*A1.p=5;
5.已知:类A中一个成员函数说明如下:void Set( A a);其中,Aa的含意是( )。
A.指向类A的指针为a
B.将a的地址值值赋给变量Set
C.a是类A的对象引用,用来作函数Set()的参数
D.变量A与a按位与作为函数Set()的形参
6.下列关于对象数组的描述中,错误的是( )。
A.对象数组的下标是从0开始的
B.对象数组的数组名是一个常量指针
C.对象数组的每一个元素是同一个类的对象
D.对象数组只能赋初值,而不能被赋值
7.下列定义中,指向一维数组指针的定义是( )
A.int *p[5]; B.int (*p)[5]; C.(int*)p[5]; D.int *p[ ];
8.下列的定义中,ptr应该是( )
const char *ptr;
A.指向字符常量的指针 B.指向字符的常量指针
C.指向字符串常量的指针 D.指向字符串的常量指针
9.已知:print()函数是一个类的常成员函数,它无返回值,下列表示正确的是( )
A.void print() const; B.const void print();
C.void const print(); D.void print(const);
10.关于new运算符的下列描述中,错误的是( )
A.它可以用来动态创建对象和对象数组。
B.使用它创建的对象或对象数组可以使用运算符delete删除。
C.使用它创建对象时要调用构造函数。
D.使用它创建对象数组时必须指定初值。
11.关于delete运算符的下列描述中,错误的是( )
A.它必须用于new运算符返回的指针。
B.它也适用于空指针。
C.对一个指针可以使用多次该运算符。
D.指针名前只用一对方括号符,不管所删除数组的维数。
12.具有转换函数功能的构造函数,应该是( )
A.不带参数的构造函数
B.带有一个参数的构造函数
C.带有两个以上参数的构造函数
D.缺省的构造函数。
三.判断下列描述的正确性
1.指向对象的指针和指向类的成员的指针在表示形式上是不相同的。
2.已知:m是类A的对象,n是类A的公有数据成员,p是指向类A中n成员指针。下述两种表示是等价的。
m.n与m..*p
3.指向对象的指针与对象都可以作函数参数,但是使用前者比后者好些。
4.对象引用作函数参数比用对象指针作函数参数更方便。
5.对象数组的元素可以是不同类的对象。
6.对象数组既可以赋初值又可以被整体赋值。
7.指向对象数组的指针不一定必须指向数组的首元素。
8.一维对象指针数组的每个元素应该是某个类的对象的地址值。
9.cont char *p说明了p是指向字符串的常量指针。
10.一个类的构造函数中可以不包含对其子对象的初始化。
11.转换函数不是成员函数,它是用来进行强制类型转换的。
四.分析下列程序的运行结果
1.程序清单如下:
#includeiostream.h
class A
{
public:
A();
A(int i,int j);
~A();
void Set(int i,int j) { a=i; b=j; }
private:
int a,b;
};
A::A()
{
a=0;b=0;cout默认构造函数被调用!\n;
}
A::A(int i,int j)
{
a=i; b=j; cout构造函数被调用\n;
您可能关注的文档
- Adobe FireWorks简介.doc
- Adobe考试试题及答案.doc
- Adobe Reader 书签插件(纯手工)-让PDF文件也支持书签功能.docx
- ADONET认证题库第2套.doc
- ADSL拨号软件的安装和设置.doc
- Af 其他设备、设施、配件、材料购销合同.doc
- AFN5050和AFN100常见技术问题.doc
- Agilent的柱资料.doc
- Agilent射频阻抗材料分析仪招标文件.doc
- AHP和ANP在PHRM中的应用.doc
- 金融产品2024年投资策略报告:积极适应市场风格,行为金融+机器学习新发现.pdf
- 交运物流2024年度投资策略:转型十字路,峰回路又转(2023120317).pdf
- 建材行业2024年投资策略报告:板块持续磨底,重点关注需求侧复苏.pdf
- 宏观2024年投资策略报告:复苏之路.pdf
- 光储氢2024年投资策略报告:复苏在春季,需求的非线性增长曙光初现.pdf
- 公用环保2024年投资策略报告:电改持续推进,火电盈利稳定性有望进一步提升.pdf
- 房地产2024年投资策略报告:聚焦三大工程,静待需求修复.pdf
- 保险2024年投资策略报告:资产负债匹配穿越利率周期.pdf
- 政策研究2024年宏观政策与经济形势展望:共识与分歧.pdf
- 有色金属行业2024年投资策略报告:新旧需求共振&工业原料受限,构筑有色大海星辰.pdf
文档评论(0)