一些真实的面试问题C++

10 c++

所以我编写了一些我被问过的面试问题.我回答了一些问题并记下了我不能解答的答案.有些问题不是C特定的,而且是一般性的.每个人都可以在问题中添加输入.没有义务按照我写的答案!

Q1:2位系统和16位系统上指针的大小是多少?
答:2位和2个字节

Q2:为什么我们在C语言中需要OOP /类,我们可以实现相同的目标?
答:留给SO用户回答!

问题3:如果您被告知将程序划分为嵌入式系统的不同部分,它们会是什么?
答:IO部分和CPU部分

问题4:使用线程有哪些硬件级优势?任何给出单个CPU(单核)的单个示例A:一个线程将进行一些数字运算,另一个只是生活一个毫秒可能发出事件来读取硬盘驱动器.

Q5:如果我们有一个指针char* p = NULL,会cout<<sizeof(*p)打印什么?答:大小char不是char*.这意味着它可以指向的内存量,而不是指针本身的大小

Q6:函数指针指向虚拟表中的哪些函数?答:虚拟功能

问题7:您如何计算程序需要为单个CPU(单核)的最佳性能生成多少个线程?你会进行身体测试还是自动化你的程序?举个例子.或两者,再一个例子.
A:SO用户在这里给你答案!

Q8:如果一个虚函数(不纯)是继承,则不在派生类中实现.现在,如果我有一个指向派生类对象的基类指针,然后进行调用 baseObject->function(),会发生什么?在编译时/运行时间的任何时候都会出现问题吗?答:没有.:)

Jon*_*Jon 7

A1 2位和16位是明显的答案.我要求澄清像"在技术方面,你究竟是什么意思2位系统"只是为了确保.

A2这是OOP 101材料......一个简短的答案可能是"因为类启用了继承,并且继承使许多有用的范例(最重要的是多态性)降低了代码复杂性".

A3我恐怕不会认为你的答案是正确的.你肯定应该问"什么样的程序"才能得到一个大致的想法:这是一项服务吗?一个脚本?桌面应用程序?没有额外的输入,我会回答"划分为UI和业务逻辑".

A4在硬件级别,线程使您的应用程序能够更好地利用您的硬件资源(例如,多个CPU内核).一个例子是任何分而治之的算法,其中分割的工作可以并行地在多个线程上运行(例如,许多排序算法).我会再次认为你的答案是错误的.

A5正确.

A6正确.

A7首先:看看程序是否受CPU限制(一些快速而肮脏的测量会告诉你这个).如果它不受CPU限制,那么大多数可能只有一个线程就足够了.如果是,那么您希望使用尽可能多的线程(这意味着您可以将工作划分为多个部分),最多可以同时执行硬件可以执行的线程数.

A8正确:没问题,将调用基类实现.

  • @wilhelmtell:**[a2]**从技术上讲,答案并非"正确".请记住,我试图用2行回答,而不是写一篇文章.**[a5]**你错了,那里没有空取消引用.`sizeof`不评估其论点.**[a6]**意见分歧.**[a8]**OP表示该函数不是纯虚函数,因此*必须在基类中实现*.我不知道你在说什么没有被定义. (3认同)