先给大家分享几道有关C++常考的概念性笔试题,大多是我参加大连金山西山居公司的笔试题,该公司是个游戏公司,有游戏开发相关经验的同学会有很大优势:
1.什么是面向对象?面向程序?
面向对象其实是现实世界模型的自然延伸。把数据和数据的操作方法放一起,作为一个相互依存的整体——对象,对同类对象抽出共性形成类,类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。程序流程由用户在使用中决定。
2.纯虚析构函数作用?
析构函数的纯虚性唯一效果就是保证抽象类的实例化。
3.指针与引用的区别?分别用在什么地方?
(1)指针是一个变量,只不过这个变量存储的是一个地址;而引用跟原来的变量实质上上同一个东西,只不过是原变量的一个别名
(2)可以有const指针,但是没有const引用。
(3)指针可以有多级,而引用没有
(4)指针可以为空而引用的值不能为NULL,并且引用在定义时必须初始化。
(5)指针和引用的自增++运算含义不一样。
(6)指针的值初始化后可以改变,而引用在初始化后就不会再改变了。
(7)“sizeof引用”得到的是所指向的变量的大小,而“sizeof指针”得到的是指针本身的大小。
使用地方:
4.C++11有什么新特性?
5.说出几个设计模式,并且说出他们作用?
状态模式,观察者模式,职责链模式,工厂模式,中介者模式,备忘录模式,装饰模式,桥接模式,享元模式,代理模式,外观模式,建造者模式,单例模式,适配器模式,策略模式。
6.inline函数的作用?
引入内联函数的目的是为了解决程序中函数调用的效率问题。减少函数的目标代码,实现程序代码和数据的共享。但是如何函数调用也会带来降低效率的问题。
7.字符数组和标准库函数中std::string的区别?
下面进入正题——长春径点笔试题:(该公司主要是做微软的业务,面试的时候面试官告诉我主要开发语言是C#)
8.编写一个ToInt()函数实现字符串转换数字?
public int toint(String str)
{
}
9.用递归遍历二叉树,返回它的深度。
int FindTreeDeep(Bintree BT)
{
}
非递归
10.在一组无序的数列中找出其中第K大的数字,要求使用一个FOR循环。
#include
int FindNum(int *a, int left, int right, int k)
{
while (low < high)
25.
26.
27.
}
//如果K
}
{
return FindNum(a, left, low-1, k);
}
int main(void)
{
}
11.有2个无序的字符串数组,要求按字典序排序合并输出一个字符串。
Int[] merge(int a[],int b[])
{
}
}
Return c;
}