C++试题及答案 五.docx
- 文档编号:328244
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:29
- 大小:27.81KB
C++试题及答案 五.docx
《C++试题及答案 五.docx》由会员分享,可在线阅读,更多相关《C++试题及答案 五.docx(29页珍藏版)》请在冰点文库上搜索。
C++试题及答案五
C++程序设计模拟试卷(五)
一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中
只有一个是符合题目要求的,请将其代码填写在题后的括号内、错选、多选或未选均无
分、
1、 静态成员函数没有()
A、返回值
B、 this指针
C、指针参数
D、返回类型
答案:
B
解析:
静态成员函数是普通的函数前加入static,它具有函数的所有的特征:
返回类型、
形参,因此使用静态成员函数,指针能够作为形参,也具有返回值。
静态成员是类具有的
属性,不是对象的特征,而this表示的是隐藏的对象的指针,因此静态成员函数没有this指针
。
静态成员函数当在类外定义时,要注意不能使用static关键字作为前缀、由于静态成员函数在
类中只有一个拷贝(副本),因此它访问对象的成员时要受到一些限制:
静态成员函数能够直截了当
访问类中讲明的静态成员,但不能直截了当访问类中讲明的非静态成员;若要访问非静态成员时,必
须通过参数传递的方式得到相应的对象,再通过对象来访问、
2、在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其她内部管
理操作的函数是()
A、 友元函数
B、虚函数
C、构造函数
D、析构函数
答案:
C
解析:
定义构造函数作用就是初始化对象,而析构函数释放对象空间、虚函数用于完成多
态性,友元增加访问方便性。
3、所有在函数中定义的变量,都是()
A、全局变量
B、 局部变量
C、静态变量
D、寄存器变量
答案:
B
解析:
变量存储类可分为两类:
全局变量与局部变量。
(1)全局变量:
在函数外部定义的变量称为全局变量,其作用域为:
从定义变量的位置开始
到源程序结束、全局变量增加了函数之间数据联系的渠道,全局变量作用域内的函数,均可使用
、修改该全局变量的值,然而使用全局变量降低了程序的可理解性,软件工程学提倡尽量幸免使
用全局变量。
(2)局部变量:
在函数内部定义的变量称为局部变量,其作用域为:
从定义变量的位置开始
到函数结束、局部变量包罗自动变量(auto)静态变量(static)以及函数参数。
auto变量意味着变量的存储空间的分配与释放是自动进行的、讲明符auto能够省略、函数中
的局部变量存放在栈空间。
在函数开始运行时,局部变量被分配内存单元,函数结束时,局部变
量释放内存单元、因此,任两个函数中的局部变量能够同名,因其占有不同的内存单元而不影响
使用。
这有利于实现软件开发的模块化、
static变量是定义在函数体内的变量,存放在静态存储区,不用栈空间存储,其值并不随存
储空间的释放而消失。
4、假定AB为一个类,则执行“ABa
(2),b[3],*p[4];”语句时调用该类构造函数的次数
为()
A、3
B、4
C、 5
D、 9
答案:
B
解析:
a
(2)调用1次带参数的构造函数,b[3]调用3次无参数的构造函数,指针没有给它
分配空间,没有调用构造函数。
因此共调用构造函数的次数为4、
5、 假如表达式++a中的“++”是作为成员函数重载的运算符,若采纳运算符函数调用格式,则
可表示为()
A、a、operator++(1)
B、 operator++(a)
C、operator++(a,1)
D、a、operator++()
答案:
D
解析:
运算符的重载,前缀先让变量变化、调用++a,等价为a、operator++(),注意无参
的形式、后缀的话a++,等价于a、operator(0),带形参,形参名可省。
6、已知f1与f2是同一类的两个成员函数,但f1不能直截了当调用f2,这讲明()
A、f1与f2都是静态函数
B、f1不是静态函数,f2是静态函数
C、f1是静态函数,f2不是静态函数
D、f1与f2都不是静态函数
答案:
C
解析:
普通成员函数能够调用静态函数,相反静态函数不能调用普通成员函数,这与普通
函数与常成员函数相同、因此选择C项、
7、一个函数功能不太复杂,但要求被频繁调用,则应把它定义为()
A、内联函数
B、重载函数
C、 递归函数
D、嵌套函数
答案:
A
解析:
内联函数特征代码少,频繁调用,执行效率高、重载函数解决统一接口的问题;递
归是子程序调用,程序调用要耗费特不多空间与时间,循环/迭代都比递归有效率得多,递归只是
从形式上,逻辑比较简洁、嵌套函数即反复调用,速度较慢、因此选择A项、
8、 解决定义二义性问题的方法有()
A、 只能使用作用域分辨运算符
B、使用作用域分辨运算符或成员名限定
C、使用作用域分辨运算符或虚基类
D、 使用成员名限定或赋值兼容规则
答案:
B
解析:
解决二义性问题主要要两种方法:
(1)赋值兼容规则;(2)虚基类、
9、在main函数中能够用p、a的形式访问派生类对象p的基类成员a,其中a是()
A、私有继承的公有成员
B、公有继承的私有成员
C、公有继承的保护成员
D、公有继承的公有成员
答案:
D
解析:
公有成员能够在类外访问,保护类型成员能够在派生类中访问,但不能在类外访问
在main函数中访问,讲明a是公有成员。
只有公有继承时a才能是公有的,因此D项正确。
10、 在C++中不返回任何类型的函数应该讲明为()
A、 int
B、 char
C、void
D、double
答案:
C
解析:
无形参或无返回值都能够用void来声明,int chardouble分不是整型、字符型与实型、
11、若Sample类中的一个成员函数讲明如下:
voidset(Sample&a),则Sample&a的含义是()
A、 指向类Sample的名为a的指针
B、a是类Sample的对象引用,用来作函数Set()的形参
C、 将a的地址赋给变量Set
D、变量Sample与a按位与的结果作为函数Set的参数
答案:
B
解析:
成员函数使用对象的引用作为形参、该函数的功能是将已知对象的所有数据成员的
值拷贝给相应对象的所有数据成员,可不能建立临时对象,这个地方是对象的引用因此选择B、
12、 要实现动态联编必须()
A、 通过成员名限定来调用虚函数
B、通过对象名来调用虚函数
C、通过派生类对象来调用虚函数
D、 通过对象指针或引用来调用虚函数
答案:
D
解析:
通过基类指针或基类引用来调用虚函数实现动态多态性,静态多态性通过重载来实
现的。
因此选择D项。
13、在派生类中定义虚函数时,能够与基类中相应的虚函数不同的是()
A、参数类型
B、参数个数
C、函数名称
D、函数体
答案:
D
解析:
虚函数在基类与派生类,具有相同的返回类型、形参类型与形参个数,而函数体可
以依照不同的派生类或基类实现不同的操作,即不同函数体、
14、实现两个相同类型数加法的函数模板的声明是()
A、add(Tx,Ty)
B、 Tadd(x,y)
C、Tadd(Tx,y)
D、T add(Tx,Ty)
答案:
D
解析:
实现两个相同类型数加法结果应该与操作数具有相同类型。
进行加法运算后结果也
是与参数具有相同类型,需要返回值、A无返回值时要用void,B形参无类型,C形参y没有类型
因此选择D项。
15、下列不是描述类的成员函数的是()
A、 构造函数
B、析构函数
C、友元函数
D、拷贝构造函数
答案:
C
解析:
友元函数尽管不是成员函数然而能够访问类所有成员。
构造函数、析构函数与拷贝
构造函数(复制构造函数)都是类的特不函数用于对象的创建与撤销,因此选择C项。
16、继承机制的作用是()
A、信息隐藏
B、数据封装
C、 定义新类
D、数据抽象
答案:
C
解析:
面向对象设计中的类的特点:
抽象、封装、继承与多态等,继承用于对类的扩展
因此选择C项。
17、已知:
p是一个指向类A数据成员m的指针,A1是类A的一个对象、假如要给m赋值为5,正确
的是()
A、A1、p=5;
B、A1—〉p=5;
C、A1、*p=5;
D、*A1、p=5;
答案:
C
解析:
A中p是指针即地址,错误;B选项中A1不是指针不能使用指向运算符->,错误
;“*”比“、”级不要高,因此D选项*A1、p=5相当于(*A1)、p=5;错误、另外涉及到指向成员函数
时注意以下几点:
指向成员函数的指针必须于其赋值的函数类型匹配的三个方面:
(1)参数类型与个数;(2)返回
类型;(3)它所属的类类型。
成员函数指针的声明:
指向short型的Screen类的成员的指针定义如下:
shortScreen:
:
*ps_Screen;
ps_Screen能够用_height的地址初始化如下:
shortScreen:
:
*ps_Screen=&Screen:
:
_height;
类成员的指针必须总是通过特定的对象或指向改类型的对象的指针来访问。
是通过使用两个指
向成员操作符的指针(针对类对象与引用的、*,以及针对指向类对象的指针的—>*)、
18、假如采纳动态多态性,要调用虚函数的是()
A、 基类对象指针
B、对象名
C、基类对象
D、派生类名
答案:
A
解析:
基类指针或者基类的引用调用虚函数都会产生动态多态性
19、若有以下定义,则讲法错误的是()
inta=100,*p=&a;
A、声明变量p,其中*表示p是一个指针变量
B、变量p经初始化,获得变量a的地址
C、变量p只能够指向一个整型变量
D、 变量p的值为100
答案:
D
解析:
指针变量如同其她变量一样,在使用之前必须先声明。
声明指针变量的格式为:
〈类型名>*<变量名〉;
其中,〈类型名>是指针变量所指向对象的类型,它能够是C++语言预定义的类型,也能够是用户
自定义类型、<变量名>是用户自定义的标识符。
符号*表示<变量>是指针变量、而不是普通变量
。
*表示指针,p是变量,p指向一个整型的变量,值为a的地址值,*p=100。
20、 C++语言建立类族是通过()
A、 类的嵌套
B、类的继承
C、虚函数
D、抽象类
答案:
B
解析:
类族即同一个类派生出来的类,各个类是兄弟或父子关系。
二、填空题(本大题共20小题,每小题1分,共20分)请在每小题的空格中填上正确答
案、错填、不填均无分。
1、假设inta=1,b=2;则表达式(++a/b)*b——的值为___、
答案:
2
[解析]前缀++或――表示先使变量值变化,再使用,这与后缀恰恰相反、然而编译
cout〈〈(++a/b)*b--时,先++a/b值为1,后1*b—-,先取b=2,结果为2,再让b=1。
2、 复制构造函数使用___作为形式参数。
答案:
对象的引用
[解析]复制构造函数使用对象的引用来初始化一个新对象,幸免临时产生对象。
3、通过C++语言中的___机制,能够从现存类中构建其子类。
答案:
继承
[解析]继承概念,从现有的类生成新类,原有的类称为父类或基类,新类又称子类或派生类或
衍生类,它是对基类的扩充。
4、静态成员函数、友元函数、构造函数与析构函数中,不属于成员函数的是___、
答案:
友元函数
[解析]友元函数不是类成员,但能够访问类成员。
类的封装性保证了数据的安全,但引入友元
尽管访问类是方便了,但确实破坏类访问的安全性。
5、 在下面的类定义中,私有成员有___、
classLocation
{intX,Y;
protected:
intzeroX,zerxY;
int SetZero(intzeroX, intzeroY);
private:
int length,height;
public:
voidinit(intinitX,intinitY);
intGetX();
intGetY();
};
答案:
X,Y,length,height
6、 在C++程序设计中,建立继承关系倒挂的树应使用___继承。
答案:
单
[解析]一个基类能够派生多个子类,一个子类能够再派生出多个子类,如此就形成了一个倒立
的树。
7、C++支持的两种多态性分不是___多态性与运行多态性。
答案:
静态或编译
[解析]多态性包括静态(编译时)的与动态(运行时)的动态性、
8、C++中语句constchar* constp=“hello”;所定义的指针p与它所指的内容都不能被
___、
答案:
修改
[解析]使用const修改的内容不能修改,这个地方同时修饰地址与值,表示地址与值都不变。
9、 在C++中,定义虚函数的关键字是___、
答案:
virtual
[解析]在普通函数前面用virtual修饰的函数,就称为虚函数。
10、采纳私有派生方式,基类的public成员在私有派生类中是___成员、
答案:
私有
11、对赋值运算符进行重载时,应声明为___函数。
答案:
类成员
[解析]运算符重载的方法有友元或者成员函数两种途径,然而赋值运算符只能使用成员函数的
方法来实现。
12、 在C++中有两种参数传递方式即值传递与___传递、
答案:
引用
[解析]函数参数传递有传值与传引用两种。
13、预处理命令以___符号开头。
答案:
operater
[解析]文件包罗、预处理与编译都是以#开头。
14、在构造函数与析构函数中调用虚函数时采纳___。
答案:
静态联编
[解析]在析构或构造函数调用虚函数发生静态多态性、
15、C++是通过引用运算符___来定义一个引用的。
答案:
&
[解析]引用是C不具有使用方法,它表示变量的不名,在函数中使用特不频繁,因为调用形式同
传值调用,但修改形参实参也会相应改变的特征。
16、 假如要把类B的成员函数voidfun()讲明为类A的友元函数,则应在类A中加入语句___。
答案:
friendvoidB:
:
fun();
[解析]声明成员函数作为另外一个类的友元函数时,使用类作用域运算符:
:
、
17、假如要把PI声明为值为3、14159类型为双精度实数的符号常量,该声明语句是___、
答案:
)constdoublePI(3、14159);或者constdouble PI=3、14159;
[解析]使用const声明符号常量,常量与常量值能够用括号也能够赋值号。
18、在C++四个流对象中,___用于标准屏幕输出。
答案:
cout
[解析]cin、cout、cerr与clog中cin用于输入,cout用于输出,cerr、clog错误处理。
19、 执行下列代码
inta=32;
doublec=32;
cout、setf(ios:
:
hex);
cout〈〈”hex:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+试题及答案 C+ 试题 答案