最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

公司C++面试题答案

来源:动视网 责编:小OO 时间:2025-09-29 18:27:43
文档

公司C++面试题答案

C/C++面试题一、单选题1.以下叙述正确的是(C)A.在C++程序中,main函数必须位于程序的最前面B.C++程序的每行中只能写一条语句C.C++语言本身没有输入输出语句D.在对一个C++程序进行编译的过程中,可发现注释中的拼写错误2.有关函数重载的正确说法是(B)A.函数名不同,但参数的个数和类型相同B.函数名相同,但参数的个数不同或参数的类型不同C.函数名相同,参数的个数和类型相同D.函数名相同,函数的返回值不同,而与函数的参数和类型无关3.已知inta[3][2]={3,2,1};则
推荐度:
导读C/C++面试题一、单选题1.以下叙述正确的是(C)A.在C++程序中,main函数必须位于程序的最前面B.C++程序的每行中只能写一条语句C.C++语言本身没有输入输出语句D.在对一个C++程序进行编译的过程中,可发现注释中的拼写错误2.有关函数重载的正确说法是(B)A.函数名不同,但参数的个数和类型相同B.函数名相同,但参数的个数不同或参数的类型不同C.函数名相同,参数的个数和类型相同D.函数名相同,函数的返回值不同,而与函数的参数和类型无关3.已知inta[3][2]={3,2,1};则
C/C++面试题

一、单选题

1.以下叙述正确的是( C    )

A.在C++程序中,main函数必须位于程序的最前面

B.C++程序的每行中只能写一条语句

C.C++语言本身没有输入输出语句 

D.在对一个C++程序进行编译的过程中,可发现注释中的拼写错误

2.有关函数重载的正确说法是( B )

A.函数名不同,但参数的个数和类型相同

B.函数名相同,但参数的个数不同或参数的类型不同

C.函数名相同,参数的个数和类型相同

D.函数名相同,函数的返回值不同,而与函数的参数和类型无关

3.已知int a[3][2]={3,2,1}; 则表达式“a[0][0]/a[0][1]/a[0][2]”的值是( B )

A.0.166667

B.1

C.0

D.错误的表达式。

4.若用数组名作为函数调用时的实参,则实际上传递给形参的是( A )

A.数组首地址

B.数组的第一个元素值

C.数组中全部元素的值

D.数组元素的个数

5.下面函数的功能是( B    )

    void fun(char *s1, char *s2) { while(*s2++ = *s1++); } 

A.字符串比较

B.字符串复制

C.字符串连接

D.字符串反向

6.下面关于虚函数和函数重载的叙述中,不正确的是(    A    )

A.虚函数不是类的成员函数 

B.虚函数实现了C++的多态性 

C.函数重载允许非成员函数,而虚函数则不行 

D.函数重载的调用根据参数的个数、序列来确定,而虚函数依据对象确定

7.要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为(    D    )

A.const char *p="ABCD";

B.char const *p="ABCD";

C.char *const p="ABCD";

D.const char * const p="ABCD";

8.以下不合法的用户标识符是( C    )

A.f2_G3 

B.IF 

C.4d 

D._8

9.C语言中,double型数据所占字节数是(    D    )

A.2

B.4

C.6

D.8

10.关于类和对象不正确的说法是( C    )

A.类是一种类型,它封装了数据和操作

B.对象是类的实例

C.一个类的对象只有一个

D.一个对象必属于某个类

11.在类定义的外部,可以被访问的成员有( C  )

A.所有类成员              

B.private或protected的类成员

C.public的类成员          

D.public或private的类成员

12.关于this指针的说法错误的是( A  )

A.this指针必须显示说明              

B.当创建一个对象后,this指针就指向该对象

C.成员函数拥有this指针              

D.静态成员函数不拥有this指针

13.对静态成员的不正确描述是(    C    )

A.静态成员不属于对象,是类的共享成员    

B.静态数据成员要在类外定义和初始化

C.调用静态成员函数时要通过类或对象激活,所以静态成员函数拥有this指针

D.非静态成员函数也可以操作静态数据成员

14.在创建派生类对象时,构造函数的执行顺序是(  D )

A.对象成员构造函数、基类构造函数、派生类本身的构造函数

B.派生类本身的构造函数、基类构造函数、对象成员构造函数

C.基类构造函数、派生类本身的构造函数、对象成员构造函数

D.基类构造函数、对象成员构造函数、派生类本身的构造函数

15.字符串:”\\\\0211\\”xab” 的长度为(    B    )

A.1 

B.9 

C.0 

D. 11

16.以下叙述中错误的是( C )

A.局部变量的定义可以在函数体内部

B.全局变量的定义可以在函数以外的任何位置

C.同一程序中,全局变量和局部变量不能同名

D.函数的形参属于局部变量

17.下面对构造函数的不正确描述是( B  )

A.系统可以提供默认的构造函数             

B.构造函数可以有参数,所以可以有返回值

C.构造函数可以重载                               

D.构造函数可以设置默认参数

18.下面对析构函数的正确描述是( C  )

A.系统不能提供默认的析构函数              

B.析构函数必须由用户定义

C.析构函数没有参数                               

D.析构函数可以设置默认参数

19.对静态成员的不正确描述是( C  )

A.静态成员不属于对象,是类的共享成员    

B.静态数据成员要在类外定义和初始化

C.调用静态成员函数时要通过类或对象激活,所以静态成员函数拥有this指针

D.非静态成员函数也可以操作静态数据成员

20.下面对友元的错误描述是(  D )

A.关键字friend用于声明友元                                   

B.一个类的成员函数可以是另一个类的友元

C.友元函数访问对象的成员不受访问特性影响       

D.友元函数通过this指针访问对象成员

21.下列关于类的继承描述中,错误的是( A )

A.派生类可以访问基类的所有数据成员,也能调用基类的所有成员函数

B.派生类也是基类,但基类不一定具有派生类的全部属性和方法

C.继承描述类的层次关系,派生类可以具有与基类相同的属性和方法

D.一个基类可以有多个派生类,一个派生类可以有多个基类

22.当一个派生类私有继承一个基类时,基类中的所有仅有成员和保护成员成为派生类的( B  )

A.public成员    

B.private成员      

C.protected成员              

D.友元

23.不论派生类以何种方法继承基类,都不能使用基类的( B  )

A.public成员    

B.private成员      

C.protected成员              

D.public成员和protected成员

24.在C++中,要实现动态联编,必须使用( D  )调用虚函数

A.类名         

B.派生类指针              

C.对象名           

D.基类指针

25.下列运算符中(  A  )运算符在C++中不能重载。

A.? : 

B.[  ] 

C.new 

D.&&

26.在派生类中,重载一个虚函数时,要求函数名、参数的个数、参数的类型、参数的顺序和函数的返回值( B  )

A.不同        

B.相同         

C.相容              

D.部分相同

27.下面函数原型声明中,( B  )声明了fun为纯虚函数

A.void fun()=0;         

B.virtual void fun()=0;         

C.virtual void fun();       

D.virtual void fun(){};

28.在排序方法中,关键码比较次数与记录地初始排列无关的是( D )

A.Shell排序     

B.归并排序       

C.直接插入排序        

D.选择排序

29.代码如下中,变量val的内存地址位于( B )

void func() { 

        static int val; 

        … 

A.已初始化数据段    

B.未初始化数据段      

C.堆             

D.栈

30.同一进程下的线程可以共享以下( B )

A.stack            

B.data section 

C.register set        

D.thread ID

31.short a[100],sizeof(a)返回值是( D )

A.2    

B.4       

C.100       

D.200        

E.400 

32.一个栈的入栈序列是A,B,C,D,E,则栈的不可能的输出序列是( C )

A.EDCBA;  

B.DECBA;    

C.DCEAB;   

D.ABCDE

33.友元运算符obj>obj2被C++编译器解释为( A )。 

A. operator>(obj1,obj2)

B. >(obj1,obj2)

C. obj2.operator>(obj1)

D. obj1.oprator>(obj2)

34.在一个类中可以对一个操作符进行(  D  )重载。

A.1种 

B.2种以下 

C.3种以下 

D.多种

35.下列关于C++运算符函数的返回类型的描述中,错误的是( C    )。

A.可以是类类型 

B.可以是int类型 

C.可以是void类型 

D.可以是float类型

二、多选题

36.下面描述中,错误的是( BC  )

A.在基类定义的public成员在公有继承的派生类中可见,也能在类外被访问

B.在基类定义的public和protected成员在私有继承的派生类中可见,在类外可以被访问

C.在基类定义的public和protected成员在保护继承的派生类中不可见

D.在派生类中不可见的成员要变成可访问的,需要进行访问声明

37.在C++中,不能被派生类继承的函数是( BC   )

A.成员函数          

B.构造函数             

C.析构函数             

D.静态成员函数

38.当不同的类具有相同的间接基类时,有特点(  AD )

A.各派生类对象将按继承路线产生自己的基类版本

B.派生类对象无法产生自己的基类版本

C.为了建立惟一的间接基类版本,在基类定义前加virtual即可

D.为了建立惟一的间接基类版本,应该声明虚继承

39.下列函数中,可以作为虚函数的是( CD  )

A.普通函数          

B.构造函数              

C.成员函数             

D.析构函数

40.下面描述中,正确的是( BD   )

A.虚函数是没有实现的函数              

B.纯虚函数的实现在派生类中

C.抽象类是没有纯虚函数的类          

D.抽象类指针可以指向不同的派生类

41.下列的模板说明中,正确提(  AD  )

A.template

B.template

C.template

D.template

42.假设有函数模板定义如下:

Template

Max(T a, T b, T &c)

c=a+b; 

}

下列选项正确的是(  AD  )

A.float x,y; float z;  Max(x,y,z);

B.int x,y,z; Max(x,y,z);

C.int x,y; float z; Max(x,y,z);

D.float x; int y, z; Max(x,y,z);

43.以下多线程对int型变量x的操作,哪几个需要进行同步( ABC )

A.x=y;         

B.x++;        

C.++x;            

D.x=1;

44.TCP和IP分别对应了 OSI中的哪几层 ( EG )

A.Application layer 

B.Data link layer 

C.Presentation layer 

D.Physical layer 

E.Transport layer 

F.Session layer 

G.Network layer 

全国计算机等级考试二级C++样题 

  公共基础知识

  一、选择题

  (1)下列关于栈的叙述正确的是

  A)栈是非线性结构  B)栈是一种树状结构  

  C)栈具有先进先出的特征  D)栈具有后进先出的特征 

  

  (2)结构化程序设计所规定的三种基本控制结构是

  A)输入、处理、输出  B)树形、网形、环形  

  C)顺序、选择、循环  D)主程序、子程序、函数

  

  (3)结构化程序设计的一种基本方法是

  A)筛选法  B)递归法  C)归纳法  D)逐步求精法

  

  (4)如果对一个关系实施了一种关系运算后得到了一个新的关系,而且新的关系中属性个数少于原来关系中属性个数,这说明所实施的运算关系是:A)选择  B)投影  C)连接  D)并

  

  二、填空题

  1.对于输入为N个数进行快速排序算法的平均时间复杂度是(   )

  2.在面向对象方法学中,直接反映了用户对目标系统的要求的模型是(  )

  3.软件测试方法中,黑盒测试个白盒测试法是常用的方法,其中黑盒测试法主要是用于测试(  )

  4.关系型数据库管理系统中存储与管理数据的基本形式是(  )

  C++语言程序设计

  

  一、选择题

  (1)C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是()

  A)面向过程  B)面向对象  C)安全性  D)复用性

  

  (2)C++语言的跳转语句中,对于break和continue说法正确的是()

  A)break语句只应用与循环体中  

  B)continue语句只应用与循环体中  

  C)break是无条件跳转语句,continue不是  

  D)break和continue的跳转范围不够明确,容易产生问题

  

  (3)for(int x=0,y=o;!x& &y<=5;y++)语句执行循环的次数是()

  A)0  B)5  C)6  D)无次数

  

  (4)考虑函数原型void test(int a,int 

  b=7,char="*"),下面的函数调用中,属于不合法调用的是()

  A)test(5); B)test(5,8); C)test(6,"#") D)test(0,0."*");

  

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

  A)重载函数必须具有不同的返回值类型;  B)重载函数形参个数必须不同;  

  C)重载函数必须有不同的形参列表  D)重载函数名可以不同;

  

  (6)下列关于构造函数的描述中,错误的是()

  A)构造函数可以设置默认参数;  B)构造函数在定义类对象时自动执行  

  C)构造函数可以是内联函数;  D)构造函数不可以重载

  

  (7)下面描述中,表达错误的是()

  A)公有继承时基类中的public成员在派生类中仍是public的  

  B)公有继承是基类中的private成员在派生类中仍是private的  

  C)公有继承时基类中的protected成员在派生类中仍是protected的  

  D)私有继承时基类中的public成员在派生类中是private的

  

  (8)应在下列程序划线处填入的正确语句是()

  #include

  class Base

  {  public:

    void fun(){cout<<"Base::fun"<  };

  class Derived:public Base

  {  void fun()

    {_____________ //显示调用基类的函数fun()

      cout<<"Derived::fun"<    }

  };

  A)fun(); B)Base.fun(); C)Base::fun(); D) Base->fun();

  

  (9)有如下程序:

  #include

  class BASE{

    char c;

  public:

    BASE(char n):c(n){}

    virtual~BASE(){cout<  };

  class DERIVED:public BASE{

    char c;

  public:

    DERIVED(char n):BASE(n+1),c(n){}

    ~DERIVED(){cout<  };

  int main()

  {  DERIVED("X");

    return 0;

  }

  执行上面的程序将输出()

  A)XY B)YX C)X D)Y

  

  (10)在进行完任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中只能用于检测输入流状态的操作函数名称是()

  A)fail B)eof C)bad D)good

  二、填空题

  (1)下面程序的打印结果是 [1]

  #incude

  int f(int);

  int main()

  {  int i;

    for(i=0;i<5;i++)

    cout<    return0;

  }

  int f(int i)

  {  static int k=1;

    for(;i>0;i- -)

    k + = i;

    return k;

  }

  (2)在用class定义一个类时,数据成员和成员函数的默认访问权限是 [2]

  (3)含有纯虚函数的类称为 [3]

  (4)已知intDBL(int n){return n + n;}和longDBL(long n){return n 

  +n;}是一个函数模板的两个实例,则该函数模板的定义是 [4]

  (5)在下面程序的横线处填上适当的语句,使该程序执行结果为10.

  #include

  class MyClass

  {  public:

    MyClass(int a){x = a;} 

    [5] //取x值

    private

    int x;

  };

  int main()

  {  MyClass my(10);

    cout<    return 0;

  }

  三、上机操作题(改错题1道,简单应用1道,综合应用1道)

  1.使用VC6打开考生文件夹下的工程proj1,此工程包含一个源程序文件main.cpp,但该程序运行有问题,请改正main函数中的错误,使程序的输出结果为:

  member=0

  member=5

  menber=10

  源程序文件main.cpp清单如下:

  #include

  class MyClass

  {

  public:

    MyClass(int i){member=i;}

    void SetMember(int m){member=m;}

    int GetMember()const{return menber;}

    void print()cont{cout<<"member="<  private:

    int member;

  };

  voed main()

  {

  /* * * * * * * * * * found * * * * * * * * * */

    MyClass obj1;

    obj1.print();

    MyClass obj2(3);

  /* * * * * * * * * * found * * * * * * * * * */

    obj1.member=5;

  /* * * * * * * * * * found * * * * * * * * * */

    MyClass.SetMember(10);

    obj1.print();

    obj2.print();

  }

  

  2.请编写一个函数int find(char s[],char 

  t[]),该函数在字符串s中查找字符串t,如果找到,则返回字符串t在字符串s中的位置(整数值);否则返回-1.注意:用数组方式及两重循环来实现该函数.

  注意:部分源文件程序已存在文件PROC2,CPP中. 

  请勿修改主函数main和其他函数中的任何内容,仅在函数find的花括号中填写若干语句.

  文件PROC2.CPP的内容如下:

  #include

  int find(char s[],char t[]);

  const int MAXLINE =256;

  int main() 

  {  char source[MAXLINE],rarget[MAXLINE];

    cout <<"Please input a string for searching:\\n";

    cin.getline(source,MAXLINE);

    cout<<"Please input a string you want to find:\\n";

    cin.getline(target,MAXLINE);

    int intpos = find(source,target);

    if(intpos>=0

      cout<<"Finding it.The target string is at index"

        <    else

      cout<<"Not finding it.\\n";

    return 0;

    } 

  int find(char s[],char t[])

  { 

  }

  3.使用VC6打开考生文件夹下的工程proj3.此工程包含一个源程序文件main.cpp.其中定义了用于表示日期的类Date,但类Date的定义并不完整.请按要求完成下列操作,将类Date的定义补充完整:

  (1)定义私有数据成员year,month和day分别用于表示年,月,日,它们都是int型的数据.请在注释"// * * 2 

  * *"之后添加适当的语句.

  (2)完成默认构造函数Date的定义,使Date对象的默认值为:year=1,month=1,day=1,请在注释"// * 

  * 2 * *"之后添加适当的语句.

  (3)完成重载构造函数Date(int y,int m,int 

  d)的定义,把数据成员year,month和day分别初始化为参数y,m,d的值,请在注释"//* * 3 * 

  *"之后添加适当的语句.

  (4)完成成员函数print的类外定义,使其以"年-月-日"的格式将Date对象的值输出到屏幕上.请在注释"//* * 4 

  * *"之后添加适当的语句.

  注意:除在指定位置添加语句之外,请不要改动程序中的其他内源程序文件main.cpp清单如下:

  //main.cpp

  #include

  class Date{

  public:

    //* * 2 * *

    Date(int y,int m,int d)

    {

      //* * 3 * *

    }

    void print() const;

  

  private:

    // date members

    //* * 1 * *

  };

  

  void Date::print()const

  {  //* * 4 * *

  }

  

  int main()

  {  Date national_day(1949,10,1);

    national_day.print();

    return 0;

  }

  ----------------------------------------------------

  参:

  公共基础知识:

  一:选择题:

  (1) D   (2) C   (3) D   (4) B

  二:填空题:

  (1)[1]:O(Nlog2N)

  (2)[2]:功能模型

  (3)[3]:软件外部功能

  (4)[4]:二维表

  C++程序设计

  一:选择题

  1-5 :B B C C C

  6-10:D B C A B

  二:填空题

  (1)[1]:1 2 5 11 21

  (2)[2]:private 或 私有

  (3)[3]:抽象类

  (4)[4]:templateT DBL(T n){return n+n;}

  (5)[5]:int GetNum(){return x;} 或 int GetNum() const{return x;}

2.是问<>和""的区别吧?

#include 引用标准库的头文件(从标准库目录开始搜索)

#include “filename.h” 引用非标准库的头文件(从用户工作目录开始搜索)

3.const的用途是定义常量(包括一般常量、函数的参数等),另外一个是在函数的定义后

面写上const,用来保护函数内用到的变量不会随意改变

文档

公司C++面试题答案

C/C++面试题一、单选题1.以下叙述正确的是(C)A.在C++程序中,main函数必须位于程序的最前面B.C++程序的每行中只能写一条语句C.C++语言本身没有输入输出语句D.在对一个C++程序进行编译的过程中,可发现注释中的拼写错误2.有关函数重载的正确说法是(B)A.函数名不同,但参数的个数和类型相同B.函数名相同,但参数的个数不同或参数的类型不同C.函数名相同,参数的个数和类型相同D.函数名相同,函数的返回值不同,而与函数的参数和类型无关3.已知inta[3][2]={3,2,1};则
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top