學習C語言程序設計都會用到高等數學知識和計算機基礎理論知識。
使用可變參數應該有以下步驟:
1)首先在函數里定義一個va_list型的變量,這里是arg_ptr,這個變量是指向參數的指針。
2)然后用va_start宏初始化變量arg_ptr,這個宏的第二個參數是第一個可變參數的前一個參數,是一個固定的參數。
3)然后用va_arg返回可變的參數,并賦值給整數j. va_arg的第二個參數是你要返回的參數的類型,這里是int型。
4)最后用va_end宏結束可變參數的獲取。然后你就可以在函數里使用第二個參數了。如果函數有多個可變參數的,依次調用va_arg獲取各個參數。
C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
C語言程序設計 基礎知識點
1、&是取地址符號,&x表示的是x在內存中的地址,表示把輸入的數據放到x所在的內存單元中去。
2、C程序源程序擴展名為.c。目標程序擴展名為.obj??蓤绦谐绦虻臄U展名為.exe。
3、指針用來表示某個變量在內存儲器中的地址。
4、十進制寫法除非要寫的整數本身就是0,否則開頭第一個數字字符不能為0.
5、八進制整常數必須以0開頭,數碼取值為0-7。八進制數通常為無符號數。
6、十六進制數常數的前綴為0X或者0x。其數直碼維阿0—9,A—F或者a—f。
二進制、八進制、十進制、十六進制之間的轉換
7、字符串常量在內存中存儲時有串尾標記 ‘ \0 ’,所以字符常量占一個字節的內存空間,而字符串常量占的內存字節數等于字符串中字符所占的字節數加1.
8、可以把一個字符常量賦予一個字符變量,但不能把一個字符串常量賦予一個字符變量。C語言中沒有專門的字符串變量。字符串如果需要存放在變量中,需要使用字符型數組來存放。
9、++i與i++的區別:
n = ++i;先加再賦值。n = i++;先賦值再加。eg:i = 1時,n = ++i,n = 2,i = 2;n = i++,n = 1,i = 2。
int i = 5,j;
j = ++i+i++;
printf(“%d,%d”,i,j); //7,12
j=(++i)+(++i);
printf(“%d,%d”,i,j); //9,17
10、數據類型轉換;double類型最高。
11、
int m,n,k;
m = 15,n = 20;
k = (--m)+(--n);
printf(“k = %d,m = %d,n = %d”,k,m,n); //k = 33,m = 14,n = 19
m = 15,n = 20;
k = (m--)+(n--);
printf(“k = %d,m = %d,n = %d”,k,m,n); //k = 35,m = 14,n = 19
C語言程序設計重點知識
第一章C語言概述
1、C程序的組成和形式的基本特點(P6-7)
(1)C程序是由函數構成的,一個C源程序至少且僅包含一個main函數,也可以包含一個main函數和若干個其他函數。
(2)一個函數由兩部分組成
1函數的首部:即函數的第一行,包括函數名、函數類型、函數屬性、函數參數名、參數類型
例:intmax(intx,inty)
一個函數名后面必須跟一對圓括號,括號內寫函數的參數名及其類型。函數可以沒有參數,如main()。
2函數體:即函數首部下面的花括號內的部分。如果一個函數內有多個花括號,則最外層的一對花括號為函數體的范圍。函數體一般包括:聲明部分、執行部分2、運行C程序的步驟及每個步驟生成文件的類型及特點(P7)
第二章算法
1、算法的定義
一個程序應包括①數據結構即對數據的描述;②算法也就是操作步驟。計算機算法可分為兩大類:數值運算算法和非數值運算算法。
2、算法的特性(P19)
1.有窮性;
2.確定性;
3.有零個或多個輸入;
4.有一個或多個輸出;
5.有效性。
3、描述算法的常用方法(P20-33)
1.自然語言;
2.用流程圖表示算法。
3.N—S圖
4.計算機語言
5.偽代碼
4、C程序算法的3種基本結構及其共同特點(P24-25)
三種基本結構:
1.順序結構:最基本;
2.選擇結構:又稱選取結構或分支結構;
3.循環結構:又稱重復結構;
1當(while)型循環;
2直到(until)型循環。
共同特點:
1.只有一個入口;
2.只有一個出口;
3.結構內的每一部分都有機會被執行到;
4.結構內不存在“死循環”。
5、結構化程序設計的設計原則(P34)
1.自頂向下;
2.逐步細化;
3.模塊化設計;
4.結構化編碼。
第三章數據類型、運算符與表達式
1、C語言的基本數據類型和構造數據類型(P37)
在程序中對用到所有數據都必須制定其數據類型。數據有常量和變量之分,它們分別屬于以上這些類型。
2、字面常量和符號常量(P37-38)
在程序運行過程中,其值不能被改變的量稱為常量,常量區分為整型常量和實型常量,常量一般從其字面形式即可判別,這種常量稱為字面常量或者直接常量。
用一個標識符代表一個常量的符號,稱為符號常量,即以標識符形式出現的常量(常量的表示用大寫字母,變量的表示用小寫字母),符號常量與變量不同,符號常量的值在其作用域內部能改變,也不能再被賦值,如果再用賦值語句給符號常量賦值是錯誤的。使用符號常量的好處:1.含義清楚2.在需要改變一個常量時能做到“一改全改”
3、標識符的命名規則(P39-40)
C語言規定標識符只能有字母、數字和下劃線3中字符組成,且第一個字符必須為字母或下劃線,合法的標識符可以作為變量名。編譯系統將大寫字母和小寫字母認為是兩個不同的字符。變量名的長度最好不要超過8個字符。在C語言中,要求對所有用到的變量做墻紙定義,也就是“先定義,后使用”,1.凡未被事先定義的,系統不把它認作變量名,這就能保證程序中變量名使用得正確。2.每一個變量被指定為一個確定類型,在編譯時就能為其分配響應的存儲單元。3.指定每一變量數以一個類型,這就便于在編譯時據此檢查在程序中要求對該變量進行的運算是否合法。例a%b是“求余”得到a/b的余數
4、整型常量的3種表示方式、整型變量的分類及其定義方式、整型常量的類型(P41-44)
整型常量即整常數的3種表示方式:
1.十進制整數;
2.八進制整數(以0開頭);
3.十六進制整數(以0x開頭)。
整型變量的分類:整型變量的基本類型符為int,根據數值的范圍將變量定義為基本整型
int、短整型shortint/short、長整型longint/long在實際應用中,變量的值常常是正的,為充分利用變量的值的范圍,可以將變量定義為“無符號/unsigned”類型,以指定是“無符號數”,或者為“有符號/signed”。如果前無符號,默認為有符號(signed)歸納起來,可以用一下六種整形變量:
1.有符號基本整型[signed]int
2.無符號基本整型unsignedint
3.有符號短整型[signed]short[int]
4.無符號短整型unsignedshort[int]
5.有符號長整型[signed]long[int]
6.無符號長整型unsignedlong[int]
整型常量的類型:
1.一個整數,如果其值在-32768~2147483647范圍內,則認為它是int型,它可以賦值給int型和longint型變量
2.一個整數,如果其值超過了上述范圍,而在-2147483648~2147483647范圍內,則認為它是長整型,可以將它復制給一個longint型變量
3.一個整常量后面加一個字母u或U,可以認為是unsignedint型,如123456u
4.在一個整常量后面加一個字母l或L,則認為是longint型常量,如123l、123L
5、浮點型常量的2種表示方式、浮點變量的分類及其定義方式、浮點常量的類型(P45-47)浮點型常量的2種表示方法:浮點數就是實數,有兩種形式
1.十進制小數形式。(由數字和小數點組成,必須有小數點)
2.指數形式。如123e3或123E3代表123×10.3注意字母e/E之前必須有數字,且e后面的指數必須為整數,一個浮點數可有多種指數表示方法
浮點變量的分類:
1.單精度(float型):有效數字6~7
2.雙精度(double型):有效數字158~16
3.長雙精度型(longdouble型):有效數字18~19
浮點變量的定義方式:floatx,y;類似
浮點常量的類型:如果在數的后面加字母f或F(如1.65f),編譯系統會把它們按單精度處理。一個浮點型常量可以賦給一個float型、double型或longdouble型變量,根據變量類型截取實型常量中相應的有效位數字。
例如:Floata;
A=111111.111;
由于folat型變量只能接受7位有效數字,因此最后兩位小數不起作用。如果a改為double型,則能全部接受上述9位數字,并儲存在變量a中。
6、字符常量的2種形式、字符變量、字符串常量(P48-52)
字符常量的2種形式:
1.C語言的字符常量是用單撇號括起來的一個字符。如‘a’
2.常用的以“\”開頭的特殊字符如下
字符變量:字符變量用來存放字符常量,它只能放一個字符,不能存放字符串例charc1,c2;c1=‘a’;c2=‘b’;一個字符變量在內存中占一個字節。
小寫字母的ASCII碼比它的大寫字母ASCII碼大32,小大變為大小
7、變量初始化的時間(P53)
C語言允許在定義變量的同時使變量初始化。(inta=3;floatf=3.56;charc=‘a’)也可以使被定義的變量的一部分賦初值(inta,b,c=5;)
如果對幾個變量賦予同一個初始值,應寫成:inta=3,b=3,c=3;不能寫成inta=b=c=3;初始化不是在編譯階段完成的,而是在程序運行時執行本函數時賦初值的,相當于有一個復制語句。(inta=3;)
8、各類型數據間的混合運算(P54)
整型、浮點型、字符型數據間可以混合運算
9、C語言的運算符及其優先級和結合性(P55)
特殊%,模運算符或稱求余運算符,%兩側均應為整型數據,且兩個整數相除的結果為整數,如5%3為1,舍去小數部分算術運算符的結合方向為自左至右或左結合性,并且先乘除后加減
10、強制類型轉換(P56)(double)a;(int)(x+y);11、自增、自減運算(P57)i++或++i
1.自增自減運算符只能用于變量,不能用于常量或表達式。例
++(i-1)為錯
2.++和—的結合方向是自右至左,例-i++合法,先輸出-i再加一,(-i)++不合法
例:i=3;a=i++;b=i++;c=i++;d=a+b+c;最終輸出d=12.
3.i+++j相當于(i++)+j,盡可能多的自左至右
12、賦值運算符、復合賦值運算符、賦值表達式(P59-64)賦值運算符就是“=”
1.將浮點型數據(單雙精度)賦給整型變量時,舍棄浮點數的小數部分
2.將整型數據賦給單雙精度時,數值不變,但以浮點數形式存儲到變量中,如將23賦值給float就得到23.00000
3.將一個double型數據賦給float變量時,截取其前面7位有效數字,存放到float變量中。例:floatf;doubled=123.456789e100;f=d;就出現溢出錯誤
將一個float型數據賦給double變量時候,數值不變,有效位數擴展到16位,在內存中以8個字節存儲
4.字符型數據賦給整型變量
5.int、short、long型數據賦給char變量例如inti=289;charc=‘a’;c=i;
6.將帶有逗號的整型數據int賦給long型變量時,啊喲進行符號擴展,將整型數據16位送到long型低16位中,如果int型數為正值,則long型變量的高16位補零;如果int型變量為負值(符號位為1),則long型變量的高16位補1,以保持數值不變,反之如果將一個long型數據賦給一個int型變量,值將ong型數據中低16位原封不動地送到整型變量(截斷)
7.unsignedint型數據賦給longint型變量時,不存在符號擴展問題
8.將非unsigned型數據賦給長度相同的unsigned型變量,也是原樣賦值復合賦值運算符:a+=3等價于a=a+3;a+=b+3等價于a+=(b+3)
9.賦值表達式一般形式《變量》《賦值運算符》《表達式》賦值運算符左邊的叫左值,右邊的叫右值,凡是左值都可以作為右值賦值表達式作為左值時應加括號
賦值運算符按照“自右至左”的結合順序(a=3*5)=4*3先執行括號內能的運算,將15賦給a,然后執行4*3的運算,得12,再把12賦給a,故整個表達式的值為12賦值表達式也可以包含復合的賦值運算符a+=a-=a*a先進行右邊賦值表達式的計算,相當于a=a-a*a將a初值帶入計算a,再進行左邊賦值表達式的計算
13、逗號運算符及其優先級、逗號表達式
逗號表達式一般形式表達式1,表達式2
賦值運算符的級別高于逗號運算符a=3*5,a*4a的值為15,表達式的值為60x=(a=3,6*3)
賦值表達式,將逗號表達式的值賦給x,x的值等于18x=a=3,6*3
逗號表達式,x的值為3,整個逗號表達式的值為18
第四章順序結構程序設計
1、C語句的分類(P69-71)
1、控制語句9種
If…else…/for…/while…/do…while/continue/break/switch/goto/return
2、函數調用語句。函數調用語句由一個函數調用加一個分號構成
printf(“456123”)
3、表達式語句。表達式語句由一個表達式加一個分號構成,a=34、空語句5、復合語句
2、賦值語句(P71)If((a=b)》0)t=a;先將b的值賦給a,如果a大于0,則t=a3、putchar()、getchar()函數(P73-74)
putchar函數(字符輸出函數)作用是向終端輸出一個字符。其一般形式為putchar(c)
putchar函數可以在屏幕上輸出字符,也可以輸出控制字符,如putchar(‘\n’)作用是輸出一個換行符,使輸出的當前位置移到下一行的開頭
getchar函數(字符輸入函數)的作用是從終端輸入一個字符,其一般形式為getchar()例如charc;c=getchar();putchar(c);此時屏幕上將輸出c的輸入值4、printf()、scanf()函數及其對應的格式控制符(P74-86)printf格式輸出函數,作用是向終端輸出若干個任意類型的數據一般格式為printf(“格式控制”,輸出表列)例printf(“%d,%c\n”,i,c)格式控制作用:
1.格式說明(%.。):將輸出的數據轉換為指定的格式輸出
2.普通字符。按原樣輸出格式控制中的普通字符按原樣輸出例printf(“%d%d”,a,b)printf(“a=%db=%d”,a,b)
在第二個函數中雙引號內的字符,除了兩個%d以外,其他的普通字符按原樣輸出,如果a,b的值分別為3,4,則輸出為a=3b=4中間有空格3.格式字符:
1d格式符。%d按十進制整數數據實際長度輸出;%md指定寬度(位數)m,如果數據位數小于m,則左端補空格;%ld長整型數據2o格式符。以八進制整數形式輸出3x格式符。以十六進制數形式輸出
4u格式符。以十進制整數形式輸出無符號數
5c格式符。用來輸出一個字符,一個整數,只要它的值在0~255之間,也可以用%c使之按字符形式輸出,在輸出前,系統會將該整數作為ASCII碼轉換成相應的字符;反之,一個字符數據也可以用整數形式輸出。
6s格式符。用來輸出一個字符串。%s;%ms,輸出的字符串占m列,如果字符串本身長度大于m,則突破m限制,將字符串全部輸出,如果小于m,則左補空格;%-ms,如果串長小于m,則在m列范圍內,字符串向左靠,右補空格;%m.ns,輸出m列,但只取字符串左端n個字符。這n個字符輸出在m列右側,左補空格;%-m.ns,取n個字符輸出在m列范圍的左側,右補空格,如果n》m,則m自動取n值,即保證n個字符正常輸出
7f格式符。用來輸出實數(包括單雙精度),以小數形式輸出。%f,不指定字段寬度,使整數部分全部輸出,并輸出6位小數。但注意,在輸出的數字中并非全部數字都是有效數字,單精度實數的有效數字一般為7位;%m.nf,指定輸出的數據共占m列,其中有n位小數。如果數值長度小于m,則左端補空格;%-m.nf與%m.nf基本相同,只是使輸出的數值向左端靠,右端補空格。
8e格式符。以指數形式輸出實數
9g格式符。用來輸出實數,根據數值的大小,自動選f格式或者e格式,且不輸出無意義的零。P80
注意:除了X,E,G外,其他格式字符必須用小寫字母;可以在格式控制字符串內包含轉義字符;格式符之間可以加入修飾符;用連續兩個%來輸出%scanf(格式控制,地址表列)scanf(“%d%d%d”,&a,&b,&c)
&為地址運算符,&a指a在內存中的地址。
1.用%d%d%d輸入數據時不能用逗號做兩個數據間的分隔符可用空格
如果%d和%d之間有n個空格,則輸入時對應的位置應該有多于n個空格來分隔
總之,%d與%d之間有什么簡單符號,輸入信息時候就要將這些符號加上,或者格式控制里是a=%d,則輸入數據時候也得輸入a=某個數據
2.用%c格式輸入字符時候,空格字符和轉義字符都作為有效字符輸入例如:scanf(“%c%c%c”,&c1,&c2,&c3);若輸入“a空格b空格c”則c1為a,c2為空格,c3為b,正確的輸入法為“abc”字符間沒有空格
3.在輸入數據時候,遇到以下情況時,認為該數據結束①遇空格,或按回車,或跳格鍵;②指定寬度結束,如%3d;③遇非法輸入
第五章選擇結構程序設計
1、關系運算符及其優先級和結合性、關系表達式(P91-92)
優先級:等不等于低于大小等于;算術運算符》關系運算符》賦值運算符理解:關系表達式,表達式的值(1為真,0為假)
例:設a=3,b=2,c=1有d=a》b則d的值為1;f=a》b》c則f的值為0.
2、邏輯運算符及其優先級和結合性、邏輯表達式及其求值過程的特點(P91-92)邏輯運算符與(&&)或(||)非(!)優先級:
1非(?。c(&&)→或(||)諧音記為“飛魚火”;2邏輯運算符中的“&&”和“||”低于關系運算符,“!”高于算術運算符
邏輯表達式:C語言判斷一個量是否為真時,以0代表假,以非0代表真,即將一個非0的數值認作為真。
若a=4則!a的值為0;4&&0||2的值為1求值過程特點:略
3、if語句的三種結構(P95-96)第一種:if(表達式)語句
例:if(x》y)frintf(“%d”,x);第二種:if(表達式)語句1else語句2
例:if(x》y)printf(“%d”,x);elseprintf(“%d”,y)第三種:if(表達式1)語句1elseif(表達式2)語句2…。。
例:if(number》500)cost=0.15;elseif(number》300)cost=0.10;elsecost=0;特點:1.if(3)printf(“%d”,’a’);2.第二,三種形式的if語句中,在每個else前面有一個分號,整個語句結束處有一個分號。3.當if和else后面有多個操作語句時,用{}將幾個語句括起來稱為一個符合語句。注意,花括號外面不需要再加分號,因為{}內是一個完整的復合語句
4、if語句的嵌套及if與else的配對關系(P99)略
5、條件運算符及其優先級和結合性及其求值過程(P102-104)例子:max=(a》b)?a:b;“(a》b)?a:b”是一個條件表達式,如果(a》b)為真,則條件表達式取值a;否則取值b。條件運算符優先級別低于關系運算符和算術運算符。故上式中括號可以省略條件運算符的結合方向為“自右至左”a》b?a:c》d?c:d相當于a》b?a:(c》d?c:d)例子:a》b?(a=100):(b=100)a》b?printf(“%d”,a):printf(“%d”,b)6、switch語句及其執行過程、break語句的作用(P102-104)switch(grade){case‘A’:printf(“85~100\n”);case‘B’:printf(“0~84\n”);defaule:printf(“error\n”);}
說明:case只起語句標識作用,當語句執
行時,此case一旦執行其后面的語句將就此開始全部執行下去,不再進行判斷,為使在執行此case后跳出結構,用一個break語來達到刺目的。故需在以上語句的每一個case語句分號后面加(break;
第六章循環控制
1、while語句(P114)
while(表達式)語句;特點:先判斷表達式,后執行語句。
例子:while(i《=100){sum=sum+I;i++;}2、do-while語句(P115)
do循環體語句while(表達式);特點:先執行循環體,后判斷循環條件是否成立例子:do{sum=sum+I;i++;}while(i《=100);printf(“%d\n”,a);3、for語句(P118)
for(表達式1;表達式2;表達式3)語句
for(循環變量賦初值;循環條件;循環變量增值)for(i=1;i《=100;i++)sum=sum+i;
說明:1.表達式1可以省略(但分號不可以省略),此時應在for語句之前給循環變量賦初值;2.如果表達式2省略,循環無終止地進行下去;3.表達式3也可以省略,另找路徑保證循環正常結束;4.可以省略表達式1和表達式3而使只有表達式2循環條件。如for(;i《=100;){sum=sum+i;i++}4、循環的嵌套(P121)
while循環,do…while循環,for循環三種循環可以嵌套5、break、continue語句(P122)
break語句可以用來從循環體內跳出循環體,即提前結束循環,接著執行循環體下面的語句,不能用于循環語句和switch語句之外的任何其他語句中。
continue作用為結束本次循環,即跳過循環體中下面尚未執行的語句,接著進行下一次是否執行循環的判定。
兩者區別是continue語句只結束本次循環,而不是種植整個循環的執行。而break語句則是結束整個循環過程,不再判斷執行循環的條件是否成立。
6、輾轉相除法求最大公約數的基本原理
第七章數組
1、數組的定義方式、下標范圍(P131、135)
類型說明符數組名[常量表達式]例inta[3]表示定義了一個整數數組,數組名為a,有3個元素。注意,下標是從0開始的(可以使整型常量或整型表達式),C語言不允許對數組的大小做動態定義。inta[10];t=a[6];
2、數組元素的引用方式、數組的初始化(P132、136)全賦初值
inta[3]={1,2,3}在全賦初值的前提下可以寫成inta[]={1,2,3}賦初值一部分inta[3]={1,2}全部為0
inta[3]={0}
3、起泡法排序的原理(P134)
將相鄰兩個數比較,將大(小)的調到前邊4、二維數組相關
表示:floata[3][4],b[5][10];定義a為3行4列的數組,b為5行10列的數組。(區別
a[3,4])
引用:數組名[下標][下標]例a[2][3],不要寫成a[2,3]初始化:
1分行給二維數組賦初值,例。inta[3][2]={{4,5}{9,8},{4,2}};
2將所有數據寫在一個花括號內,按數組排列順序對個元素賦初值,例inta[3][2]={1,2,3,4,5,6,}
3對部分元素賦初值,例,inta[3][2]={{4},{},{7}}未賦值的元素自動為0
4第一維可以不指定,但第二維不能省略inta[][2]={1,2,5,6,8,9}系統會根據第二維的長度自動算出第一維
5還可以inta[][4]={{0,0,3},{},{0,10}};
5、字符數組及其初始化、字符數組的輸入輸出(P144)同前面的定義方法類似charc[10]
字符型和整型是互相通用的,因此可以定義一個整型數組,用來存放字符型數據,例:charc[10];c[0]=’a’;chara[]={‘B’,’O’,’Y’};
初始化:charc[3]={‘B’,’O’,’Y’};如果括號內初值個數大于數組長度,按語法錯誤處理,如果初值個數小于數組長度,則只將這些字符賦給數組中前面那些元素,其余的元素自動定為空字符
字符串的輸入輸出:逐個輸入輸出,用格式符%c輸入或輸出;或將整個字符串一次性輸入或輸出,用%s格式符
charc[]={“Iamhappy”}等同于charc[]=”Iamhappy”(以上兩種字符串長度為11而不是10)效果等同于charc[]={‘I’,’’,’a’,’m’,’’,’h’,’a’,’p’,’p’,’y’}charc[5]={‘C’,’h’,’i’,’n’,’a’}等同于charc[6]={‘C’,’h’,’i’,’n’,’a’,’\0’}6、字符串處理函數(P146)
puts(字符數組)作用是將一個字符串輸出到終端,puts輸出的字符串中可以包含轉義字符例charstr[]={“China\nBeijing”};puts(str);
gets(字符數組)作用是從終端輸入一個字符串到字符數組,并且得到一個函數值。例gets(str)鍵盤輸入Computer[回車]
注意:puts和gets函數只能輸出或輸入一個字符串,如puts(str1,str2)為錯誤
strcat(字符數組1,字符數組2)作用是連接兩個字符數組中的字符串,把字符串2接到1的后面,結果放在字符數組1中,函數調用后得到字符數組1的地址例charstr1[30]={“Iam”};charstr2[]={“aboy”};printf(“%s”,strcat(str1,str2));輸出Iamaboy剩下的函數省略。
第八章函數
1、函數的調用特點及其分類(P155-156)特點:
1一個源程序文件可以為多個C程序共用
2一個源程序文件時一個編譯單位,在程序編譯時是以源程序文件為單位進行的,
而不是以函數為單位進行編譯的3C程序的執行時從main函數開始的
4所有函數都是平行的,即在定義函數時是分別進行的,是互相獨立的。函數間可以互相調用,但不能調用main函數,main函數時系統調用的。
分類:從用戶使用角度看,分為標準函數和用戶自己定義的函數
從函數的形式看,分為無參函數和有參函數
2、函數的定義方法(P156-157)①無參函數定義的一般形式類型標識符函數名(){聲明部分語句部分}
voidmain(){………。}②有參函數定義的一般形式
類型標識符函數名(形式參數表列){聲明部分語句部分}intmax(intx,inty){intz;z=x》y?x:y;
return(z);
}③空函數
類型說明符函數名(){}
例如voiddummy(){}
3、函數的參數、實參和形參之間的數值傳遞、函數值(P158-161)4、函數的調用方式、函數的聲明、函數原型(P161-166)5、函數的嵌套調用(P167)
6、函數的遞歸調用及應用(P171)
7、數組作為函數的參數、實參數組和形參數組之間的關系(P177)
8、選擇法排序的原理(P181)
9、局部變量、全局變量(P184-185)
在函數內定義的變量是局部變量,在函數之外定義的變量稱為外部變量,外部變量是全局變量也稱全程變量。全局變量可以為本文件中其他函數所共用。它的有效范圍為從定義變量的位置開始到本源文件結束。例如
intp=1,q=5;floatf1(inta){
intb,c;…}
charf2(intx,inty){
intx,inty…}
10、變量的分類及其存儲類別(P188)11、extern、static的應用(P193-196)12、內部函數和外部函數(P199)
第九章預處理命令
1、預處理命令的處理時間(P204)
2、宏定義、不帶參宏、帶參宏、格式宏、宏的有效范圍控制(P204-211)3、文件包含、兩種文件包含形式(P211-214)
第十章指針
1、變量的地址和變量的值(P221)一個變量的地址稱為該變量的“指針”。如果有一個變量專門來存放另一變量的地址(指針),則它稱為“指針變量”。
2、指針和指針變量(P221)
3、指針變量的定義方式、引用方式(P222)
4、指針變量作為函數參數(利用函數來改變實參的值)、實參和形參的值傳遞(P225)
5、指向數組元素的指針(P229)
6、一維數組元素和地址的表示方法、利用指針處理數組元素(P229)
7、數組和指針作為函數參數時如何利用指針處理數組元素(P235)
8、指向二維數組的指針的定義方式、二維數組元素和地址的表示方法(P242)
9、指向字符串的指針、利用它來處理字符串
1、goto循環
例6.1求1+2+3+…+100#include《stdio.h》voidmain(){
inti=1,sum=0;loop:if(i《=100){sum=sum+i;i++;
gotoloop;}
printf(“%d”,sum);}
2、while循環例6.2
#include《stdio.h》voidmain(){
inti=1,sum=0;while(i《=100)
{
sum=sum+i;i++;}
printf(“%d”,sum);}
3、do…while循環#include《stdio.h》voidmain(){
inti=1,sum=0;do{
sum=sum+i;i++;}
while(i《=100);
printf(“%d”,sum);}
4、for(循環變量賦初值;循環條件;循環變量增值)#include《stdio.h》voidmain(){
inti,sum=0;
for(i=1;i《=100;i++)sum=sum+i;printf(“%d”,sum);}
表達式省略,注意,表達式后分號不能省略;
5、break語句不能用于循環語句和switch語句之外的任何其他語句;
continue語句和break語句的區別是:continue只結束本次循環,break則終止整個循環過程
-
C語言
+關注
關注
180文章
7598瀏覽量
136172
發布評論請先 登錄
相關推薦
評論