c語言程序設(shè)計基礎(chǔ)單元總結(jié)與練習(xí)題及答案_第1頁
c語言程序設(shè)計基礎(chǔ)單元總結(jié)與練習(xí)題及答案_第2頁
c語言程序設(shè)計基礎(chǔ)單元總結(jié)與練習(xí)題及答案_第3頁
c語言程序設(shè)計基礎(chǔ)單元總結(jié)與練習(xí)題及答案_第4頁
c語言程序設(shè)計基礎(chǔ)單元總結(jié)與練習(xí)題及答案_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、C語言程序設(shè)計基礎(chǔ)課程單元總結(jié)與單元練習(xí) 答案C語言程序設(shè)計單元總結(jié)與練習(xí)題答 案單元一 程序設(shè)計宏觀認(rèn)識單元總結(jié)提升本單元中,核心內(nèi)容有C語言程序框架結(jié)構(gòu)、程序的構(gòu)成和程序開發(fā)過程。通過本單元的學(xué)習(xí),我們應(yīng)該知道:1C語言程序最基本的程序框架由兩部分構(gòu)成,分別是:(1) 編譯預(yù)處理 (2) 函數(shù)組 2C程序最大的特點就是所有的程序都是用函數(shù)來裝配的,函數(shù)是構(gòu)成C語言程序的基本單位,函數(shù)包括主函數(shù)、庫函數(shù)和自定義函數(shù)。函數(shù)的一般結(jié)構(gòu)形式為: 函數(shù)返回值類型 函數(shù)名(形式參數(shù)) /函數(shù)首部 說明語句; /函數(shù)體 可執(zhí)行語句; 3 標(biāo)識符是用來標(biāo)識程序中的某個對象名字的字符序列。C語言把標(biāo)識符分為

2、三類,即關(guān)鍵字、預(yù)定義標(biāo)識符、用戶自定義標(biāo)識符。對于用戶自定義標(biāo)識符的命名C語言規(guī)定:(1) 所有的用戶標(biāo)識符必須先定義后使用;(2) 用戶標(biāo)識符由字母(AZ,az)、數(shù)字(09)、下劃線“_”組成,并且首字符不能是 數(shù)字 ;(3) 區(qū)分大小寫;(4)不能用關(guān)鍵字作為用戶自定義標(biāo)識符,通常不使用預(yù)定義標(biāo)識符作為用戶自定義標(biāo)識符。4理論上講,程序開發(fā)過程分為四個步驟,分別為:(1) 編輯源程序 (2) 編譯源程序,生成目標(biāo)程序 (3) 連接目標(biāo)程序及其相關(guān)模塊,生成可執(zhí)行文件 (4) 運(yùn)行可執(zhí)行文件 5簡單描述使用VC+6.0開發(fā)應(yīng)用程序的步驟:如圖所示: 啟動VC+6.0打開或新建工程打開或新

3、建文件編輯、編譯連接、運(yùn)行完成圖 VC+6.0開發(fā)程序的步驟總之,通過本單元的學(xué)習(xí),應(yīng)該掌握C語言程序框架結(jié)構(gòu)和程序開發(fā)過程,還要對C語言程序設(shè)計的知識脈絡(luò)有一定的了解。單元練習(xí)一選擇題 1構(gòu)成C語言程序的基本單位是(c )。A框架 B預(yù)處理 C函數(shù) D語句 2在程序開發(fā)過程中,把文本文件格式源程序轉(zhuǎn)化為二進(jìn)制格式的目標(biāo)程序的過程稱之為( b )。A編輯 B編譯 C連接 D運(yùn)行3關(guān)于主函數(shù),下列說法不正確的是( c )。A一個完整的C語言應(yīng)用程序有唯一的主函數(shù)B主函數(shù)的名稱只能是mainC主函數(shù)可以被其他自定義函數(shù)調(diào)用DC語言程序的運(yùn)行從主函數(shù)開始,以主函數(shù)為核心展開4關(guān)于標(biāo)識符,下列說法不正

4、確的是( c )。A庫函數(shù)名稱為預(yù)定義標(biāo)識符,不建議用作用戶自定義標(biāo)識符B. 關(guān)鍵字不能作為用戶自定義標(biāo)識符C用戶自定義標(biāo)識符中不區(qū)分大小寫字母D標(biāo)識符中可以出現(xiàn)下劃線,且可以出現(xiàn)在標(biāo)識符的任意位置5以下可用作用戶自定義標(biāo)識符的一組是( c )。Avoid、return、ifBprintf、include、fabsCMax、_abc、MainD2abc、pay$、sum-10二填空題1C語言程序一般由若干個函數(shù)構(gòu)成,程序中應(yīng)至少包含一個_,其名稱只能為_。2C語言程序中每條語句必須以_結(jié)束。3C語言程序的注釋是以_開頭,以_結(jié)束的,在VC+6.0編程環(huán)境中,可使用_作為注釋的起始標(biāo)識,注釋對程

5、序的執(zhí)行不起任何作用。4最初編寫的C語言程序稱為_,其擴(kuò)展名為_,編譯后生成的文件為_,其擴(kuò)展名是_,連接后生成的文件是_,其擴(kuò)展名是_。5C語言規(guī)定,標(biāo)識符只能由_、_和_三種字符組成,而且,首字符只能是_或_。*習(xí)題答案:一選擇題1C2B3C4C5C二填空題1主函數(shù) main2分號;3/* */ /4源程序 .cpp或.c目標(biāo)文件(或目標(biāo)程序) .obj 可執(zhí)行文件(或可執(zhí)行程序) .exe5字母(AZ,az)、數(shù)字(09)、下劃線“_” 字母或下劃線*單元二 程序設(shè)計基礎(chǔ)知識單元總結(jié)提升本單元中,核心內(nèi)容有C語言中基本的數(shù)據(jù)類型、常量和變量、運(yùn)算符和表達(dá)式以及算法的概念。通過本單元的學(xué)習(xí)

6、,我們應(yīng)該知道:1C語言中最基本的數(shù)據(jù)類型有: 整型、字符型、浮點型 。2C程序中使用的常量按照表現(xiàn)形式可分為直接常量和符號常量。(1)直接常量 1)整型常量,有十進(jìn)制、八進(jìn)制和十六進(jìn)制三種描述方式,其中,八進(jìn)制的前置符號標(biāo)志為 0 ,十六進(jìn)制的前置符號標(biāo)志為 0x或0X 。 2)浮點型常量,有十進(jìn)制小數(shù)和指數(shù)兩種描述方式,指數(shù)形式的符號標(biāo)志是 e或E 。 3)字符型常量,是用單撇引號括起來的單一字符,對一些特殊字符和控制字符用 的形式表示。 4)字符串常量,是用雙撇引號括起來的一串字符序列。字符串的結(jié)束標(biāo)志為 0 。(2)符號常量 符號常量是使用某個符號代表的常量,符號常量使用編譯預(yù)處理中的

7、宏定義命令 定義。3C程序中使用變量,必須先 定義 ,后 使用 。變量定義后,系統(tǒng)會根據(jù)變量的類型分配相應(yīng)的存儲空間。4C語言有豐富的運(yùn)算符,其中算術(shù)運(yùn)算符包括+、-、*、/、%,運(yùn)算符中的%僅用于整數(shù)間的運(yùn)算;賦值運(yùn)算符包括“=”和相應(yīng)的復(fù)合賦值運(yùn)算符 +=、-=、*=、/= ,賦值運(yùn)算的含義是將“=”右側(cè)的表達(dá)式的計算結(jié)果賦值給“=”左側(cè)的變量,這與數(shù)學(xué)中“=”的含義不同,需要注意。5由運(yùn)算符和數(shù)據(jù)構(gòu)成表達(dá)式,若表達(dá)式中各數(shù)據(jù)的類型不同,則存在類型自動轉(zhuǎn)換問題,必要時也可以使用強(qiáng)制類型轉(zhuǎn)換。6對于面向過程的程序設(shè)計來說,程序= 數(shù)據(jù)結(jié)構(gòu) + 算法 。7在C語言中,對于每一個程序設(shè)計單元可采

8、用結(jié)構(gòu)化程序設(shè)計方法,有三種基本的程序結(jié)構(gòu),分別為: 順序 、 選擇 和 循環(huán) 。通過本單元的學(xué)習(xí),應(yīng)該掌握C語言程序設(shè)計所需要的基本知識,為后續(xù)內(nèi)容的學(xué)習(xí)打下堅實的基礎(chǔ)。單元練習(xí)一選擇題 1在C語言中,int、short、char三種類型數(shù)據(jù)所占用的存儲空間是(c )。A均為2個字節(jié) Bint和short占2個字節(jié),char占1個字節(jié)C與編譯環(huán)境有關(guān) D由用戶自己定義 2下面定義字符型變量ch的語句不正確的是(b )。Achar ch=X2A; Bchar ch=c;Cchar ch=65; Dchar ch=NULL;3已知大寫字母A的ASCII是65,小寫字母a的ASCII是97,以下不

9、能將字符型變量c中的大寫字母轉(zhuǎn)換成對應(yīng)的小寫字母的語句是(d )。Ac= (c-A)%26+a; Bc2=tolower(c);Cc= c-A+a; Dc=(A+c)%26-a; 4設(shè)有定義:double d,h;,其中d為三角形的底邊長,h為三角形的高,則以下C語言表達(dá)式與其面積公式dh計算結(jié)果不相符的是(b )。Ad*h/2 B1/2*d*hCd*h*1/2Dd/2*h 5以下選項中,與k=n+;完全等價的語句是(a )。Ak=n;n=n+1; Bn=n+1;k=n;Ck=+n;Dk+=n+1;二填空題1寫出整型變量a、無符號長整型變量b、雙精度浮點型變量c和字符型變量d的定義語句: 。2

10、 常量a和”a”分別占用_1_個字節(jié)和_2_個字節(jié)的存儲空間。a的意義是字符型常量a,而a的意義是字符串常量a,默認(rèn)后面還有個0作為字符串的結(jié)束符,此常量占倆個字符空間,兩者的區(qū)別就在于數(shù)據(jù)類型不同,前者是字符常量(char),在計算機(jī)內(nèi)存中占用一個字符空間,后者是字符串常量(string),在計算機(jī)內(nèi)存中占用倆個字符空間。3有定義 int a=1234;,獲取其百位數(shù)碼的表達(dá)式為_。4若有定義:char a=97,c;,則表達(dá)式c=a+8-3的值為_。5已知int x=6;,則執(zhí)行x+=x-=x-3;語句后,x的值是_6_。X=X+X,X=X-(X-3)6將一個浮點型變量n四舍五入精確到小數(shù)

11、點后兩位,其表達(dá)式為: 。7C語言中基本的數(shù)據(jù)類型有 、 、 。8結(jié)構(gòu)化程序設(shè)計中基本的程序結(jié)構(gòu)有 、 、 。*習(xí)題答案:一選擇題1C2B3D4B5A二填空題1int a; unsigned long b; double c; char d;21 23a/100%104f566(int)(n*100+0.5)/100.0;7整型、浮點型、字符型8順序、選擇、循環(huán)*單元三 順序結(jié)構(gòu)程序設(shè)計單元總結(jié)提升本單元中,核心內(nèi)容是順序程序結(jié)構(gòu)程序設(shè)計中標(biāo)準(zhǔn)輸入輸出庫函數(shù)的使用。通過本單元的學(xué)習(xí),我們應(yīng)該知道:1C語言提供了標(biāo)準(zhǔn)輸入輸出庫函數(shù)用于實現(xiàn)數(shù)據(jù)輸入輸出操作,其對應(yīng)的頭文件為 stdio.h 。2單

12、字符輸入和輸出函數(shù)分別為 getchar() 和 putchar() 。3格式化輸入和輸出函數(shù)分別為 scanf() 和 printf() 。4格式化輸出函數(shù)有兩種調(diào)用格式:(1) printf(字符串常量); (2) printf(格式控制字符串,輸出項列表); 5格式化輸入/輸出中,格式控制符由 % 開頭。常用的格式控制符有:整型int格式符 %d 、float浮點型格式符 %f 、double浮點型格式符 %lf 、字符型格式符 %c ;對于浮點型格式可以用 m.n 形式的附加格式說明小數(shù)的寬度和小數(shù)位數(shù)。6格式化輸入中的輸入項為地址列表,對變量取地址的運(yùn)算符為 & 。通過本單元的學(xué)習(xí),

13、應(yīng)對順序結(jié)構(gòu)程序設(shè)計的特點和設(shè)計思路有所了解,同時重點學(xué)會單字符輸入函數(shù)getchar()、單字符輸出函數(shù)putchar()、格式化輸出函數(shù)printf()和格式化輸入函數(shù)scanf()的正確使用。單元練習(xí)一選擇題1已定義x為float型變量,其值為213.45678,則printf(%-4.2fn,x);的輸出結(jié)果為( )。A213.46 B213.45 C-213.45 D輸出格式控制說明的域?qū)挷粔?,不能輸?2. 有以下程序,程序運(yùn)行時輸入:1,2,3,則輸出的結(jié)果為( )。#include void main( ) int a,b,c; scanf(%d%d%d,&a,&b,&c);

14、printf(a+b+c=%dn,a+b+c); A6 Ba+b+c=6C123D不確定的值3.下面輸入語句中,正確的是( )。Ascanf(a=b=%d,&a,&b); Bscanf(%d,%d,&a,&b);Cscanf(%c,c); Dscanf(%d %dn,&f1,f2);4在VC+6.0環(huán)境中,下列說法正確的是( )。A輸入函數(shù)scanf()輸入多個數(shù)據(jù)時,有時數(shù)據(jù)間不必加間隔符。B輸入函數(shù)scanf()中單精度或雙精度浮點型數(shù)據(jù)都要用%f作為格式控制符。C使用輸出函數(shù)printf()輸出字符或字符串都用格式控制符%s。D輸出函數(shù)printf()中單精度或雙精度浮點型數(shù)據(jù)都要用%f

15、作為格式控制符。5下面程序的功能是實現(xiàn)兩個字符變量互換值,若為ch1輸入a,ch2輸入b,則程序運(yùn)行時正確的輸入是( )。#include void main( ) char ch1,ch2,ch; scanf(%c%c,&ch1,&ch2); ch=ch1;ch1=ch2;ch2=ch;printf(ch1=%c,ch2=%cn,ch1,ch2); Aa,b BabCabDab二填空題1.有語句putchar(getchar(),程序運(yùn)行時輸入:A,則輸出結(jié)果是_。2printf(%6.2f%,1.0/3);的輸出結(jié)果是_。3補(bǔ)充程序: int n1=10,n2=20; printf( ,n

16、1,n2); 要求按以下格式輸出n1和n2的值,每個輸出行從第一列開始。n1=0010n2=00204.有以下程序,程序運(yùn)行時輸入:1234,執(zhí)行后輸出的結(jié)果是_。#include void main( ) char ch1,ch2;int n1,n2; ch1=getchar();ch2=getchar();n1=ch1-0; n2=n1*10+(ch2-0); printf(n1=%d,n2=%d.n,n1,n2); 5. 輸入多個非字符型的數(shù)值數(shù)據(jù)時,數(shù)據(jù)輸入時可用 、 和 作為間隔符。*習(xí)題答案:一選擇題1A2D3B4A5C二填空題1.A2.0.33%3.n1=%04dnn2=%04d

17、4.n1=1,n2=125.空格,TAB鍵,回車*單元四 選擇結(jié)構(gòu)程序設(shè)計單元總結(jié)提升在選擇結(jié)構(gòu)程序設(shè)計中,條件判斷表達(dá)式和選擇結(jié)構(gòu)實現(xiàn)語句是兩個核心內(nèi)容。通過本單元的學(xué)習(xí),我們應(yīng)該知道:1條件判斷表達(dá)式由關(guān)系運(yùn)算符及其表達(dá)式、邏輯運(yùn)算符及其表達(dá)式構(gòu)成,其中:(1) 關(guān)系運(yùn)算符有: 、 = 、 =0)if(x0) y=1;else y=-1; printf(“y=%d”,y);A1 B-1 C0 D不確定4下列語句將小寫字母轉(zhuǎn)化為大寫字母,正確的語句為( )。Aif(z=ch=a) ch=ch-32;Bif(ch=a&ch=ch=a)?ch-32:ch;Dch=( ch=a&ch=z)?ch:

18、ch-32;5關(guān)于與switch語句配套的case語句中所使用的表達(dá)式,說法正確的是( )。A可以是變量 B可以是常量或變量C只能是常量或常量表達(dá)式D無論是何種表達(dá)式,只要在執(zhí)行時有確定的值就行二填空題1在算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符和賦值運(yùn)算符中,運(yùn)算優(yōu)先級最高的運(yùn)算符是 ,最低的是 。2正確表示數(shù)學(xué)關(guān)系“1a=A& ) else if( ) putchar(ch);5以下程序段功能是根據(jù)學(xué)生考試成績,確定其成績等級,成績與等級對應(yīng)情況與【例4-7】中表格相同,請將程序段補(bǔ)充完整。char level; /成績等級float score; /考試成績scanf(“%f”,&score)

19、;switch( ) :level=A; ;case 8: level=B;break;case 7: level=C; break;case 6: level=D; break;default: ; printf(“考試成績等級為: .”,level);*習(xí)題答案:一選擇題1D2D3C4B5C二填空題1!(非) =2a1&a=A& ch=U&ch=Z ) ch=ch-20; putchar(ch);5char level; /成績等級float score; /考試成績scanf(“%f”,&score);switch(int(score/10) ) case 10: case 9 :lev

20、el=A; break ;case 8: level=B;break;case 7: level=C; break;case 6: level=D; break;default: level=E ; *單元五 循環(huán)結(jié)構(gòu)程序設(shè)計單元總結(jié)提升在本單元中,如何理解循環(huán)的本質(zhì)、如何分析循環(huán)的三個要素以及如何描述循環(huán)結(jié)構(gòu)語句是核心內(nèi)容。通過本單元的學(xué)習(xí),我們應(yīng)該知道:1 循環(huán)的本質(zhì)是將程序員從大量重復(fù)編寫相同代碼的工作中解放出來,減少程序源代碼的存儲空間,提高程序的質(zhì)量,提高程序編寫的工作效率,但計算機(jī)執(zhí)行程序的工作量并沒有減少。2 循環(huán)結(jié)構(gòu)的三要素包括:(1)循環(huán)變量初值 (2)循環(huán)控制條件表達(dá)式(3

21、)循環(huán)體 3循環(huán)結(jié)構(gòu)描述語句有三種: while 、 do-while 和 for 。其中while和do-while的區(qū)別在于 不管循環(huán)條件是否成立,do-while循環(huán)都先執(zhí)行一次循環(huán)體,所以do-while循環(huán)的循環(huán)體至少執(zhí)行一次,而while循環(huán)的循環(huán)體可能一次都不執(zhí)行 。4循環(huán)結(jié)構(gòu)控制語句break的作用是: 結(jié)束循環(huán) ;循環(huán)結(jié)構(gòu)控制語句continue的作用是: 提前結(jié)束本次循環(huán) 。5在一個循環(huán)結(jié)構(gòu)語句中又包含了一個循環(huán)結(jié)構(gòu)語句稱之為 循環(huán)的嵌套 。程序執(zhí)行時,外層循環(huán)每執(zhí)行一次,內(nèi)層循環(huán)就要完整的執(zhí)行完,直至內(nèi)層循環(huán)執(zhí)行結(jié)束,再開始執(zhí)行下一次外層循環(huán)。學(xué)習(xí)完本單元,應(yīng)該掌握C語言

22、循環(huán)結(jié)構(gòu)程序設(shè)計的思路和基本語句的用法。至此,我們就學(xué)完了結(jié)構(gòu)化程序設(shè)計中的三種基本結(jié)構(gòu):順序、選擇和循環(huán)。單元練習(xí)一選擇題1下面說法正確的是( )。Awhile語句不管條件表達(dá)式是否為真,都將執(zhí)行一次循環(huán)體。Bdo-while語句構(gòu)成的循環(huán),一定要有能使while后面表達(dá)式的值為0的操作,或在循環(huán)體中使用break語句。Cfor循環(huán)只能用于循環(huán)次數(shù)確定的情況,且先執(zhí)行循環(huán)體語句,后判斷條件表達(dá)式。Dbreak語句的作用是從最近的循環(huán)體內(nèi)跳出來,而continue語句的作用是繼續(xù)執(zhí)行循環(huán)體中尚未執(zhí)行的語句。 2 對for(表達(dá)式1;表達(dá)式3),可理解為( )。Afor(表達(dá)式1;0;表達(dá)式3)

23、Bfor(表達(dá)式1;1;表達(dá)式3)C語法錯誤D僅執(zhí)行循環(huán)一次3 以下程序的功能為( )。 #include void main() int i,k=0; for(i=1;i10;i+=2) k+=i+1; printf(%dn,k); A計算自然數(shù)19的累加和 B計算自然數(shù)110的偶數(shù)之和C計算自然數(shù)19的奇數(shù)之和 D計算自然數(shù)110的累加和4以下能正確計算1*2*3*4*5*6*7*8*9*10的程序段是( )。Adoi=1;s=1; Bdoi=1;s=0; s=s*i; s=s*i; i+; i+; while(i=10); while(i=10);Ci=1;s=1; Di=1;s=0;d

24、o do s=s*i; s=s*i; i+; i+; while(i=10); while(i=10);5有以下程序段 int k=0; while(k=1) k+; while循環(huán)執(zhí)行的次數(shù)是( )。A無限次 B1次C語法錯誤,不能執(zhí)行D一次也不執(zhí)行二填空題1若輸入字符串:abcde,則以下while循環(huán)體將執(zhí)行 次。 while(ch=getchar()=e) printf(*);2以下程序執(zhí)行后的輸出結(jié)果是 。 #include void main() int i; for(i=0;i3;i+) switch(i) case 1: printf(%d,i); case 2: printf

25、(%d,i); default: printf(%d,i); 3下面程序的功能是:輸出100以內(nèi)能被3整除且個位數(shù)為6的所有整數(shù),請?zhí)羁铡?#include void main() int i,j; for(i=0; ;i+) j=i*10+6; if( ) continue; printf(%dn,j); 4有以下程序 #include void main() int x=23; do printf(%d,x-);while(!x); 該程序執(zhí)行的結(jié)果為 。5以下程序的功能是計算1-3+5-7+-99+101的值,請將程序補(bǔ)充完整。 #include void main() int i,t=

26、1,s=0; for(i=1;i=101;i+=2) s=s+ ; ; printf(%dn,s); *習(xí)題答案:一選擇題1B2B3B4C5A二填空題1020111223istr2)Bif(strcmp(str1,str2)0)Dif(strcmp(str1,str2)0)5下列程序段的功能是給數(shù)組所有的元素輸入數(shù)據(jù),然后輸出,請選擇正確答案填空( )。#include void main() int a10,i=0; while(i10)scanf(%d, ); for(i=0;i10;i+) printf(%4d,ai);A a+(i+) B&ai+1 Ca+i D&a+i二填空題1定義一

27、個名為a的單精度浮點型一維數(shù)組,數(shù)組的長度為4,所有元素的初值均為0,定義語句為 ,引用該數(shù)組元素時,下標(biāo)的范圍是 ,該數(shù)組占用的存儲空間為 字節(jié)。2設(shè)有數(shù)據(jù)定義語句int i=3,x4=1,2,3;,則數(shù)組元素xi的值是 。3下列程序的功能是讀取10個實數(shù),然后依次輸出前1個實數(shù)和、前2個實數(shù)和、.、前9個實數(shù)和、前10個實數(shù)和。請將程序補(bǔ)充完整。#include void main() float f10,x=0; int i; for(i=0;i10;i+) scanf(%f,&fi); for(i=0;i10;i+) ; printf(sum of No.%2d is %.2f.n,i

28、,x); 4下列程序的功能是求兩個矩陣的和,請將程序補(bǔ)充完整。#include void main() int a34,b34,c34; /數(shù)組c存放矩陣a與b的和 int i,j; for(i=0;i3;i+) for(j=0;j4;j+) scanf(%d,&aij); for(i=0;i3;i+) for(j=0;j4;j+) scanf(%d, ); ; for(i=0;i3;i+) for(j=0;j4;j+)printf(%d ,cij); putchar(n); 5閱讀下列程序,程序運(yùn)行后的輸出結(jié)果是 。#include #include void main() char s32

29、0=“1234”,”234567”,”6789”; int i,k;for(k=0,i=1;i3;i+)if(strcmp(sk,si)0) k=i;puts(sk);*習(xí)題答案:一選擇題1C2C3C4D5A二填空題1float a4=0 0至3 16203x+=fi;或x=x+fi;4&bij cij=aij+bij 56789*單元七 函數(shù)的使用單元總結(jié)提升在本單元中,如何使用自定義函數(shù)是核心內(nèi)容。通過本單元的學(xué)習(xí),我們應(yīng)該知道:1 函數(shù)是構(gòu)成C程序的基本單位,函數(shù)的使用為模塊化程序設(shè)計奠定了基礎(chǔ)。從用戶使用的角度,函數(shù)分為 庫 函數(shù)、 自定義 函數(shù)兩種。2 庫函數(shù)的使用包括 頭文件包含

30、和 庫函數(shù)調(diào)用 兩個環(huán)節(jié);用戶自定義函數(shù)的使用包括 函數(shù)聲明 、 函數(shù)定義 和 函數(shù)調(diào)用 三個環(huán)節(jié)。3 從函數(shù)的外觀形式看,函數(shù)分為 有參 函數(shù)、 無參 函數(shù)兩種。當(dāng)主調(diào)函數(shù)調(diào)用無參 函數(shù)時,不需要向這些函數(shù)傳遞參數(shù);當(dāng)主調(diào)函數(shù)調(diào)用 有參 函數(shù)時,需要傳遞參數(shù)。4 用戶自定義函數(shù)的一般形式為:函數(shù)返回值類型 函數(shù)名(形式參數(shù)列表) /函數(shù)首部 函數(shù)體;其中第一行稱為 函數(shù)首部 ,大括號“”括起來的部分稱為 函數(shù)體 ,對于有返回值的函數(shù),函數(shù)體中要包括 return 語句。5函數(shù)首部也稱為函數(shù)原型,用函數(shù)原型聲明函數(shù)時,形參名可以省略不寫,而只寫形參的類型,但形參的 類型 和 數(shù)量 必須與函數(shù)首

31、部保持一致。6函數(shù)要先聲明,然后才能使用,函數(shù)聲明在程序中的位置有以下幾種情況:(1)函數(shù)聲明寫在主調(diào)函數(shù)的外部,這時的函數(shù)聲明為全局聲明。(2)函數(shù)聲明寫在主調(diào)函數(shù)的說明語句中,這時的函數(shù)聲明為局部聲明。(3)函數(shù)的定義出現(xiàn)在主調(diào)函數(shù)之前,則函數(shù)聲明可以省略。 7函數(shù)的調(diào)用形式為:函數(shù)名(實際參數(shù)列表)。若調(diào)用無參函數(shù),則實參為空;若調(diào)用有參函數(shù),則在()內(nèi)寫出與形參類型、數(shù)量一致的實參。對于有參函數(shù),函數(shù)調(diào)用過程中存在著參數(shù)傳遞的問題,參數(shù)傳遞有兩種情況,其一為 值傳遞,其二為 地址傳遞。8函數(shù)在函數(shù)體中出現(xiàn)了對自身調(diào)用的語句,就稱為函數(shù)遞歸調(diào)用。使用遞歸方法解決問題的關(guān)鍵是如何找出 遞歸

32、關(guān)系 ,以及找出遞歸調(diào)用的 終止條件 。9帶參宏定義的一般形式為: #define 宏名(形參列表) 字符串 。通常用帶參數(shù)的宏定義代替簡單公式型函數(shù)。10函數(shù)的存儲類型有static和extern兩種。 extern 型函數(shù)稱為“外部函數(shù)”,可以被其他編譯單位中的函數(shù)調(diào)用; static 型函數(shù)稱為“內(nèi)部函數(shù)”,只能被本編譯單位的函數(shù)調(diào)用。11程序中變量的使用范圍稱為變量的作用域,每個變量都有自己的作用域。按照作用域的范圍可分為兩種: 局部變量 和 全局變量 。12變量的存儲方式可分為“動態(tài)存儲”和“靜態(tài)存儲”兩種。動態(tài)存儲變量包括 auto 和 regiest 兩種類型;靜態(tài)存儲變量包括

33、static 和 extern 兩種類型。靜態(tài)存儲變量若沒有初始化,則默認(rèn)初始值為 0 。static類型變量的值具有繼承性,即本次調(diào)用的初值是上次調(diào)用結(jié)束時變量的值。單元練習(xí)一選擇題1關(guān)于使用函數(shù)的目的,以下不正確的說法是( )。A提高程序的執(zhí)行效率B提高程序的開發(fā)效率C減少程序文件所占內(nèi)存D提高程序可讀性2以下正確的函數(shù)首部是( )。Avoid fun(int x,int y)Bvoid fun(int x;int y)Cvoid fun(int x,y)Dvoid fun(x,y)3設(shè)函數(shù)fun的定義形式為:void fun(char ch, float x) . 則以下對函數(shù)fun的調(diào)

34、用正確的是( )。Afun(abc,3.0);Bt=fun(D,12.3);Cfun(65,3.7);Dfun(65,65);4關(guān)于函數(shù)的實參和形參,以下正確的說法是( )。A實參和對應(yīng)的形參各占用獨立的存儲單元B實參和對應(yīng)的形參共同占用同一存儲單元C只有當(dāng)實參與形參重名時才共同占用存儲單元D形參是虛擬的,不占用存儲單元5當(dāng)調(diào)用函數(shù)時,實參是一個數(shù)組名,則向函數(shù)傳遞的是( )。A數(shù)組的長度B數(shù)組的首地址C數(shù)組的每一個元素的地址D數(shù)組的每一個元素的值6將一個函數(shù)指定為static存儲類別后,該函數(shù)將( )。A既可以被同一源文件中的函數(shù)調(diào)用,也可以被其他源文件中的函數(shù)調(diào)用B只能被同一源文件中的函數(shù)調(diào)用,不能被其他源文件中的函數(shù)調(diào)用C只能被其他源文件中的函數(shù)調(diào)用,不能被同一源文件中的函數(shù)調(diào)用D既不能被同一源文件中的函數(shù)調(diào)用,也不能被其他源文件中的函數(shù)調(diào)用7以下敘述正確的是( )。A全局變量的作用域一定比局部變量的作用域作用范圍大B靜態(tài)static類型變量的生存期貫穿于整個程序的運(yùn)行期間C函數(shù)的形參都屬于全局變量D未在定義語句中賦初值的auto變量和static變量的初值都是隨機(jī)值二填空題1假設(shè)已有#define M(r) r*r,則語句printf(“%d”,M(2+3);的執(zhí)行結(jié)果為 。2以下程序輸出結(jié)果為 。#includ

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論