C++面试题2

第2课 - 腾讯笔试题精选二

  1. 考虑函数原型void hello(int a, int b=7,char* pszC=”*”),下面的函数调用中属于不合法调用的是()
  2. hello(5)
  3. hello(5,8)
  4. hello(6,”#”)
  5. hello(0,0,”#”)

解析:A在C语言中会编译出错,没有显示后面的参数,但是在C++中是合法的,在C++中有些参数如果有了默认值,可以不幅值使用,使用规则是从左到右进行,但是却不能掉过中间的参数。

正确选C

考点:C++默认元素参数

  1. 一个有800个结点的完全二叉树,问有多少个叶子结点()
  2. 100
  3. 200
  4. 400
  5. 无法确定

解析:有固定结点的完全二叉树它的叶子结点也是固定的。满二叉树:二叉树中所有的分支结点都是2,而且叶子结点都在同一层次上,称这样的二叉树为满二叉树。完全二叉树:如果一颗具有n个结点的高度为k的二叉树,它的每一个结点斗鱼高度为k的man二叉树中编号为n-1的结点对用,则称这可二叉树为完全二叉树,从上到下从左到右编号。完全二叉树的高度为:log2800+1,有10层,前9层是满二叉树有511(29-1)个结点,第十层有289个结点,289个结点赌赢145个父结点,第九层一共有256个结点,也就是有111个没有子节点,111和189求和为400。

正确选C

考点:数据结构-二叉树

  1. 若6元素A、B、C、D、E、F出栈顺序为B、D、C、F、E、A,则栈的最小容量为()

A.3

B.4

C.5

D.6

解析:栈的基本性质是后进先出,AB进栈,B出栈,CD进栈,DC出栈,EF进栈FE出栈,A出栈。

正确选A

考点:数据结构-栈

  1. 排序算法的稳定是指,关键码相投的记录排序前后相对位置不发生改变,下面哪种排序算法是不稳定的()
  2. 插入排序
  3. 冒泡排序
  4. 快速排序
  5. 归并排序

解析:快速排序和希尔排序是不稳定的。

正确选C

考点:数据结构-排序

  1. 如下关于进程的描述不正确的是()

A.进程在退出时会自动关闭自己打开的所有文件

B. 进程在退出时会自动关闭自己打开的网络链接

C. 进程在退出时会自动销毁自己打开的所有线程

D.进程在退出时会自动销毁自己打开的共享内存

解析:共享内存是线程间通信的方式之一。操作系统将进程看做是资源分配的基本单位,一个进程退出了,操作系统开始回收系统资源。系统资源包括文件描述符、网络连接和线程。内存也是一种系统资源,但是共享内存是多个进程一起享用的,不能因为一个进程的退出销毁。

正确选D

考点:操作系统,进程通信

  1. 在一个cpp文件里面,定义了一个static类型的全局变量,下面一个正确的描述是()
  2. 只能在该cpp所在的编程模块中使用该变量
  3. 该变量的值是不可改变的
  4. 该变量不能再类的成员函数中引用
  5. 该变量只能是基本类型(如int,char)不能是C++类型

解析:const变量不可改变,B错误;全局变量可以在类的成员中使用,只要限制在一个文件中即可,C错误;全局变量可以是基本类型也可以是类的类型。

正确选A

考点:C语言

  1. 下面有关重载函数的说法中正确的是()

A.重载函数必须具有不同的返回值类型

B. 重载函数形参个数必须不同

C. 重载函数必须有不同的形参列表

D.重载函数名可以不同

解析:C++中有重载,使用一个函数名定义多个函数,C语言中没有重载。重载是根据参数列表来区分的,不是通过返回值;参数列表不同,不代表个数不同;重载函数名一定是相同的。

正确选C

考点:C++

  1. 某火车站要通过一条栈道(先进后出)来调换进入车站的列车顺序,若进栈的列车顺序为A、B、C,则下列哪个出站顺序不可能()
  2. ABC
  3. ACB
  4. CAB
  5. CBA

解析:进了就出来ABC,都进了再出CBA,A进了就出其他入栈ACB。

正确选C

考点:数据结构-栈

  1. 下列哪种情况下,B不能隐式转换为A()
  2. class B:public A{};
  3. class A:public B{};
  4. class B{operator A();};
  5. class A{A(const B&);};

解析:B是A的子类,B可以隐式转换为A,需要父类对象的时候都可以用子类对象来代替,但是反过来肯定不行;operator是用来操作符重载的,也可是类型转换函数,将B隐式转换为A;D选项是构造函数,可以达到期望的效果。作为隐式类型转换,编译器优先选择operator函数(gcc编译器),之后选择构造函数。在编译过程中我们要避免隐式转换,人为的强制类型转换。

正确选B

考点:C++

  1. 分析下面程序的运行结果:()

#include<iostream>

class CBbas

{

public:

       CBase(){cout<<”constructing CBase class”<<endl;}

~CBase(){cout<<”destructing CBase class”<<endl;}

};

class CSub:public CBase

{

public:

         CSub(){cout<<”constructing CSub class”<<endl;}

~CSub(){cout<<”destructing CSub class”<<endl;}

};

void main()

{

       CSub obj;

}

  1. constructing CSub class

constructing CBase class

destructing CSub class

destructing CBase class

  1. constructing CBase class

constructing CSub class

destructing CBase class

destructing CSub class

  1. constructing CBase class

constructing CSub class

destructing CSub class

destructing CBase class

  1. constructing CSub class

constructing CBase class

destructing CBase class

destructing CSub class

解析:构造函数的使用原则是先父母后客人再自己,析构函数与构造函数相反。

正确选C

考点:C++构造和析构

  1. 两个字符串char* a,char* b,输出b在a中的位置次序。void output_posit

ion(const char* a, const char* b);如:a = “abdbcc” b = “abc”,b在a中的位置次序为:014 015 034 035

解析:将b中每个元素的在a中的位置依次找出来

#include <cstdlib>

#include <iostream>

#include <string>

#include <list>

using namespace std;

void abstring(string& a, int ai, string& b, int bi, list<int>& l)

{

    if( bi == b.length() )

    {

        for(list<int>::iterator it=l.begin(); it!=l.end(); it++)

        {

            cout<<*it;

        }

       

        cout<<endl;

    }

    else

    {

        for(int i=ai; i<a.length(); i++)

        {

            if( a[i] == b[bi] )

            {

                l.push_back(i);

               

                abstring(a, i + 1, b, bi + 1, l);

               

                l.pop_back();

            }

        }

    }

}

void output_postion(const char* a, const char* b)

{

    string as = a;

    string bs = b;

    list<int> l;

   

    abstring(as, 0, bs, 0, l);

}

int main(int argc, char *argv[])

{

    output_postion("abdbcc", "abc");

   

    cout << "Press the enter key to continue ...";

    cin.get();

    return EXIT_SUCCESS;

}

原文地址:https://www.cnblogs.com/free-1122/p/11341940.html