1.整數範圍選擇:10^9以內或者32位整數,用int。10^18以內或者64位整數用long long
2浮點型用double即可。
3字元常量用ascii統一編碼。標準ascii範圍0~127。0~9,a~z,a~z對應的ascii碼分別為48~57,65~90,97~122.
4.字串可以直接賦值給字元陣列,用%s格式輸出。
5.c++中bool型別可直接使用。但c語言中需要包含stdbool.h才可使用。正型常量賦值給bool型變數會自動轉換為true(非0)或者false(0)
6(int)a 可以將a變數型別強制轉換為整型。
7條件運算子格式:a?b:c;
8.int上限為2^31-1,可以用(1<<31)-1表示。即1左移31位減1,但,為避免相加超過int,多用2^30-1,即ox3fffffffl.
9.scanf(「%lld」,&a) 輸入long long型a;scanf(「%lf」,&b) 輸入double型b;
10除了%c外,scanf對其他格式符(如%d)的輸入是以空白符(空格,tab)為結束判斷標誌的。因此除了%c會
把空格(以及換行符)按字元讀入,其他情況都會自動跳過空格。另外%s以空格和換行符做為讀入結束標誌。
11.scanf的&一定要注意檢查!!!
12printf(「%lld」,a) 輸出long long型a;scanf(「%f」,b) 輸出double型b;
13printf("%%") 輸出 % ; printf("\\") 輸出 \
14%md可以使不足m位的int型別以m位進行右對齊輸出,其中高位用空格補齊;如果變數本身超過m位,則保持原樣。
%0md 與上面唯一不同在於補齊時用0;%.mf可以讓浮點數保留m位小數輸出,使用的是四捨五入。
15.c=getchar();putchar(c) 分別是接收乙個字元,和輸出乙個字元。注意getchar()可以識別換行符。
16typedef 原名 別名 可以簡化**。
17.math.h下的數學函式:fabs(double x) 直接對double型別取絕對值;floor(double x),ceil(double x) 分別向上,下取整。返 double型別;pow(double r,double p) 求r的p次方。sqrt(double x);log(double x) ==ln x,其他對數用換底公式。sin(double x) cos(double x),cos(double x),tan(double x),x均為弧度。對應反三角函式前面加a,如asin。round(double x) 返回double型別,四捨五入取整。
18.if(condition 1)...else(condition 2) 是錯誤的格式。
19.switch(表示式)
case 常量表示式:....
break;
case 常量表示式:....
break;
default:.........
20.for(int i=0;......) c++允許,c不允許。
21break可以退出迴圈和switch,continue可以跳過本次迴圈。
22.從鍵盤輸入的數是不能做陣列的長度的。陣列的不完全賦值使得未賦值的元素可能為0,也可能是隨機數。
23 int a[10]=; int a[10]=;對陣列的每個元素都置0。 inta[5][6]=,,{},} 二維陣列初始化
時按第一維的順序初始化。{}表示a[2]全為0,其他沒有賦值的預設為0.另外,大陣列(10^6左右)要定義在主函式外,
原因:函式內部的區域性變數申請的空間來自系統棧,空間較小;函式外的來自靜態儲存區,空間較大。
24對陣列全賦值為0,或者1:memset(陣列名,值,sizeof(陣列名)) 要包含標頭檔案。
25.字元陣列初始化:char str[3]=; char str[3]="abc"; 後者僅僅在初始化是可用。
26. gets(str) str是字元陣列名。在scanf後有注意用getchar吸收掉乙個換行符。以\n作為讀取結束標誌。puts(str) 輸出
字串,並緊跟乙個換行符。str也是字元陣列名。
27一維字元陣列(或者二維字元陣列的第二維)的末尾都有乙個空字元\0,來表示字串的結尾。用gets或scanf輸入字串時
會自動新增到字串後面,並占用乙個字元位。而相應的puts和printf都是通過識別\0作為字串的結尾來輸出的。
注意:\0的ascii碼是0,開字元陣列時長度要比實際字串長度至少多1.若不用scanf的%s格式或者gets函式輸入字串。(如
用getchar,scanf的%c格式),記得在串末尾家\0.否則會出現亂碼。
28.字串函式:標頭檔案strlen(str) 獲取字元陣列str第乙個\0前的字元的個數。strcmp(字元陣列1,字元陣列2),比較原則是依次從前往後按字元在英文本母中的順序(a,b,c...)比較。陣列1>2,返回正整數。相等返回0,否則返回負整數。
strcpy(字元陣列1,字元陣列2),把字元陣列2連同\0一起複製到字元陣列1。strcat(字元陣列1,字元陣列2),把字元陣列2接到字元陣列1後面。
29.陣列作為函式引數,對陣列的修改等同於對原陣列的修改。二維陣列形參格式 void fun(int b[5])
30指標是乙個unsigned格式的整數。多個指標變數的定義時每個前面都要加乙個*。沒有初始化的指標不能引用它指向的
單元的內容,因為他的指向是隨機的,若指向系統工作區,極有可能出錯。實參傳遞位址,形參接收的仍然是位址的副本。
31.結構體的初始化:對每乙個變數進行初始化;或者用建構函式。
32.cin.getline(str,100) 讀取一行到字元陣列str中。
33.圓周率pi的求法:cos(pi)=-1,則acos(-1)=pi.
34.單點測試:幾組測試資料,過了幾組得幾組的分。要過所有的資料。
35.讀到檔案末尾:while(scanf("%d",&n)!=eof) //scanf返回讀取資料的個數。讀到檔案末尾返回-1而eof=-1.輸入eo式:ctrl+z
while(scanf("%s",str)!=eof) 和while(gets(str)!=null) 讀字元到檔案末尾。
滿足某個條件結束讀取。可結合break使用。n組測試資料的讀取用乙個變數控制。
第二章 C C 快速入門
1.c和c 部分區別 輸入輸出,指標引用 c語言的scanf和printf比c 的cin和cout要快 2.標頭檔案是什麼 include 例如stdio是標準輸入輸出庫,h是標頭檔案的檔案格式。檔案中包含一些跟輸入輸出有關的東西,程式需要輸入輸出的時候,需要引用標頭檔案才能使用檔案裡的輸入輸出函式...
演算法筆記 第二章c c 快速入門 總結
cin與cout消耗的時間比scanf和printf多得多,建議使用scanf與printf.標頭檔案 include c 中 如int a 1 int的範圍 絕對值在10 9內,printf用 d輸出。long long的範圍 絕對值在10 18內,printf用 lld輸出。long long型...
演算法筆記 第二章 C C 快速入門 學習總結
如果時間充足的話,想學c語言的話推薦去看書 c和指標 然後配著mooc上翁愷老師的課程一起看,看完之後基礎可以比較紮實,如果時間很緊張就仔細閱讀這部分內容,配著翁愷老師mooc一起。由於之前有c的基礎,這學期也在學習c c 可以聽翁愷老師和侯捷老師的課,書用c prime 所以很多基礎的部分就省略掉...