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