前言:
周日下午参加的Cisco Webex笔试。智力题1的参考2是我给出答案,不知是否可以得分或者加分。其它数字规律题全线挂掉。基础题难度偏低,而且没有涉及算法方面。不过自己答得也很是一般,1题写得繁琐,2题、4题第2小题、8题、10题出现错误,7题答得不完全(汗!真正完全正确的基本没几个!),所以个人感觉C++基础有待提高,本次笔试智力题上有所见识,以后会有很大帮助。
智力题:
1、7克、2克砝码各一个,天平一个,如果用以上物品称三次将140克盐分成50克、90克。
参考1:
第一次, 将140克盐分成70克、70克,只需要调整天平平衡即可。
第二次, 将一份70克盐分成35克、35克。
第三次, 将7克、2克砝码放在天平两端,并且在两边总共放35克盐,调整天平平衡。则与2克砝码一起的是20克盐,与7克砝码一起胡是15克盐。将20克盐加入第一次分成70克盐。则140克盐被分成了50克、90克,完成!
参考2:
第一次, 用7克、2克砝码称取5克盐。
第二次, 将7克、2克砝码放在天平一侧,5克盐放在天平一侧,记录天平倾斜角度。
第三次, 将140克盐放在天平,调整左右,使倾斜角度与第二次相同。则天平左右托盘分别为50克、90克,完成!
2、找规律
961(25)432
932( )731
参考:上式得9-6-1=2,4+3-2=5,下式得9-3-2=4,7+3-1=9,填入49。
3、找规律BFKQ( )
参考:ABCDEFGHIGKLMNOPQRSTUVWXYZ,相邻两字母间距成3、4、5、6等差数列,填入X。
4、找规律41(28)27 83 ()65
参考:41与65、28与()、27与83成为3对。观察41与65和27与83两队,发现十位4+6=2+8=10,发现个位5-1=7-3=4,所以推出应填入84。
基础题:
1、 完成char* stringcpy(char* des, char* src)函数,失败返回0。
2、在Win32平台下,结构体定义如下
struct s{
int a;
char b;
long c;
};
问sizeof(s)的大小?
3、char s[]=”0123457”;
char*p1=”hello world”;
int a[]={0,1,2};
问sizeof(s),sizeof(p1),sizeof(a)的大小分别为多少?
4、给出下列定义的含义
const int * p1;
int const * p2;
int * foo1();
int (*foo2)();
char *argv[];
char (*arg)[];
5、写一个类,初始一个整型静态成员变量为0。
6、A* p1 = new A[10];
A* p2 = new A;
写出析构释放语句。
7、写出new/delete与malloc/free的区别。
8、给出下列代码的输出
9、STL中vector与list的区别。
10、int count(const vector<int>&v, int i)实现的是找到v中比i小的元素个数。实现函数定义。
参考答案:
1、strcpy代码如下:
2、对齐问题,Win32下long占用4字节,总共为12字节
3、8,4,12
4、常量指针,常量指针,返回值为int*,函数指针,每个元素类型为char*的数组,指向char数组的指针
5、非const的static成员变量在类体外定义
6、删除数组时要用delete [] p1语句
7、new/delete是运算符,而malloc/free是C库函数。运算符可以受编译器控制,使用时自动调用构造和析构函数。
8、结果如下:
9、vector实现类似数组,物理空间上连续存储,索引速度快,但动态操作复杂,有时需要内存拷贝。list是链表,物理空间不需要连续存储,动态操作方便。
10、两种方法实现,一种const迭代器,一种C方法,推荐第一种。