1.VC6.0下不支持long long的类型格式,只支持__int64格式;而VS2005下都支持。据说,__int64比long long处理速度要快,结果是否属实待定。

2. 只要不是在关键字中,或标识符中,或字符串常量中,随时都可以回车换行而不会提示有语法错误。还有一个换行符\,也可以实现换行。
如:
int a
=
0
;
或:
int\
a=\
0;
都可以。

3.#include查找顺序:
如果文件名在尖括号中,则C++编译器将在存储标准头文件的主机系统的文件系统里查找;如果文件名包含在引号中,则编译器首先查找当前工作目录或源代码目录,其次在标准位置查找。

4.求单链表是否存在环路:
利用两个指针同时出发进行追逐,其中p1每次前进1步,p2每次前进2步,如果有环路的话两者必然会相遇。注意:p2追赶上p1时,p1一定还没走完一遍环路(p2速度是p1的两倍,极限情况是两指针同时从环起点出发),而且p2也不会跨越p1而不相遇(两者之间的差距逐渐缩小,例如5、4、3、2、1、0,差值是1)。

5.memset的用法:
在#include <memory.h> 中,函数原型:
Void *memset(void *buffer,int c,int count),其中buffer是分配的内存,c是初始化内容,count是初始化的字节数。
一般memset把buffer所指向的前count个字节设置成某个字符的ASCLL值,一般用于给数组或者字符串等类型赋值。
示例:
memset(数组名,int,sizeof(数组名)),即从起始位置到终止位置对数组进行赋值。

6.指定cout默认输出小数位数:
#include <iomanip>
//小数点后数位设置为n
Cout << setiosflags(ios::fixed) << setprecision(n) << 变量;   
//浮点数精度设置为n
Cout << setiosflags(ios::showpoint) << setprecision(n) << 变量;

7.最大公约数、最小公倍数、因子分解等:
最大公约数:用辗转相除法,大的数 % 小的数,得出余数,然后辗转相除,直到余数为0,此时除数就是最大公约数。
最小公倍数:用辗转相除法求得最大公约数p,然后两数除以p得商a1、a2,可知a1和a2中必然不包含公因子(如果包含的话,p就不是最大公约数了),所以p*a1*a2就是最小公倍数。
因子分解:对n进行因子分解,i从2开始到数n/2,如果n能整除i,说明i是n的因子之一,并循环判断能整除多少次i,然后i继续循环递增。(另外一种简化方法是看最小因子p是多少,然后循环i从2开始到数n/p即可)

8.cin.getline和getline的区别:
cin.getline(char*, int)是istream类对象的成员函数,需要头文件#include <iostream>才能使用,主要用于c_string类型读入。
getline(cin, str)、getline(cin, str, char)是string类对象的成员函数,需要头文件#include <string>才能使用,主要用于string类型读入,后者的char是判断结束符。
注意:在VC6.0中,使用getline(cin, str)需要输入两次回车才能读入,这是VC6.0的BUG,在更高级别的版本中不存在该错误。

9.scanf/cin和printf/cout的比较:
在做ACM题目的时候,发现使用scanf比cin要快得多,同理printf比cout要快,具体原因待查。
注意scanf的返回值问题:
scanf("%d%d", &a, &b);
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end of file,返回值为EOF。
所以,在使用scanf的时候,检查它的返回值来判断scanf是否正确地读到了数据。

10.100到10000的整数中因子最多的一个数?
方法:找到100 <= 2^n <= 10000最大的n即可。假设某数存在n+1个最大的因子,那么其中的n个因子之积必然大于等于2^n,于是n+1个因子之积必然大于10000,证毕。

11.一般来说,设计程序时递归与堆栈是等价的,即使用堆栈的程序一般可以写成递归形式,相反亦可。不考虑程序速度的话,一般使用递归比较简单

12.char型数组
对于int/double型数组,例如有100个int型变量存储,那么应该定义int data[100],其中0到99用来存储这100个变量。
对于char型数组,例如有100个char型变量存储,那么应该定义char data[101],其中0到99用来存储这100个变量,100用来存储’\0’。