1.VC6.0下不支持long long的類型格式,只支持__int64格式;而VS2005下都支持。據(jù)說,__int64比long long處理速度要快,結(jié)果是否屬實(shí)待定。

2. 只要不是在關(guān)鍵字中,或標(biāo)識符中,或字符串常量中,隨時都可以回車換行而不會提示有語法錯誤。還有一個換行符\,也可以實(shí)現(xiàn)換行。
如:
int a
=
0
;
或:
int\
a=\
0;
都可以。

3.#include查找順序:
如果文件名在尖括號中,則C++編譯器將在存儲標(biāo)準(zhǔn)頭文件的主機(jī)系統(tǒng)的文件系統(tǒng)里查找;如果文件名包含在引號中,則編譯器首先查找當(dāng)前工作目錄或源代碼目錄,其次在標(biāo)準(zhǔn)位置查找。

4.求單鏈表是否存在環(huán)路:
利用兩個指針同時出發(fā)進(jìn)行追逐,其中p1每次前進(jìn)1步,p2每次前進(jìn)2步,如果有環(huán)路的話兩者必然會相遇。注意:p2追趕上p1時,p1一定還沒走完一遍環(huán)路(p2速度是p1的兩倍,極限情況是兩指針同時從環(huán)起點(diǎn)出發(fā)),而且p2也不會跨越p1而不相遇(兩者之間的差距逐漸縮小,例如5、4、3、2、1、0,差值是1)。

5.memset的用法:
在#include <memory.h> 中,函數(shù)原型:
Void *memset(void *buffer,int c,int count),其中buffer是分配的內(nèi)存,c是初始化內(nèi)容,count是初始化的字節(jié)數(shù)。
一般memset把buffer所指向的前count個字節(jié)設(shè)置成某個字符的ASCLL值,一般用于給數(shù)組或者字符串等類型賦值。
示例:
memset(數(shù)組名,int,sizeof(數(shù)組名)),即從起始位置到終止位置對數(shù)組進(jìn)行賦值。

6.指定cout默認(rèn)輸出小數(shù)位數(shù):
#include <iomanip>
//小數(shù)點(diǎn)后數(shù)位設(shè)置為n
Cout << setiosflags(ios::fixed) << setprecision(n) << 變量;   
//浮點(diǎn)數(shù)精度設(shè)置為n
Cout << setiosflags(ios::showpoint) << setprecision(n) << 變量;

7.最大公約數(shù)、最小公倍數(shù)、因子分解等:
最大公約數(shù):用輾轉(zhuǎn)相除法,大的數(shù) % 小的數(shù),得出余數(shù),然后輾轉(zhuǎn)相除,直到余數(shù)為0,此時除數(shù)就是最大公約數(shù)。
最小公倍數(shù):用輾轉(zhuǎn)相除法求得最大公約數(shù)p,然后兩數(shù)除以p得商a1、a2,可知a1和a2中必然不包含公因子(如果包含的話,p就不是最大公約數(shù)了),所以p*a1*a2就是最小公倍數(shù)。
因子分解:對n進(jìn)行因子分解,i從2開始到數(shù)n/2,如果n能整除i,說明i是n的因子之一,并循環(huán)判斷能整除多少次i,然后i繼續(xù)循環(huán)遞增。(另外一種簡化方法是看最小因子p是多少,然后循環(huán)i從2開始到數(shù)n/p即可)

8.cin.getline和getline的區(qū)別:
cin.getline(char*, int)是istream類對象的成員函數(shù),需要頭文件#include <iostream>才能使用,主要用于c_string類型讀入。
getline(cin, str)、getline(cin, str, char)是string類對象的成員函數(shù),需要頭文件#include <string>才能使用,主要用于string類型讀入,后者的char是判斷結(jié)束符。
注意:在VC6.0中,使用getline(cin, str)需要輸入兩次回車才能讀入,這是VC6.0的BUG,在更高級別的版本中不存在該錯誤。

9.scanf/cin和printf/cout的比較:
在做ACM題目的時候,發(fā)現(xiàn)使用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是否正確地讀到了數(shù)據(jù)。

10.100到10000的整數(shù)中因子最多的一個數(shù)?
方法:找到100 <= 2^n <= 10000最大的n即可。假設(shè)某數(shù)存在n+1個最大的因子,那么其中的n個因子之積必然大于等于2^n,于是n+1個因子之積必然大于10000,證畢。

11.一般來說,設(shè)計(jì)程序時遞歸與堆棧是等價的,即使用堆棧的程序一般可以寫成遞歸形式,相反亦可。不考慮程序速度的話,一般使用遞歸比較簡單

12.char型數(shù)組
對于int/double型數(shù)組,例如有100個int型變量存儲,那么應(yīng)該定義int data[100],其中0到99用來存儲這100個變量。
對于char型數(shù)組,例如有100個char型變量存儲,那么應(yīng)該定義char data[101],其中0到99用來存儲這100個變量,100用來存儲’\0’。