C語言譚浩強學習筆記

2022-11-29 07:57:03 字數 4940 閱讀 6648

第一章程式設計和c語言

1、計算機能直接識別和接受的二進位制**稱為機器指令,機器指令的集合就是該計算機的機器語言。

2、語言的發展歷史:①機器語言②符號語言③高階語言

3、高階語言的發展:①非結構化語言②結構化語言③物件導向的語言

4、c語言的祖先是bcpl語言

5、在字串中的//和/*都不作為注釋的開始。而是作為字串的一部分。

【但是在vc++6.0中//顯示編譯錯誤】

6、不要以為在max函式中求出最大值z後就會自動地作為函式值返**用處,必須用return語句指定將哪個值作為函式值。也不要不加分析地在所有函式後面都寫上return 0

7、乙個程式由乙個或多個源程式檔案組成

8、全域性宣告:即在函式之外進行的資料宣告,在函式外面宣告的變數稱為全域性變數。例如把inta,b,sum;放到main函式的前面

9、函式是c程式的主要組成部分,編寫c程式的工作主要就是編寫乙個個函式

10、乙個c語言程式是由乙個或多個函式組成的,其中必須有且只有乙個main函式

11、乙個小程式只包含乙個源程式檔案,在乙個源程式檔案中包含若干個函式(其中乙個為main函式),若程式規模太大,可以使乙個程式包含若干個源程式檔案,每個源程式檔案又包含若干個函式【乙個源程式檔案就是乙個程式模組,乙個程式分成若干個程式模組】

12、在進行編譯時是以源程式檔案為物件進行的【分別對各源程式檔案進行編譯得到相應的目標程式,然後再將這些目標程式連線成為乙個統一的二進位制可執行程式】

13、c語言的這種特點使得容易實現程式的模組化

14、乙個函式名後面必須跟一對圓括號,括號內寫函式的引數名及其型別。如果函式沒有引數,可以寫void或空括號【如int main(void)或int main()】

15、void dump(){}它是乙個空函式,但是是合法的

16、程式總是從mian函式開始執行的,不管位置在哪兒

17、程式中對計算機的操作是由函式中的c語句完成的

18、二進位制目標程式在visual c++中的字尾為.obj

19、可執行程式在visual c++中的字尾為.exe

20、乙個源程式經過編譯後得到的目標程式要經過連線階段與函式庫進行連線才能生成可執行檔案

21、程式設計的任務:①問題分析②設計演算法③編寫程式④對源程式進行編輯、編譯和連線⑤執行程式,分析結果⑥編寫程式文件

第二章演算法

1、對資料的描述:在程式中要指定用到哪些資料型別以及這些資料型別和資料的組織形式,這就是資料結構。

2、對操作的描述:即要求計算機進行操作的步驟,也就是演算法。

3、演算法+資料結構=程式

4、演算法是靈魂,資料結構是加工物件,語言是工具,程式設計需要採用合適的方法。

5、演算法的概念:為解決乙個問題而採取的方法和步驟。

6、計算機演算法可分為兩大類:數值運算演算法和非數值運算演算法【數值運算用於求數值解,非數值運算用於事務管理領域】

7、演算法的特性:①有窮性②確定性③有零個或多個輸入④有乙個或多個輸出⑤有效性

8、怎樣表示乙個演算法:自然語言、傳統流程圖、結構化流程圖、偽**等

9、連線點就是將畫在不同地方的流程圖連起來,流程圖別忘記畫箭頭。

基本結構的特點:①只有乙個入口②只有乙個出口③結構內的每一部分都有機會被執行到④結構內不存在死迴圈

10、區分當型和直到型:前者先判斷條件成不成立,再執行下一步,後者先執行,再判斷條件

11、用n-s圖表示的演算法都是結構化的演算法,如果乙個演算法不能分解為若干個基本結構,則它必然不是乙個結構化的演算法【n-s圖又稱盒圖】

12、結構化設計方法的基本思路:把乙個複雜問題的求解過程分階段進行,每個階段處理的問題都控制在人們容易理解和處理的範圍內。

13、方法:①自頂向下②逐步細化③模組化設計④結構化編碼

14、程式中的子模組一般不超過50行

15、模組的獨立性:使用乙個模組完成一項功能,耦合性越少越好

16、結構化程式設計方法用來解決人腦思維能力的侷限性和被處理問題的複雜性之間的矛盾

第三章最簡單的c程式設計

1、vc++把所有實數都作為雙精度數處理。因此提醒使用者:把雙精度常量賦給float型變數會造成精度損失,知道怎麼回事就行了

2、資料有兩種表現形式:常量和變數

3、常量分為:①整型常量(1000)

②實型常量(十進位制小數形式和指數形式【12.34e3,e後面必須是整數】)

③字元常量(普通字元、轉義字元)

④字串常量

⑤符號常量(#define pi 3.1416)

4、基本字符集中的每個字元必須用乙個位元組表示,空字元也佔乙個位元組,它的所有二進位制位都是0

5、乙個tab位置為8列

6、』\101』代表八進位制數101的ascii字元,即』a』(十進位制65),』\x41』代表十六進製制數41的ascii字元,也是』a』,』\0』或者』\000』是代表ascii碼為0的控制字元,即空操作字元

7、單撇號內只能包含乙個字元,雙撇號內可以包含乙個字串

8、符號常量不佔記憶體,只是乙個臨時符號,在預編譯後這個符號就不存在了,故不能對符號常量賦以新值

9、變數必須先定義後使用

10、常變數constinta= 3,表示a被定義為乙個整型變數,指定其值為3,而且在變數存在期間其值不能改變,常變數不能出現在賦值號的左邊。例如上面一行不能寫成:

const int a;

a=3;

可以用表示式對常變數初始化,如

const int b=3+6, c=3*cos(1.5);

11、識別符號只能由字母、數字和下劃線組成,且第乙個字元必須是字母或下劃線

12、①基本型別和列舉型別變數的值都是數值,統稱為算數型別

②算數型別和指標型別統稱為純量型別(因為其變數的值是以數字來表示的)

③列舉型別是程式中使用者定義的整數型別

④陣列型別和結構體型別統稱為組合型別(共用體型別不屬於組合型別,因為在同一時間內只有乙個成員具有值

13、tc2.0為每個整型資料分配2個位元組(16個二進位);vc++為每個整型資料分配4個位元組(32位)

14、求負數的補碼的方法:先將此數的絕對值寫成二進位制形式,然後對其後面所有各二進位按位取反,再加1

15、取值範圍

16、如果既未指定為signed也未指定為unsigned型別,預設為有符號型別

17、只有整型(包括字元型)資料可以加signed或unsigned修飾符,實型資料不能加

18、實型資料取值範圍:

19、在乙個整數末尾加大寫字母l或小寫字母l,表示它是長整型

20、浮點型常量(小數或指數)在記憶體中都以指數形式儲存

21、c程式中的實型常量都是雙精度浮點型常量

floata= 3.14159;

在進行編譯時,對float變數分配4個位元組,但對於浮點型常量3.14159,則按照雙精度處理,分配8個字元

22、如果除數或被除數中有乙個是負值,則捨入的方向不固定,一般採取「向零取整」的方法,即-5/3=-1

23、%運算子要求參加運算的物件是整數,除%以外的運算子的運算元都可以是任何算數型別

24、++i是先執行i=i+1後,再使用i的值;而i++是先使用i的值後,再執行i=i+1。

設已作宣告:int i=6,a;

25、算數表示式和運算子的優先順序與結合性

26、不同型別資料間的混合運算規律為:(取精度較高的)

①+,—,*,/運算的兩個數中有乙個為float或double型,結果是double型,因為系統將所有float型資料都先轉換為double型,然後進行運算。

②如果int型與float或double型資料進行運算,先把int型和float型資料轉換為double型,然後進行運算,結果是double型。

③字元(char)型資料與整型資料進行運算,就是把字元的ascii**與整型資料進行運算。字元型可以直接與整型資料進行運算。如果字元型資料與實型資料進行運算,則將字元的ascii**轉換為double型資料,然後進行運算。

27、強制型別轉換:一般形式為(型別名)(表示式),在強制型別轉換時,得到乙個所需型別的中間資料,而原來的變數的型別未發生變化

28、左值都可以作為右值,但算數表示式(a+b)或常量不能為左值

29、a=(a=b)=3*4;//報錯,左側的運算元必須是左值

30、c語言的截斷

i=289 0000 0001 0010 0001

c=330010 0001

31、在if條件中可以包含賦值表示式,但不能包含賦值語句

32、一般變數初始化不是在編譯階段完成的【只有在靜態儲存變數和外部變數的初始化是在編譯階段完成的】,而是在程式執行時執行本函式時賦予初值的,相當於執行乙個賦值語句。

33、在scanf函式中,輸入的數字可以用空格分開

34、在printf函式中,例如%7.2f代表在輸出時,指定資料佔7列,其中小數佔2列

35、c語言本身不提供輸入輸出語句(printf和scanf不是c語言的關鍵字。而只是庫函式的名字)

36、如果在源程式中有printf函式,在編譯時並不把它翻譯成目標指令,而是在連線階段與系統函式庫相連線後,在執行階段中呼叫庫函式中的printf函式

37、標頭檔案<>稱為標準模式,」」編譯系統先在使用者的當前目錄查詢

38、由於printf是函式,因此,「格式控制字串」和「輸出表列」實際上都是函式的引數

39、float型資料的儲存單元只能保證6位有效數字,double是15位

40、%輸出的資料向左對齊

41、e格式符是以指數形式輸出實數,預設小數部分6位,指數部分5列

42、格式字元含義(注意大小寫):

43、中的n對實數表示輸出n位小數,對字串表示擷取的字元個數

44、如果想輸出字元%,在「」中用連續2個%%表示:

(經檢測只輸乙個不顯示)

45、在scanf函式中,如果兩個%f間有2個空格,在輸入時,兩個資料之間應有2個或更多的空格

46、用%c格式宣告輸入字元時,空格字元和轉義字元中的字元都作為有效字元輸入

47、putchar函式是輸出字元的函式,而不是整數,例如putchar(66)輸出字元b,putchar可以是字元常量,字元變數,整型常量,整型變數(ascii碼範圍內)

c語言筆記總結

字型 font family 字型大小 font size font weight 設定或檢索物件中的文字字型的粗細。text decoration 檢索或設定物件中的文字的裝飾。font style 設定或檢索物件中的字型樣式。line height 設定或檢索行距。text transform ...

C語言總結筆記

c語言是面向結構的計算機高階語言,其兼具一般高階語言和低階語言的優點,c語言功能強大 應用廣泛,既可以用來編寫系統軟體,也可以用來編寫應用軟體。它具有以下幾個特點 1 語言簡潔 緊湊,使用方便 靈活。c語言程式比其他許多高階語言簡練,源程式短,因此輸入程式時工作量少。2 運算子豐富。c語言的運算子包...

C 學習筆記

中山大學黎培興c 教程 共51學時,每天6學時,8天完成。2012 11 16 2012 11 23 2012 11 16 課時1第一章緒言 1.c語言 面向過程的程式語言 procedure oriented programing 缺點 對於龐大的,複雜的難以開發和維護。可重用性差,資料安全性差,...