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 黑龙江

相关推荐

我是小红是我:学校换成中南
点赞 评论 收藏
分享
废铁汽车人:秋招真是牛鬼蛇神齐聚一堂
点赞 评论 收藏
分享
评论
7
29
分享
牛客网
牛客企业服务