更多服务
2021年迅雷网络技术公司面试题(C++工程师岗位)
日期:2022-02-09 浏览

  个人简历模板 个人简历 简历模板 最新简历 网站地图 个人简历 简历模板 简历模板下载 简历表格 简历封面 英文简历 简历技巧 简历制作 求职信 自荐信 自我鉴定 面试技巧 校徽 个人简历模板网 >简历技巧 > 教育背景永远都可当做杀手锏来使用 教育背景永远都可当做杀手锏来使用 时间:2016-10-16 来源: 点击:0 在招聘方对求职者并不熟悉的情况下,他们会通过一种怎样的方式来衡量求职者拥有的个人能力呢?

  由最受招聘方认可的个人简历进行分析,之所以不同的简历会显现出薄弱之分,主要在于内容的叙述以及彰显性优势的突出描绘。

  有优势的简历无论放在哪一职业领域中,都能够对求职者带来不可忽视的影响效果,即便是那些原本对简历了解不多的求职者,也知道自己只有使其呈现出优势才可以发挥出足够的价值。

  杀手锏:个人教育背景

  曾经接受过怎样的教育,而这些教育又与招聘企业有何关联?这些因素都是我们需要去考虑并且概括的,只有这样才可以确保每一位求职者创作出的简历都能够显现出简单易懂而且令阅读者一目了然的效果。

  简单而并不复杂的叙述方式,在将自己的能力极为轻松的刻绘在简历后,招聘方也并不会认为求职者这般书写比较拿捏尺寸,所以当我们决定书写简历,并且将其运用至实际的求职时,也需要将教育背景以及能够达到的工作水准一一在简历中刻绘出来。

  唯有利用简历为自己争取有利优势,才能击败竞争对手而获得成功。

  在作出这般的创作后,不仅求职者不会感到非常劳累,同时简历也可以帮助到他们收获到心仪的工作职位,当然,这种创作也仅仅只是建立在增加成功率的基础上而来的,所以在实施书写时,能否关注这方面因素,对求职者而言才是最重要的。

  2021年迅雷网络技术公司面试题(C++工程师岗位) 小编:管理员 483阅读 2021.06.09 第1题:

   一、单选题

   下列for循环的循环体执行次数为

  

   for(int i=10, j=1; i=j=0; i++, j--)

  

   A 0

   B 1

   C 无限

   D 以上都不对

  

  

   答案:A

   解析:这个问题可以这样理解,在for(string1;string2;string3)中,string1用于设定循环变量处置,string2用于循环判断,string3用于改变循环变量到调节,一般情况下,我们采用逻辑判断表达式来决定循环是否执行,而如果在这里采用赋值语句,其逻辑值始终为假,导致循环不执行

  

   第2题:

   下面程序的输出结果是

   char *p1= “123”, *p2 = “ABC”, str[50]= xyz;

   strcpy(str+2,strcat(p1,p2));

   cout << str;

  

   A xyz123ABC

   B z123ABC

   C xy123ABC

   D 出错

  

  

   答案:D

   解析:strcat(p1,p2)出错,因为p1只被分配了4个字节的地址空间,将p2拼接在p1后面会引起内存溢出。

  

   第3题:

   下面函数的执行结果是输出

  

   charstr[]=“xunlei”;

   char*p=str;

   intn=10;

   printf(“%d,%d,%d/n”,sizeof(str),sizeof(p),sizeof(n));

  

   A 4,4,4

   B 7,4,4

   C 6,4,4

   D 6,6,4

  

  

  

   答案:B

   解析:指针和int、float类型均占4个字节,而sizeof(str)包括所以是7个字节

  

   第4题:

  

  

   char*p,*q;

   p=(char*)malloc(sizeof(char)*20);

   q=p;

   scanf(“%s%s”,p,q);

   printf(“%s%s/n”,p,q);

  

   若从键盘输入:abcdef,则输出结果是

  

   A defdef

   B abcdef

   C abcd

   D dd

  

  

  

   答案:A

   解析:q=p;因此p,q指向的是同一段内存.scanf先是把abc写到p指向的空间,再把def写到q指向的空间,也就是同一段空间,因此abc被def覆盖了。

  

   第5题:

   现在有以下语句:

   struct_THUNDER{

   intiVersion;

   charcTag;

   charcAdv;

   intiUser;

   charcEnd;

   }Thunder;

   intsz=sizeof(Thunder);

   则执行后,变量sz的值将得到

  

   A 11

   B 12

   C 13

   D 16

  

  

   答案:D

   解析:结构体默认对齐方式为8,则iVersion取4字节对齐,CTag、CAdv和cEnd取2字节对齐,结构体大小为14,14不为4的整数倍,补空字节,增至16时符合所有条件,则sizeof(Thunder)为16。

  

   第6题:

   有如下程序段:

  

   voidGetMemeory(char*p)

   {

   p=(char*)malloc(100);

   }

   voidtest()

   {

   char*str=NULL;

   GetMemory(str);

   strcpy(str,”Thunder”);

   strcat(str+2,“Downloader”);

   printf(str);

   }

  

   请问运行Test函数结果是:

  

   A ThunderDownloader

   B underDownloader

   C Thunderownloader

   D 程序崩溃

  

  

  

   答案:D

   分析:在函数中给指针分配空间,实际上是给指针的临时变量分配空间,函数结束后,这个临时变量也消亡,而str仍然为NULL,没有为其分配空间,此时strcpy()是肯定会出错的。

  

   第7题:

   p是指向类X的成员m的指针,s是类X的一个对象。现要给m赋值,()是正确的。

  

   A s.p=5

   B s->p=5

   C s.*p=5

   D *s.p=5

  

  

   答案:C

  

   第8题:

   函数

  

   fun(char* p) {

   return p;

   }

  

   的返回值是

  

   A 无确切值

   B 行参p中存放的地址值

   C 一个临时存储单元的地址

   D 行参p自身的地址值

  

  

  

   答案:B

   分析:可参考找工作笔试面试那些事儿(3)---内存管理那些事,返回的是形参p中存放的地址值。

  

   第9题:

   a,b均为不等于0的整形变量,以下关系式恒成立的是:

  

   A a*b/a*b==1

   B a/b*b/a==1

   C a/b*b+a%b==a

   D a/b*b==a

  

  

   答案:C

   解析:a/b得到的是去除余数后的值,再加上a%b取摸的值就等于a了,所以选C

  

   第10题:

   设有如下说明:

  

   typedef struct ST{

   long a; int b; char c[2];

   } NEW;

  

   则下面叙述中正确的是:

  

   A 以上的说明形式非法

   B ST是一个结构体类型

   C NEW是一个结构体类型

   D NEW是一个结构体变量

  

  

  

   答案:C

   解析:struct ST 等价于NEW,为同一个结构类型

  

   第11题:

   二、不定项选择

   下列表达式中,不合法的是()
已知:double d = 3.2; int n = 3;

  

   A d<<2;

   B d/n

   C !d (n-3)

   D (d-0.2)n

  

  

   答案:A D

   解析如下:

   (1)float、double、long double等类型不允许直接进行位与操作符啊,可用间接的方法变通,如float取地址(也是符号)转换为unsigned int类型,再用取值操作符(*),这样编译器会以为是unsigned int类型。

   (2)使用int、short、long移位时最好加上unsigned,这样就是汇编中逻辑移位(即全部移位),如果不加unsigned情况就较为复杂,正数全是逻辑移位,负数左移时保持符号位为1、右边补0,负数右移时保持符号位为1,左边补1,所以-1不管怎么右移都是-1。

   (3)位与操作符就是将两个数进行与操作,0x01就相当于掩码取出最后一位,其他位置成0

   (4)位与操作符的操作优先级小于移位操作符,但移位操作符小于取地址操作符(取值操作符*),所以上面代码不会出错

  

   第12题:

   下面描述正确的是()

  

   A while循环语句的循环体至少执行1次

   B do-while循环可以写成while循环的格式

   C continue语句可以出现在各种循环体中

   D break语句不可以出现在循环体内

  

  

   答案:BC

   解析:break语句可以出现在switch语句块中,while循环体可能不会执行

  

   第13题:

   关于内联函数正确的是()

  

   A 类的私有成员函数不能作为内联函数

   B 在所有类说明中内部定义的成员函数都是内联函数

   C 类的保护成员函数不能作为内联函数

   D 使用内联函数的地方会在运行阶段用内联函数体替换掉

  

  

   答案:B

   解析如下:

   A是可以的,私有成员函数可以内联

   C也可以

   D应该是在编译阶段替换

  

   第14题:

   下面模板声明中,哪些是非法的()

  

   A template<class Type>class C1;

   B template<class T, U, class V>class C2;

   C template<class C1, ypename C2>class C3{};

   D template<typename myT, class myT>class C4{};

  

  

   答案:B D

   解释: B选项的U参数没有指定类型, D选项的 2个形参名同名。

   函数模板的格式:

   template<class形参名,class形参名,......>返回类型 函数名(参数列表)

   {

   函数体

   }

  

   类模板的格式为:

   template<class 形参名 ,class形参名,…>class类名

   { ... };

  

   第15题:

   在使用浏览器打开一个网页的过程中,浏览器会使用的网络协议包括()

  

   A DNS

   B TCP

   C HTTP

   D Telnet

  

  

   答案:ABC

   思路:使用DNS去获得域名的主机ip,使用HTTP去获得报文交互,而HTTP是基于TCP协议的

  

   第16题:

   三、问答题

   有n个文件的长度记载在一个无符号64位整数数组中unsigned__int64 file_length[n],把这n 个文件从逻辑上按序首尾拼接在一起形成一个逻辑上的大文件,然后以每块长度为unsigned block_length把这个逻辑上的大文件划分成大小相等的数据块(当然,最后一块有可能比block_length小),请定义和实现一个函数,把边界块的序号集合返回给函数的调用者(第一个数据块序号为0)。
注:边界块指的是跨多个文件的数据块。

  

  

   vector<int> findSeq(unsigned __int64* file_length,int n, unsigned block_length)

   {

   vector<int> seqnums;

   unsigned __int64 totalSize = 0;

   int preSeq=-1;

   for(int i=0; i<n;i++){

   totalSize += file_length[i];

   int seq = totalSize/block_length;

   if(!(totalSize%block_length)){

   seq--;

   }

   if(preSeq==seq){

   if(seqnums.empty()seqnums.back()!=seq){

   seqnums.push_back(seq);

   }

   }

   preSeq = seq;

   }

   return seqnums;

   }

  

   第17题:

   请实现一个函数,把两个从大到小的有序链表合并成一个链表,新的链表是一个从小到大的有序链表。

   struct list

   {

   int value;

   list* next;

   };

   list * merge (list *list1_head, list*list2_head);

  

  

  

   list *merge(list *list1_head,list *list2_head)

   {

   list *newlist = NULL;

   list *current = NULL;

   while(NULL!=list1_head NULL!=list2_head)

   {

   if(list1_head->value > list2_head->value)

   {

   current = list1_head->next;

   list1_head->next = newlist;

   newlist = list1_head;

   list1_head = current;

   }

   else

   {

   current = list2_head->next;

   list2_head->next = newlist;

   newlist = list2_head;

   list2_head = current;

   }

   }

  

   while(NULL!=list1_head)

   {

   current = list1_head->next;

   list1_head->next = newlist;

   newlist = list1_head;

   list1_head = current;

   }

   while(NULL!=list2_head)

   {

   current = list2_head->next;

   list2_head->next = newlist;

   newlist = list2_head;

   list2_head = current;

   }

   return newlist;

   }

  

   第18题:

   如果两个英文单词,组成它们的字符集合相同,而且相同字符出现的次数也相同,则称这两个词匹配:比如说:同”abbc”与词 ”babc”是匹配的。有一个词典,存储在字符串数组const char* dictionary[n]中,数组的每一个元素是一个词。对于任意给出的句子。句子中的单词使用空格分割。请实现以下函数,判断句子中是否有词和词典中的词匹配。
bool is_matching( const char* dictionary[],int n, const char* sentence);

  

  

   abbc 和 babc 同的话, 即词语单个字符的ascii码和相同即词语相同。 把字符串比较转换成 int 型数字比较。
数组中所有词转换成int 放入 int数组。
比较大小