• 笔试错题整理


    来源:2019爱奇艺秋招C++笔试题(B)

    internet骨干网中的路由器通过BGP协议传输数据,BGP协议使用传输层的协议与端口有(      )

    正确答案: B C   你的答案: A C (错误)

    A.udp协议
    B.tcp协议
    C.端口179
    D.端口169

    解析:RIP协议、OSPF协议,它们是内部网关协议,本文介绍外部网关协议,即AS之间使用协议即BGP协议。

    BGP属于网络层协议,在BGP中,路由器对使用179端口的半永久TCP连接来交换选路信息

    下面程序输出结果为()

    #include <stdio.h>
     #include <stdlib.h>
     class A
     {
     };
     int main()
     {
     printf("%d
    ",sizeof(class A));
     return 0;
     }
    A.0
    B.1
    C.4
    D.8

     答案:B

    解析:理论上来说内存数应该为0,但是如果两个对象建立可能共享首地址,为了区分开来,让无成员的类也有了1;

    下列程序的运行结果是1*2  3*4,请将横线处缺失程序补充完整()

    class Test{
     public:
     Test(int a,int b) {x=a;y=b;}
     ~Test() {}
     void print(){cout<<x<<"*"<<y<<"  ";}
     private:
     int x;
     int y;
     };
     int main(){
     Test t[2]={                  };
     for(int i=0;i<2;i++)
     t[i].print();
     return 0;}
    A.1,2,3,4
    B.(1,2),(3,4)
    C.Test(1,2),Test(3,4)
    D.1234
    答案:C
    解析:如果B选项改成 {1,2},{3,4} 那么也是对的
     

    下列程序的运行结果是B0,请将横线处缺失程序补充完整()

    class B0
     { public:
     virtual void display(){cout<<"B0"<<endl;}
     };
     class B1: public B0
     {
     public:
     void display(){cout<<"B1"<<endl;}
     };
     class D1: public B1
     {
     public:
     void display(){cout<<"D1"<<endl;}
     };
     void fun(         )
     { ptr.display(); }
     int main()
     {
     D1 d1;
     fun(d1);
     }
    A.B0 &ptr
    B.D1 &ptr
    C.D1 ptr
    D.B0 ptr

    答案:D

    解析:因为这里用到了虚函数,所以子类实现的话,就是对该虚函数实现了重写,这个函数实质上还是属于基类,如果使用A的话,那么输出的肯定是D1,所以我们只能让他强转

    来源:网易2020校招笔试-c++开发工程师(正式批)

    以下哪个可能会产生编译错误?

    #include<iostream>
    class Foo
    {
    public:
        Foo(int v) :m_value(v) { } //1
        void print()
        {
            std::cout << m_value;
        }
        ~Foo() {}
         
    private:
        Foo() { m_value = 0; }//2
        int m_value;
    };
    int main()
    {
        Foo a;//3
        a.print();
        Foo b(1);//4
        b.print();
    }
    A.1
    B.2
    C.3
    D.4
    答案:C
    解析:因为无参构造函数定义的是私有类型,是不能在外面使用的,所以第3句无法执行

    有关c++语言的引用,以下选项正确的是

    A.引用不需要初始化;
    B.引用初始化后,可以重新绑定到另外一个对象;
    C.引用本身不是一个对象,所以不能定义引用的引用;
    D.引用本身不是一个对象,但是可以定义指向引用的指针;

    答案:C

    解析:实质是因为引用本身不是一个对象,只是一个别名,所以我们无法再定义其他东西指向它,所以C才是对的

    以下C++代码输出几个"1"?

    #include<iostream> 
    using namespace std;
    class TestClass {
    private:
        int number;
    public:
        TestClass(int n)
        {
            number = n;
        }
        TestClass(const TestClass& rhs)
        {
            number = rhs.number;
            std::cout << "1" << std::endl;
        }
        TestClass operator=(const TestClass& rhs) {
            number = rhs.number;
            return *this;
        }
    };
    int main()
    {
        TestClass a(1),b(2),c(3);
        a = b = c;
        return 0;
    }
    A.0
    B.1
    C.2
    D.3
    E.4

    答案:C
    解析:这题很明显是考拷贝构造函数和重载赋值运算符,拷贝构造函数一般是在用对象初始化对象,函数传参,函数返回值几个方面,
    这里只有重载了赋值运算符,有返回值,返回两次,所以调用了两次拷贝构造函数

    来源:哔哩哔哩2019秋招技术岗

    下面哪些项是TCP具有的能力?()

    A.有连接
    B.数据可靠传输
    C.数据按序到达
    D.端到端流量控制
    答案:ABD
    解析:数据只是按序发送给,但是不一定会按序到达,有可能中间的包在路上挂了

    以下说法正确的是:()

    A.非静态方法的使用效率比静态方法的效率高。
    B.非静态方法不存在线程安全的问题。
    C.非静态方法可以直接通过类名.方法名的方法来调用。
    D.非静态方法中不可调用静态方法 。

    答案:B
    解析:因为不同线程共享的只是全局区和堆区,动态变量作用域只在自己线程内,所以安全的很

    HTTP协议中的禁止访问(Forbidden)的状态码是

    参考答案
    (1) 403

    解析:

    常见HTTP状态码 
    200          ok  服务器成功处理请求
    301/302  重定向  请求的URL已经转移
    304        未修改   客户缓存的资源是最新的 客户端使用缓存内容
    403        Forbidden   禁止。服务器拒绝请求
    404       NotFound      未找到资源
    405   Method Not Allowed  不允许使用的方法


    在SQL查询时,如果去掉查询结果中的重复组,

    参考答案
    (1) distinct

    来源: 京东2015校园招聘技术类笔试题

    关于HTTP协议的说法,以下哪些说法是不正确的()?

    有状态,前后请求有关联关系
    FTP也可以使用HTTP协议
    HTTP响应包括数字状态码,200代表此次请求有正确返回
    HTTP和TCP,UDP在网络分层里是同一层次的协议

    答案   A B  D

    解析:HTTP是无状态的协议 ,FTP和HTTP是不同的协议,HTTP的底层其实是用FTP实现的,HTTP有数字状态码,

    常见的有200正确   301 资源(网页)永久转移到其他URL  404 网页不存在   500 内部服务器错误 

    HTTP 是应用层    TCP UDP是传输层

    如果将固定块大小的文件系统中的块大小设置大一些,会造成()。

    更好的磁盘吞吐量和更差的磁盘空间利用率
    更好的磁盘吞吐量和更好的磁盘空间利用率
    更差的磁盘吞吐量和更好的磁盘空间利用率
    更差的磁盘吞吐量和更差的磁盘空间利用率

    答案:A

    解析:磁盘吞吐量:吞取内存块的次数

    磁盘空间利用率:对于需要的内存,让我们浪费的内存尽量少

    因为内存中是按块存储的,如果我们提高块的大小,我们就可以尽量减少吞吐次数达到更好的吞吐量,但是我们块更大,所以我们可能会更容易浪费空间

     

    在一个世世代代都重男轻女的村庄里,村长决定颁布一条法律,村子里没有生育出儿子的夫妻可以一直生育直到生出儿子为止,假设现在村子上的男女比例是1:1,

    这条法律颁布之后的若干年后村子的男女比例将会()

    男的多
    女的多
    一样多
    不能确定

    答案:C

    解析:这其实是一个条件概率问题

    "一直生育直到生出儿子为止":
    (1) 说明每家生了男孩后便不再生了
    (2) 每家都只有一个男孩
    那么我们可以先求出每家孩子个数的期望设为X
    X       P(概率)
    1        0.5 //第一次就生出了男孩的概率是0.5
    2        0.5^2
    ...
    E(X) = 1*0.5+ 2*0.5^2+...= 1/0.5=2
    每家孩子个数的期望是2,而且都有且只有1个男孩,那么女孩的个数也是1
    所以男孩和女孩个数相等
    来源:京东2019校招笔试C++开发工程师笔试题
    如何在多线程中避免发生死锁?
    • 允许进程同时访问某些资源。
    • 允许进程强行从占有者那里夺取某些资源。
    • 进程在运行前一次性地向系统申请它所需要的全部资源。
    • 把资源事先分类编号,按号分配,使进程在申请,占用资源时不会形成环路。

    答案:ABCD

    解析:死锁发生的四个条件

    请求与保持条件: 如果因为申请资源而堵塞,也不会释放当前已有的资源

    互斥条件:   同一时间只能有一个访问

    不剥夺条件:一个进程如果没有完成,那么他已有的资源不能被剥夺

    循环等待条件:  进程之间产生了环  如  1要2,2要3 ,3要4,4要1,这样就会一起在等待

    避免死锁:

    1.破坏死锁的四个必要条件
    2.加锁顺序一致
    3.避免锁未释放的场景
    4.资源一次性分配
     
     
     
    在C++中,引用和指针的区别是()
    • 引用总是指向一个对象,指针可能不指向对象
    • 引用和指针都可以被重新赋值
    • 引用不能用const修饰,而指针可以
    • 引用创建时必须初始化,而指针则可以在任何时候被初始化

     答案: ACD

    解析:引用创建必须初始化,后面代表都只是一个别名,不能更换,指针可以在任意的时候赋值修改,引用不能被const修饰,因为如果修饰的话就变成了常量,没有意义,所以编译器是不允许编译通过的

    关于C++中的友元函数说法正确的是()
    • 友元函数需要通过对象或指针调用
    • 友元函数是不能被继承的
    • 友元函数没有this指针
    • 友元函数破环了继承性机制

    答案:BC

    解析:友元函数只是当前的那个类可以使用,友元函数不属于类的内部函数所以不能用this指针,友元函数破坏的是类的封装性,友元函数实际意义来说也就是普通的函数

  • 相关阅读:
    mysql合并数据
    java协变类型返回
    OSI网络七层模型理解
    mysql性能优化学习
    redis lock 和 tryLock 实际使用区别
    多字段关联同一张表
    第一个Mabits程序
    Mybatis使用Map来实现传递多个参数及Mybati实现模糊查询
    使用Mybatis框架的步骤
    sql小技巧
  • 原文地址:https://www.cnblogs.com/Lis-/p/12186295.html
Copyright © 2020-2023  润新知