C++ 面试题

《《《《《《《《《《《《《《《《

一、选择题
1.下面各项不属于派生新类范畴的是( )
A.吸收基类的成员
B.改造基类的成员
C.删除基类的成员
D.添加新成员
2.在派生新类的过程中,(  )
A.基类的所有成员都被继承
B.只有基类的构造函数不被继承
C.只有基类的析构函数不被继承
D.基类的构造函数和析构函数都不被继承
3.下面不属于类的继承方式的是(  )
A.public
B.private
C.operator
D.protected
4.作用域分辨符是指(  )
A.?:
B. ::
C.->
D.&&
5.专用多态是指(  )
A.重载多态和强制多态
B.强制多态和包含多态
C.包含多态和参数多态
D.参数多态和重载多态
6.通用多态是指( )
A.重载多态和强制多态
B.强制多态和包含多态
C.包含多态和参数多态
D.参数多态和重载多态
7.下面各项中属于不可重载的一组运算符是(  )
A.+、—、*、/
B.[ ]、()
C. ::、.、?:、sizeof、.*
D.++、——
8.关于类的构造函数,下面说法不正确的是(  )
A.构造函数的作用是在对象被创建时将对象初始化为一个特定的状态
B.构造函数的函数名与类名相同
C.构造函数可以声明为虚函数
D.构造函数在对象被创建时被系统自动调用
9.在C++中,数组类型属于( )
A.基本数据类型
B.自定义数据类型
C.类类型
D.结构体类型
10.若有语句:float array[3][5][7];则数组array的元素个数为( )
A.3
B.5
C.7
D.105
11.关于虚基类,下面说法正确的是(  )
A.带有虚函数的类称为虚基类
B.带有纯虚函数的类称为虚基类
C.虚基类不能实例化
D.虚基类可以用来解决二义性问题
12.关于析构函数,下面说法不正确的是(  )
A.析构函数用来完成对象被删除前的一些清理工作
B.析构函数可以声明为重载函数
C.析构函数可以声明为虚函数
D.析构函数在对象的生存期即将结束时被系统自动调用
13.关于虚函数,下列说法不正确的是(  )
A.虚函数是动态联编的基础
B.虚函数的定义只能出现在类定义中的函数原形声明中
C.类的成员函数均可声明为虚函数
D.虚函数是用virtual关键字声明的非静态成员函数
14.关于抽象类,下列说法不正确的是(  )
A.抽象类不能实例化
B.带有虚函数的类称为抽象类
C.带有纯虚函数的类称为抽象类
D.抽象类的作用是为一个类族建立一个公共接口
15.下列对一维数组a的正确定义是(  )
A.int n=5,a[n];
B.int a(5);
C.const int n=5;int a[n];
D.int n;cin>>n;int a[n];
16.下列数组定义语句中,不合法的是(  )
A.int a[3]={0,1,2,3};
B.int a[]={0,1,2};
C.int a[3]={0,1,2};
D.int a[3]={0};
17.已知int a[10]={0,1,2,3,4,5,6,7,8,9}和*p=a,则不能表示数组a中元素的式子是(  )。
A.*a
B.*p
C.a
D.a[p-a]
18.以下不能对二维数组a进行正确初始化的语句是(  )。
A.int a[2][3]={0};
B.int a[][3]={{0,1},{0}};
C.int a{2}[3]={{0,1},{2,3},{4,5}};
D.int a[][3]={0,1,2,3,4,5,};
19.已知int a[][3]={{0,1},{2,3,4},{5,6};{7}};则a[2][1]的值是(  )。
A.0
B.2
C.6
D.7
20.已知char *a[]={“fortran”,”basic”,”pascal”,”java”,”C++”};则cout<<a[3]的显示结果是()。
A.basic
B.pascal
C.java
D.javac++
21.若用数组名作为调用函数的实参,则传递给形参的是(  )。
A.数组存储首地址
B.数组第一个元素的值
C.数组元素的个数
D.数组中全部元素的值
22.判断字符串s1和s2是否相等的正确表达式是( )
A.s1=s2;
B.s1==s2;
C.strcmp(s1,s2)==0;
D.strcpy(s1,s2);
23.下面选项中,不是类的成员函数的为(  )
A.构造函数
B.析构函数
C.友元函数
D.拷贝构造函数
24.下列关于类的继承描述中,错误的是(  )。
A.派生类可以访问基类的所有数据成员,调用基类的所有成员函数。
B.派生类继承了基类的全部属性。
C.继承描述类的层次关系,派生类可以具有与基类相同的属性和方法。
D.一个基类可以有多个派生类,一个派生类可以有多个基类。
25.当一个派生类公有继承一个基类时,基类中所有公有成员成为派生类的(  )
A.public成员
B.private成员
C.protected成员
D.友元
26.不论派生类以何种方式继承基类,都不能使用基类的(  )
A.public成员
B.private成员
C.protected成员
D.public和protected成员
27.在一个派生类中重新定义基类的虚函数时,应使(  )
A.函数名相同,但参数不同;
B.函数名相同,但函数返回值类型不同;
C.函数名、函数返回值类型、参数个数、参数类型和顺序各不相同。
D.函数名、函数返回值类型、参数个数、参数类型和顺序完全相同。
28.如果把基类的析构函数声明为虚函数,则(  )
A.各派生类的析构函数均自动为虚函数;
B.派生类的析构函数与基类析构函数不同名,故不是虚函数;
C.每个派生类的析构函数都必须声明为虚函数;
D.只有基类的析构函数是虚函数。
29.当一个派生类私有继承一个基类时,基类中所有公有成员和保护成员成为派生类的()
A.public成员
B.private成员
C.protected成员
D.友元
30.当一个派生类保护继承一个基类时,基类中所有公有成员和保护成员成为派生类的()
A.public成员
B.private成员
C.protected成员
D.友元
31.派生类的对象可以访问(  )。
A.公有继承的基类的公有成员
B.公有继承的基类的保护成员
C.公有继承的基类的私有成员
D.保护继承的基类的公有成员
32.在创建派生类对象时,构造函数的执行顺序是( )
A.对象成员构造函数、基类构造函数、派生类本身的构造函数
B.派生类本身的构造函数、基类构造函数、对象成员构造函数
C.基类构造函数、派生类本身的构造函数、对象成员构造函数
D.基类构造函数、对象成员构造函数、派生类本身的构造函数
33.在C++中,要实现动态联编,必须使用( )调用虚函数。
A.类名
B.对象名
C.基类指针
D.派生类指针
34.下列函数中,可以作为虚函数的是(  )。
A.普通函数
B.构造函数
C.成员函数
D.析构函数
35.下面函数原型声明中,声明fun为纯虚函数的是(  )。
A.void fun()=0;
B.virtual void fun()=0;
C.virtual void fun();
D.virtual void fun(){ };
36.下列描述中,不正确的是( )。
A.虚函数是没有实现的函数
B.纯虚函数的实现在派生类中定义
C.抽象类是具有纯虚函数的类
D.抽象类指针可以指向不同的派生类对象
37.一个类可以有多个构造函数,这些构造函数之间的关系是( )
A.重载
B.重复
C.拷贝
D.覆盖
38.下列关于构造函数的说法不正确的是(  )
A.一个类中有且仅有一个构造函数。
B.构造函数在创建类的对象时被自动执行。
C.构造函数没有函数类型。
D.类的构造函数的函数名必须与该类的类名相同。
39.下列关于析构函数的说法不正确的是(  )
A.一个类有且仅有一个析构函数。
B.析构函数可以有形参。
C.析构函数没有函数类型。
D.析构函数在类的对象消失时被自动执行。
40.下列各项不属于类型兼容规则的是(  )
A.基类的对象可以赋值给派生类对象
B.派生类的对象可以赋值给基类的对象
C.派生类的对象可以初始化基类的引用
D.派生类对象的地址可以赋值给指向基类的指针
41.下列对于int *pa[5]的描述,正确的是(  )。
A.pa是一个指向数组的指针,所指向的数组是5个int型元素
B.pa是一个指向某数组中的第5个元素的指针,该元素是int型变量
C.pa[5]表示某个数组的第5个元素的值
D.pa是一个具有5个元素的指针数组,每个元素是一个int型指针
42.执行下列语句后的输出结果是( )。
int hot=100;
int &rad=hot;
hot+=100;
cout<<rad<<endl;
A.0
B.100
C.200
D.300
43.下列对结构及其变量定义错误的是:(  )
A.struct MyStruct{
int num;
char ch;
};
MyStruct my;
B.struct MyStruct{
int num;
char ch;
}my;
C. struct{
int num;
char ch;
}
my;
D.struct{
int num;
char ch;
};
struct my;
44.下列关于指针运算的描述错误的是:(  )
A.在一定条件下,两个指针可以相加
B.在一定条件下,两个指针可以进行关系运算
C.在一定条件下,指针可以为空
D.在一定条件下,两个指针可以相互赋值
45.下面关于类的对象的描述中,不正确的是( )
A.一个对象只能属于一个类
B.对象是类的实例
C.一个类只能有一对象
D.类和对象的关系与数据类型和变量的关系类似
47.若有如下声明:
class A{ int a;};
则a是类A的(  )
A.公有数据成员
B.公有成员函数
C.私有数据成员
D.私有成员函数
48.在类外定义成员函数时,需要在函数名前加上(  )
A.对象名
B.类名
C.作用域运算符
D.类名和作用域运算符
49.一个类的友元函数可以访问该类的(  )
A.私有成员
B.公有成员
C.保护成员
D.私有成员、公有成员和保护成员
50.下列关于派生类的描述中,不正确的是(  )
A.派生类除了包含它自己的成员外,还包含基类的成员
B.派生类中继承的基类的成员的访问权限在派生类中保持不变
C.派生类只少有一个基类
D.一个派生类可以作为另一个派生类的基类。

》》》》》》》》》》》》》》》》》》

时间: 2024-11-13 19:05:34

C++ 面试题的相关文章

【转】嵌入式软件工程师经典笔试题

嵌入式软件工程师经典笔试题 > 预处理器(Preprocessor) 1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中 有多少秒而不是计算出实际的值,是更清晰而没有代价的. 3).

10个常见的Node.js面试题

如果你希望找一份有关Node.js的工作,但又不知道从哪里入手评测自己对Node.js的掌握程度. 本文就为你罗列了10个常见的Node.js面试题,分别考察了Node.js编程相关的几个主要方面. 在进入正文之前,需要提前声明两点: 这些问题只是Node.js知识体系的一个局部,并不能完全考察被面试者的实际开发能力. 对现实世界开发中遇到的问题,需要的是随机应变与团队合作,所以你可以尝试结对编程. Node.js面试题列表 什么是错误优先的回调函数? 如何避免回调地狱? 如何用Node来监听8

.NET教程:.NET 面试题之IEnumerable

.NET教程,今天给大家介绍的是:.NET 面试题之IEnumerable ,这是在面试的时候可能会碰到的一道题目,这道题的注解分为了两个部分,这一篇是第一部分! 什么是IEnumerable? IEnumerable及IEnumerable的泛型版本IEnumerable是一个接口,它只含有一个方法GetEnumerator.Enumerable这个静态类型含有很多扩展方法,其扩展的目标是IEnumerable. 实现了这个接口的类可以使用Foreach关键字进行迭代(迭代的意思是对于一个集合

java 19 - 9 finally有关的面试题

1 /* 2 * 面试题: 3 * 1:final,finally和finalize的区别 4 * final:最终的意思,可以修饰类,成员变量,成员方法 5 * 修饰类,类不能被继承 6 * 修饰变量,变量是常量 7 * 修饰方法,方法不能被重写 8 * finally:是异常处理的一部分,用于释放资源. 9 * 一般来说,代码肯定会执行,特殊情况:在执行到finally之前jvm退出了 10 * finalize:是Object类的一个方法,用于垃圾回收 11 * 12 * 2:如果catc

java面试题大全

java面试笔试题大汇总     第一,谈谈final, finally, finalize的区别. 最常被问到. 第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统). 第四,&和&&的区别. 这个问得很少. 第五,HashMap和Hashtable的区

【面试】iOS 开发面试题(二)

1. 我们说的oc是动态运行时语言是什么意思? 答案:多态. 主要是将数据类型的确定由编译时,推迟到了运行时. 这个问题其实浅涉及到两个概念,运行时和多态. 简单来说,运行时机制使我们直到运行时才去决定一个对象的类别,以及调用该类别对象指定方法. 多态:不同对象以自己的方式响应相同的消息的能力叫做多态.意思就是假设生物类(life)都用有一个相同的方法-eat; 那人类属于生物,猪也属于生物,都继承了life后,实现各自的eat,但是调用是我们只需调用各自的eat方法. 也就是不同的对象以自己的

JAVA常见面试题及解答-java开发

JAVA常见面试题及解答 Java的垃圾回收总结  浅谈Java中的内部类 1)transient和volatile是java关键字吗? 如果用transient声明一个实例变量,当对象存储时,它的值不需要维持.例如: class T { transient int a;  //不需要维持 int b;  //需要维持 } 这里,如果T类的一个对象写入一个持久的存储区域,a的内容不被保存,但b的将被保存. volatile修饰符告诉编译器被volatile修饰的变量可以被程序的其他部分改变.在多

链表面试题Java实现【重要】

本文包含以下内容: 1.单链表的创建和遍历 2.求单链表中节点的个数 3.查找单链表中的倒数第k个结点(剑指offer,题15) 4.查找单链表中的中间结点 5.合并两个有序的单链表,合并之后的链表依然有序[出现频率高](剑指offer,题17) 6.单链表的反转[出现频率最高](剑指offer,题16) 7.从尾到头打印单链表(剑指offer,题5) 8.判断单链表是否有环 9.取出有环链表中,环的长度 10.单链表中,取出环的起始点(剑指offer,题56) 11.判断两个单链表相交的第一个

Android-异步任务介绍及面试题

Android-异步任务 一 什么是AsyncTask Android为了减低异步操作的开发难度,结合Handle和线程池,提供了AsyncTask.AsyncTask就是一个封装过的后台任务类, 顾名思义就是异步任务,他具有可以在后台执行耗时操作,同时可以将 执行的进度与UI进行同步的优点 因为Handle实际上就是两个线程之间的桥梁,但是数据的传递是单向的 Handle机制如下图: 而AsyncTask机制如下: 二 如何使用AsyncTask AsyncTask定义三种泛型类型Params

Java面试题全集(中)

这部分主要是与Java Web和Web Service相关的面试题. 96.阐述Servlet和CGI的区别? 答:Servlet与CGI的区别在于Servlet处于服务器进程中,它通过多线程方式运行其service()方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于Servlet. 补充:Sun Microsystems公司在1996年发布Servlet技术就是为了和CGI进行竞争,Servlet是一个特殊的Java程