迅雷 2022 C++工程师面试题(求职面试回答资料)_第1页
迅雷 2022 C++工程师面试题(求职面试回答资料)_第2页
迅雷 2022 C++工程师面试题(求职面试回答资料)_第3页
迅雷 2022 C++工程师面试题(求职面试回答资料)_第4页
迅雷 2022 C++工程师面试题(求职面试回答资料)_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 迅雷 2022 C+工程师面试题第1题: 一、单选题 下列运算符中,在C+语言中不能重载的是: A * B = C : D delete C 在C+中,sizeof运算符,.成员运算符,.*成员指针运算符,:作用域解析运算符以及?:条件运算符不能被重载,因此答案选C 第2题: 下面关于多态性的描述,错误的是: A C+语言的多态性分为编译时的多态性和运行时的多态性 B 编译时的多态性可通过函数重载实现 C 运行时的多态性可通过模板和虚函数实现 D 实现运行时多态性的机制称为动态绑定 C A,正确,分编译时多态和运行时多态 B,编译时多态可以通过函数重载实现,详细表现在依据参数的个数和类型不同

2、选择合适的同名函数 C,运行时多态通过虚函数实现,就是运行时依据对象类型自动选择正确的调用接口。模板属于编译时多态性,由于编译时自动依据模板生成模板函数。 D,运行时多态是依据对象类型自动选择正确的调用函数,也叫动态绑定。 第3题: 下面关于类和对象的描述中,错误的是: A 类就是C语言中的结构体类型,对象就是C语言中的结构体变量 B 类和对象之间的关系是抽象和详细的关系 C 对象是类的实例,一个对象必需属于一个已知的类 D 类是具有共同行为的若干对象的统一描述体 A c语言中结构体无成员函数,而c+中的类是有成员函数的 第4题: 引用标准库时,下面的说法你认为哪个是正确的: A 语句#inc

3、lude“stdlib.h”是正确的,而且程序编译速度比#includestdlib.h要快 B 语句#includestdlib.h是正确的,而且程序编译速度比#include“stdlib.h”要快 C 语句#includestdlib.h和#include“stdlib.h”都是正确的,程序编译速度没有区分 D 语句#include“stdlib.h”是错误的 B #inlcude 首先 只搜寻系统名目,不会搜寻本地名目.比如你自己写一个头文件,你用#include 会出错. #inlude 首先搜寻本地名目,假如本地名目没有才会搜寻系统名目. 可以把系统的文件 放到当前名目下 改成 可

4、以优先使用 所以B是对的 第5题: 设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则规律表达式(m=ab)(n=cd)运算后,n的值为: A 0 B 1 C 2 D 7 C 分析:m=ab后m=0,表达式为假,后半部分不会操作,因此n为初始值2 第6题: 不能作为重载函数的调用的依据是: A 参数个数 B 参数类型 C 函数类型 D 函数名称 C 函数的重载,发生在同名函数之间,区分同名函数是否是相同的函数,要看同名函数的特征标,即参数列表是否相同,若参数列表的参数类型或个数不一样,则函数不一样,因此答案选C 第7题: 下列程序的输出结果为: #i

5、ncludeiostream.h int func(int n) if(n1) return 1; else return n+func(n-1); return 0; void main() cout func(5) endl; A 0 B 10 C 15 D 16 D 这是一个求累加和的递归,留意 1 span class=kwd style=color: rgb(0, 0, 136);ifspan class=pun style=color: rgb(102, 102, 0);(span class=pln style=color: rgb(0, 0, 0);nspan class=pu

6、n style=color: rgb(102, 102, 0);span class=lit style=color: rgb(0, 102, 102);1span class=pun style=color: rgb(102, 102, 0);)span class=pln style=color: rgb(0, 0, 0); span class=kwd style=color: rgb(0, 0, 136);returnspan class=pln style=color: rgb(0, 0, 0); span class=lit style=color: rgb(0, 102, 102

7、);1span class=pun style=color: rgb(102, 102, 0);/span/span/span/span/span/span/span/span/span/span/span 即func(0)的值为1. func(5)=5+4+3+2+1+1=16 第8题: 建立派生类对象时,3种构造函数分别是a(基类的构造函数)、b(成员对象的构造函数)、c(派生类的构造函数)这3种构造函数的调用挨次为: A abc B acb C cab D cba A 在继承中派生类的对象调用构造函数的挨次,应当是先调用基类的构造函数,然后是成员中的对象对应类的构造函数,最终是派生类自己

8、的构造函数. 第9题: 假如友元函数重载一个运算符时,其参数表中没有任何参数则说明该运算符是: A 一元运算符 B 二元运算符 C 选项A)和选项B)都可能 D 重载错误 D 分析:C+中用友元函数重载运算符至少有一个参数,重载一目运算符要有一个参数,重载二目运算符要有两个参数。 第10题: #define F(X,Y) (X)-, (Y)+, (X)*(Y); int i, a = 3, b = 4; for( i = 0; i5; i+) F(a,b) printf(“%d, %d”, a, b); 输出结果是 A 3,4 B 3,5 C -2,5 D -2,9 D 宏会内联绽开,答案是

9、-2,9 第11题: 二、不定项选择 已知一段文本有1382个字符,使用了1382个字节进行存储,这段文本全部是由a、b、c、d、e这5个字符组成,a消失了354次,b消失了483次,c消失了227次,d消失了96次,e消失了232次,对这5个字符使用哈夫曼(Huffman)算法进行编码,则以下哪些说法正确() A 使用哈夫曼算法编码后,用编码值来存储这段文本将花费最少的存储空间 B 使用哈夫曼算法进行编码,a、b、c、d、e这5个字符对应的编码值是唯一确定的 C 使用哈夫曼算法进行编码,a、b、c、d、e这5个字符对应的编码值可以有多套,但每个字符编码的位(bit)数是确定的 D b这个字符

10、的哈夫曼编码值位数应当最短,d这个字符的哈夫曼编码值位数应当最长 A C D B答案:哈弗曼编码不是唯一的,由于二叉树左右字数定义的0,1不同会影响到最终的编码。D答案:次数最小的应当放在最底层叶子节点,次数最大的应当最接近根节点。 第12题: 下面描述正确的是() A while循环语句的循环体至少执行1次 B do-while循环可以写成while循环的格式 C continue语句可以消失在各种循环体中 D break语句不行以消失在循环体内 BC break语句可以消失在switch语句块中,while循环体可能不会执行 第13题: 下面模板声明中,哪些是非法的() A templat

11、eclass Typeclass C1; B templateclass T, U, class Vclass C2; C templateclass C1, ypename C2class C3; D templatetypename myT, class myTclass C4; B D 解释: B选项的U参数没有指定类型, D选项的 2个形参名同名。 函数模板的格式: templateclass形参名,class形参名,返回类型 函数名(参数列表) 函数体 类模板的格式为: templateclass 形参名 ,class形参名,class类名 . ; 第14题: 拷贝构造函数的特点是(

12、) A 该函数名同类名,也是一种构造函数,该函数返回自身引用 B 该函数只有一个参数,必需是对某个对象的引用 C 每个类都必需有一个拷贝初始化构造函数,假如类中没有说明拷贝构造函数,则编译器系统会自动生成一个缺省拷贝构造函数,作为该类的爱护成员 D 拷贝初始化构造函数的作用是将一个已知对象的数据成员值拷贝给正在创建的另一个同类的对象 D 拷贝函数和构造函数没有返回值,A错; 拷贝构造函数的参数可以使一个或多个,但左起第一个必需是类的引用对象,B错; 若类定义中没有声明拷贝构造函数,则编译器会自动生成一个缺省的拷贝构造函数,但是不会是该类的爱护成员,C错; 通过拷贝函数可以将另一个对象作为对象的

13、初值,D对 第15题: 下列对函数double add(int a , int b)进行重载,正确的是() A int add(int a ,int b ,int c) B int add(double a , double b) C double add(double a , double b) D int add(int a , int b) A B C 在C+中,函数的重载取决于函数的特征标即函数的参数列表。同名的函数,特征标不一样则函数不一样,A、B、C 的参数列表与题目给出的特征标数量或类型不一样,因此正确答案为A、B、C 第16题: 三、问答题 有一幢100层高的大楼,给你两个完全

14、相同的玻璃围棋子。假设从某一层开头,丢下玻璃棋子就会破裂。那么怎么利用手中的两颗棋子,用一种什么样的最优策略,知道这个临界的层高呢? 首先,为了保证胜利,两颗棋子不能全碎. 那么经过计算,第一次应当在16层尝试.如棋子碎则从1-15层连续尝试.这样最多尝试16次可以得到结果. 如16层棋子未碎,则其次次应当在16+16-1=31层尝试.这样可以保证最多尝试次数仍旧为16次.往下类似. 这样得到最终结果是: 第一颗棋子应当依次在16,31,45,58,70,81,91这七层尝试.如在其中某层碎了则连续用第2颗在相邻两次尝试楼层中间连续尝试.这样最多只需要16次尝试可以确定此临界值. 第17题:

15、用c+写一个函数,如Foo(const char *str),打印出str的全排列,如abc的全排列:abc, acb, bca, dac, cab,cba #include iostream #include algorithm#include stringvoid Foo(const char * str)using namespace std;if (str=NULL | *str=NULL) return; string s(str);int c=0;sort(s.begin(),s.end();coutsendl;c+;for (;next_permutation(s.begin(),s.end();) coutsendl; c+; coutc种排列endl;int main()using namespace std;string s;cinws;getline(cin,s);Foo(s.c_str();return 0; 第18题: 求出一字符串中最长的数字串。比如as123cdf1234f,返回1234,char* FindNumber(char * out

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论