20道c++笔试题

面试某公司,由于本身非科班,基本功不扎实,在笔试没答上来,被刷了。这里记录一下题目

1.二层交换机能够识别()地址。

A.MAC地址

B.域名

C.IP地址

D.UDP端口号


2.以下代码运行结果为

#include "stdio.h"

class Base {
public:
  Base() { echo(); }
  virtual void echo() { printf("Base"); }
};

class Derived : public Base {
public:
  Derived() { echo(); }
  virtual void echo() { printf("Derived"); }
};

int main() {
  Base *base = new Derived();
  base->echo();
  return 0;
}

答:BaseDerivedDerived

3.以下程序的输出是

#include "bits/stdc++.h"
using namespace std;

class Base {
public:
  Base(int j) : i(j){};
  virtual ~Base() {}
  void func1() {
    i *= 10;
    func2();
  }
  int getValue() { return i; }

protected:
  virtual void func2() { i++; }
  int i;
};

class Child : public Base {
public:
  Child(int j) : Base(j) {}
  void func1() {
    i *= 100;
    func2();
  }

protected:
  void func2() { i += 2; }
};

int main() {
  Base *pb = new Child(1);
  pb->func1();
  cout << pb->getValue()<< endl;
  delete pb;
}

答:12

4.查看TCP连接的命令是什么()

A.netstat

B.tcpdump

C.top

D.ifconfig

答:A

5.盒子里有8支笔,黑色5支,蓝色3支,请问抽3支,至少2支是蓝色的概率?

6.计算以下代码的空间复杂度

int factorial(unsigned int n) {
    if (i <= 1)
        return 1;
    else
        return n * factorial(n-1)
}

答:O(N)

7.以下代码的输出结果是

#include "stdio.h"

int main() {
  printf("This book is only $%2.2f for sale.", 3.246e2);
}

答:This book is only $324.60 for sale.

前面的2是指长度,如果长度不够会在前面补充空格,如果长度够则不会截断

8.下面哪个操作符能重载

A.::和()

B..和→

C.sizeof和static_cast

D.*和+

c++不能重载的运算符

答:D

9.190.233.27.13/16所在网段地址()

答:192.233.0.0

  1. c++11中的三种智能指针是什么?

答:unique_prt,share_prt,weak_prt

11.两个人轮流抛硬币,规定第一个抛出正面的人可以吃到苹果,请问先抛的人吃到苹果的概率?

答:1/2

12.以下代码的输出结果

#include "stdio.h"

void func(int *p) {
  static int num = 4;
  p = &num;
  (*p)--;
}

int main() {
  int i = 5;
  int *p = &i;
  func(p);
  printf("%d", *p);
  return 0;
}

答:参数传递是拷贝指针,并非同一个指针,故答案是5

13.下面c++程序的运行结果为:

#include "bits/stdc++.h"
using namespace std;

class Base {
public:
  void virtual Func() { cout << "Base" << endl; }
};

class Derived : public Base {
public:
  void virtual Func() { cout << "Derived" << endl;}
};

int main() {
  Base *pBase = new Base();
  pBase->Func();
  Derived *pDerived = (Derived *)pBase;
  pDerived->Func();
  delete pBase;

  pDerived = new Derived();
  pBase = pDerived;
  pBase->Func();

  delete pDerived;
  return 0;
}

答:BaseBaseDerived

14.在ASC算法team日常开发中,常常面临一些数据结构的抉择,… 6000左右的词汇,词汇长度在10-15之间,词汇字符是英文字母,区分大小写,请选择一个最快的数据结构

A. 链表,比较函数开销;1次运算/每字符

B.二叉搜索树,比较函数开销;1次运算/每字符

C.哈希表,hash算法开销;10次运算/每字符

D.TRIE树,寻找子节点开销;1次运算/每字符

答:网上找的答案说是D,我也不懂

在ASC算法team日常开发中,常常面临一些数据结构的抉择,__牛客网 (nowcoder.com)

15.以下代码中,a的值为

#include "stdio.h"
#define SUM(x, y) x + y

int main() {
  int a = 3;
  int b = 2;
  a += a * SUM(a, b) * b;
  printf("%d", a);
  return 0;
}

16.Internet的网络层含有四个重要的协议,分别为()

A. IP,ICMP,ARP,RARP

B. IP,ICMP,ARP,UDP

C. TCP,ICMP,UDP,ARP

D. UDP,IP,ICMP,RARP

答:C

17.请找出下面程序中有哪些错误

int main() {
    int i = 10;
    int j = 1;
    const int *p1; // (1)
    int const *p2 = &i; // (2)
    p2 = &j; // (3)
    int *cosnt p3 = &i; // (4)
    *p3 = 20; // (5)
    *p2 = 30; // (6)
    p3 = &j; // (7)
    return 0;
}

18.下面哪种STL容器中的对象是连续存储的()?

A. map

B. list

C. vector

D. set

答:C

19.在发送TCP接收到确认ACK之前,由其设置的定时倒计时到时,此时发送TCP会

A.调整传送窗口尺寸

B.重传重要的数据段

C. 放弃该连接

D.向另一个目标端口重传数据

答:超时应该是重传

20.以下不属于TCP拥塞控制方法的是

A. 慢启动阈值ssthresh减慢

B. 慢开始

C. 拥塞避免加法增大

D. 慢重传

答:不了解


#笔试#
全部评论
C的岗位较多,大佬试试了不
2
送花
回复
分享
发布于 2022-09-13 18:58 北京
校招可以试试我首页
1
送花
回复
分享
发布于 2022-09-15 07:35 上海
滴滴
校招火热招聘中
官网直投
16应该是A吧 TCP,UDP是传输层的协议
点赞
送花
回复
分享
发布于 2022-09-14 11:07 黑龙江
20应该是D 没有慢重传
点赞
送花
回复
分享
发布于 2022-09-14 11:09 黑龙江

相关推荐

-&nbsp;自我介绍-&nbsp;讲讲你目前在蔚来测试什么产品?你在其中的工作是什么?你在工作中使用的是什么自动化测试框架?case&nbsp;的通过率如何?-&nbsp;你的&nbsp;Python&nbsp;水平如何?-&nbsp;看到你之前有做过开发,现在有做测试,你今后的规划是什么?-&nbsp;我们做的是偏底层网络的,对网络知识的要求可能会比较高,你这方面怎么样?-&nbsp;讲讲&nbsp;TCP/IP&nbsp;五层模型?-&nbsp;了解&nbsp;ARP&nbsp;吗,讲讲这个协议?-&nbsp;说下你对&nbsp;TCP&nbsp;和&nbsp;UDP&nbsp;的了解和见解?TCP&nbsp;遇到堵塞是如何解决的?了解过粘包吗,如何解决?-&nbsp;简单说说&nbsp;TCP&nbsp;三次握手?了解半连接和全连接吗?-&nbsp;简单说说&nbsp;TCP&nbsp;四次挥手?了解&nbsp;TCP&nbsp;连接中的一些状态吗,比如&nbsp;TIME_WAIT&nbsp;和&nbsp;CLOSE_WAIT?-&nbsp;有了解过&nbsp;PING&nbsp;泛洪(PING&nbsp;Flood)吗?如何防范?-&nbsp;Linux&nbsp;接触的多吗?用过&nbsp;Ubuntu&nbsp;吗?用过哪些网络抓包工具?有没有了解&nbsp;Linux&nbsp;上的一些网络相关工具,例如&nbsp;tcpdump?-&nbsp;对虚拟化了解吗?(不太了解)当我们从虚拟机访问百度时,会经过什么样的流程?-&nbsp;讲讲&nbsp;TCP&nbsp;报文格式?头部有多大?-&nbsp;对于一个&nbsp;2000&nbsp;字节的&nbsp;UDP&nbsp;大包,MTU&nbsp;为&nbsp;1500&nbsp;字节,IP&nbsp;层会作何处理?-&nbsp;了解(数据包的)分片和重组吗?如何判断数据包是否分片?-&nbsp;刚才我说到了&nbsp;ARP,ARP&nbsp;(报文)是通过什么方式进行传播的?(广播)了解广播和组播的区别吗?-&nbsp;DHCP&nbsp;了解吗,简单讲讲?-&nbsp;BPS&nbsp;和&nbsp;PPS&nbsp;了解吗?-&nbsp;Python&nbsp;这边你之前用的都是哪些版本(他们用&nbsp;2.7,太草了)-&nbsp;写过&nbsp;Socket&nbsp;吗,用过哪些库?-&nbsp;对&nbsp;IPv4&nbsp;和&nbsp;IPv6&nbsp;有什么了解吗?知道&nbsp;CIDR&nbsp;吗?-&nbsp;有了解过最长前缀匹配吗?有没有在自己的机器上配置路由表?-&nbsp;NAT&nbsp;了解吗?简单说一下?了解&nbsp;SNAT&nbsp;和&nbsp;DNAT&nbsp;的区别吗?-&nbsp;有用过&nbsp;scapy&nbsp;吗?-&nbsp;代码题:现有一个包含四个元素的&nbsp;list,每次调用接口时都需要从&nbsp;list&nbsp;中随机选出一个(索引)不重复的数,应该如何设计代码?-&nbsp;场景题:当你发现你上网很慢的时候,你如何进行排查?-&nbsp;反问
点赞 评论 收藏
转发
6 29 评论
分享
牛客网
牛客企业服务