C語(yǔ)言總結(jié)
1.C語(yǔ)言程序的基本結(jié)構(gòu)1.1添加stdio.h的引用
1.2添加一個(gè)main函數(shù)
1.3main函數(shù)的形式應(yīng)該是
void main()
{
}
2.C語(yǔ)言程序的編譯運(yùn)行過(guò)程
2.1編寫(xiě)源代碼(CPU是不能直接執(zhí)行C語(yǔ)言的)
2.2編譯:將C語(yǔ)言的源代碼翻譯為機(jī)器語(yǔ)言的源代碼
編譯完成的結(jié)果一般是個(gè)exe文件
2.3運(yùn)行:在DOS命令行中直接寫(xiě)exe文件的名稱,就可以直接運(yùn)行C語(yǔ)言編寫(xiě)的程序(exe)。
3.數(shù)據(jù)類型
數(shù)據(jù)類型的定義:存放數(shù)據(jù)的容器。
基礎(chǔ)的數(shù)據(jù)類型有:
int:整型,一般的會(huì)占4個(gè)字節(jié),32位
float:浮點(diǎn)類型(單精度),一般的會(huì)占4個(gè)字節(jié),32位 存儲(chǔ)的數(shù)據(jù)應(yīng)該是帶小數(shù)的數(shù)據(jù) 1.2 13.5 7.0
char:字符類型,一般的會(huì)占1個(gè)字節(jié),8位,會(huì)存儲(chǔ)單個(gè)字符。A,B,a,b,.,+,-,(,), ’A’,’X’,’\n’ ’\t’
擴(kuò)展的數(shù)據(jù)類型:
long:長(zhǎng)整型,存儲(chǔ)的數(shù)據(jù)量要多一點(diǎn) 一般的應(yīng)該是4個(gè)字節(jié)
short:短整型,一般的應(yīng)該是2個(gè)字節(jié)
double:雙精度的浮點(diǎn)類型,8個(gè)字節(jié)。
1.測(cè)量數(shù)據(jù)類型在內(nèi)存中占多大的空間
使用sizeof運(yùn)算符來(lái)測(cè)量
可以接受一個(gè)變量,也可以接受一個(gè)類型。
2.給變量賦值的時(shí)候,某種數(shù)據(jù)類型的常量
int:1,2,45 %d
long:12l %ld
short:12,23 %d
float:12.3f %f
double:12.3 %lf
char:’A’ %c
4.變量
4.1變量的定義:
定義完一個(gè)變量,沒(méi)有初始化,這個(gè)時(shí)候變量中的值可能是一堆垃圾。如果要使用這種變量的話,那么必須對(duì)變量進(jìn)行初始化過(guò)程:其實(shí)就是為變量賦值的過(guò)程。
變量的數(shù)據(jù)類型 變量的名稱;
定義完一個(gè)變量,立即對(duì)這個(gè)變量用初始值給其進(jìn)行初始化。
變量的數(shù)據(jù)類型 變量的名稱=初始值;
定義變量必須在函數(shù)一開(kāi)始。
int x;
x=123;
int y;//放在這個(gè)地方時(shí)錯(cuò)誤的,應(yīng)該放到和x變量定義一個(gè)地方。
4.2變量的使用
對(duì)于有累計(jì)過(guò)程的變量,必須對(duì)其進(jìn)行初始化。
對(duì)于累加的變量應(yīng)該初始化為0
對(duì)于累積的變量應(yīng)該初始化為1
在程序運(yùn)行的過(guò)程中可以對(duì)變量進(jìn)行多次賦值。
變量可以在函數(shù)中定義:叫局部變量,只在當(dāng)前定義的函數(shù)中使用,超出這個(gè)范圍,將不再可用。
變量可以在函數(shù)外部定義:叫全局變量,在所有的函數(shù)中都可以使用
4.3變量的名稱
變量的名稱應(yīng)該有明確的含義。
變量的名稱應(yīng)該采用英文單詞的組合。
變量的名稱如果采用了多個(gè)英文單詞,那么第一個(gè)單詞的首字符要小寫(xiě),后續(xù)的單詞的首字母要大寫(xiě)。這種命名方式叫駱駝命名法。
Pascal命名法:每個(gè)單詞的首字母都必須大寫(xiě)。
Camel命名法:應(yīng)用在局部變量中。
Pascal命名法:應(yīng)用在全局變量,函數(shù)的名稱。
應(yīng)該類似于:userInput,computerNumber,compareResult
5.標(biāo)識(shí)符:
變量的名稱,函數(shù)的名稱這些都叫標(biāo)識(shí)符。
標(biāo)識(shí)符的規(guī)范:
可以使用的字符:字母,數(shù)字,下劃線。
對(duì)于標(biāo)識(shí)符來(lái)說(shuō),第一個(gè)字符不能是數(shù)字,可以是字母或下劃線。
一個(gè)標(biāo)識(shí)符在同一個(gè)范圍中只能應(yīng)用在一個(gè)變量或一個(gè)函數(shù)名中。
變量名稱的小規(guī)范:
i,j,k,m,n可以作為循環(huán)變量的名稱。
x,y,z可以作為普通的變量使用。
除此之外,盡量不要使用單個(gè)字母來(lái)做變量的名稱。
一般來(lái)說(shuō),變量的名稱應(yīng)該是一組名詞的組合,修飾的詞應(yīng)該在變量名稱的最前面。
函數(shù)名稱:一般應(yīng)該是動(dòng)賓結(jié)構(gòu);動(dòng)詞+名詞的形式。
GetUserInput()
GetMonthDays()
EatFood();
DrinkWater();
6.控制結(jié)構(gòu)
總的控制結(jié)構(gòu)有三種。
6.1順序結(jié)構(gòu)
一句接一句的順序執(zhí)行。
寫(xiě)在上面的語(yǔ)言應(yīng)該先執(zhí)行。
寫(xiě)在下面的語(yǔ)句應(yīng)該后執(zhí)行。
是使用最多的結(jié)構(gòu),因?yàn)轫樞蚪Y(jié)構(gòu)中沒(méi)有關(guān)鍵字。
6.2分支結(jié)構(gòu)
if else if
主要做范圍匹配
if(條件表達(dá)式或者邏輯表達(dá)式)
因?yàn)闂l件表達(dá)式和邏輯表達(dá)式的結(jié)構(gòu)都是真或假
對(duì)于if else if結(jié)構(gòu)來(lái)說(shuō),一次只能匹配一個(gè)范圍,只要有一個(gè)范圍匹配成功,那么其他的分支將不會(huì)被執(zhí)行。
分支結(jié)構(gòu)可以嵌套。
switch case
主要做單值匹配
switch :需要匹配的變量的名稱
case:?jiǎn)蝹(gè)值
default:啥都不寫(xiě)
break:是結(jié)束這個(gè)switch
switch后面的變量的數(shù)據(jù)類型應(yīng)該是整型或字符類型,浮點(diǎn)類型不可以。
case:表明匹配上這個(gè)值應(yīng)該做的工作。
case后面應(yīng)該有個(gè)塊。
在case塊的最后,應(yīng)該是break語(yǔ)句,用來(lái)跳出switch。
default:所有的case都沒(méi)匹配上的時(shí)候,應(yīng)該執(zhí)行的語(yǔ)句塊。default塊中也應(yīng)該有break。
當(dāng)一個(gè)case塊中沒(méi)有任何內(nèi)容的時(shí)候,可以不寫(xiě)break,那么這時(shí)候,將會(huì)匹配下一個(gè)case塊中的內(nèi)容。
switch case結(jié)構(gòu)可以轉(zhuǎn)換為if else if結(jié)構(gòu)。
if else if不一定可以轉(zhuǎn)換為switch case 結(jié)構(gòu)
6.3循環(huán)結(jié)構(gòu)
for循環(huán)
for(循環(huán)變量的初始化;循環(huán)執(zhí)行的條件;循環(huán)變量變化的過(guò)程)//不能有分號(hào)
{
//循環(huán)體
//可能會(huì)執(zhí)行多次
//循環(huán)執(zhí)行的次數(shù)和for中的三個(gè)語(yǔ)句都有關(guān)系。
}
循環(huán):
循環(huán)的種類:
1.確定次數(shù)的循環(huán)。
2.次數(shù)不確定,但是由程序來(lái)決定循環(huán)次數(shù)。
3.次數(shù)不確定,但是由用戶來(lái)決定循環(huán)次數(shù)。
4.死循環(huán)。
循環(huán)的形式:
1.for(循環(huán)變量的初始化;循環(huán)執(zhí)行的條件;循環(huán)變量變化的過(guò)程)
2.循環(huán)變量的初始化;while(循環(huán)執(zhí)行的條件){循環(huán)變量變化的過(guò)程;}
3.循環(huán)變量的初始化;do while(循環(huán)執(zhí)行的條件){循環(huán)變量變化的過(guò)程;}
數(shù)組:一組在內(nèi)存中連續(xù)存放的變量的集合。
定義:
1.數(shù)組中元素的類型 數(shù)組的名稱[數(shù)組的大小];
int ary[5];
2.數(shù)組中元素的類型 數(shù)組的名稱[數(shù)組的大小]={數(shù)值1,數(shù)值2,.....};
大括號(hào)中的數(shù)值的個(gè)數(shù),不能比數(shù)組的大小還多。
int ary[4]={1,2,3,4};
int ary[4]={1,2,3};
//錯(cuò)誤的
int ary[4]={1,2,3,4,5};
3.數(shù)組中元素的類型 數(shù)組的名稱[]={數(shù)值1,數(shù)值2,.....};
數(shù)組的大小是大括號(hào)中元素的個(gè)數(shù)。
使用:
1.賦值
數(shù)組的名稱[數(shù)組元素的下標(biāo)]=值;
數(shù)組元素的下標(biāo)從0開(kāi)始,到數(shù)組的大小-1結(jié)束。
2.取值
變量的名稱=數(shù)組的名稱[數(shù)組元素的下標(biāo)];
算法
1.查找(在數(shù)組中查找最大數(shù))
首先假設(shè)數(shù)組中的第一個(gè)元素是最大的;
將數(shù)組中的其他元素挨個(gè)與最大數(shù)進(jìn)行比較。
2.查找(在數(shù)組中查找指定的元素)
返回的結(jié)果是指定的元素在數(shù)組中的位置(下標(biāo)或索引)
3.排序(冒泡)
核心思想:大數(shù)下沉,小數(shù)上浮。
需要用到循環(huán)嵌套
外層循環(huán)的次數(shù)是數(shù)組的大小-1輪。
里層循環(huán)的次數(shù)是數(shù)組的大小-1-輪索引
在里層循環(huán)中要做比較,比較完成后,需要做兩個(gè)數(shù)的交換。
進(jìn)制的轉(zhuǎn)換
10-10
應(yīng)用的算法是碾除法。
核心思想是:每次都取一個(gè)數(shù)的個(gè)位,直到原始數(shù)變成零,就結(jié)束了。
項(xiàng)目:證明6174。
1.拆分
2.排序
3.組最大數(shù),組最小數(shù)
4.用最大數(shù)-最小數(shù),查看差值是否是6174
5.如果不是,那么將差值重新作為新的可拆分的數(shù),回到1.
函數(shù):
程序執(zhí)行過(guò)程中的特定功能的塊。
printf()//stdio.h
main():必須有,且僅有一個(gè)。
自定義的函數(shù):
按返回類型分:
1.沒(méi)返回值的函數(shù)
返回類型一律是void
在調(diào)用的時(shí)候,不需要一個(gè)變量來(lái)接受函數(shù)的返回值。
2.有返回值的函數(shù)
返回類型是除void之外的其他的類型。
int Sum(int x,i 以用一個(gè)變量來(lái)接受函數(shù)的返回值。
按函數(shù)的參數(shù)來(lái)分:
1.有參數(shù)的函數(shù)
void Sum(int x,int y);
int Sum(int x,int y);
在調(diào)用的時(shí)候,必須傳遞參數(shù)。
2.無(wú)參數(shù)的函數(shù)
void main();
【C語(yǔ)言總結(jié)】相關(guān)文章:
C語(yǔ)言實(shí)習(xí)總結(jié)05-05
C語(yǔ)言實(shí)習(xí)總結(jié)01-19
c語(yǔ)言心得04-24
C語(yǔ)言小游戲05-01
C語(yǔ)言課程教案04-24
C語(yǔ)言的論文致謝04-29
C語(yǔ)言的實(shí)踐實(shí)習(xí)心得04-28
C語(yǔ)言論文05-01
c語(yǔ)言讀書(shū)筆記03-23
C語(yǔ)言實(shí)習(xí)心得01-01