笔试:
1.哪门语言最精通?
2.如何判断鼠标动作为双击(两次点击在0.1s内)?
条件:1.isDown表示鼠标是否按下:true按下
2.time为计时时间
1 int t1 = 0, t2 = 0; 2 int size = 0; //表示鼠标点击奇数次还是偶数次 3 bool isDoubleClicked() 4 { 5 size++; 6 if (size % 2 == 1) //基数次 7 { 8 t1 = time; 9 return false; 10 } 11 else if (size % 2 == 0) 12 { 13 t2 = time - t1; 14 if (t2 <= 0.1) 15 return true; 16 } 17 18 }
3.已知一个中国移动电话号码是158开头的,也知道其简单编码为11013104321023,求这个电话号码的可能值。
答:通过158推出用5进制编码,但是可能一位可能两位,写出可能值即可
4.输入一个字符串I LOVE YOU,输出YOU LOVE I(不能用stl相关操作,字符串为char*类型)?(我就用vector,其实和数组差不多)
1 #include<iostream> 2 #include<vector> 3 using namespace std; 4 int main() 5 { 6 char s[100]; 7 vector<int> p; 8 cin.getline(s,100); 9 p.push_back(-1); 10 for (int i = 0; i < strlen(s); i++) 11 { 12 if (s[i] == ' ') 13 { 14 p.push_back(i); 15 } 16 } 17 p.push_back(strlen(s)); 18 int st = p.size() - 2; 19 for (int i = st; st>=0; st--) 20 { 21 for (int j = p[st] + 1; j < p[st + 1]; j++) 22 { 23 printf("%c", s[j]); 24 } 25 if (i != 0)printf(" "); 26 } 27 return 0; 28 }
5.一共房间一共有100个人和100个灯泡,100个人排队走出房间,这100个灯泡开始均关闭,每个人出门都要操作一批灯泡,如果开就把它关了,如果关的灯泡就打开。但是每一个人仅能操作自己编号的整数倍的灯泡。问最后还有多少灯泡亮着?
答:还有10个灯泡亮着,分别是编号为1,4,9,16,25,36,49,64,81,100的灯泡亮着(奇数次操作的灯泡就会亮着)
6.已知B(x1,y1)绕着A(x0,y0)点顺时针旋转90,求其坐标?(用极坐标好做)
一面:
1.讲讲项目?
2.map为什么存取速度快?红黑树怎么实现?
3.如果我以字符表示一个人的名字,比如zhangsan,而且数据很大的时候,用那种数据结构?
4.怎么解决hash中的冲突问题?
5.一个空结构体实例化一个对象,其大小是多少?
答:1,系统需要分配一个指针给这个实例化对象。而这个指针大小即为空对象的大小。
既然可以实例化,两个实例化对象就要有区别,所以地址就不同,windows里大小是1,linux好像说是0,但是地址肯定不同的。
6.虚函数有什么作用?
二面
二面主要是把笔试题重新讲了一下思路,并问了一下有没有其他解法》
HR面:
主要是介绍自己,爱好啊,专业啊,籍贯啊啥的,最后出了一道智力题?
--已知有四张牌,正面分别为A,D,4,7,已知一张牌有两面?
问:如何验证元音字母另一面都是偶数?
答:首先翻一张A,如果背面是奇数,结论不成立
如果是偶数,不知道结论成不成立,因为不知道还有没有元音字母
再翻一张4,如果背面是元音,好,结论不成立。如果不是元音,继续翻7,如果是元音,结论不成立,不是元音结论成立。
转载自原文链接, 如需删除请联系管理员。
原文链接:智明星通面试,转载请注明来源!