版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、校園網(wǎng)計算機二級C語言培訓教案1 / 54第一章 C語言的基礎(chǔ)知識教學課時:本章考點:考點考核幾率分值C語言的概述20%12標識符、常量和變量100%27算術(shù)運算符及算術(shù)表達式(難點)80%25賦值運算符及賦值表達式80%25自加自減運算、逗號表達式(難點)100%24位運算(難點)80%12教學內(nèi)容一、對C語言的初步認識通過講解以下這個簡單的C程序例子,讓學生對C程序有個大致了解。 main() int a, b , c ; a=10; b=20; c=a+b; printf("%d" , c); 注:(1)C程序中有且僅有一個main函數(shù),程序從main函數(shù)開始執(zhí)行,并
2、且在main函數(shù)中結(jié)束。(2)用“ ”括起來的部分稱為“函數(shù)體”,“”和“”必須成對出現(xiàn),表示開始和結(jié)束。(3)main()函數(shù)的格式: main() 函數(shù)體 (4)變量先定義,后使用。(5)printf為C語言的屏幕輸出函數(shù),注意寫法。(6)書寫程序時應遵循的規(guī)則:語句中的不同單詞至少且必須加一個空格以示間隔,若已有明顯的間隔符,也可不再加空格來間隔;最好一個語句占一行。二、標識符1、標識符命名規(guī)則(1)只能包含字母、數(shù)字和下劃線(2)第一個字符必須是字母或下劃線(3)C語言是大小寫敏感的,如grade和Grade是兩個不同的標識符。2、標識符分類(1)關(guān)鍵字:已經(jīng)事先定義好了,程序遠不能再
3、將它們另做它用。參看教材附錄二,記住常用的關(guān)鍵字(如int、if、do、break、case、char等)。(2)預定義標識符:在C語言系統(tǒng)中已經(jīng)使用了的標識符(如printf、scanf、define、include等)。預定義標識符可用作用戶標識符。(3)用戶標識符:根據(jù)用戶需要定義的標識符。用戶標識符不能是關(guān)鍵字。注:標識符要求學生必須掌握,可以參考P11的習題進行講解。三、常量與變量1、常量在程序的運行過程中,其值不發(fā)生改變的量。2、常量分類(1)直接常量直接常量又包括整型常量(如12、-3、0)、實型常量(如4.6、-1.23、1.2E+3)和字符常量(如'A'、
4、39;6')。(2)符號常量符號常量在使用之前必須先定義,其一般形式為: #define 符號常量標識符 常量值 通過以下兩個實現(xiàn)功能相同(求圓面積)的程序,給學生解釋使用與不使用符號常量兩者的區(qū)別。程序1:程序2: #define R 5main() #define PI 3.14159 main() float area; int r; float area; r=5; area=PI*R*R; area=3.14159*r*r; printf("%f", area); printf("%f", area); 注:習慣上符號常量的標識符用大寫
5、字母。符號常量的值在其作用域內(nèi)不能被改變。3、變量在程序的運行過程中,其值可以改變的量。4、變量的定義變量定義的一般形式為: 類型說明符 變量名;注:變量名是合法的標識符,但不可以是關(guān)鍵字;允許在一個類型說明符后,定義多個相同類型的變量,各變量名之間用逗號間隔,最后一個變量名之后必須以“;”號結(jié)尾;一般變量的定義放在函數(shù)體的開頭部分??梢酝ㄟ^以下例子的講解,使學生進一步掌握變量的定義與使用。 main() int a, b, c; a=15; b=20; c=b-a; printf("%d" , c); 四、數(shù)制轉(zhuǎn)換1、十進制 二、八、十六進制轉(zhuǎn)換方法:將十進制數(shù)除以基數(shù)(
6、二進制基數(shù)為2、八進制基數(shù)為8、十六進制基數(shù)為16),并記錄余數(shù),若商不為0,則繼續(xù)用商除以基數(shù),并記錄余數(shù),直到商為0,余數(shù)倒排列寫下來,即為轉(zhuǎn)換后的二進制或八進制或十六進制。注意:在轉(zhuǎn)換過程中,余數(shù)為0也要記錄下來,很多學生在做題時,忽略了余數(shù)0。通過以下3個例子的講解,使得學生對十進制轉(zhuǎn)換成二、八、十六進制的方法進一步掌握。(36)10=( 100100 )2(39)10=( 47 )8(27)10=( 1B )162 36 08 39 716 27 B2 18 08 4 416 1 12 9 1 0 02 4 02 2 02 1 102、二、八、十六進制 十進制轉(zhuǎn)換方法:按位展開,對應
7、位乘以權(quán)值(權(quán)值即為基數(shù)的n次冪,n從0開始),最后將所有乘積相加,所得結(jié)果即為十進制數(shù)。(10101)2=( )10(67)8=( )10(1A2)16=( )10(1 0 1 0 1)2= 1×24+0×23+1×22+0×21+1×20 =( 21 )10 24 23 22 21 20(67)8=6×81+7×80=( 55 )10 81 80(1 A 2)16=1×162+A×161+2×160=( 418 )10 162 161 1603、八、十六進制 二進制轉(zhuǎn)換方法:八進制(或十六進
8、制)數(shù)的每一位數(shù)字用三位(或四位)二進制數(shù)表示,最后將對應的二進制數(shù)依次寫下來,即為二進制數(shù)。注:八進制數(shù)7、6、5、4、3、2、1、0對應的三位二進制數(shù)分別為111、110、101、100、011、010、001和000。十六進制數(shù)F、E、D、C、B、A、9、8、7、6、5、4、3、2、1、0對應的四位二進制數(shù)分別為1111、1110、1101、1100、1011、1010、1001、1000、0111、0110、0101、0100、0011、0010、0001和0000。(642)8=( )2(3B5C)16=( )2(6 4 2)8=(110100010)2(3 B 5 C)16=( 0
9、011101101011100 )2110 100 010 0011 1011 0101 1100給學生思考時間,如何將二進制轉(zhuǎn)換成八進制、十六進制?五、整數(shù)和實數(shù)1、整型常量分類(1)八進制整型常量以數(shù)字0開頭,其中由數(shù)字07組成,如023、076等。(2)十進制整型常量最常用的常量,由數(shù)字09組成,如15、345、-38等。(3)十六進制整型常量以0x或0X開頭,由數(shù)字09、字母af(或大寫AF)組成,如0x7e、0X4AB等。注:整型常量沒有二進制的。2、整型變量分類(1)短整型變量類型說明符為:signed short int,占用2個字節(jié),取值范圍為-3276832767。(2)基本
10、整型變量類型說明符為:signed int,占用4個字節(jié),取值范圍為-21474836482147483647。(3)長整型變量類型說明符為:signed long int,占用4個字節(jié),取值范圍與基本整型變量相同。(4)無符號短整型變量類型說明符為:unsigned short int,占用2個字節(jié),取值范圍為065535。(5)無符號基本整型變量類型說明符為:unsigned int,占用4個字節(jié),取值范圍為04294967295。(6)無符號長整型變量類型說明符為:unsigned long int,占用4個字節(jié),取值范圍同無符號基本整型變量相同。注:整型變量的各種類型,在編程中一定要注
11、意,不要讓一個整型變量超出該類型的取值范圍,以免發(fā)生溢出錯誤??梢龑W生自己推出每種變量的表示范圍。3、實型常量(1)小數(shù)形式小數(shù)點前或后可以沒有數(shù)字,但不能同時沒有數(shù)字。參考教材P18的例子。(2)指數(shù)形式可以參考口訣:“E前E后必有數(shù),E后必須為整數(shù)”,講解P18指數(shù)形式的例子。4、實型變量實型變量分為:單精度實型(float)和雙精度實型(double)。float占用4個字節(jié),double占用8個字節(jié)。六、整數(shù)在內(nèi)存中的存儲形式對于整型數(shù)據(jù),在內(nèi)存中都是以補碼形式存儲的。用補碼存儲一個有符號整數(shù),最高位(最左邊的一位)存放符號,正數(shù)最高位為0,負數(shù)最高位為1。計算規(guī)則如下:正整數(shù):原碼
12、=反碼=補碼。負整數(shù):反碼=原碼除符號位(符號位為1)以外,數(shù)值部分按位取反補碼=反碼的末位加1注:無符號整數(shù)表示的都是正數(shù),所以其中最高位不再存放符號。在二級C考試中,只需要記住無符號整數(shù)65535表示成有符號整數(shù)-1,無符號整數(shù)65534表示成有符號整數(shù)-2,其他依次類推。以下例子是歷年考試中出現(xiàn)過的,通過講解讓學生掌握無符號數(shù)和有符號數(shù)的區(qū)別。main() unsigned int a; int b=-1; a=b; printf("%u" , a);七、算術(shù)運算和賦值運算1、算術(shù)運算符(、*、/、%)(1)/:5/2=25.0/2=2.55/2.0=2.55.0/2
13、.0=2.5(2)%:5%2=1-5%2=-15%-2=1注:這五種算術(shù)運算符以/和%為主,進行除運算時,注意兩邊都為整數(shù)的情況;“%”運算符左右兩邊必須為整數(shù),余數(shù)的符號同被除數(shù)的符號相同。2、算術(shù)運算符的優(yōu)先級(*、/、%)>(、)3、算術(shù)表達式的計算根據(jù)優(yōu)先級的高低決定計算順序。通過講解以下表達式的計算過程,使學生掌握算術(shù)運算符的優(yōu)先級。4*5+8*2%4+12/5=224、賦值運算符(=、+=、-=、*=、/=)賦值運算的一般格式為:變量=表達式(1)+= a+=6 a=a+6(2)-= a-=6 a=a-6(3)*= a*=6 a=a*6(4)/= a/=6 a=a/6注:任意
14、一種賦值運算符的左側(cè)必須為變量,不能是表達式和常量;整個賦值表達式的值是最左邊變量的值。當賦值運算符左右兩邊類型不一樣,系統(tǒng)會自定進行類型轉(zhuǎn)換。八、強制類型轉(zhuǎn)換強制類型轉(zhuǎn)換的格式為:(類型名)表達式注:在二級C考試中,經(jīng)??紡娭祁愋偷霓D(zhuǎn)換格式,尤其是一對小括號的位置。九、自加、自減運算符1、自加、自減運算符(+、-)自加、自減運算符的運算對象只能是變量,運算符可在變量的前面,也可以在變量的后面,形如i+、+i、i-、-i。2、自加、自減的運算規(guī)則自加:i+ 先用i的值參與運算,再使i的值加1。自加:+i 先使i的值加1,再讓i參與運算。自減:i- 先用i的值參與運算,再使i的值減1。自減:-i
15、 先使i的值減1,再讓i參與運算。注:自加、自減運算是一個難點,可以參考以下例子進行詳細講解,便于學生掌握。main() int m=011,n=11; printf("%d,%dn",+m,n+);/*輸出結(jié)果為:10,11*/ printf("%d,%dn",-m,n-);/*輸出結(jié)果為:9,12*/3、自加、自減運算的注意事項(1)只能和變量結(jié)合,如(i+)+是不合法的。(2)運算結(jié)合方向是從右到左。注:參照教材最后附錄三,為學生講解優(yōu)先級和結(jié)合性,完成對表達式“-x+”的分析。十、逗號運算符及逗號表達式1、逗號運算符(,)在逗號表達式中,逗號運算
16、符具有從左向右的結(jié)合性,最后一個表達式的值是整個逗號表達式的值。2、要和變量多余的情況區(qū)別開(參考P24、例2)注:為學生講解,將P24、例2中的最后一條語句改為“printf("%dn",a1,a2);”的情況,使得學生注意逗號運算與變量多余的區(qū)別,這是二級C考試中,經(jīng)常會出錯的。3、優(yōu)先級別(重點講解P24、例3)在所有運算符中,逗號運算符優(yōu)先級最低。十一、C語言中的語句1、表達式語句表達式;2、空語句;3、復合語句語句1; 語句2;語句n;十二、注釋C語句中有兩種注釋方法:(1)/:只能注釋一行(2)/*/:可注釋多行,在“/*”和“*/”之間的都屬于注釋部分。注:注
17、釋在程序運行時,不執(zhí)行,第二種注釋需要注意,在二級C考試中出現(xiàn)過,參考教材P26,第4題。十三、字符數(shù)據(jù)1、字符常量分類(1)一般字符常量用一對單引號括起來的單個字符,如'A'、'b'、'5'。(2)轉(zhuǎn)義字符常量在一對單引號內(nèi),以“”開頭,后跟一個字符,或13位八進制數(shù)。另外也可以是12位的十六進制數(shù),但必須以“x”開頭(在這里,一定注意x不能是大寫的X)。注:在二級C考試中,轉(zhuǎn)義字符是必考的,可以參考P28,例1。更要注意“”后跟的13位八進制數(shù)不能以數(shù)字0開頭。2、字符變量定義字符變量的格式為:char 變量名;注:字符型數(shù)據(jù)在內(nèi)存中占1個字
18、節(jié)。3、字符型數(shù)據(jù)參與運算采用其ASCII碼進行運算。注:字符型數(shù)據(jù)可以按“%d”和“%c”輸出,注意這兩者區(qū)別。參考P29,第3題。十四、位運算1、位運算符(、<<、>>、&、|)2、位運算注意事項(1)對象只能是整數(shù)或字符型數(shù)據(jù)。(2)進行位運算前,一定要先將數(shù)據(jù)轉(zhuǎn)換成二進制數(shù)。(3)各個位運算符的優(yōu)先級注:字符型數(shù)據(jù)參與位運算時,采用其ASCII碼進行運算。3、位運算的規(guī)則(1):0變1,1變0。(2)<<:a<< i表示a向左移動i位,右補0。(3)>>:a>> i表示a向右移動i位,左補符號位。(4)&a
19、mp;:a&b a、b對應的二進制位,同時為1,則結(jié)果即為1,否則為0。(5)|:a|ba、b對應的二進制位,只要有一個為1,則結(jié)果即為1,否則為0。(6):aba、b對應的二進制位,相同為0,不同為1。注:在沒有舍去數(shù)據(jù)的時候,<<左移一位表示乘以2;>>右移一位表示除以2。兩個相同的數(shù)進行按位異或(),結(jié)果為0。在歷年考試中出現(xiàn)過類似的題,參考P31、例2,學生只要記住該規(guī)則,就可節(jié)省過多的做題時間。其次要掌握“&”和“|”,可以參考P31,例1進行講解。第二章 數(shù)據(jù)輸出與輸入教學課時:本章考點:考點考核幾率分值printf函數(shù)(難點)100%34p
20、utchar函數(shù)60%12scanf函數(shù)(難點)100%34getchar函數(shù)60%12 教學內(nèi)容一、數(shù)據(jù)輸出函數(shù)printf1、printf函數(shù)的一般格式: printf(格式輸出控制,輸出列表)(1)格式輸出控制:需用一對雙引號括起來,雙引號內(nèi)包含“格式說明”和“普通字符”兩部分。(2)輸出列表:需要輸出的數(shù)據(jù),多個數(shù)據(jù)之間用逗號隔開。2、格式說明“格式說明”由“%”和格式字符組成,如%d,%c,更多格式說明請參考P34,表2-1。它的作用是把輸出數(shù)據(jù)轉(zhuǎn)換為指定格式輸出。注:在printf函數(shù)中,若格式說明的個數(shù)少于輸出項的個數(shù),多余的輸出項則忽略不輸出,這是二級C考試中經(jīng)常出現(xiàn)的題目,可
21、參考P34,例2進行講解。3、普通字符普通字符會原樣輸出,轉(zhuǎn)義字符需要輸出對應的字符。注:printf函數(shù)輸出數(shù)據(jù)時,學生做題很容易忽略普通字符的輸出。在二級C考試中,這類題目常出現(xiàn),可以通過以下例子進行講解。 main() int a,b; a=10; b=15; printf("a+b=%d",a+b); 4、數(shù)據(jù)輸出實例(已知int a=66; float b=123.56;)通過以下各輸出語句,講解輸出函數(shù)的各種格式。(1)printf("%d",a);66(2)printf("%3d",a);66(3)printf(&quo
22、t;%-3d",a);66(4)printf("%f",b);123.560000(5)printf("%7.2f",b);123.56(6)printf("%-7.2f",b);123.56(6)printf("%c",a);B(7)printf("%x",a);425、putchar函數(shù)格式為:putchar(c)這里的c只能是字符型變量或字符型常量,即putchar函數(shù)只能輸出字符型數(shù)據(jù)。二、數(shù)據(jù)輸入函數(shù)scanf1、scanf函數(shù)的一般格式:scanf(格式輸入控制,輸入數(shù)據(jù)列
23、表)格式輸入控制與printf函數(shù)的格式輸出控制相同。輸入數(shù)據(jù)列表必須是一個或者是多個合法的地址。注:輸入函數(shù)是一個難點,學生一般掌握的情況不是很好,建議老師講解時放慢速度。2、scanf函數(shù)的注意事項(1)輸入數(shù)值型數(shù)據(jù)時,各數(shù)值間的分隔符可以是:空格、Tab、回車。(2)輸入字符型數(shù)據(jù)時,空格、Tab、回車都會被認為是字符,而不是分隔符。(3)“格式輸入控制”中的普通字符,在輸入數(shù)據(jù)時一定要原樣輸入。(4)跳過輸入數(shù)據(jù),在%和格式字符之間加一個“*”。注:以上注意事項,在二級C考試題目中經(jīng)常出現(xiàn),可以通過以下數(shù)據(jù)輸入實例,進行講解。3、數(shù)據(jù)輸入實例(已知char c1, c2; int c
24、, d , e;)(1)scanf("%d%d%d ",&c, &d, &e);輸入:5<空格>6<空格>7<回車>輸入:5<Tab>6<Tab>7<回車>輸入:5<回車> 6<回車> 7<回車>/以上三種輸入方式,c、d、e的值分別都為5、6、7。(2)scanf(“%d,%d, %d”,&c, &d, &e);輸入:5,6,7<回車>若輸入第一個數(shù)據(jù)后,使用了任意一種分隔符,則只確定輸入了c的值為5,d和
25、e為本身的初始值,若沒有初始值,則為不定值。注:在C語言中,沒有指定值的任何類型的變量,在輸出時為不定值。(3)scanf(“%d%*d%d%d”,&c,&d,&e);輸入:2<空格>3<空格>4<空格>5<回車>/c、d、e的值分別為2、4、5(4)scanf("%c%*c%*c%c",&c1,&c2);輸入:a<空格>b4<回車>/c1、c2的值分別為a、4(5)scanf("%2d%d%d",&c,&d,&e);輸
26、入:123<空格>456<回車>/ c、d、e的值分別為12、3、456(6)scanf("%d",&c,&d,&e);輸入:1<空格>2<空格>3<回車>/ c的值為1、d、e為不定值4、getchar函數(shù)格式為:getchar()該函數(shù)稱為輸入字符型數(shù)據(jù)的函數(shù),只能用來接收一個字符型數(shù)據(jù)。注:在輸入字符型數(shù)據(jù)時,空格、Tab、回車都屬于字符。在二級C考試中經(jīng)常出現(xiàn)該類題目,可以參考以下例子,進行講解。 main() char c1,c2,c3,c4; c1=getchar(); c2=g
27、etchar(); c3=getchar(); c4=getchar(); printf("%c%c%c%c",c1,c2,c3,c4); 運行程序時,輸入:a<空格>b<空格>5<回車>第三章 選擇結(jié)構(gòu)教學課時:本章考點:考點考核幾率分值關(guān)系運算符及關(guān)系表達式60%13邏輯運算符及邏輯表達式60%13if語句嵌套的if語句(難點)100%35條件表達式、switch語句(難點)100%25goto語句100%12 教學內(nèi)容一、關(guān)系運算與邏輯運算1、關(guān)系運算符>、>=、<、<=、=、!=。2、關(guān)系運算符的優(yōu)先級別(
28、>、>=、<、<=)>(=、!=)3、關(guān)系表達式關(guān)系表達式的運算結(jié)果有兩個:0和1,0代表“假”,1代表“真”。4、邏輯運算符&&、|、!5、邏輯運算符的優(yōu)先級別! > && > |6、邏輯表達式邏輯表達式的運算結(jié)果有兩個:0和1,0代表“假”,非0代表“真”。注:“&&”和“|”存在“短路”現(xiàn)象。&&運算符左邊的表達式的值為“假”,則不再計算&&運算符右邊的表達式的值;|運算符左邊的表達式的值為“真”,也不再計算|右邊的表達式的值。可以參考P45,第2題、第6題進行講解。
29、在二級C考試中,經(jīng)??加嬎汴P(guān)系和邏輯表達式的值。在計算的過程中,要注意運算優(yōu)先級:!>算術(shù)運算>關(guān)系運算>&&>|>賦值運算。二、if語句1、簡單的if語句格式為: if(表達式) 語句注:在二級C考試中,經(jīng)??疾楹唵蔚膇f語句。當表達式成立時,默認只有一條執(zhí)行語句,可以通過以下例子進行講解。 main() int a=10,b=50,c=30; if(a>b) a=b,b=c; c=a; printf("%d,%d,%dn",a,b,c); 2、ifelse語句格式為: if(表達式) 語句1 else 語句23、多分支
30、ifelseif格式為: if(表達式1) 語句1 else if(表達式2) 語句2 else if(表達式3) 語句3 else 語句n注:if語句中表達式可以是任意合法的表達式(在二級C考試中,經(jīng)常用賦值語句作為if語句的表達式)。語句如果是復合語句必須用“ ”將語句括起來,否則會出錯,可以參考以下例子進行講解。 main() int a=0,b=0,c=0,d=0; if(a=1) b=1;c=2; else d=3; printf("%d,%d,%d,%dn",a,b,c,d); 4、嵌套if結(jié)構(gòu)中的else和if的配對原則else總是和離它最近的且不帶else的
31、if配對,可以參考以下例子進行講解。 #include <stdio.h> main() int x=1,y=2,z=3; if(x>y) if(y<z) printf("%d ",+z); else printf("%d, ",+y); printf("%dn",x+); 三、條件表達式、switch語句、goto語句1、條件表達式基本格式為: 表達式1?表達式2:表達式3可以通過以下例子進行講解,便于學生對條件表達式的分析和理解。 main() int x, a=2, b=5; x=(a<b)?a:b
32、; printf("%dn", x); 注:在嵌套的條件表達式中,運算從右向左計算,可以參考P56、第5題進行講解。2、switch語句基本格式為: switch(表達式) case 常量表達式1:語句1; break; case 常量表達式2:語句2; break; case 常量表達式n:語句n; break; default:語句n+1; break; switch語句注意事項:(1)switch、case、break、default都是關(guān)鍵字。(2)default語句至多有一個,但位置可以放在任何case之前。(3)表達式的值只能是整型或字符型。注:switch語句
33、中,注意在case的語句塊后加break語句和不加break語句的區(qū)別,在二級C考試中,經(jīng)??疾樵擃愵}。另外,考查default語句的執(zhí)行(只有所有case后的常量表達式都不成立時,才執(zhí)行default后的語句)。可以參考P56、第4題進行重點講解。3、goto語句無條件轉(zhuǎn)向goto語句,格式為:goto 語句標號;第四章 循環(huán)結(jié)構(gòu)教學課時:本章考點:考點考核幾率分值while語句100%23dowhile語句100%23for語句(難點)100%57循環(huán)結(jié)構(gòu)的嵌套(難點)100%46break語句(難點)70%23continue語句(難點)50%23 教學內(nèi)容一、while語句while語
34、句的一般形式為: while(表達式) 循環(huán)體語句 while循環(huán)結(jié)構(gòu)的執(zhí)行過程:先計算表達式(循環(huán)條件)的值,若結(jié)果為“真”(非0),執(zhí)行循環(huán)體語句;然后再次計算表達式的值,重復上述過程,直到表達式的值為“假”(0)時,結(jié)束循環(huán),流程控制轉(zhuǎn)到循環(huán)結(jié)構(gòu)的下一條語句。while循環(huán)結(jié)構(gòu)的注意事項:(1)while循環(huán)結(jié)構(gòu)的特點是“先判斷,后執(zhí)行”。如果表達式的值一開始就為“假”,則循環(huán)體一次也不執(zhí)行。(2)循環(huán)體內(nèi)中,如果包含兩個或兩個以上的語句,必須用花括號括起來,以復合語句的形式出現(xiàn)。(3)循環(huán)體內(nèi)一定要有改變循環(huán)條件的語句,使循環(huán)趨向于結(jié)束,以免形成“死循環(huán)”。注:可以通過P59、例1進行
35、詳細講解,便于學生掌握while循環(huán)結(jié)構(gòu)。二、dowhile語句dowhile語句的形式為: do 循環(huán)體語句 while(表達式);dowhile循環(huán)結(jié)構(gòu)的執(zhí)行過程:先執(zhí)行一次循環(huán)體語句,然后計算表達式(循環(huán)條件)的值。若結(jié)果為“真”(非0),則再次執(zhí)行循環(huán)體,再計算表達式的值,如此重復下去,直到表達式的值為“假”(0)時,循環(huán)結(jié)束,流程控制轉(zhuǎn)到循環(huán)結(jié)構(gòu)的下一條語句。dowhile循環(huán)結(jié)構(gòu)的注意事項:(1)循環(huán)體包含兩個或兩個以上的語句時,必須用花括號括起來,以復合語句形式出現(xiàn)。(2)循環(huán)體內(nèi)一定要有改變循環(huán)條件的語句,使循環(huán)趨向于結(jié)束,以免形成“死循環(huán)”。三、for語句for語句的形式為:
36、 for(表達式1;表達式2;表達式3) 循環(huán)體語句 for循環(huán)結(jié)構(gòu)的執(zhí)行過程:先執(zhí)行表達式1,賦初值;再執(zhí)行表達式2,計算表達式2的值,結(jié)果為“真”(非0),執(zhí)行循環(huán)體語句;循環(huán)體語句執(zhí)行完畢,返回表達式3,讓循環(huán)變量發(fā)生變化,再判斷表達式2的值。如此循環(huán)重復下去,直到表達式2的值為“假”(0)時,循環(huán)結(jié)束,流程控制轉(zhuǎn)到循環(huán)結(jié)構(gòu)的下一條語句。for循環(huán)結(jié)構(gòu)的注意事項:(1)關(guān)鍵字for的三個表達式允許部分或全部省略,但其中的兩個分號(;)不能省略。(2)當省略表達式3時,應該在循環(huán)體有修改循環(huán)變量的值的語句,以保證循環(huán)能夠正常結(jié)束。(3)當表達式2或三個表達式全部省略時,應該在循環(huán)體內(nèi)設置相
37、應的語句來結(jié)束循環(huán),否則程序始終認為判斷條件成立,循環(huán)將無終止地執(zhí)行下去,即形成死循環(huán)。(4)循環(huán)體包含兩個或兩個以上的語句時,必須用花括號括起來,以復合語句形式出現(xiàn)。注:可以參考P59、例1,為學生講解以上三種循環(huán)結(jié)構(gòu)以及它們之間的關(guān)系。四、循環(huán)結(jié)構(gòu)的嵌套任意一種循環(huán)結(jié)構(gòu)中又套有循環(huán)結(jié)構(gòu),稱為循環(huán)的嵌套。循環(huán)結(jié)構(gòu)的嵌套是一個難點,建議通過以下求階乘的和(s=1!+2!+3!+n!,n由鍵盤輸入),重點來講解。另外,可參考P69,第3題進行講解,便于學生會分析嵌套程序的執(zhí)行。 main() int i,j,n; long sum,p; /*定義變量sum、p為長整型變量*/ scanf(&qu
38、ot;%d",&n); for(sum=0,i=1;i<=n;i+) p=1; j=1; do p=p*j; /*求i的階乘*/ while(+j<=i); sum+=p; /*把i的階乘累加到sum中*/ printf("nsum=%ldn",sum); 五、break語句和continue語句1、break語句break語句的一般形式: break;該語句的功能是:使執(zhí)行從包含它的最內(nèi)層循環(huán)或switch語句中跳出,轉(zhuǎn)到switch結(jié)構(gòu)或該循環(huán)結(jié)構(gòu)外的下一條語句執(zhí)行。這將導致包含它的最內(nèi)層循環(huán)(while、for、dowhile)或swit
39、ch語句的終止。使用break語句的注意事項:(1)break語句只能用于switch結(jié)構(gòu)或循環(huán)結(jié)構(gòu)中。在循環(huán)結(jié)構(gòu)中應用時,通常與if語句配合使用。(2)在嵌套的循環(huán)結(jié)構(gòu)中使用時,break語句只能跳出(或終止)包含它的最內(nèi)層循環(huán)。而不能同時跳出(或終止)多層循環(huán)。以下程序涉及在嵌套結(jié)構(gòu)中,使用了break語句,建議重點講解。 #include <stdio.h> main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+; b+;
40、break; case 3: a+; b+; printf("a=%d, b=%dn", a, b);/*輸出結(jié)果為:a=2, b=1*/ 2、continue語句continue語句的一般形式: continue;該語句的功能是:結(jié)束本次循環(huán),使得包含它的循環(huán)(while、dowhile、for)開始下一次循環(huán)。使用continue語句的注意事項:(1)continue語句只能用于循環(huán)結(jié)構(gòu)中,通常也要有if語句配合使用。(2)continue語句只能結(jié)束本次循環(huán),而不是終止整個循環(huán)的執(zhí)行。(3)在循環(huán)結(jié)構(gòu)中,一旦continue語句執(zhí)行,即使該語句后有其他語句也不再執(zhí)行,
41、而是跳轉(zhuǎn)到循環(huán)條件,再次判斷條件是否成立。注:continue語句是個難點,在二級C考試中經(jīng)常出現(xiàn)??梢詤⒖糚69、第1題和第2題進行詳細講解。第五章 函數(shù)教學課時:本章考點:考點考核幾率分值函數(shù)的定義與返回值80%13庫函數(shù)60%12函數(shù)調(diào)用及形參與實參之間的數(shù)據(jù)傳遞(難點)100%24函數(shù)的聲明60%01教學內(nèi)容:一、函數(shù)的定義1、函數(shù)定義功能單一且獨立的程序模塊,用于完成特定的任務并根據(jù)需要返回一個確定的值。2、函數(shù)定義的格式 返回值類型函數(shù)名(類型1形參名1 , 類型2 形參名2) 說明部分 語句部分 3、注意事項(1)函數(shù)返回值類型名缺省時,返回值類型默認為int,無返回值時類型是v
42、oid。(2)函數(shù)名和形參名是用戶標識符,后面的括號“( )”不能省。(3)一對花括號中的內(nèi)容為函數(shù)體,包含兩部分:說明部分和語句部分。(4)函數(shù)不能嵌套定義。二、函數(shù)返回值1、return語句基本格式為:return (表達式);2、使用return語句的注意事項(1)表達式可以不加括號。(2)表達式的類型應和函數(shù)定義返回值的類型一致。(3)如果有多個return語句,則只有第一個起作用,因為一旦遇到return語句就會結(jié)束當前函數(shù)的運行。注:此處可參考教材P76的求矩形面積的例子、例1以及下面的例子來講解各個函數(shù)的定義。 int max(int a,int b) int c; if(a&g
43、t;b) c=a; else c=b; return c; 三、庫函數(shù)1、include命令行一般格式為:#include <頭文件名.h> 或 #include "頭文件名.h"2、注意事項(1)include命令行必須以“#”符號開頭。(2)系統(tǒng)提供了的頭文件以.h作為文件的后綴。(3)include命令行是C語言的預處理命令,所以不用在語句的結(jié)尾加“;”。例如,在程序中要引用數(shù)學函數(shù),則在程序開頭要加上:#include "math.h"。3、庫函數(shù)的調(diào)用形式 函數(shù)名(實參);庫函數(shù)的調(diào)用可以以兩種形式出現(xiàn): (1)在表達式中調(diào)用,如y
44、=cos(x);。(2)作為獨立的語句完成某種操作,如:printf("I am a teacher");.此處可引入下面的例子來講解庫函數(shù)的應用。例如,若有代數(shù)式(其中e僅代表自然對數(shù)的底數(shù),不是變量),則表示該代數(shù)式的C語言表達式是:sqrt(fabs(pow(n,x)+exp(x)。解析:在C語言中,計算平方根應使用sqrt()函數(shù),計算n的x次方應使用pow()函數(shù)(第1個參數(shù)是n,第2個參數(shù)是x);計算自然數(shù)e的x次方應使用exp()函數(shù),計算絕對值使用fabs()函數(shù)。本題的代數(shù)式首先應計算nx和ex,根據(jù)前面介紹應該分別為pow(n,x)和exp(x),然后計
45、算它們的和pow(n,x)+exp(x),接著是這個和的絕對值fabs(pow(n,x)+exp(x),最后對這個絕對值開平方,所以最終結(jié)果應是sqrt(fabs(pow(n,x)+exp(x)。注:帶領(lǐng)學生完成教材P77的課后習題。四、函數(shù)調(diào)用1、函數(shù)調(diào)用的形式函數(shù)名 (實參);2、函數(shù)調(diào)用注意事項(1)不寫返回值類型和實參類型。(2)實參可以是常量、變量、表達式、函數(shù)調(diào)用。(3)參數(shù)傳遞方向:實參形參(單向)。(4)若函數(shù)返回值類型是void,則函數(shù)調(diào)用不能出現(xiàn)在表達式中,不能賦值給變量。注:函數(shù)調(diào)用以及參數(shù)的傳遞,初學者很難理解,所以多舉一些例子詳細講解函數(shù)調(diào)用和參數(shù)傳遞的過程。在此可以
46、參考教材P78、例1、例2和P79、例3來詳細講解函數(shù)的調(diào)用。通過下面的程序(即P82、例1)講解函數(shù)參數(shù)的傳遞,注意講解形參變化而實參不變。 void swap(int x,int y) int t; t=x;x=y;y=t; printf("%d%d",x,y); main() int a=3,b=4; swap(a,b); printf("%d%d",a,b); 五、函數(shù)的聲明1、函數(shù)聲明的形式返回值類型函數(shù)名(類型1形參名1, 類型2形參名2,);即在函數(shù)的首部加上分號。2、函數(shù)聲明的注意事項(1)可省略形參名,不可省略形參的類型。(2)聲明的位
47、置:在函數(shù)的內(nèi)部,該函數(shù)屬于私有函數(shù);如果在所有函數(shù)的外部,則屬于公有函數(shù)。(3)聲明時的參數(shù)名可與定義時的形參名相同,也可不同。 3、函數(shù)的兩種使用方式(1)先定義,后調(diào)用。(2)先聲明,后調(diào)用,最后定義。此處可引用P79的求矩形面積的程序和P80、例4來講解函數(shù)聲明的位置和使用形式。注:帶領(lǐng)學生完成本章的課后習題。第六章 指針教學課時:本章考點:考點考核幾率分值變量的地址和指針(難點)60%24指針變量的定義、賦值和運算等操作(難點)100%48函數(shù)之間地址值的傳遞(難點)70%25教學內(nèi)容:一、指針的定義1、變量p存放變量a的地址,即變量p指向變量a,p是一種特殊類型的變量,稱為指針變量
48、。2、指針變量的定義形式(1)一級指針變量的定義:類型名* 指針變量名1;(2)二級指針變量的定義:類型名* 指針變量名1;二級指針變量即指向指針的指針變量。注:指針的概念是一個難點,講解時以教材P84中的例子和P85中的圖例法來講解,這樣學生比較容易理解。并且?guī)ьI(lǐng)學生完成P87的課后習題,以使學生進一步掌握和理解指針的概念以及定義方法。二、指針變量賦值1、通過“&”運算符給指針變量賦初值 int a,*p; p=&a;注釋:單目運算符“&”只能和變量結(jié)合,求變量的地址,不能放在表達式的前面。2、給指針變量賦空值 int *p;p=NULL;注釋:不能通過一個空指針訪問一個存儲單元。3、通過其他指針變量獲得地址值 int *p,*q,a; p=&a; q=p;這樣p和q則指向同一個變量。三、間接訪問運算符(引用存儲單元)1、間接訪問運算符:*2、含義:*p表示訪問p所指向變量的值。(p為指針變量)3、間接訪問運算符和定義時指針變量中“*”的區(qū)別 int a,*p; a=3;p=&a; priintf("%d",*p);注:要講解清楚,第一行中的*p和第三行中的*p的區(qū)別。此處可參考教材P89、例1。四、指針
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞務派遣工作雙方協(xié)議書七篇
- 2023勞務派遣工作協(xié)議書七篇
- 魚鱗病病因介紹
- 中小學結(jié)核病防治知識
- 【中職專用】中職對口高考-機電與機制類專業(yè)-核心課-模擬試卷2(河南適用)(答案版)
- 重慶2020-2024年中考英語5年真題回-學生版-專題03 短文填空
- 山東省青島市即墨區(qū)2023-2024學年八年級上學期期末英語試題(原卷版)-A4
- 黃金卷04(新課標卷)(新疆、西藏專用)(解析版)-A4
- 2023年新型高效飼料及添加劑項目融資計劃書
- 2023年硝酸鉀項目籌資方案
- 2025年重慶貨運從業(yè)資格證考試題及答案詳解
- 屋面板的拆除與更換施工方案
- 生命不是游戲拒絕死亡挑戰(zhàn)主題班會
- 本地化部署合同
- 2024年云南省中考歷史試卷
- 油氣管線安全保護方案
- 國家職業(yè)技術(shù)技能標準 4-07-05-04 消防設施操作員 人社廳發(fā)201963號
- 新教科版小學1-6年級科學需做實驗目錄
- 拒絕躺平 停止擺爛-學生心理健康主題班會(課件)
- 現(xiàn)代教育技術(shù)智慧樹知到期末考試答案章節(jié)答案2024年濟寧學院
- 現(xiàn)代通信技術(shù)導論智慧樹知到期末考試答案章節(jié)答案2024年北京科技大學
評論
0/150
提交評論