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. 慢重传

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言是一种高级程序设计语言,广泛应用于系统程序开发、操作系统和网络技术等领域。C语言软件工程师需要具备扎实的编程基础、深入理解计算机原理和操作系统的工作原理、以及熟练的使用C语言编写代码的能力。 在面试中,C语言软件工程师可以面试官询问的内容包括: 1. C语言基础知识:包括数据类型、变量、运算符、控制语句、函数等方面的基础知识,考察对C语言的熟练掌握程度; 2. 算法和数据结构:考察应聘者对基本算法和数据结构的理解和熟练程度,能否运用数据结构解决实际问题; 3. 操作系统基础知识:考察应聘者对操作系统的了解和掌握程度,能否使用操作系统的功能和接口编写程序; 4. 程序设计能力:考察应聘者的程序设计能力,包括问题分析和解决能力、代码编写规范和可读性等方面; 5. 面向对象编程能力:考察应聘者的面向对象编程能力,尤其是对C++的了解程度; 6. 常用工具和库的使用:考察应聘者对常用工具和库的运用能力,包括调试工具、网络库、图形库等方面。 总体来说,C语言软件工程师需要具备扎实的编程基础、相关知识的深入理解和应用能力。在面试中,应聘者需要以实际项目为基础,充分展现自己的编程实力和解决问题的方法和思路,这可以更好地展示自己的技术能力和价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值