![大學(xué)計(jì)算機(jī)二級考試復(fù)習(xí)資料.ppt_第1頁](http://file.renrendoc.com/FileRoot1/2019-1/13/40cd11c3-034a-4e3a-8443-fb36b619047b/40cd11c3-034a-4e3a-8443-fb36b619047b1.gif)
![大學(xué)計(jì)算機(jī)二級考試復(fù)習(xí)資料.ppt_第2頁](http://file.renrendoc.com/FileRoot1/2019-1/13/40cd11c3-034a-4e3a-8443-fb36b619047b/40cd11c3-034a-4e3a-8443-fb36b619047b2.gif)
![大學(xué)計(jì)算機(jī)二級考試復(fù)習(xí)資料.ppt_第3頁](http://file.renrendoc.com/FileRoot1/2019-1/13/40cd11c3-034a-4e3a-8443-fb36b619047b/40cd11c3-034a-4e3a-8443-fb36b619047b3.gif)
![大學(xué)計(jì)算機(jī)二級考試復(fù)習(xí)資料.ppt_第4頁](http://file.renrendoc.com/FileRoot1/2019-1/13/40cd11c3-034a-4e3a-8443-fb36b619047b/40cd11c3-034a-4e3a-8443-fb36b619047b4.gif)
![大學(xué)計(jì)算機(jī)二級考試復(fù)習(xí)資料.ppt_第5頁](http://file.renrendoc.com/FileRoot1/2019-1/13/40cd11c3-034a-4e3a-8443-fb36b619047b/40cd11c3-034a-4e3a-8443-fb36b619047b5.gif)
已閱讀5頁,還剩74頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
全國計(jì)算機(jī)二級C語言程序設(shè)計(jì),考點(diǎn)復(fù)習(xí),全國計(jì)算機(jī)二級考試 考試方式,1.筆試:90分鐘,滿分100分,其中含公共基礎(chǔ)知識部分的30分(選擇10題20分,填空5題10分)。 2.上機(jī):90分鐘,滿分100分 3.上機(jī)操作包括: (1)填空。(30分,3處填空) (2)改錯(cuò)。(30分,23處改錯(cuò)) (3)編程。(40分,一個(gè)自定義函數(shù)體),第1章 C語言程序設(shè)計(jì)基本概念,一、C語言程序的結(jié)構(gòu) 1.程序的構(gòu)成,main函數(shù)和其他函數(shù)。 2.頭文件,數(shù)據(jù)說明,函數(shù)的開始和結(jié)束標(biāo)志以及程序中的注釋。 3.源程序的書寫格式。 4.C語言的風(fēng)格。,大綱要求重點(diǎn):,考點(diǎn)點(diǎn)撥:重點(diǎn)記憶程序的構(gòu)成和書寫 程序是可以連續(xù)執(zhí)行的指令的集合。目前當(dāng)用的程序程序語言主要是“高級語言”,如Visual Basic、C+、Java和C。其中C語言具有高級語言和低級語言的雙重優(yōu)點(diǎn)。,C語言程序由函數(shù)構(gòu)成。一個(gè)C語言源程序有且僅有一個(gè)main函數(shù)和零個(gè)或多個(gè)其他函數(shù)。無論main函數(shù)的位置如何,它是程序執(zhí)行的入口和出口中。 C語言程序書寫自由,一行內(nèi)可以寫一條或多條語句,一條語句也可以寫在多行。C語言的注釋有兩種形式,分別為行尾注釋“/”和塊式注釋“/* */”。注釋只是給人看,對編譯和運(yùn)行不起作用。,真題舉例: (11) 以下敘述正確的是( ) (2010.3) A) C語言程序是由過程和函數(shù)組成的 B) C語言函數(shù)可以嵌套調(diào)用,例如:fun(fun(x) C) C語言函數(shù)不可以單獨(dú)編譯 D) C語言中除了main函數(shù),其他函數(shù)不可以作為單獨(dú)文件形式存在,B,考點(diǎn)點(diǎn)撥:C程序的編譯連接和后綴 C源程序文件(后綴為.c)必須翻譯為二進(jìn)制目標(biāo)文件(后綴為.obj),此過程稱為“編譯”,負(fù)責(zé)此工作的程序稱為“編譯器”或“編譯程序”;然后由連接程序把該二進(jìn)制文件與C語言的各種庫函數(shù)連接起來,生成可執(zhí)行文件(后綴為.exe),此過程稱為“連接”;最后執(zhí)行該可執(zhí)行文件,實(shí)現(xiàn)程序功能。,真題舉例: (13)以下敘述中錯(cuò)誤的是( ) (2010.9) A)C程序在運(yùn)行過程中所有計(jì)算都以二進(jìn)制方式進(jìn)行 B)C程序在運(yùn)行過程中所有計(jì)算都以十進(jìn)制方式進(jìn)行 C)所有C程序都需要編譯鏈接無誤后才能運(yùn)行 D)C程序中整型變量只能存放整數(shù),實(shí)型變量只能存放浮點(diǎn)數(shù),B,考點(diǎn)點(diǎn)撥:算法的五個(gè)特性 算法是為解決某個(gè)特定問題而采取的確定且有限的步驟。算法的五個(gè)特性是:有窮性、確定性、有效性、零個(gè)或多個(gè)輸入、一個(gè)或多個(gè)輸出。算法的表示方法有自然語言、流程圖、偽代碼和程序設(shè)計(jì)語言。,真題舉例: 13、以下關(guān)于算法敘述錯(cuò)誤的是( )。(2012.3) A算法可以用偽代碼、流程圖等多種形式來描述 B一個(gè)正確的算法必須有輸入 C一個(gè)正確的算法必須有輸出 D用流程圖可以描述的算法可以用任何一種計(jì)算機(jī)高級語言編寫成程序代碼,B,考點(diǎn)點(diǎn)撥:記住程序設(shè)計(jì)的任務(wù) 程序設(shè)計(jì)指設(shè)計(jì)、編程、調(diào)試程序的方法和過程。程序設(shè)計(jì)通常分為問題建模、算法設(shè)計(jì)、編寫代碼和編譯調(diào)試四個(gè)階段。,真題舉例: 11、針對簡單程序設(shè)計(jì),以下敘述的實(shí)施步驟正確的是( )。(2012.3) A確定算法和數(shù)據(jù)結(jié)構(gòu)、編碼、調(diào)試、整理文檔 B編碼、確定算法和數(shù)據(jù)結(jié)構(gòu)、調(diào)試、整理文檔 C整理文檔、確定算法和數(shù)據(jù)結(jié)構(gòu)、編碼、調(diào)試 D確定算法和數(shù)據(jù)結(jié)構(gòu)、調(diào)試、編碼、整理文檔,A,考點(diǎn)點(diǎn)撥:記憶結(jié)構(gòu)化程序的三種結(jié)構(gòu)組成 結(jié)構(gòu)化程序設(shè)計(jì)通常采用自頂向下、逐步細(xì)化、模塊化設(shè)計(jì)、結(jié)構(gòu)化編碼的方法。結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成:順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。,真題舉例: (11)以下關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)的敘述中正確的是 ( )。(2010.9) A)一個(gè)結(jié)構(gòu)化程序必須同時(shí)由順序、分支、循環(huán)三種結(jié)構(gòu)組成 B)結(jié)構(gòu)化程序使用goto語句會(huì)很便捷 C)在C語言中,程序的模塊化是利用函數(shù)實(shí)現(xiàn)的 D)由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問題,C,第2章 數(shù)據(jù)類型、運(yùn)算符和表達(dá)式,二、數(shù)據(jù)類型及其運(yùn)算 1.C的數(shù)據(jù)類型(基本類型,構(gòu)造類型,指針類型,無值類型)及其定義方法。 2.C運(yùn)算符的種類、運(yùn)算優(yōu)先級和結(jié)合性。 3.不同類型數(shù)據(jù)間的轉(zhuǎn)換與運(yùn)算。 4.C表達(dá)式類型(賦值表達(dá)式,算術(shù)表達(dá)式,關(guān)系表達(dá)式,邏輯表達(dá)式,條件表達(dá)式,逗號表達(dá)式)和求值規(guī)則。,大綱要求重點(diǎn):,考點(diǎn)點(diǎn)撥:標(biāo)識符的命名規(guī)則 標(biāo)識符的命名規(guī)則有:(1)由字母、數(shù)字、下劃線三類字符組成;(2)必須以字母或下劃線打頭;(3)區(qū)分大小寫;(4)不能和關(guān)鍵字相同;(5)盡量見名知義,真題舉例: (13) 以下C語言用戶標(biāo)示符中,不合法的是( )(2010.3) A)_1 B)AaBc C)a_b D)ab,D,考點(diǎn)點(diǎn)撥:記十進(jìn)制、八進(jìn)制、十六進(jìn)制整型常量的表示 C語言中整型常量的表示方法有:十進(jìn)制(以非零數(shù)字打頭)、八進(jìn)制(以數(shù)字0打頭后跟八進(jìn)制數(shù)符)、十六進(jìn)制(以0X或0x打頭后跟十六進(jìn)制數(shù)符)。 C語言中整型數(shù)據(jù)有三大類:短整型(short,2B) 、基本整型(int,4B) 、長整型(long,4B),此為有符號類型,可表示正、負(fù)數(shù);在三個(gè)關(guān)鍵字前加上unsigned 則為無符號類型,所占字節(jié)數(shù)不變,但只能表示正數(shù)。 整型數(shù)據(jù)在內(nèi)存中以二進(jìn)制補(bǔ)碼存放,若超出其表示范圍,會(huì)產(chǎn)生溢出。,考點(diǎn)點(diǎn)撥:記實(shí)型常量的表示 實(shí)型常量的表示方法有兩種:小數(shù)形式和指數(shù)形式。 實(shí)型數(shù)據(jù)主要使用兩種類型:單精度(float , 4B)、雙精度(double, 8B ),注意不同類型的有效數(shù)字位數(shù)區(qū)別。 實(shí)型數(shù)據(jù)在內(nèi)存中以指數(shù)形式存放,實(shí)型常量默認(rèn)為double型,可以在常量后加f或F將其按float型處理。,考點(diǎn)點(diǎn)撥:記字符常量及轉(zhuǎn)義字符常量的定義 普通字符常量是用一對單引號括起來的一個(gè)字符表示的常量。字符常量的值是該字符的ASCII碼值,如A的值是65,0字符的值是48等,在內(nèi)存中占1B空間。 轉(zhuǎn)義字符常量指在單引號內(nèi)由反斜線打頭,后跟特定字符表示的常量。需要記的轉(zhuǎn)義字符有三類: (1)控制字符:n、 r、b、 t (2)特殊字符: 、 、” (3)轉(zhuǎn)義進(jìn)制: bbb(13位八進(jìn)制數(shù)符)、 xhh(12位十六進(jìn)制數(shù)符) 字符串常量是用一對雙引號括起來的零個(gè)或多個(gè)字符序列,其中包含的字符可以是普通字符或轉(zhuǎn)義字符,系統(tǒng)自動(dòng)在字符串末尾增加一個(gè)不可顯示字符0(空字符)作為字符串結(jié)束標(biāo)記,字符串所占的內(nèi)存空間為所含字符數(shù)+1。,真題舉例: (15)以下選項(xiàng)中能表示合法常量的是( )(2010.9) A )整數(shù):1,200 B)實(shí)數(shù):1.5E2.0 C )字符斜杠: D)字符串:“007” (13)以下選項(xiàng)中不能用作C程序合法常量的是( )(2011.3) A)1,234 B)123 C)123 D)“x7G“ (14)以下選項(xiàng)中可用作C程序合法實(shí)數(shù)的是A( )(2011.3) A).1e0 B)3.0e0.2 C)E9 D)9.12E,D,A,A,考點(diǎn)點(diǎn)撥:記字符數(shù)據(jù)的運(yùn)算方法 C語言規(guī)定,將所有的字符型數(shù)據(jù)都作為整型來處理。因此,字符常量和轉(zhuǎn)義字符常量可以參與任何整數(shù)運(yùn)算。如A+32得a,5-0得5。??加⑽淖帜复?、小寫之間的轉(zhuǎn)換,數(shù)字字符與整數(shù)值之間的相互轉(zhuǎn)換。字符數(shù)據(jù)還可以進(jìn)行關(guān)系運(yùn)算和邏輯運(yùn)算。,真題舉例: (21)以下不能輸出字符A的語句是(注:字符A的ASCIl碼值為65,字符a的ASCIl碼值為97)( )(2011.9) A)printf(“cn“,a-32); B)printf(“dn“,A); C)printf(“cn”,65); D)print-f(“cn“,B-1);,B,考點(diǎn)點(diǎn)撥:記字符變量的定義及賦值 C語言中用關(guān)鍵字char定義字符型變量,在內(nèi)存中分配1B空間,用來存放字符常量的ASCII碼值。該值可以作為整型數(shù)據(jù)來參與運(yùn)算。,真題舉例: (22)有以下定義語句,編譯時(shí)會(huì)出現(xiàn)編譯錯(cuò)誤的是( )。(2009.9) A) char a=a; B) char a=n; C) char a=aa; D) char a=x2d;,C,考點(diǎn)點(diǎn)撥:運(yùn)算符的分類、常用運(yùn)算符的優(yōu)先級和結(jié)合性 運(yùn)算符按功能分有13類(P56),按所需操作數(shù)目分可分為:單目運(yùn)算符(右結(jié)合,優(yōu)先級2)、雙目運(yùn)算符(除賦值為右結(jié)合外,其余為左結(jié)合)、三目運(yùn)算符(條件運(yùn)算符,右結(jié)合)。各運(yùn)算符的優(yōu)先級和結(jié)合性見教材P378。,考點(diǎn)點(diǎn)撥:系統(tǒng)自動(dòng)轉(zhuǎn)換成同一類型的方向和結(jié)果的類型 不同數(shù)據(jù)類型混合運(yùn)算時(shí)系統(tǒng)自動(dòng)轉(zhuǎn)換的規(guī)則見下圖,其中水平箭頭為必然轉(zhuǎn)換,垂直箭頭為從低向高方向轉(zhuǎn)換。運(yùn)算結(jié)果類型為轉(zhuǎn)換后的類型。,真題舉例: (14)若有定義語句:int a=10;double b=3.14;,則表達(dá)式A+a+b值的類型是( )。(2011.9) A)char B)int C)double D)float,C,考點(diǎn)點(diǎn)撥:重點(diǎn)記算術(shù)運(yùn)算符各自的運(yùn)算特點(diǎn) 基本算術(shù)運(yùn)算符+、-、*、/、%均為雙目運(yùn)算符。其中%(求余數(shù))運(yùn)算符要求兩側(cè)的操作數(shù)必須為整型;/(除)運(yùn)算符兩側(cè)若均為整數(shù),則結(jié)果為除以后的整數(shù)部分,否則為實(shí)型。,真題舉例: (14)有以下定義:int a; long b; double x,y;則以下選項(xiàng)中正確的表達(dá)式是( )。(2010.9) A) a%(int)(x-y) B)a=x!=y; C)(a*y)%b D)y=x+y=x,A,考點(diǎn)點(diǎn)撥:重點(diǎn)記賦值表達(dá)式及復(fù)合賦值表達(dá)式的特點(diǎn) 賦值表達(dá)式左側(cè)必須是簡單變量,不能是常量或表達(dá)式(包括賦值表達(dá)式),右邊可以是常量、變量或表達(dá)式(包括賦值表達(dá)式)。賦值運(yùn)算符及復(fù)合賦值運(yùn)算符右結(jié)合,優(yōu)先級倒數(shù)第二級。當(dāng)賦值表達(dá)式右邊表達(dá)式值的類型與左邊變量的類型不一致時(shí),系統(tǒng)會(huì)自動(dòng)將該值轉(zhuǎn)換成左邊變量的類型后再賦值。轉(zhuǎn)換規(guī)則則教材P62。,真題舉例: (16)表達(dá)式a+=a-=a=9的值是( )(2010.9) A)9 B)_9 C)18 D)0 (15 ) 若有定義語句:int a=3,b=2,c=1;,以下選項(xiàng)中錯(cuò)誤的賦值表達(dá)式是( )(2011.3) A)a=(b=4)=3; B)a=b=c+1; C)a=(b=4)+c; D)a=1+(b=c=4); (15) 若有定義語句:int x=12,y=8,z;,在其后執(zhí)行語句z=0.9+x/y;,則z的值為( )。(2011.9) A)1.9 B)1 C)2 D)2.4,D,A,B,考點(diǎn)點(diǎn)撥:理解前置運(yùn)算和后置運(yùn)算的不同意義 自增(+) 、自減(-)均為單目運(yùn)算符,右結(jié)合,操作數(shù)可以是整型變量或?qū)嵭妥兞?,但不能是常量或表達(dá)式。前置運(yùn)算(如+i、-)是先增減后運(yùn)算,后置運(yùn)算(如i+、i-)是先運(yùn)算后增減。,真題舉例: (18)有以下程序main() int x=011; printf(“%dn“,+x); 程序運(yùn)行后的輸出結(jié)果是( )(2011.3) A)12 B)11 C)10 D)9,C,考點(diǎn)點(diǎn)撥:記逗號運(yùn)算符的優(yōu)先級、結(jié)合性及求值規(guī)則 逗號表達(dá)式是用逗號運(yùn)算符(,)將兩個(gè)或兩個(gè)以上的表達(dá)式順序連接起來的表達(dá)式,左結(jié)合,逗號運(yùn)算符優(yōu)先級最低。從左到右順序求解各表達(dá)式,也稱為順序求值表達(dá)式,結(jié)果為最右邊表達(dá)式的值。注意區(qū)分逗號分隔符和逗號運(yùn)算符。,真題舉例: (6)執(zhí)行以下程序后的輸出結(jié)果是 。(2007.4) main() int a=10; a=(3*5,a+4); printf(“a=%dn”,a); ,a=14,考點(diǎn)點(diǎn)撥:理解強(qiáng)制類型轉(zhuǎn)換、自動(dòng)類型轉(zhuǎn)換 (1)強(qiáng)制類型轉(zhuǎn)換。格式為:(類型) (表達(dá)式),將表達(dá)式值的類型強(qiáng)制轉(zhuǎn)換成指定的類型,對表達(dá)式中原有變量的類型無影響。 (2)自動(dòng)類型轉(zhuǎn)換。 a.賦值運(yùn)算中的自動(dòng)轉(zhuǎn)換。 b.混合運(yùn)算中的自動(dòng)轉(zhuǎn)換。,真題舉例: (14)表達(dá)式:(int)(double)9/2)-(9)%2的值是 ( )。(2009.9) A)0 B)3 C)4 D)5,B,考點(diǎn)點(diǎn)撥:掌握關(guān)系運(yùn)算符及表達(dá)式的求值 關(guān)系運(yùn)算符有: = = = !=。( 區(qū)分關(guān)系等(=)和賦值等(=) ) 關(guān)系表達(dá)式用于判斷兩個(gè)對象之間的關(guān)系,其操作數(shù)可以是C語言中任何合法的表達(dá)式。關(guān)系表達(dá)式的值為邏輯值,關(guān)系成立為真,用整數(shù)1表示;關(guān)系不成立為假,用整數(shù)0表示。該值可以繼續(xù)參加其他表達(dá)式運(yùn)算。 注意:關(guān)系表達(dá)式不能直接判斷三個(gè)以上對象的關(guān)系。,真題舉例: (8)在C語言中,當(dāng)表達(dá)式值為0時(shí)表示邏輯值“假”,當(dāng)表達(dá)式值為 【8】 時(shí)表示邏輯值“真”。(2010.9),非0,考點(diǎn)點(diǎn)撥:掌握邏輯運(yùn)算符及表達(dá)式的求值 邏輯運(yùn)算符有:! & | (按優(yōu)先級從高到低排列)。 邏輯運(yùn)算符常結(jié)合關(guān)系表達(dá)式判斷多個(gè)對象之間的復(fù)雜關(guān)系。邏輯表達(dá)式的值為邏輯值。參與邏輯運(yùn)算的操作數(shù)可以是任意合法的常量、變量或表達(dá)式,均以“非零為真,零為假”判斷其邏輯值。注意邏輯表達(dá)式求值時(shí)的“短路特性”。,真題舉例: (17)若a是數(shù)值類型,則邏輯表達(dá)式(a=1)|(a!=1)的值是( )。(2010.3) A)1 B)0 C)2 D)不知道a的值,不能確定 (17)若有定義語句:int k1=10,k2=20;執(zhí)行表達(dá)式(k1=k1k2)&(k2=k2k1)后,k1和k2的值分別為( )。(2011.9) A)0和1 B)0和20 C)10和1 D)10和20,A,B,考點(diǎn)點(diǎn)撥:理解條件表達(dá)式的求值方法 條件運(yùn)算符( ? : )是C語言里唯一的三目運(yùn)算符,優(yōu)先級倒數(shù)第三,右結(jié)合。其一般形式是:表達(dá)式1 ? 表達(dá)式2 : 表達(dá)式3。先求解表達(dá)式1,取其邏輯值,若為真,求解表達(dá)2作為整個(gè)表達(dá)式的值;若為假,求解表達(dá)式3的值作為整個(gè)表達(dá)式的值。各表達(dá)式可以為任意類型的合法表達(dá)式。,真題舉例: 19、有如下嵌套的if語句 if(ab) if(ac) k=a; else k=c; else if(bc) k=b; else k=c; 以下選項(xiàng)中與上述if語句等價(jià)的語句是( ) 。(2010.3) A、k=(ab)?a:b;k=(bc)?b:c; B、k=(ab)?(bc)?a:b):(bc)?b:c); C、k=(ab)?(ac)?a:c):(bc)?b:c); D、k=(ab)?a:b;k=(ac)?a;c,C,考點(diǎn)點(diǎn)撥:理解位運(yùn)算符及其求值規(guī)則和優(yōu)先級順序 位運(yùn)算符有: (同優(yōu)先級) & | (按優(yōu)先級從高到低排列)。 位運(yùn)算的操作數(shù)必須是整型或字符型,計(jì)算時(shí)先將操作數(shù)轉(zhuǎn)換成二進(jìn)制,然后再低位對齊按運(yùn)算規(guī)則進(jìn)行計(jì)算。,真題舉例: (39)有以下程序 #include main() int a=2,b=2,c=2; printf(”%dn”,a|b 程序運(yùn)行后的結(jié)果是( )。 (2010.3) A)0 B)1 C)2 D)3,C,第3章 順序結(jié)構(gòu),三、基本語句 1.表達(dá)式語句,空語句,復(fù)合語句。 2.輸入輸出函數(shù)的調(diào)用,正確輸入數(shù)據(jù)并正確設(shè)計(jì)輸出格式。,大綱要求重點(diǎn):,考點(diǎn)點(diǎn)撥:理解C語句的概念及分類 見教材P57.圖3.14可知:C語句是函數(shù)體里的基本構(gòu)成單位。語句的作用是向計(jì)算機(jī)系統(tǒng)發(fā)出操作指令,要求執(zhí)行相應(yīng)的操作。一個(gè)C語句經(jīng)過編譯后產(chǎn)生若干條機(jī)器指令。C語句可以分成5大類: (1)控制語句; (2)函數(shù)調(diào)用語句;(3)表達(dá)式語句;(4)空語句;(5)復(fù)合語句;,考點(diǎn)點(diǎn)撥:掌握字符數(shù)據(jù)的輸入輸出函數(shù)的用法 putchar函數(shù)用于向顯示器輸出一個(gè)字符。一般格式是:putchar(c);其中c可以是字符型或整型常量、變量或表達(dá)式,結(jié)果是向顯示器輸出其值對應(yīng)的ASCII碼字符。 getchar函數(shù)用于從鍵盤輸入緩沖區(qū)讀取一個(gè)字符。一般格式是:getchar()。一般用法:ch=getchar(); 將從鍵盤輸入的一個(gè)字符值賦給變量ch。從鍵盤輸入的空格、回車等控制字符也作為有效字符讀取。,真題舉例: (10)下列程序運(yùn)行時(shí),若輸入1abcedf2df 輸出結(jié)果為 。 #include main() char a=0,ch; while(ch=getchar()!=n) if (a%2!=0 ,1AbCdEf2dF,考點(diǎn)點(diǎn)撥:掌握格式化輸出、輸入函數(shù)的用法及注意事項(xiàng) printf(“格式控制字符串”,輸出表列); scanf(“格式控制字符串”,輸入地址表列); “格式控制字符串”中允許有兩類字符: 普通字符。在printf函數(shù)中會(huì)原樣輸出,在scanf函數(shù)中要求原樣輸入。 格式字符。由“%+格式字符”,用于指定輸出、輸入項(xiàng)的格式。常用格式字符有(教材P74:表3.6、表3.7;P76:表3.8、表3.9): 整數(shù)類型 十進(jìn)制有符號類型:%d %md %-md %ld %mld %-mld 十進(jìn)制無符號類型:%u 八進(jìn)制無符號類型:%o 十六進(jìn)制無符號類型:%x %X 實(shí)數(shù)類型 小數(shù)格式:%f %.nf %m.nf %-m.nf 指數(shù)格式:%e %E 簡潔格式:%g %G (根據(jù)輸出數(shù)據(jù)大小自動(dòng)選擇小數(shù)或指數(shù)格式,且不輸出無意義的零) 字符類型 字符格式:%c %mc 字符串格式:%s %.ns %m.ns,考點(diǎn)點(diǎn)撥:掌握格式化輸出、輸入函數(shù)的用法及注意事項(xiàng) printf函數(shù)中的“輸出表列”可以沒有。若有,可以是常量、變量或表達(dá)式,將其值按對應(yīng)的格式輸出;若有多項(xiàng),以逗號分開。其他說明見教材P75。 scanf函數(shù)中的“地址表列”必須為變量的地址,多個(gè)地址之間以逗號分開。注意的問題見教材P7677。,真題舉例: (15)程序段:int x=12; double y=3.141593; printf(“%d%8.6f”, x, y);的輸出結(jié)果是( )。(2009.3) A)123.141593 B)12 3.141593 C)12, 3.141593 D)123.1415930 (16)若有定義語句:double x, y,*px,*py; 執(zhí)行了px=,C,A,第4章 選擇結(jié)構(gòu),四、選擇結(jié)構(gòu)程序設(shè)計(jì) 1.用if語句實(shí)現(xiàn)選擇結(jié)構(gòu)。 2.用switch語句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)。 3.選擇結(jié)構(gòu)的嵌套。,大綱要求重點(diǎn):,考點(diǎn)點(diǎn)撥:掌握三種if語句的執(zhí)行過程 if語句的功能是判斷所給的條件,選擇執(zhí)行其中一個(gè)操作。if語句的一般形式 if(表達(dá)式) 語句1 else 語句2 常用三種形式是單分支、雙分支和多分支(祥見教材P89) 。 表達(dá)式可以是任意類型的表達(dá)式,取其值的邏輯值(非零為真,零為假) if或else只能控制其后的一條語句,該語句可以是五大類語句中的任意一種。,真題舉例: (18)有以下程序 #include main() int a=1,b=0; if(!a) b+; else if(a=0) if(a) b+=2; else b+=3; printf(”%dn”,b); 程序運(yùn)行后的輸出結(jié)果是 ( )。(2010.9) A)0 B)1 C)2 D)3 (18)有以下程序 #include main() int x; scanf(“%d”, 程序運(yùn)行時(shí),輸入的值在哪個(gè)范圍才會(huì)有輸出結(jié)果( )。(2009.3) A)不等于10的整數(shù) B)大于3且不等10的整數(shù) C)大于3或等于10的整數(shù) D)小于3的整數(shù),C,A,考點(diǎn)點(diǎn)撥:掌握嵌套if語句的執(zhí)行,及else與if的配對 嵌套if指一般格式中if或else的控制語句又是if語句。注意if可以單獨(dú)使用,而else必須和if配對使用,且else總是和它上面的最近的未曾配對的if進(jìn)行配對,從而在配對的if后的條件為假時(shí)執(zhí)行該else之后的語句。,真題舉例: (27)有以下程序 #include main() int x=1,y=0; if(!x) y+; else if(x=0) if (x) y+=2; else y+=3; printf(“%dn“,y); 程序運(yùn)行后的輸出結(jié)果是( )。 (2011.3) A)3 B)2 C)1 D) 0,D,考點(diǎn)點(diǎn)撥:switch語句的格式及其執(zhí)行、跳轉(zhuǎn)的過程 switch語句又稱開關(guān)語句,一般用于實(shí)現(xiàn)多分支選擇。switch語句的一般形式及執(zhí)行見教材P103。注意: switch后的表達(dá)式值的類型一般為整型或字符型 case子句后的常量必須為簡單的整型或字符型常量 當(dāng)執(zhí)行完一個(gè)分支的執(zhí)行語句后沒有遇到break,將繼續(xù)執(zhí)行下一分支的執(zhí)行語句 switch語句可以嵌套,break在switch中的作用是跳出所在的switch語句,真題舉例: 18、以下選項(xiàng)中與if(a=1) a=b;else a+;語句功能不同的switch語句是:( )(2010.3) A、switch(a) B、switch(a=1) case 1:a=b;break; case 0 : a=b;break; default : a+; case 1 : a+; C、switch(a) D、switch(a=1) default : a+;break; case 1:a=b;break; case 1:a=b; case 0: a+; ,B,第5章 循環(huán)結(jié)構(gòu),五、循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 1.for循環(huán)結(jié)構(gòu)。 2.while和do-while循環(huán)結(jié)構(gòu)。 3.continue語句和break語句。 4.循環(huán)的嵌套。,大綱要求重點(diǎn):,考點(diǎn)點(diǎn)撥:理解while循環(huán)的執(zhí)行過程及應(yīng)用 while語句構(gòu)成的循環(huán)稱為“當(dāng)型”循環(huán),其一般形式是: while(表達(dá)式) 語句 表達(dá)式可以是C語言中任意類型的合法表達(dá)式,取其值的邏輯值。語句也可以是五大類語句任意之一,但只能控制其后的一條語句。循環(huán)體有可能一次也不執(zhí)行。,真題舉例: (20)有以下程序 #include main() int a=1,b=2; while(a main() while( getchar()!=n) ; 以下敘述中正確的是( )。(2011.3) A) 此while語句將無限循環(huán) B) getchar()不可以出現(xiàn)在while語句的條件表達(dá)式中 C) 當(dāng)執(zhí)行此while語句時(shí),只有按回車鍵程序才能繼續(xù)執(zhí)行 D) 當(dāng)執(zhí)行此while語句時(shí),按任意鍵程序就能繼續(xù)執(zhí)行,B,C,考點(diǎn)點(diǎn)撥:理解dowhile循環(huán)的執(zhí)行過程及應(yīng)用 dowhile語句構(gòu)成的循環(huán)稱為“直到型”循環(huán),其一般形式是: do 語句 while(表達(dá)式); 其特點(diǎn)是先執(zhí)行循環(huán)體再判斷循環(huán)條件,循環(huán)體至少執(zhí)行一次。注意while之后的分號不能少。,真題舉例: (9)以下程序運(yùn)行后的輸出結(jié)果是【9】 。 #include main() int a=1,b=7; do b=b/2; a+=b; while (b1); printf(“%dn“,a); ,5,考點(diǎn)點(diǎn)撥:理解for循環(huán)的執(zhí)行過程及應(yīng)用 for語句的一般形式是: for(表達(dá)式1;表達(dá)式2;表達(dá)式3) 語句 for中的三個(gè)表達(dá)式可以是任意合法的C語言表達(dá)式,表達(dá)式1在進(jìn)入循環(huán)的進(jìn)修執(zhí)行一次,一般是給循環(huán)變量賦初值;表達(dá)式2取其邏輯值作為循環(huán)條件;表達(dá)式3在執(zhí)行循環(huán)體后才執(zhí)行,一般是使循環(huán)條件趨于假的運(yùn)算。三個(gè)表達(dá)式均可以省略,但分號不能省。,真題舉例: (21)有以下程序 #includes main() int a=1,b=2; for(;a8;a+) b+=a; a+=2; printf (”%d,%dn”,a,b); 程序運(yùn)行后的輸出結(jié)果是 ( )。(2010.3) A)9,18 B)8,11 C)7,11 D)10,14,D,考點(diǎn)點(diǎn)撥:理解循環(huán)嵌套的幾種形式及執(zhí)行過程 循環(huán)體內(nèi)又完整地包含了另一個(gè)循環(huán),稱循環(huán)嵌套。前三種循環(huán)語句可以相互嵌套,可多層嵌套。嵌套循環(huán)在執(zhí)行時(shí)外循環(huán)執(zhí)行一次內(nèi)循環(huán)要執(zhí)行一遍。書寫上一般采用縮進(jìn)形式,使程序?qū)哟畏置?,可讀性強(qiáng)。,真題舉例: (20)以下程序段中的變量已正確定義 for( i=0; i4; i+,i+) for( k=l; k3; k+);printf(“*”); 程序段的輸出結(jié)果是( )。(2009.3) A)* B)* C)* D)*,D,考點(diǎn)點(diǎn)撥:掌握break和continue語句在循環(huán)體中的應(yīng)用 break語句的作用是退出所在的循環(huán)體,在循環(huán)體中使用可增加循環(huán)的出口,使循環(huán)更靈活 。break只能用于switch或循環(huán)語句中。 continue語句的作用是結(jié)束本層本次的循環(huán),轉(zhuǎn)去執(zhí)行下一次的循環(huán)處理。continue語句只能用于循環(huán)體中。,第6章 數(shù)組,六、數(shù)組的定義和引用 1.一維數(shù)組和二維數(shù)組的定義、初始化和數(shù)組元素的引用。 2.字符串與字符數(shù)組。,大綱要求重點(diǎn):,考點(diǎn)點(diǎn)撥:掌握一維數(shù)組的定義方式及初始化的定義形式 一維數(shù)組的定義方式: 數(shù)據(jù)類型 數(shù)組名常量表達(dá)式; 常量表達(dá)式規(guī)定了數(shù)組元素的個(gè)數(shù)(或長度),整個(gè)數(shù)組所占字節(jié)數(shù)=類型長度數(shù)組長度;常量表達(dá)式中可以包括整型常量和符號常量;在給全部元素賦初值時(shí)可以省略定義時(shí)的數(shù)組長度說明。 一維數(shù)組初始化的一般形式: 數(shù)據(jù)類型 數(shù)組名常量表達(dá)式=值0,值1,值2,; 初值的個(gè)數(shù)不能超過數(shù)組的長度; 可以只給部分元素賦初值,未賦初值元素默認(rèn)值為0;,真題舉例: (28)若要定義一個(gè)具有5個(gè)元素的整型數(shù)組,以下錯(cuò)誤的定義語句是( )(2010.9) A)int a5=0; B)int b=0,0,0,0,0; C)int c2+3; D)int i=5,di;,D,考點(diǎn)點(diǎn)撥:掌握一維數(shù)組元素的引用形式 一維數(shù)組元素的引用形式: 數(shù)組名下標(biāo)表達(dá)式 下標(biāo)表達(dá)式可以是整型的常量、變量或表達(dá)式。數(shù)組名代表數(shù)組內(nèi)存空間的起始地址,不能企圖用數(shù)組名引用全部數(shù)組元素。C語言規(guī)定,數(shù)組的下標(biāo)從0開始,因其下標(biāo)的有效范圍為0 長度-1。C系統(tǒng)不會(huì)對數(shù)組的下標(biāo)進(jìn)行越界檢查。在程序中一般用單重for循環(huán)控制元素下標(biāo)引用所有元素。,真題舉例: (29)有以下程序 #include main() int a5=1,2,3,4,5, b5=0,2,1,3,0,i,s=0; for(i=0;i5;i+) s=s+abi; printf(“%dn“,s); 程序運(yùn)行后的輸出結(jié)果是 ( )。(2010.3) A) 6 B) 10 C) 11 D)15,C,考點(diǎn)點(diǎn)撥:掌握二維數(shù)組的定義方式及初始化的定義形式 二維數(shù)組的定義方式: 數(shù)據(jù)類型 數(shù)組名常量表達(dá)式1 常量表達(dá)式2 ; 二維數(shù)組一般用于存儲(chǔ)矩陣,常量表達(dá)式1為矩陣行數(shù),常量表達(dá)式2為矩陣列數(shù)。二維數(shù)組元素在內(nèi)存中是按行存放的,各元素在內(nèi)存中所占的字節(jié)數(shù)=行數(shù)列數(shù)類型長度 二維數(shù)組初始化的方法有: 按行賦初值 按元素排列順序賦初值 部分元素賦值 全部元素賦值可省略常量表達(dá)式1的說明,省略的長度由初始值個(gè)數(shù)確定,真題舉例: (26)以下定義數(shù)組的語句中錯(cuò)誤的是( )。(2011.9) A) int num=1,2,3,4,5,6; B) int num3=1,2,3,4,5,6; C) int num24=1,2,3,4,5,6; D) int num4=1,2,3,4,5,6;,C,考點(diǎn)點(diǎn)撥:掌握二維數(shù)組元素的引用形式 二維數(shù)組元素的引用形式: 數(shù)組名下標(biāo)表達(dá)式1下標(biāo)表達(dá)式2 各維下標(biāo)均從0開始,且為整數(shù)類型,不得越界。在程序中一般用雙重for循環(huán)控制兩維下標(biāo)訪問元素。若外循環(huán)控制行下標(biāo)、內(nèi)循環(huán)控制列下標(biāo)則按行序訪問元素;若外循環(huán)控制列下標(biāo)、內(nèi)循環(huán)控制行下標(biāo)則按列序訪問元素。,真題舉例: (11) 有以下程序 #include main() int a33=1,2,3,4,5,6,7,8,9; int b3=0,i; for(i=0;i3;i+) bi=ai2+a2i; for(i=0;i3;i+) printf(”%d”,bi); printf(”n”); 程序運(yùn)行后的結(jié)果是 。(2010.3),101418,考點(diǎn)點(diǎn)撥:掌握字符數(shù)組的定義及初始化形式 在C語言中只有字符變量,沒有字符串變量,通常用字符數(shù)組來存儲(chǔ)字符串。一維數(shù)組存儲(chǔ)一個(gè)字符串,二維數(shù)組中的一行存儲(chǔ)一個(gè)字符串。字符數(shù)組的定義: char s180,s2580; 字符數(shù)組的存儲(chǔ)同數(shù)值數(shù)組,區(qū)別在于每個(gè)元素都是一個(gè)字符變量,只分配一個(gè)字節(jié)存儲(chǔ)空間,可以存儲(chǔ)一個(gè)字符的ASCII碼值。 字符數(shù)組的初始化有兩種形式: 逐個(gè)字符賦初值,如:char s180=a,b,c,d,e;未賦初值元素默認(rèn)0值 用字符串賦初值,如:char s180=“abcde”,s2 =“abcde”; 數(shù)組s1占80B,數(shù)組s2占6B(注意系統(tǒng)自動(dòng)在字符串末尾加結(jié)束標(biāo)記0)。 二維字符數(shù)組賦初值: char ss480=“abc”,”abcde”,”xyz”,”1234”;,一個(gè)字符串占一行。二維數(shù)組的定義中第一維大小決定了字符串的個(gè)數(shù),第二維大小決定了各字符串的最大長度。,真題舉例: (23)有以下程序 #include #include main() char x”STRING”; x0=0; x10; x20; printf( ”%d %dn”, sizeof(x), strlen(x); 程序運(yùn)行后的輸出結(jié)果是( )。(2010.9) A)6 1 B)7 0 C)6 3 D)7 1,B,考點(diǎn)點(diǎn)撥:掌握字符數(shù)組(字符串)的輸入輸出方法 字符數(shù)組(字符串)的輸入/輸出一般有以下三種方法: %c字符格式:在printf或scanf函數(shù)中使用,其I/O對象是單個(gè)元素,一般結(jié)合循環(huán)使用。 %s字符串格式:在printf或scanf函數(shù)中使用,其I/O對象是數(shù)組名所代表的地址(一維數(shù)組名字代表它的存儲(chǔ)空間的首地址,二維數(shù)組名帶第一維下標(biāo)代表所在行的首地址),可以整體輸入/輸出字符串。在scanf函數(shù)中接收以空格或回車結(jié)束的字符串。 字符串處理函數(shù)gets或puts:gets接收以回車結(jié)束的字符串;puts輸出一個(gè)以0結(jié)束的字符串,且回車換行。其參數(shù)均為字符數(shù)組的名字。,真題舉例: (34)有以下程序(二維字符數(shù)組) #include main() char ch 35=“AAAA“,“BBB“,“CC“); printf (“sn“,ch1); 程序運(yùn)行后的輸出結(jié)果是( )。(2011.9) A)AAAA B)CC C)BBBCC D)BBB,D,考點(diǎn)點(diǎn)撥:掌握各常用的字符串處理函數(shù)的應(yīng)用 常用的字符串處理函數(shù)有(需包含string.h頭文件):(教材P162-164) strcpy(s1,s2)字符串拷貝函數(shù):將s2中的內(nèi)容復(fù)制到字符數(shù)組s1中去 strncpy(s1,s2,n)拷貝子串函數(shù):將s2中的前n個(gè)字符拷貝到s1中 strcat(s1,s2)字符串連接函數(shù):將s2連接在s1的末尾 strcmp(s1,s2)字符串比較函數(shù):從左到右逐個(gè)字符比較兩個(gè)字符串的大小 strlen(str)求字符函數(shù)串長度:求字符數(shù)組str中第一個(gè)0字符之前的字符個(gè)數(shù),真題舉例: (31)下列選項(xiàng)中,能夠滿足“若字符串s1等于字符串s2,則執(zhí)行ST“要求的是( )(2010.9) A) if(strcmp(s2,s1)=0) ST; B) if(*sl=s2) ST; C) if(strcpy(sl ,s2)=1) ST; D) if(sl-s2=0) ST;,A,第7章 函數(shù),七、函數(shù) 1.庫函數(shù)的正確調(diào)用。 2.函數(shù)的定義方法。 3.函數(shù)的類型和返回值。 4.形式參數(shù)與實(shí)在參數(shù),參數(shù)值傳遞。 5.函數(shù)的正確調(diào)用,嵌套調(diào)用,遞歸調(diào)用。 6.局部變量和全局變量。 7.變量的存儲(chǔ)類別(自動(dòng),靜態(tài),寄存器,外部),變量的作用域和生存期。,大綱要求重點(diǎn):,考點(diǎn)點(diǎn)撥:理解函數(shù)在C語言中的功能,掌握如何調(diào)用庫函數(shù) 一個(gè)C程序有且僅有一個(gè)main函數(shù),和若干個(gè)其他函數(shù)構(gòu)成。主函數(shù)可以調(diào)用其他函數(shù),其他函數(shù)可以相互調(diào)用。這些函數(shù)可以是庫函數(shù),也可以是用戶自定義函數(shù)。 函數(shù)之間可以相互調(diào)用,但各函數(shù)必須是相互獨(dú)立的,一個(gè)函數(shù)并不屬于其他函數(shù)。其他函數(shù)不能調(diào)用main函數(shù)。C系統(tǒng)提供了豐富的庫函數(shù),編程時(shí)可直接調(diào)用,使用庫函數(shù)應(yīng)注意:(教材P384-389) 1、函數(shù)功能 2、函數(shù)參數(shù)的數(shù)目和順序,及各參數(shù)意義和類型 3、函數(shù)返回值意義和類型 4、需要使用的包含文件,考點(diǎn)點(diǎn)撥:掌握函數(shù)定義的一般形式及注意事項(xiàng) 函數(shù)定義的一般形式: 返回值類型 函數(shù)名(類型1 形參1,類型2 形參2,) 說明部分 執(zhí)行部分 函數(shù)名和形參名必須是合法的標(biāo)識符 函數(shù)可以沒有返回值,可以定義為void類型。返回值若省略不寫則默認(rèn)為int型 函數(shù)可以沒有參數(shù),即為無參函數(shù) 函數(shù)可以沒有函數(shù)體,即為空函數(shù) 不能在函數(shù)體中定義另外一個(gè)函數(shù),各函數(shù)之間是相互獨(dú)立的,考點(diǎn)點(diǎn)撥:掌握函數(shù)聲明的方法和聲明時(shí)應(yīng)該注意的問題 在C語言中,用戶自定義函數(shù)必須“先定義,后使用”。如果調(diào)用在前定義在后,就必須在調(diào)用之前對函數(shù)進(jìn)行聲明,將該函數(shù)的有關(guān)信息通知編譯器。函數(shù)聲明的形式如下 : 返回值類型 函數(shù)名(類型1,類型2,); 返回值類型 函數(shù)名(類型1 形參1,類型2 形參2,); 函數(shù)定義在前,調(diào)用在后則不必對自定義函數(shù)進(jìn)行聲明,真題舉例: (12)請將以下程序中的函數(shù)聲明語句補(bǔ)充完整。 #include int【12】 ; main() int x, y,(*p)(); scanf(“%d%d”, ,max(int a,int b),考點(diǎn)點(diǎn)撥:掌握形參和實(shí)參的概念及作用 定義函數(shù)時(shí),函數(shù)名后的參數(shù)稱為形參;調(diào)用函數(shù)時(shí),函數(shù)名后的參數(shù)稱為實(shí)參。當(dāng)在一個(gè)函數(shù)中調(diào)用另一個(gè)函數(shù)時(shí),前者稱主調(diào)函數(shù),后者稱被調(diào)函數(shù)。主調(diào)函數(shù)通過實(shí)參向被調(diào)函數(shù)的形參傳遞數(shù)據(jù)。說明: 實(shí)參可以是常量、變量、表達(dá)式或函數(shù),形參只能是變量 實(shí)參和形參的類型一致或賦值兼容,個(gè)數(shù)必須相同,按順序一一對應(yīng) 當(dāng)函數(shù)被調(diào)用時(shí),形參才分配內(nèi)存空間,調(diào)用結(jié)束時(shí),形參所占內(nèi)存空間被釋放 實(shí)參對形參的數(shù)據(jù)傳遞是單向值傳遞。且在內(nèi)存中,形參與實(shí)參占用的是不同的內(nèi)存單元,因此形參的改變并不影響實(shí)參。,真題舉例: (24)有以下程序 #include void fun(int p) int d=2; p=d+; printf(“%d“,p); main() int a=1; fun(a); printf(“%dn“,a); 程序運(yùn)行后的輸出結(jié)果是( )。(2009.9) A)32 B)12 C)21 D)22,C,考點(diǎn)點(diǎn)撥:理解在函數(shù)調(diào)用時(shí)return語句的作用 被調(diào)函數(shù)可以用return語句將函數(shù)值傳遞給主調(diào)函數(shù)。return語句形式: return 表達(dá)式; 或 return(表達(dá)式); 說明: 當(dāng)函數(shù)執(zhí)行到return語句時(shí),返回到它的主調(diào)函數(shù)的調(diào)用位置,并帶回返回值。 return后的表達(dá)式可以是常量、變量或表達(dá)式 表達(dá)的類型若和函數(shù)定義中的返回值類型不相同,則系統(tǒng)自動(dòng)轉(zhuǎn)換為定義的類型;若無法轉(zhuǎn)換,則賦值不兼容。 若函數(shù)定義為void類型,則不能用return帶回返回值。函數(shù)最后一個(gè)起返回作用。 函數(shù)中可以有多條return語句,但只執(zhí)行其中一條,或都不執(zhí)行。,真題舉例: (24)以下關(guān)于return語句的敘述中正確的是( )。(2010.3) A)一個(gè)自定義函數(shù)中必須有一條return語句 B) 一個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語句 C)定義成void類型的函數(shù)中可以有帶返回值的return語句 D)沒有return語句的自定義函數(shù)在執(zhí)行結(jié)束時(shí)不能返回到調(diào)用處,B,考點(diǎn)點(diǎn)撥:掌握函數(shù)調(diào)用的基本形式及其語法要求 函數(shù)調(diào)用的形式如下 : 函數(shù)名(實(shí)參表) 說明: 調(diào)用函數(shù)時(shí),函數(shù)名必須與被調(diào)用的函數(shù)名完全相同。 函數(shù)調(diào)用可以出現(xiàn)在允許表達(dá)式出現(xiàn)的任何地方 函數(shù)調(diào)用可以作為一條獨(dú)立的語句,此時(shí)最后的分號不能少。,考點(diǎn)點(diǎn)撥:掌握函數(shù)嵌套調(diào)用與遞歸調(diào)用的方法及注意事項(xiàng) 在被調(diào)用的函數(shù)中又調(diào)用另外一個(gè)函數(shù),稱“嵌套調(diào)用” 函數(shù)直接或間接地調(diào)用自身,稱“遞歸調(diào)用”。可以將遞歸調(diào)用看做是嵌套調(diào)用的特殊形式 采用遞歸方法求解一個(gè)問題時(shí),該問題必須滿足以下條件: 可以把要求解的問題轉(zhuǎn)化為新的問題,而且新問題的解法與原問題相同 必須有一個(gè)明確的結(jié)束遞歸的條件 函數(shù)遞歸調(diào)用時(shí),系統(tǒng)利用堆棧將當(dāng)前函數(shù)中的變量和形參暫時(shí)保存起來,再為新一輪函數(shù)調(diào)用中的形參和變量分配內(nèi)存空間。 嵌套或遞歸調(diào)用的返回原則是:先調(diào)用,后返回。,真題舉例: (24)有以下程序 #include int f(int x); main() int n=1,m; m=f( f ( f(n) ) );printf(”%dn”,m); int f(int x) return x*2; 程序運(yùn)行后的輸出結(jié)果是( )。(2010.9) A)1 B)2 C)4 D)8 (35)有以下程序 #include void fun(int x) if(x/21)fun(x/2); printf(”d ”,x); main() fun(7);printf(”n”); 程序運(yùn)行后的輸出結(jié)果是( )(2010.9) A)1 3 7 B)7 3 1 C)7 3 D)3 7,D,D,考點(diǎn)點(diǎn)撥:掌握局部變量和全局變量的作用范圍及特點(diǎn) 在函數(shù)體內(nèi)部或復(fù)合語句內(nèi)部定義的變量稱局部變量,其作用范圍只在定義它的函數(shù)體或復(fù)合語句中。說明: 形參也屬于局部變量,作用域僅限于它所在的函數(shù)體。 不同函數(shù)之間可以使用同名的局部變量。因其占用的內(nèi)存空間不同,所以互不影響。 在函數(shù)體外部定義的變量稱為全局變量,其作用范圍是從定義位置到源文件結(jié)束。說明: 全局變量在整個(gè)程序執(zhí)行期間占用固定的存儲(chǔ)空間 當(dāng)全局變量和局部變量同名時(shí),在局部變量的作用范圍內(nèi)同名的全局變量不起作用,考點(diǎn)點(diǎn)撥:掌握變量四種存儲(chǔ)類型的聲明和應(yīng)用 從變量生存期的角度,可以將變量分為靜態(tài)存儲(chǔ)和動(dòng)態(tài)存儲(chǔ)。靜態(tài)存儲(chǔ)是指在程序運(yùn)行期間給變量分配固定的內(nèi)存空間。動(dòng)態(tài)存儲(chǔ)是指在程序運(yùn)行期間根據(jù)需要?jiǎng)討B(tài)地進(jìn)行內(nèi)存空間分配。 變量在程序運(yùn)行過程中可以使用的存儲(chǔ)位置有:動(dòng)態(tài)存儲(chǔ)區(qū)、靜態(tài)存儲(chǔ)區(qū)、CPU寄存器存儲(chǔ)區(qū)。變量的存儲(chǔ)類型指定變量的存儲(chǔ)位置,共有四種存儲(chǔ)類型: auto(自動(dòng)型):在函數(shù)體內(nèi)部使用,為該類型的變量分配在動(dòng)態(tài)存儲(chǔ)區(qū)。其特點(diǎn)是進(jìn)入其作用范圍時(shí)分配存儲(chǔ)空間,退出其作用范圍時(shí)釋放為其分配的存儲(chǔ)空間。在函數(shù)體內(nèi)部未指定變量存儲(chǔ)類型時(shí)默認(rèn)為auto型。該類型變量若賦初值,則每次使用時(shí)重新賦初值;若不賦初值,則為隨機(jī)值。 static(靜態(tài)型):可以在函數(shù)體內(nèi)部或外部使用,為該類型的變量分配在靜態(tài)存儲(chǔ)區(qū)。其特點(diǎn)是在整個(gè)程序運(yùn)行期間占用固定的存儲(chǔ)空間。若賦初值則只在第一次使用的時(shí)候賦初值一次;若不賦初值,則默認(rèn)為0。 在函數(shù)內(nèi)部定義稱靜態(tài)局部變量,其生存期全局,作用域局部。該類型變量具有繼承性,即多次使用時(shí)后一次繼承前一次使用的結(jié)果值。 在函數(shù)外部定義稱靜態(tài)全局變量,其特點(diǎn)同全局變量,區(qū)別在于僅限本文件使用。,考點(diǎn)點(diǎn)撥:掌握變量四種存儲(chǔ)類型的聲明和應(yīng)用 register(寄存器型):其特點(diǎn)同auto型變量,區(qū)別是在CPU寄存器中分配存儲(chǔ)空間,僅限數(shù)據(jù)類型為整型、字符型或指針類型且使用頻繁的變量 extern(外部型):引用性聲明。此種類型只針對全局變量且不分配存儲(chǔ)空間,作用是擴(kuò)展已經(jīng)在其他位置定義過的全局變量的作用范圍到聲明位置,真題舉例: (36)有以下程序 #include int fun() static int x=1; x+=1; return x; main() int i, s=1; for(i=1;i=5;i+)s+=fun(); printf(”%dn”,s); 程序運(yùn)行后的輸出結(jié)果是( )(2010.9) A)11 B)21 C)6 D)120,B,第8章 編譯預(yù)處理,八、編譯預(yù)處理 1.宏定義和調(diào)用(不帶參數(shù)的宏,帶參數(shù)的宏)。 2.“文件包含”處理。,大綱要求重點(diǎn):,考點(diǎn)點(diǎn)撥:掌握不帶參數(shù)宏的替換形式和特點(diǎn) 不帶參數(shù)宏的定義形式: # define 宏名 宏體 說明: 宏名為合法標(biāo)識符,為和普通變量區(qū)分,常用大寫字母表示。 在定義新宏時(shí),可以引用已經(jīng)定義過的宏,替換時(shí)層層替換。 在字符串中若有與宏名相同的內(nèi)容,不進(jìn)行替換。 宏替換時(shí),只是將宏體簡單替換掉宏名,不得隨意增、減任何內(nèi)容。宏計(jì)算的原則是:“先替換,再計(jì)算”!,考點(diǎn)點(diǎn)撥:掌握帶參數(shù)宏定義的替換形式及特點(diǎn) 帶參數(shù)宏的定義形式: #define 宏名(參數(shù)表) 宏體 說明: 宏名與參數(shù)表的(之間不能有空格 宏的參數(shù)表無類型,多個(gè)參數(shù)之間以逗號分隔 引用帶參宏時(shí),實(shí)參可以是常量、變量或表達(dá)式,都以原樣替換宏體中對應(yīng)的形參,宏體中的其他內(nèi)容原樣書寫,最后再計(jì)算替換后的表達(dá)式。千萬不能將實(shí)參表達(dá)式計(jì)算后再替換。,真題舉例: (35)以下程序 #include #
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度建筑防水工程防水材料研發(fā)與市場調(diào)研合同
- 金華浙江金華市交通工程管理中心招聘編外人員筆試歷年參考題庫附帶答案詳解
- 遼寧2025年渤海大學(xué)招聘高層次人才92人筆試歷年參考題庫附帶答案詳解
- 湖南2025年湖南省生態(tài)環(huán)境廳直屬事業(yè)單位招聘44人筆試歷年參考題庫附帶答案詳解
- DB2103-T 008-2023 消防技術(shù)服務(wù)機(jī)構(gòu)從業(yè)規(guī)范
- 沈陽2025年遼寧沈陽遼中區(qū)四家事業(yè)單位面向區(qū)內(nèi)事業(yè)單位遴選18人筆試歷年參考題庫附帶答案詳解
- 常州2025年江蘇常州工學(xué)院高層次人才招聘60人(長期)筆試歷年參考題庫附帶答案詳解
- 2025年中國兩側(cè)擋渣器市場調(diào)查研究報(bào)告
- 2025年語音電路項(xiàng)目可行性研究報(bào)告
- 2025年耐高溫硅橡膠項(xiàng)目可行性研究報(bào)告
- 2025年電力鐵塔市場分析現(xiàn)狀
- GB 12158-2024防止靜電事故通用要求
- 《教育強(qiáng)國建設(shè)規(guī)劃綱要(2024-2035年)》全文
- 山東省濱州市2024-2025學(xué)年高二上學(xué)期期末地理試題( 含答案)
- 體育老師籃球說課
- 化學(xué)-江蘇省蘇州市2024-2025學(xué)年2025屆高三第一學(xué)期學(xué)業(yè)期末質(zhì)量陽光指標(biāo)調(diào)研卷試題和答案
- 蛋雞生產(chǎn)飼養(yǎng)養(yǎng)殖培訓(xùn)課件
- 運(yùn)用PDCA降低住院患者跌倒-墜床發(fā)生率
- 海底撈員工手冊
- 2024CSCO小細(xì)胞肺癌診療指南解讀
- 立春氣象與生活影響模板
評論
0/150
提交評論