C 學習筆記

2023-01-15 04:12:02 字數 4439 閱讀 3127

中山大學黎培興c++**教程

共51學時,每天6學時,8天完成。(2012/11/16—2012/11 /23)

2012/11/16

課時1第一章緒言

1. c語言(面向過程的程式語言——procedure oriented programing)

缺點:對於龐大的,複雜的難以開發和維護。可重用性差,資料安全性差,難以開發圖形介面的應用。

形式:主模組+若干子模組(函式)

2. c++語言(物件導向的程式語言——object oriented programing)

優點:模組獨立,通過繼承和多型,使得程式可重用性增強。

觀點:整個世界是由實體(物件)所組成。

目的:實現軟體設計的產業化。

程式設計方法:

使用物件導向的觀點來描述模仿並處理現實問題。

課時2第二章 c++簡單程式設計

1. c++的特點:

1) 全面相容c

2) 支援物件導向的方法

2. 變數的儲存型別:

auto——屬於臨時性儲存,其儲存空間可以被若干變數多次覆蓋使用。

register——存放在通用暫存器中。

extern——在所有的函式和程式段中都可以引用。

static——在記憶體中是以固定位址存放的,在整個程式執行期間都有效。

課時31. 與運算(&)

用途:——將某一位置零,其他位不變。例如:

將char型變數a的最低位置零:a=a&0376;

——取指定位,例如:有char c;int a;

取出a的低位元組,置於c中:c=a&0377;

2. 或運算(|)

用途:將某些位置1,其他位不變。例如,將int型變數a的低位元組置1:a=a|0xff;

3. 左移(<<)

左移後,低位補0,高位捨棄。

4. 右移(>>)

右移後:低位捨棄

高位:有符號數,補符號位

無符號數,補0

課時41. c++中的賦值

int a(1),i(0);和c有點不同。

2. typedef語句

為乙個已有的資料型別另外命名

語法形式:typedef 已有型別名新型別名錶;

3. 列舉型別——enum

語法形式: enum 列舉型別名;

例如: enum weekday ;

enum weekday a=sun;//定義了乙個列舉型別的變數a並附初值sun即0.

注意:1)對列舉元素按常量處理,不能對它們賦值。例如,不能寫:sun=0;

2)列舉元素具有預設值,他們依次是:0,1,2,…。

3)也可以在宣告時另外指定列舉元素的值,如:

enum weekday ;

4)列舉值可以進行關係運算。

5)整數值不能直接賦給列舉變數,如需要將整形數賦值值給列舉變數,應進行強制型別轉換。

4. 結構體——是不同的資料型別的資料組成的集合體。

語法形式:

struct 結構名

;2012/11/18

第三章函式

課時51.一些有關函式應用的習題。

課時61. 內聯函式(inline)

注意:不能有選擇和迴圈語句(只能有順序語句)。

2. 函式的過載:c++允許功能相近的函式以相同的函式名命名。

注意:函式的引數型別或者引數個數不同。

3. 函式模板(template)

函式模板可以用來建立乙個通用功能的函式,以支援多種不同形參,進一步簡化過載函式的函式體設計。

宣告方法:

template 函式宣告

例子:#include<>

template

t abs(t x)

void main()

4. c++系統函式 等。

課時71. vc++的使用方法。

課時81. 一至三章的習題講解。

2. 機器——彙編——高階語言

3. 面相物件程式語言的優點:

事物——物件——類(屬性,行為)

繼承,多型——**重用

4. 結構化程式設計

順序,迴圈,分支

模組自頂向下,逐步求精

優點:分解任務

缺點:可重用性差,程式和資料是分離的。不適用於gui。

5. 物件(實體)包括屬性和行為<——封裝

方法——>資料

| 介面——物件(外界)

訊息(message)

思想:模擬人的思維。

6. 物件導向的軟體工程的方法

ooa——系統分析

ood——設計

oop——程式設計

oot——測試

oosm——公升級維護

7. c++語言的優點

相容c——簡單,可移植,中級語言(彙編,高階 )

oop——更安全,可重用粗性強

8. const 常數——有型別說明

#define 定義——無型別說明

兩者當需要型別轉換時就有區別了。

9. 注釋:提高可讀性

2012/11/19 19:30

課時91. 已知a=30

求b=a++ ——> b=30 a=31 先是將a賦值給b,然後a自加

求c=++a ——> c=32 a=32 先是a自加,然後將a賦值給c

2. 作用域:變數起作用的範圍。

區域性變數,全域性變數,外部變數(不是本程式的變數都能被本程式使用)

3. 輸出32——128的所有字元的ascii碼值

#include <>

int main()

4. #include <>

void main()

if(toupper(flag)==『n』)

else

return 0;}}

課時10

1. 函式function(子程式subroutine/subprogram)

功能分解

2. inline(內聯、嵌入、內嵌)函式

節省呼叫開銷,速度快

先宣告後呼叫,無多出口。

3. 原型(型別函式名(引數))

定義(型別函式名(引數))

呼叫(型別函式名(引數))

三者的引數名一定要相同嗎?

答:沒有要求,引數名隨便,只要函式名一樣。

4. 過載函式,靠引數個數和引數型別區分。

課時11

1. 素數(prime):除了1和本生外,沒有其他的因子。

演算法:k==1——n-1 或者 k==1——sqrt(n)

if n%k!=0

bool int prime(int i)

}if flag!=0; return i;

else

return 0;

}2. 最大公約數的演算法:先找出兩者中間的最小值,然後大的除以小的,直至餘數為零。後

if fil(int i,int j)

while(j!=0)

return i;

}3. 最小公倍數數的演算法:(i*j)/最大公約數

4. endl就是換行,end of line

5. 計算x的y次方

long getpower(int x,int y)

6. 計算費波拉瑟數列

已知f(0),f(1)

然後f(n)=f(n-1)+f(n-2)

long f(int n)

課時12

第四章類和物件

1. 抽象(abstract)是對具體物件進行概括,抽出這一類物件的公共性質並加以描述的過程。

class people

//這個大括號表示封裝

2. 封裝:將抽象出的資料成員、成員方法相結合,將它們視為乙個整體。

目的:增強安全性(通過公有、私有)和簡化程式設計,使用者不必了解具體的實現細節,而只需要通過外部介面,以特定的訪問許可權,來使用類的成員。

3. 繼承是c++中支援層次分類的一種機制,允許程式設計師在保持原有類特性的基礎上,進行更具體的說明。

4. 多型性:同乙個名稱,不同的功能的實現方式。

比如畫(畫圓,畫三角形,畫正方形等)

目的:達到行為標識統一,減少程式中識別符號的個數。

實現:過載函式和虛函

5. 類是具有相同屬性和行為的物件的一組物件的集合,它為屬於該類的全部物件提供了統一的抽象描述,其內部包括屬性和行為兩個部分。

作用:實現資料的封裝、隱藏(public、private、protect)、繼承(父、子類)和派生(新類)。

優點:易於編寫大型複雜程式,其模組集中程度比c中才用函式更高。

6. 類的宣告形式

class 類名稱

2012/11/20 9:30

課時13

1. 鐘錶類例項

class clock

;void clock::settime(int newh, int newm, int news)//在類外具體實現,但要在函式名前使用類名加以限定。

C 學習筆記

4.輸入輸出 是預定義的插入符,它用在cout上可以實現螢幕輸出。使用形式如下 cout 表示式 表示式.這裡可以連著多個表示式,輸出多個資料到螢幕。這裡的表示式可以是很複雜的表示式,系統會計算出這些表示式的值只把結果傳給插入符 然後顯示到螢幕上。例如,cout a b 是提取符,用到cin上用來把...

C語言譚浩強學習筆記

第一章程式設計和c語言 1 計算機能直接識別和接受的二進位制 稱為機器指令,機器指令的集合就是該計算機的機器語言。2 語言的發展歷史 機器語言 符號語言 高階語言 3 高階語言的發展 非結構化語言 結構化語言 物件導向的語言 4 c語言的祖先是bcpl語言 5 在字串中的 和 都不作為注釋的開始。而...

C複習筆記

1 net平台 net framework框架 net framework框架提供了乙個穩定的執行環境,來保障我們.net平台正常的運轉 2 c 語言 c sharp 程式語言,如果你想要計算機按照你說的去做,你必須說計算機能夠聽懂的語言。2001年 any time any place and o...