欢迎来到天天文库
浏览记录
ID:32175528
大小:55.49 KB
页数:13页
时间:2019-02-01
《近两年科大讯飞实习生笔试、面试题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第一题是递归判断五子棋问题,在一个棋盘上,0代表空,1代表黑子,2代表白子,现给定一个坐标(ax,ay),代表当前下的黑子的位置,求递归判断黑子是否已经赢了(不考虑赢的趋势,也即仅仅判断当前状态)然后就是问如何求1到1000000内所有素数,(相信弄过一点算法都清楚筛选法)最后问了个如何在一个序列中求第k大的数,笔者当时脑袋一热回答了二叉搜索树+优先级(也OK),面试官听完后就来了句,不就是堆嘛。。。1.已知二叉树的前序遍历为ABCDEFGHIJ,中序遍历为CBEDAHGIJF,请画出其二叉树结构。2.求一个
2、整数数组的最大元素,用递归方法实现。1.#include 2.#include 3.using namespace std; 4. 5.int maxnum(int a[], int n) 6.{ 7. if(n == 1) 8. return a[0]; 9. if(n>1) 10. { 11. return max(a[0], maxnum(a+1,n-1)); 12. } 13.
3、} 14.int main() 15.{ 16. int num[10] = {0,1,2,3,4,5,6,7,8,9}; 17. cout<4、。特点:多次性、对换性、虚拟性。多次性是指一个作业被分成多次调入内存运行,亦即在作业运行时没有必要将其全部装入,只需将当前要运行的那部分程序和数据装入内存即可;以后每当要运行到尚未调入的那部分程序时,再将它调入。对换性是指允许在作业的运行过程中进行换进、换出,亦即,在进程运行期间,允许将那些暂不使用的程序和数据,从内存调至外村的对换区(换出),待以后需要时再将它们从外存调至内存(换进)。虚拟性是指能够从逻辑上扩充内存容量,使用户所看到的内存容量远大于实际内存容量。4.什么是this指针?其主要功能是什么? 5、 this指针是类的一个自动生成、自动隐藏的私有成员,它存在于类的非静态成员函数中,指向被调用函数所在的对象的地址。全局仅有一个this指针,当一个对象被创建时,this指针就指向对象数据的首地址。 一种情况就是,在类的非静态成员函数中返回类对象本身的时候,直接使用return*this;另外一种情况是当参数与成员变量名相同时使用this指针,如this->n=n(不能写成n=n)。7.写出字符串类的必备构造函数和赋值运算符重载的实现方法。已知类String的原型为:classString{public:S6、tring(constchar*pStr=NULL);//默认构造函数~String(void);//析构函数String&operate=(constString&Source);//重载赋值运算符private:char*m_pData;//指向字符串的指针};8.已知一个整数数组A[n],写出算法实现将奇数元素放在数组的左边,将偶数放在数组的右边。要求时间复杂度为O(n)。1.void partition(int A[], int n) 2.{ 3. int x; 4. i7、nt i = 0; 5. int j = n-1; 1. while(i != j) 2. { 3. while( a[i]%2 == 1) 4. i++; 5. while (a[j]%2 == 0) 6. j++; 7. if(i < j) 8. { 9. x = a[i]; 10. a[i] = a[j]; 11. 8、 a[j] = x; 12. } 13. } 14.}1产生死锁的四个必要条件a互斥使用(资源独占)一个资源每次只能给一个进程使用b资源申请者不能强行的从资源占有者手中夺取资源,资源只能由占有者自愿释放c请求和保持(部分分配,占有申请)一个进程在申请新的资源的同时保持对原有资源的占有(只有这样才是动态申请,动态分配)d循环等待存在一个进程等待队列{P1,P2
4、。特点:多次性、对换性、虚拟性。多次性是指一个作业被分成多次调入内存运行,亦即在作业运行时没有必要将其全部装入,只需将当前要运行的那部分程序和数据装入内存即可;以后每当要运行到尚未调入的那部分程序时,再将它调入。对换性是指允许在作业的运行过程中进行换进、换出,亦即,在进程运行期间,允许将那些暂不使用的程序和数据,从内存调至外村的对换区(换出),待以后需要时再将它们从外存调至内存(换进)。虚拟性是指能够从逻辑上扩充内存容量,使用户所看到的内存容量远大于实际内存容量。4.什么是this指针?其主要功能是什么?
5、 this指针是类的一个自动生成、自动隐藏的私有成员,它存在于类的非静态成员函数中,指向被调用函数所在的对象的地址。全局仅有一个this指针,当一个对象被创建时,this指针就指向对象数据的首地址。 一种情况就是,在类的非静态成员函数中返回类对象本身的时候,直接使用return*this;另外一种情况是当参数与成员变量名相同时使用this指针,如this->n=n(不能写成n=n)。7.写出字符串类的必备构造函数和赋值运算符重载的实现方法。已知类String的原型为:classString{public:S
6、tring(constchar*pStr=NULL);//默认构造函数~String(void);//析构函数String&operate=(constString&Source);//重载赋值运算符private:char*m_pData;//指向字符串的指针};8.已知一个整数数组A[n],写出算法实现将奇数元素放在数组的左边,将偶数放在数组的右边。要求时间复杂度为O(n)。1.void partition(int A[], int n) 2.{ 3. int x; 4. i
7、nt i = 0; 5. int j = n-1; 1. while(i != j) 2. { 3. while( a[i]%2 == 1) 4. i++; 5. while (a[j]%2 == 0) 6. j++; 7. if(i < j) 8. { 9. x = a[i]; 10. a[i] = a[j]; 11.
8、 a[j] = x; 12. } 13. } 14.}1产生死锁的四个必要条件a互斥使用(资源独占)一个资源每次只能给一个进程使用b资源申请者不能强行的从资源占有者手中夺取资源,资源只能由占有者自愿释放c请求和保持(部分分配,占有申请)一个进程在申请新的资源的同时保持对原有资源的占有(只有这样才是动态申请,动态分配)d循环等待存在一个进程等待队列{P1,P2
此文档下载收益归作者所有