华为面试题汇总 下载本文

itor2=itor;

array.erase(itor2); }

itor++; }

print(array); return 0; }

void print(vector v) {

cout << \vector::iterator p = v.begin(); }

我的答案是,迭代器问题,只能删除第一个6,以后迭代器就失效了,不能删除之后的元素。 但我不知道怎么改

void print(const vector&); int main() {

vector array; array.push_back(1); array.push_back(6); array.push_back(6); array.push_back(3);

//删除array数组中所有的6

array.erase( remove( array.begin(), array.end(), 6 ) , array.end() );

print(array); return 0; }

void print(const vector& v) {

cout << \

copy(v.begin(), v.end(), ostream_iterator(cout, \}

#include #include using namespace std; int main() {

vector array; array.push_back(1);

array.push_back(6); array.push_back(6); array.push_back(6); array.push_back(6); array.push_back(6); array.push_back(3); array.push_back(9); array.push_back(8); array.push_back(5);

//é?3yarrayêy×é?Ð?ùóÐμ?6 vector::iterator itor; itor=array.begin();

for(itor=array.begin(); itor!=array.end();++itor ) {

if(6==*itor) {

itor=array.erase(itor); --itor; } }

cout << \for(itor=array.begin(); itor!=array.end();++itor ) {

cout<<*itor<<\}

system(\return 0; }

答案:

执行itor=array.erase(itor);这句话后,itor不会移动,而只是把删除的数后面的数都往前移一位,所以删除了第一个6后,指针指向第2个6,然后在来个itor++,指针就指向array.end()了,给你画个草图:

1 6 6 3 array.end() //最开始指针itor指向第一个6; 1 6 3 array.end() //删除第一个6后,指向第二个6

1 6 3 array.end() //itor++后,就指向3了,所以不能删除

2. What are three ways in which a thread can enter the waiting state? 答:

CPU调度给优先级更高的thread,原先thread进入waiting 阻塞的thread获得资源或者信号,进入waiting 还有什么

面试与被面试总结 我从事技术工作,

这几年的面试与被面试总结 先说我去被面试的经验吧。

回答清楚了2个问题,就能顺利过关了。 1。为什么要离开上一家公司。 2。公司为什么要雇佣你。

问第一个问题的是hr(或老板),呵呵 ,即使你技术过关,hr那里没有好的影响,结果是一个字,难! 如何回答呢?

hr想推论出你在他的公司能呆多久。这个时候,你甚至可以明确告诉他,我在贵公司至少能呆n(n>=1)年----当 第22/28页

然,你没有把握的话,绝对不能乱说,社会上混,要讲信用的。

有一次,我就在这个问题上吃了大亏,我看公司环境还不错,就我自做主张回答1年,结果,hr心目中是m(m>=2)年,呵呵,结果可想而知了。要知道,技术面试都过关了,Hr面试是2选1,在回家的路上,我只能祈祷对手自动放弃或找到了其他更好的工作。:) 问第二个问题的是技术官。你要让他知道你已经做过哪些商业作品。一定要是商业作品。在里面负责哪方面具体工作,对于你熟悉的地方要多说。最好就是能争取笔试或上机,因为用用口说的话,大家理解都不一样,误差可能很大,结果对你相当不利。在这个问题上我也吃过亏的,曾有一个我很看好的职位,认为把握很大,业务理解上也很有优势,和技术官一谈,结果是game

over。要知道,在其他公司的上机和笔试中,我都能在应聘者中取得高分。 再说我去面试别人的经验吧。

当时,我的任务是出题,给分。若你觉得题很难,那么,请千万不要放弃,显然,你的对手也觉得难。只要坚持,我会认为这人有耐心很毅力,在以后的工作中也是好的合作者。题一定要做完,表现出认真的态度,若有疑问或卡壳,还可以寻求面试官的帮助,这些不会减分,相反,会增加你和他们的接触机会,面试官会评估你的沟通能力。

有一次,有1个人来面试,题没有完全ok,但很规范,态度很认真,他把他知道的都做上去了,我给了他技术类的高分。后来,顺利进入公司,再后来进步很快,成了重要角色。 若文章对你有帮助的话,请在此讨论。 祝你成功 面试题

1.链表和数组的区别在哪里?

2.编写实现链表排序的一种算法。说明为什么你会选择用这样的方法? 3.编写实现数组排序的一种算法。说明为什么你会选择用这样的方法? 4.请编写能直接实现strstr()函数功能的代码。

5.编写反转字符串的程序,要求优化速度、优化空间。 6.在链表里如何发现循环链接?

7.给出洗牌的一个算法,并将洗好的牌存储在一个整形数组里。 8.写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码 ,编写出一个从字符串到长整形的函数?)

9.给出一个函数来输出一个字符串的所有排列。

10.请编写实现malloc()内存分配函数功能一样的代码。

11.给出一个函数来复制两个字符串A和B。字符串A的后几个字节和字符串B的前几个字节重叠。

12.怎样编写一个程序,把一个有序整数数组放到二叉树中? 13.怎样从顶部开始逐层打印二叉树结点数据?请编程。

14.怎样把一个链表掉个顺序(也就是反序,注意链表的边界条件 第23/28页

并考虑空链表)? 另外:

一、单项选择题:(共12题,每题2分,共24分) 1. 下面哪一个不是C++的标准数据类型? ( D) A. int B. char C. bool D. real

2. break关键字在哪一种语法结构中不能使用? (C) A. for语句 B. switch语句 C. if语句 D. while语句

3. 类的继承方式有几种? (B ) A. 两种 B. 三种 C. 四种 D. 六种

4. extern关键字的作用是什么? (D) A. 声明外部链接 B. 声明外部头文件引用

C. 声明使用扩展C++语句 D. 声明外部成员函数、成员数据。 5. C库函数strstr的功能是? (A ) A. 查找子串 B. 计算字符串长度 C. 字符串比较 D. 连结字符串

6. stl::deque是一种什么数据类型? (A ) A. 动态数组 B. 链表 C. 堆栈 D. 树

7. STL库里含有下面的哪一种泛型算法? (D ) A. KMP查找 B. 折半查找 C. 冒泡排序 D. 快速排序

8. 现在最快且最通用的排序算法是什么? (A ) A. 快速排序 B. 冒泡排序 C. 选择排序 D. 外部排序

9. Win32下的线程的哪一种优先级最高? ( C) A. THREAD_PRIORITY_HIGHEST 高优先级

B. THREAD_PRIORITY_IDLE 最低优先级,仅在系统空闲时执行 C. THREAD_PRIORITY_TIME_CRITICAL 最高优先级

D. THREAD_PRIORITY_ABOVE_NORMAL 高于普通优先级

10. 下面四个选项中,哪一个不是WinMain函数的参数? (D ) A. HINSTANCE B. INT C. LPSTR D. WPARAM

11. VC++的编译器中,运算符new底层的实现是什么? (B ) A. VirtualAlloc() B. HeapAlloc()

C. GlobalAlloc() D. AllocateUserPhysicalPages() 12. 下面哪一本C++参考书最厚? ( C) A. 《Think in C++》 B. 《深入浅出MFC》