单例模式怎么做UT呢?
因为只有一个对象 ,测试之间肯定会相互影响的
1.友元的定义与使用
C++ Primer :P396 笔记本: P16
2.
今天遇到这个问题,在网上看了一会资料后找到原因,即:
switch 的 case 中不能定义变量,不然就会报错.可能是变量的初始化会因为有时候case条件不被执行而跳过.
后来想到三个解决的方法:
1:用if else 代替 switch 语句;
2:在case中用{}将代码括起来,这样在{}中就能定义变量了;
3:如果变量在各个case中都要用的话,就把变量定义在switch外面吧;
http://www.2cto.com/kf/201112/115456.html
3.关于strlen和sizeof
(1)char a[5] = "1,2,3,4,5";
strlen(a) = 11
sizeof(a) = 5
(2)char a[8] = "1,2,3,4,5";
strlen(a) = 5
sizeof(a) = 8
(3)string str = "12345"
sizeof(str) = 16
(4)string str = "123456789123456789";
sizeof(str) = 16
总结:
char a[5]是个数组,数组的初始化 是 如果不够就补0 ,char a[5] = "1,2,3,4,5" 刚好 5个 ,strlen 不知道什么时候会停 ,所以这个打印应该是随机的
对字符数组使用strlen,若数组没有满,strlen=数组中元素的个数
对字符数组使用sizeof,sizeof=数组大小,与数组中元素的个案无关
对string使用strlen,语法错误
对string使用sizeof,sizeof=16,要看string是怎么实现的。
4.《鸟哥》要好好看看了,
PHP是什么东西,为什么会放在系统里面?\
5.淘宝2012秋季校园招聘技术试卷(A)里面有一题考硬盘接口,硬件方面的题应该不会太多吧
概率论的题目好多,都忘掉了
正则表达式
网络应用方面一点都不懂
海量数据的题几乎每次都会有一两题,重要
6.类或结构体的内存分配方式
6、下面程序的输出结果为()
A、-4 B、4 C、4294967294 D、4294967295
答:C
考查的是unsigned int和int在一起混合运算,int转化为unsigned int
-2的补码就是2^32-2,即是4294967294 ,乘以1的结果还是这个数字。
8、下面程序的输出结果为()
A、4 B、8 C、16 D、12
答:C
10、下面程序的输出结果为()
A、6 B、144 C、5 D、95
答:B
1、程序中':'的作用,如 unsigned short int a:5;表示变量a占了5个bit的空间,这样的话结构体所占的变量空间为5+5+6,暂且表示为000000|00000|00000,对应c|b|a
2、在主程序中对结构体初始化a=16,b=4,c=0,转换为二进制放到上面的空间,000000|00100|10000同样对应a|b|c
3、后面一句int i=*(short*)&test;取结构体test的地址空间,就是上面的000000|00100|10000,转换成short型,也就是144
7.网易2012校园招聘笔试题目有几个数据库的题,都忘光了
网络稍微看过一点,理解不够啊
8.ICMP常用命令
宏函数
只有一个点的树的高度是0
9.如果X大于0并小于65536,用移位法计算X乘以255的值为()
答:(X<<8)-1,必须有括号,因为移位运算符的优先级没有减号的优先级高
计算机在内存中存储数据时使用了大、小端模式,请分别写出A=0X123456在不同情况下的首字节是,大端模式() 小端模式(),X86结构的计算机使用()模式。
经典代码,虽然懂,但是不能很快的写出来。要背
10.腾讯有一题写后缀数组,看来好多经典算法要总结要背后
运算符的优先级,以及优先级相同情况下的结合性
磁盘读取数据的方式
几种设计模式要总结一下
IP地址中特殊地址、专用地址的地址范围
11.一个函数输入的参数个数不确定,可以使用类似“命令行参数”的方法实现,如下:
#include <stdio.h> void proc(char **p); int main() { char s[124] = {0}; char *str[10] = {0}; gets(s); printf("s: %s \n",s ); int i; int j = 0; str[0] = s; for(i = 0; s[i] != '\0'; i++) { if(s[i] == ' ') { j++; s[i] = '\0'; str[j] = &s[i+1]; } } proc(str); return 0; } void proc(char **p) { int i = 0; while(1) { if(p[i] != NULL) { printf("%s \n", p[i]); } else { break; } i++; } }
这个函数要注意的是:
7.4-1
7.4-6
7-2
7-5