华为C++笔试题
更新时间:2023-12-09 07:45:01 阅读量: 教育文库 文档下载
文档名称 文档密级:
脚本执行失败问题
1. 虚函数是可以内联的,这样就可以减少函数调用的开销,提高效率(错误) 2. 一个类里可以同时存在参数和函数名都相同的虚函数与静态函数(错误) 3. 父类的析构函数是非虚的,但是子类的析构函数是虚的,delete子类指针(指向该子类对象),会调用父类的析构函数(正确)//任何情况下删除子类都会调用到父类的析构函数 4.对于下面的类CA,sizeof(CA) = _B_: A. 4 B. 8 C. 12 D. 16 class CA {
public: CA();
virtual ~CA(); //因为有虚函数,所以会有4个字节的虚表指针 private:
int m_iTime; //成员变量4个字节 public:
int GetTime();
int SetTime(int iTime); };
5.下面这段程序,打印结果是_A_: A. 1 B. 2 C. 3 D. 以上都不对 int g_iCount = 0; class CParent {
public:
CParent() {}
~CParent() {g_iCount += 1;} };
class CSon : public CParent {
public:
CSon() {}
~CSon() {g_iCount += 2;} };
main() {
CParent* p = new CSon(); delete p;
std::cout << g_iCount << std::endl; }
6.请问下面这段程序的输出结果是_A_: A. 2,1, B. 2,2, C. 1,1, D. 1,2, class CParent {
public:
CParent() {}
virtual ~CParent() {} public:
virtual void Print() { std::cout << \
2013-4-20
华为机密,未经许可不得扩散
第1页, 共36页
文档名称 文档密级:
};
class CSon : public CParent {
public:
CSon() {};
virtual ~CSon() {}; public:
void Print()
{ std::cout << \};
void Test1(CParent& oParent) {oParent.Print();}
void Test2(CParent oParent) {oParent.Print();} main() {
CSon * p = new CSon();
Test1(*p); //这里只是一个引用
Test2(*p); //这里会在栈空间重新构造Cparent类对象 delete p; }
7.请问下面这段程序的输出结果是_D_: A. 2,1, B. 2,2, C. 1,1, D. 1,2, class CParent {
public:
CParent() {}
virtual ~CParent() {} public:
void Print(){ std::cout << \};
class CSon : public CParent {
public:
CSon() {}
virtual ~CSon() {} public:
void Print(){ std::cout << \};
main() {
CSon oSon;
CParent * pParent = &oSon; CSon * pSon = &oSon; pParent->Print(); pSon->Print(); }
8.请问下面这段程序的输出结果是_C_:
2013-4-20
华为机密,未经许可不得扩散
第2页, 共36页
文档名称 文档密级:
A. 2,1, B. 2,2, C. 1,2, D. 1,1, class CParent {
public:
CParent() {Print();} virtual ~CParent() {} public:
virtual void Print(){ std::cout << \};
class CSon : public CParent {
public:
CSon() {Print();} virtual ~CSon() {} public:
void Print(){ std::cout << \};
main() {
CParent * pParent = new CSon(); delete pParent; }
9.请问下面这段程序的输出结果是_D_:
A. 2,2, B. 2, C. 输出结果不确定 D. 以上都不对 class CParent {
public:
CParent() {Print();} virtual ~CParent() {} public:
virtual void Print() = 0; };
class CSon : public CParent {
public:
CSon() {Print();} virtual ~CSon() {} public:
void Print()
{ std::cout << \};
main() {
CParent * pParent = new CSon(); delete pParent; }
10.请仔细阅读以下程序: class Base {
2013-4-20
华为机密,未经许可不得扩散
第3页, 共36页
文档名称 文档密级:
public: virtual bool operator == (int iValue) { std::cout << \ return true; } virtual ~Base(){} };
class Derive: public Base {
public: virtual bool operator == (int iValue) { std::cout << \ return true; }
virtual ~Derive(){} };
int main() { Derive derive; Base* pBase = &derive; Derive* pDerive = &derive; *pBase == 0; *pDerive == 0; return 0; }
程序的输出结果是_B_: A、I am Base class ! I am base class !
B、I am Derive class ! I am Derive class ! C、I am base class ! I am Derive class ! D、I am Derive class ! I am Base class ! 11.请仔细阅读以下程序: class Base {
public: virtual void display(std::string strShow = \ { std::cout << strShow << std::endl; } virtual ~Base(){} };
class Derive: public Base {
public: virtual void display(std::string strShow = \ { std::cout << strShow << std::endl; }
2013-4-20
华为机密,未经许可不得扩散
第4页, 共36页
文档名称 文档密级:
virtual ~Derive(){} };
int main() { Base* pBase = new Derive(); Derive* pDerive = new Derive(); pBase->display(); pDerive->display(); delete pBase; delete pDerive; return 0; }
程序的输出结果是_C_: A、I am Base class ! I am base class !
B、I am Derive class ! I am Derive class ! C、I am base class ! I am Derive class ! D、I am Derive class ! I am Base class !
12.请仔细阅读以下程序: class Base {
public: virtual void display() const { std::cout << \ virtual ~Base(){} };
class Derive: public Base {
public: virtual void display() { std::cout << \ virtual ~Derive(){} };
int main() { Base* pBase = new Derive(); Derive* pDerive = new Derive(); pBase->display(); pDerive->display(); delete pBase; delete pDerive; return 0; }
程序的输出结果是_C_: A、I am Base class ! I am base class !
2013-4-20
华为机密,未经许可不得扩散
第5页, 共36页
文档名称 文档密级:
76.对于名字空间(namespace)以下哪个说法是错误的:_D_ A. 使用声明(the using-declaration)可用于类的声明中。 B. 使用指示(the using-directive)具有传递性。
C. 如果某函数访问其自身所在名字空间中成员元素时,可以直接访问。 D. 通过使用指示(the using-directive)引入存在有相同成员元素的多个名字空间,在实际存取这些存在冲突的成员元素之前,也会导致当前作用域中元素冲突的错误发生。 77.对于名字空间(namespace)以下哪个说法是错误的:_A_
A. 用关键字namespace定义的名字空间必须有一个显示的名字且是独一无二的。
B. 通过使用声明(the using-declaration)引入的元素名字会遮蔽名字相同的非局部声明。 C. 表达式::a,一般表示引用全局作用域中声明的元素a。 D. 名字空间是允许嵌套的。
78.判断题 如下类静态成员变量的调用方法都正确 错误
类名::变量名、类名.变量名、类对象.变量名、类对象::变量名 79.请阅读如下代码 class cAAA {
public:
cAAA();
virtual ~cAAA(); private:
static int m_iValue; };
类cAAA对象的静态成员变量m_iValue存放在(D)。 A、 类cAAA的对象中; B、 类cAAA中;
C、 数据段中且每一个类cAAA对象拥有一个m_iValue实体;
D、 数据段中且类cAAA的所有对象共同拥有一个m_iValue实体; 80.请阅读如下代码,下列中对类 class cAAA {
public:
cAAA();
virtual ~cAAA(); private:
static int m_iValue; };
的静态成员变量m_dwValue初始化最正确的是:(B)。
A、 在文件cAAA.h中类的声明之后,int cAAA::m_iValue = 100; B、 在文件cAAA.cpp中,#include “cAAA.h”之后, int cAAA::m_iValue = 100;
C、 在文件cAAA.cpp中,类的构造函数cAAA::cAAA() {
int cAAA::m_iValue = 100; }
D、 在文件cAAA.cpp中,类的构造函数cAAA::cAAA() {
m_iValue = 100; }
81.假定程序运行环境为:操作系统Windows 2000,VC6.0编译环境,X86(80586)CPU处理器
2013-4-20
华为机密,未经许可不得扩散
第21页, 共36页
文档名称 文档密级:
(32位小字节序处理器,4字节对齐) class cAAA {
public:
cAAA();
virtual ~cAAA(); private:
static int m_iValue1; int m_iValue2; }
类cAAA的一个对象cAAAobj,那么sizeof(cAAAobj) = (C)。 A、1 B、4 C、8 D、16 82.文件stdafx.h如下: #include
public: cAAA();
cAAA(int iValue); virtual ~cAAA(); private:
int m_iValue; };
文件cAAA.cpp如下: #include \#include \cAAA::cAAA()
{cout << \cAAA::cAAA(int iValue) {
m_iValue = iValue;
cout << \}
cAAA::~cAAA() {} 文件cBBB.h如下: #include \class cBBB {
public:
cBBB();
virtual ~cBBB(); private:
static cAAA m_cAAAobj; static cAAA m_cAAAobj1; };
文件cBBB.cpp如下: #include \
2013-4-20
华为机密,未经许可不得扩散
第22页, 共36页
文档名称 文档密级:
#include \
cAAA cBBB::m_cAAAobj(100); cAAA cBBB::m_cAAAobj1(1000); cBBB::cBBB()
{cout << \cBBB::~cBBB() {}
测试程序如下:
#include \#include \#include \
int main(int argc, char* argv[]) {
cBBB cobj; cBBB cobj1; return 0; }
则该测试程序的输出结果为:(D) A、
cAAA(int) constructor called! 100 cAAA(int) constructor called! 1000 cBBB::cBBB() called!
cAAA(int) constructor called! 100 cAAA(int) constructor called! 1000 cBBB::cBBB() called! B、
cBBB::cBBB() called!
cAAA(int) constructor called! 100 cAAA(int) constructor called! 1000 cBBB::cBBB() called!
cAAA(int) constructor called! 100 cAAA(int) constructor called! 1000 C、
cBBB::cBBB() called!
cAAA(int) constructor called! 100 cAAA(int) constructor called! 1000 cBBB::cBBB() called! D、
cAAA(int) constructor called! 100 cAAA(int) constructor called! 1000 cBBB::cBBB() called! cBBB::cBBB() called!
83.判断题 在使用一个类的静态成员函数前,一定要先生成该类的一个对象。错误 84.判断题 在静态成员函数内部可以直接访问类的所有成员变量和成员函数。错误 85.如下代码,正确的是:C class CExample {
public:
static void Func( void* pobj );
2013-4-20
华为机密,未经许可不得扩散
第23页, 共36页
文档名称 文档密级:
private:
char m_cTest; }; A.
void CExample::Func( void* pobj )
{m_cTest = ( char )0;} //没有实例,不能访问成员变量
B. 在Func内部不能访问类的私有成员m_cTest; //有实例的前提下可以访问 C. void CExample::Func( void* pobj ) {
CExample *pThis;
pThis = dynamic_cast< CExample* >( pobj ); ASSERT( NULL != pThis ); pThis->m_cTest = ( char )0; }
D. void CExample::Func( void* pobj ) {CExample::m_cTest = ( char )0;}
86.如下,关于类的静态成员函数描述正确的是:C
A. 类的静态成员函数是属于某个类对象的。 //静态函数相当于可以访问成员的全局函数 B. 可以从类的外部直接访问类的静态成员函数,前面不用添加类作用域。 //不行 C. 类的静态成员函数与类的一般成员函数相比,少了一个隐含的this指针参数。 D. 类的静态成员函数完全等价于全局函数。 //全局函数不能访问私有和保护成员 87.如下代码,其中对类CExample的成员函数Func调用不正确的是:( D ) class CExample {
public:
static void Func( void ); };
main() {
...
CExample objExamle; CExample *pobjExample; ... }
A.objExamle.Func() B.pobjExample ->Func() C.CExample::Func() D.Func( )
88.当前工程目录下存在MyHeader.h文件,请找出下面可能导致编译错误的选项_B_: A. #include “MyHeader.h” B. #include
89.一个C++头文件内容如下:(前面的数字为行号) 1 typedef unsigned char _UC; 2 int ival; //定义了一个变量
3 extern void dummy() {}; //定义了一个函数 4 extern int jval;
请问,那几行容易导致错误?_C_:
A. 1和2 B 3和4 C 2和3 D 1和4 E 2和4 F 1和3
2013-4-20
华为机密,未经许可不得扩散
第24页, 共36页
文档名称 文档密级:
90.下面那个#include语句可能会发生编译错误?_E_: A. #include
91.在编译过程中处理#include语句的阶段是_A_: A. 预编译 B. 词法分析 C. 语法分析 D. 语义分析 E. 二进制代码生成
92.下面哪个选项通常是不应该放到头文件中的?_D_: A. 函数声明 B. 宏定义
C. inline函数定义 D. 常规函数定义
93.判断下面说法是否正确:正确
#include机制用于将源程序片段收集在一起,形成一个完整的编译单元作为编译器的输入。 94.判断题 请判断下面的说法是否正确:正确
在C++中下面情况1的代码编译链接不成功,情况2的代码能够编译链接成功。其中.C文件文件用C语言编译器编译,.CPP文件用C++语言编译器编译。 情况1: 情况2: //file1.c //file1.c int x = 1; int x = 1; //file2.cpp //file2.cpp extern int x; extern \{
void InitX( void ) extern int x; { }
x = 5; void InitX( void ) } {
x = 5; }
95.下面语句应该放在头文件中的是:_C_ A、
extern int Total = 10; B、
int total; C、
extern int Total;
考点说明:全局变量的声明已经放在.H文件中,定义不应该放在.H文件中。
2、下面语句是声明的是:(D) A、
extern int Errno = 0; B、
int Errno; C、
extern void Reset() { /*?*/ } D、
extern int Errno;
2013-4-20
华为机密,未经许可不得扩散
第25页, 共36页
正在阅读:
华为C++笔试题12-09
大唐全能值班员题库-简答题07-27
新型抗生素研发紧迫05-15
冬天写景作文600字03-31
兰州我爱你作文800字07-01
四川省遂宁市拦江中学2018-2019学年高三上学期期中考试理综生物试题 Word版含答案01-14
我爱榕树作文450字06-16
正能量的现代诗歌精选03-21
MILITARY STANDARD SANDWICH CONSTRWCTIONS AND CORE MATERIALS03-20
写游红叶谷作文600字06-20
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 华为
- C++
- 试题