面试相关
文章平均质量分 57
tkp2014
这个作者很懒,什么都没留下…
展开
-
为什么不能建立引用数组?
引用就是某一个变量的别名,引用的地址就是原变量的地址,引用的值就是原变量的值不能建立引用的数组,例如:int & ref[3] = { 2, 3, 5}; //声明ref引用的数组是错误的但是可以建立数组的引用:例如:int arr[3]; int (&tef)[3] = arr; //这是这是正确的为什么数组中的元素不能是引用?c++中,引用可以说只是某个变量的别名,原创 2015-10-02 10:20:56 · 4374 阅读 · 0 评论 -
深入C++中构造函数、拷贝构造函数、赋值操作符、析构函数的调用过程总结
用同一个类的源对象构造一个目标对象时,会调用拷贝构造函数来构造目标对象,如果没有定义拷贝构造函数,将调用类的默认拷贝函数来构造目标对象 当一个函数的返回值为一个类的对象时,如果在调用函数中,没有定义一个对象来接收这个返回对象值,会用返回一个临时对象保存返回对象的值。在被调用函数结束时,这个临时对象被销毁。而当调用函数中有一个接受对象时,就将返回对象赋值给接收对象,这个返回对象在调用函数结束原创 2015-10-05 16:53:35 · 463 阅读 · 0 评论 -
在C++中,为了让某个类只能通过new来创建实例(即如果直接创建对象,编译器将报错),怎样做?
昨天一个同学去网易面试C++研发,问到了这么一个问题:如何限制一个类对象只在栈(堆)上分配空间?一般情况下,编写一个类,是可以在栈或者堆分配空间。但有些时候,你想编写一个只能在栈或者只能在堆上面分配空间的类。这能不能实现呢?仔细想想,其实也是可以滴。在C++中,类的对象建立分为两种,一种是静态建立,如A a;另一种是动态建立,如A* ptr=new A;这两种方式是有区别的。转载 2015-10-01 16:22:52 · 6949 阅读 · 1 评论 -
基类析构函数为虚函数的研究
假设有基类 A, 继承类 B,基类A的析构函数不为虚函数,代码实例如下:执行代码 delete pb,执行结果为:执行代码 delete pa,执行结果为:如果基类 A的析构函数为 虚函数,代码为:执行 delete pb,结果为:执行 delete pa,结果为:原创 2015-10-02 15:50:19 · 328 阅读 · 0 评论 -
TCP/IP总结
粗略的理解一:tcp中文名字叫“传输控制协议”,是传输层传输数据的一种机制,比如,当你要发送的数据通过应用层到达传输层,数据就要选择自己的传输方式了:1,先跟目的地确认一下,告诉目的地我要传数据了,目的地接收端如果准备好接收数据,就会反馈回来信息告诉发送端:你可以发送了,然后发送端才能发送数据,这种机制就是tcp;2,如果发送端不需事先确认目的地是否准备好了接收数据,直接发送数据,这种原创 2015-09-30 16:38:39 · 313 阅读 · 0 评论 -
C++常见面试题30道
转自:http://blog.csdn.net/shihui512/article/details/9092439;1.new、delete、malloc、free关系delete会调用对象的析构函数,和new对应free只会释放内存,new调用构造函数。malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动原创 2015-10-02 08:51:25 · 588 阅读 · 0 评论 -
二叉树的后序非递归遍历(双栈法)
Alternative Solution:An alternative solution is to use two stacks. Try to work it out on a piece of paper. I think it is quite magical and beautiful. You will think that it works magically, but in f转载 2015-09-14 16:43:39 · 3676 阅读 · 0 评论 -
大数相乘问题
算法题-大数相乘问题今天在网上看到一个大数相乘的问题,题目是这样的:输入两个整数,要求输出这两个数的乘积。输入的数字可能超过计算机内整形数据的存储范围。分析:由于数字无法用一个整形变量存储,很自然的想到用字符串来表示一串数字。然后按照乘法的运算规则,用一个乘数的每一位乘以另一个乘数,然后将所有中间结果按正确位置相加得到最终结果。可以分析得出如果乘数为A和B,A的位数为m,B的位转载 2015-09-13 17:10:48 · 351 阅读 · 0 评论 -
牛人博客
【Android】(1)Android UI(2)Android(3)从零学Android(4)Android透明菜单制作(5)Android 高仿【优酷】圆盘旋转菜单的实现(附代码)(6)Android JQuery(7)Android游戏开发专栏(8)Android小知识 【Java】 (1)java多线程网络数据采集 【面试】转载 2015-09-13 16:38:39 · 333 阅读 · 0 评论 -
C/C++几种strcpy函数的实现与详解
C/C++——strcpy函数的实现 和解析题目: 已知strcpy函数的原型是: char * strcpy(char * strDest,const char * strSrc); 1.不调用库函数,实现strcpy函数。 2.解释为什么要返回char *。(一)高质量c++编程上的答案五、编写strcpy函数(10分转载 2015-09-12 17:36:20 · 457 阅读 · 0 评论 -
输出1到最大的n位数
例如:输入3,输出 1 ~ 999,必须考虑大数问题/* 打印从 1到最大的n位数 */bool Increment(char *number){ bool isOverflow = false; int nTakeOver = 0; int nLength = strlen(number); for (int i = nLength-1; i >= 0; i--)原创 2015-09-13 16:49:00 · 268 阅读 · 0 评论 -
面试心得(BAT)
之前实习的时候就想着写一篇面经,后来忙就给忘了,现在找完工作了,也是该静下心总结一下走过的路程了,我全盘托出,奉上这篇诚意之作,希望能给未来找工作的人一点指引和总结, 也希望能使大家少走点弯路 , 如果能耐心读完,相信对你会找到你需要的东西。先说一下LZ的基本情况,LZ是四川某985学校通信专业的研究生(非计算机),大学阶段也就学了C语言,根本没想过最后要成为码农。大四才开始学java,研转载 2015-10-04 09:40:54 · 2193 阅读 · 0 评论 -
重载、覆盖、隐藏的区别
a.成员函数被重载的特征: (1)相同的范围(在同一个类中); (2)函数名字相同; (3)参数不同; (4)virtual 关键字可有可无。 b.覆盖是指派生类函数覆盖基类函数,特征是: (1)不同的范围(分别位于派生类与基类); (2)函数名字相同; (3)参数相同; (4)基类函数必须有virtual 关键字。 c.“隐藏”是指派生类的原创 2015-09-16 15:12:28 · 304 阅读 · 0 评论 -
一道小端模式考题
查看 array数组数据在小端机器上的内存分布情况,依次按 0x01、0x02、0x03、0x04、0x05、0x06、0x07、0x08 存储按题目的格式输出十六进制数据:*pshort: 输出array起始位置的前2个字节:01 02*(pshort+2): 等于array[4],那就输出 05 06*pint64: 输出array起始位置的前8个字节:01 - 0原创 2015-09-17 16:10:04 · 318 阅读 · 0 评论 -
阿里Java岗面经
中间提到的学习书籍和资源是很好的参考!转载自:http://www.nowcoder.com/discuss/2016?type=2&order=0&pos=2&page=2写在前面 : 2015 年 7 月初,参加阿里巴巴校招内推, 8 月 15 日拿到研发工程师 JAVA 的 offer 。我的专业并非计算机,也没有在互联网公司实习过,只有一些学习和面试转载 2015-10-13 22:07:43 · 1051 阅读 · 0 评论 -
双向链表实现队列的 入队、出队、查找元素
typedef int DItemType;typedef struct SDoubleList{ DItemType iValue; SDoubleList *prev; SDoubleList *next;} DLinkedList,*pDLinkedList;/* 创建双链表 */DLinkedList *InitDoubleList(){ DLinkedList原创 2015-09-24 09:26:29 · 2336 阅读 · 0 评论 -
牛客网错题总结
错题分析:A:虽然能得到想要的结果,但会造成内存泄露, 指针a脱离该函数后,不在能被调用;B:返回局部变量,出错;D:与B类似原创 2015-09-24 16:52:32 · 1388 阅读 · 0 评论 -
CPU占用率问题
问题:分析:转载 2015-10-26 13:16:41 · 339 阅读 · 0 评论 -
C++实现一个类只有一个实例对象
class Base{public: static Base *getInstance() { if (0==s) //s为0才调用构造函数,实例化一次成功后,s不再为0,除非将其释放掉,才能开始下一次实例化 s = new Base(); return s; }private: Base() {} static Base *s;};Base *Base::s原创 2015-10-08 20:37:15 · 4059 阅读 · 1 评论 -
无符号数与有符号数转换
2.概念 在计算机中,可以区分正负类型的数,成为“有符号数”(signed);无正负类型的数(只有整数类型),成为“无符号数”(unsigned)。简明的说,无符号说就是其所有的位数都用来表示数值的大小,有符号数除最高位来表示数值的正负外(0表示正数;1表示负数),其余各位用来表示数值的大小。举个例子说明一下:十机制数 正数255 二进制表达形式:1111 1111十机制数 负数转载 2015-10-08 21:51:14 · 4254 阅读 · 0 评论 -
TCP/IP协议三次握手与四次握手流程解析
TCP/IP协议三次握手与四次握手流程解析 一、TCP报文格式 TCP/IP协议的详细信息参看《TCP/IP协议详解》三卷本。下面是TCP报文格式图:图1 TCP报文格式 上图中有几个字段需要重点介绍下: (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。 (2)确认序号:Ack序号,占32位,只有转载 2015-10-06 23:40:34 · 293 阅读 · 0 评论 -
C++面试题
在switch-case语句中,多个case可以共用一条执行语句,如: case 常量表达式1: case 常量表达式2: case 常量表达式3: 语句; break; 由此可以看出case语句的作用:case后面的常量表达式实际上只起语句标号作用,而不起条件判断作用,即“只是开始执行处的入口标号”。因此,一旦与switch后面圆括号中表达式的值匹配,就从此标原创 2015-09-17 22:33:59 · 537 阅读 · 0 评论 -
C++拷贝构造函数详解
一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:[c-sharp] view plaincopyprint?int a = 100; int b = a; int a = 100;int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的转载 2015-09-16 23:58:34 · 269 阅读 · 0 评论 -
有符号整数与无符号整数相加问题
#includeint main( ){ unsigned int a = 6; int b = -20; (a + b > 6) ? printf(">6") : printf("<=6"); return 0;}整形(int)和无符号整形相加时,int先转化为unsigned int,b在内存中以-20的二进制补码形式存储。执行原创 2015-09-16 19:57:00 · 12541 阅读 · 2 评论 -
位图法
学习资料链接:http://blog.csdn.net/wypblog/article/details/8237956http://www.cnblogs.com/biyeymyhjob/archive/2012/08/14/2636933.html原创 2015-09-06 15:32:01 · 325 阅读 · 0 评论 -
指针数组与数组指针的区别
数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。 p=a;转载 2015-09-12 09:55:26 · 245 阅读 · 0 评论 -
从文本文件中读取数据排序并输出到文本
文件中有一组整数,要求排序后输出到另外一个文件中去void Order(vector& a){ int count = a.size(); for (int i=0; i<count-1; i++) { for (int j=i+1; j<count; j++) { if (a[i] > a[j]) { a[i] = a[i]^a[j]; a[j] =原创 2015-08-29 10:04:46 · 5310 阅读 · 0 评论 -
编写类String的构造函数、析构函数和赋值函数
class CString{public: CString(const char *str = NULL); //普通构造函数 CString(const CString &other); //拷贝构造函数 ~CString(); //析构函数 CString &operator = (const CString &other); //赋值函数private: ch原创 2015-08-28 15:40:25 · 425 阅读 · 0 评论 -
判断当前时间的下一秒是多少
写的比较粗陋,编程能力还需要多多磨练啊struct SDate{ int Leapday[12]; //闰年的每月天数// int NoLeapDay[12]; //非闰年的每月天数 int year; int month; int day; int hour; int minute; int second;} sDate = { 31,29,31,30,31,3原创 2015-08-28 23:17:37 · 643 阅读 · 0 评论 -
编写一个函数,把一个char组成的字符串循环右移n位
例如:把一个char 组成的字符串循环右移 n 位,原来是 ”abcdefghi“,如果 n = 2,移位后应该是 ”hiabcdefgh“函数头如下:/**@ pstr 指的是以 '\0' 结尾的字符串指针@ steps 指的是要求移动的位数 n*/void LoopMove(char *str, int steps){........}原创 2015-08-28 14:53:51 · 2458 阅读 · 0 评论 -
bool、int、float指针变量与 “零值” 比较的if语句
bool 型变量: if ( var ) 、if ( !var )int 型变量:if (var==0)、if (var!=0)float型变量:const float temp = 0.00001; // temp可以是0.1, 0.01, 0.0001 等等if ( (x >= -temp) && (x 指针变量:if (var==NUL原创 2015-08-28 11:48:41 · 425 阅读 · 0 评论 -
[综合面试] 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
基础篇:操作系统、计算机网络、设计模式一:操作系统1. 进程的有哪几种状态,状态转换图,及导致转换的事件。2. 进程与线程的区别。3. 进程通信的几种方式。4. 线程同步几种方式。(一定要会写生产者、消费者问题,完全消化理解)5. 线程的实现方式. (也就是用户线程与内核线程的区别)6. 用户态和核心态的区别。7. 用户栈和内核栈的区转载 2015-08-24 22:40:05 · 509 阅读 · 0 评论 -
北邮同学面经
早就想写一个找工作的经验类帖子,碍于毕业季很多事情一拖再拖,现在终于有时间整理记录下自己找工作的足迹(~(>_作者2015届毕业生,北京地区某大学硕士,计算机专业。最后签约北京地区某行。作者LZ的求职目标是北京地区的国企/央企、事业单位等,所以对一些单位如互联网、民企、外企的招聘时间了解不多,参加过的、了解的都会尽量列出。主要按照时间推进的顺序,针对具体的某家单位会尽量列出转载 2015-06-21 10:58:24 · 2166 阅读 · 0 评论 -
Algorithm
**算法刷题网站**1、leetcode 2、glassdoor 3、topcoder 4、careerup 5、zoj 6、codeforces 7、poj原创 2015-03-08 15:48:27 · 474 阅读 · 0 评论 -
电话面试 Top50
今年是2015年,在过去几年中,电面(电话面试)是筛选程序员职位候选人的最流行的方式。它让雇佣双方很容易互相了解对方,候选人不需要去未来雇主的所在地,面试官也不用做额外的安排。这是我介绍程序员面试问题的文章的第二部分。我得到反馈说第一部分过于偏重编码的题了,许多程序员希望我针对电面问题列一个类似的列表。为了顺利通过电面进入下一轮,你必须足够好地回答与你工作要求相关的全部问题。在大多针对Java和C转载 2015-03-07 21:30:20 · 398 阅读 · 0 评论 -
Prefer company
排名不分先后,哈哈~爱立信MarvellATIAutoDeskESSpixelworksonsiteomnivisionbooracle西门子中船重工原创 2015-03-23 18:46:19 · 392 阅读 · 0 评论 -
#define知识点
#define a 10 void foo(); main(){ printf("%d..",a); foo(); printf("%d",a);}void foo(){ #undef a #define a 50}输出:10..10..#define a 10void foo(){#undef a#define a 50}原创 2015-08-27 20:50:03 · 467 阅读 · 0 评论 -
求一个整数数组中第二大的数
int find_sec_max(vector& data){ int cout = data.size(); int sec_max = -60000; int max = data[0]; for (int i=1; i<cout; ++i) { if (data[i]>max) { sec_max = max; max = data[i]; } else原创 2015-08-29 10:47:55 · 1661 阅读 · 0 评论 -
实现一个函数,将字符串的每一个空格替换成 %20
题目:实现一个函数,将字符串的每一个空格替换成 %20 ,例如 “we are happy.” ,则输出 “we%20are%20happy.”解法一:一般的解法,开辟一个新的数组pDes,就是逐个字符的将源数组中的字符拷贝到新数组,遇到空格就替换为 %20,直到字符串末尾为止。void Instead(const char *strSrc, char *strDes){ asse原创 2015-08-30 23:54:00 · 523 阅读 · 0 评论 -
刷LeetCode感受
两年前,在实习生笔试的时候,笔试百度,对试卷上很多问题感到不知所云,毫无悬念的挂了读研两年,今年代笔百度,发现算法题都见过,或者有思路,但一时之间居然都想不到很好的解法,而且很少手写思路,手写代码,有点仓皇失措;概念题却是很难答好,大多我都知道,但却难以描述清楚;最后一题大题,是设计分布式缓存系统,需要考虑负载均衡以及增删设备,我知识面比较窄,居然不知有一致性哈希,于是又跪了说起来转载 2015-09-04 18:49:42 · 606 阅读 · 0 评论