C源程序是由函數(shù)組成的。
成都創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的仙居網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
C程序是由一組或是變量或是函數(shù)的外部對(duì)象組的。 函數(shù)是一個(gè)自我包含的完成一定相關(guān)功能的執(zhí)行代碼段。
從函數(shù)定義的角度看,函數(shù)可分為庫(kù)函數(shù)和用戶定義函數(shù)兩種。
1)庫(kù)函數(shù)
由C系統(tǒng)提供,用戶無(wú)須定義, 也不必在程序中作類型說(shuō)明,只需在程序前包含有該函數(shù)原型的頭文件即可在程序中直接調(diào)用。在前面各章的例題中反復(fù)用到printf 、 scanf 、 getchar 、putchar、gets、puts、strcat等函數(shù)均屬此類。
(2)用戶定義函數(shù)
由用戶按需要寫(xiě)的函數(shù)。對(duì)于用戶自定義函數(shù), 不僅要在程序中定義函數(shù)本身, 而且在主調(diào)函數(shù)模塊中還必須對(duì)該被調(diào)函數(shù)進(jìn)行類型說(shuō)明,然后才能使用。
2. C語(yǔ)言的函數(shù)兼有其它語(yǔ)言中的函數(shù)和過(guò)程兩種功能,從這個(gè)角度看,又可把函數(shù)分為有返回值函數(shù)和無(wú)返回值函數(shù)兩種。
(1)有返回值函數(shù)
此類函數(shù)被調(diào)用執(zhí)行完后將向調(diào)用者返回一個(gè)執(zhí)行結(jié)果, 稱為函數(shù)返回值。如數(shù)學(xué)函數(shù)即屬于此類函數(shù)。 由用戶定義的這種要返回函數(shù)值的函數(shù),必須在函數(shù)定義和函數(shù)說(shuō)明中明確返回值的類型。
(2)無(wú)返回值函數(shù)
此類函數(shù)用于完成某項(xiàng)特定的處理任務(wù), 執(zhí)行完成后不向調(diào)用者返回函數(shù)值。這類函數(shù)類似于其它語(yǔ)言的過(guò)程。 由于函數(shù)無(wú)須返回值,用戶在定義此類函數(shù)時(shí)可指定它的返回為“空類型”, 空類型的說(shuō)明符為“void”。
3. 從主調(diào)函數(shù)和被調(diào)函數(shù)之間數(shù)據(jù)傳送的角度看又可分為無(wú)參函數(shù)和有參函數(shù)兩種。
(1)無(wú)參函數(shù)
函數(shù)定義、函數(shù)說(shuō)明及函數(shù)調(diào)用中均不帶參數(shù)。 主調(diào)函數(shù)和被調(diào)函數(shù)之間不進(jìn)行參數(shù)傳送。 此類函數(shù)通常用來(lái)完成一組指定的功能,可以返回或不返回函數(shù)值。
(2)有參函數(shù)
也稱為帶參函數(shù)。在函數(shù)定義及函數(shù)說(shuō)明時(shí)都有參數(shù), 稱為形式參數(shù)(簡(jiǎn)稱為形參)。在函數(shù)調(diào)用時(shí)也必須給出參數(shù), 稱為實(shí)際參數(shù)(簡(jiǎn)稱為實(shí)參)。 進(jìn)行函數(shù)調(diào)用時(shí),主調(diào)函數(shù)將把實(shí)參的值傳送給形參,供被調(diào)函數(shù)使用。
4. C語(yǔ)言提供了極為豐富的庫(kù)函數(shù), 這些庫(kù)函數(shù)又可從功能角度作以下分類。
(1)字符類型分類函數(shù)
用于對(duì)字符按ASCII碼分類:字母,數(shù)字,控制字符,分隔符,大小寫(xiě)字母等。
(2)轉(zhuǎn)換函數(shù)
用于字符或字符串的轉(zhuǎn)換;在字符量和各類數(shù)字量 (整型, 實(shí)型等)之間進(jìn)行轉(zhuǎn)換;在大、小寫(xiě)之間進(jìn)行轉(zhuǎn)換。
(3)目錄路徑函數(shù)
用于文件目錄和路徑操作。
(4)診斷函數(shù)
用于內(nèi)部錯(cuò)誤檢測(cè)。
(5)圖形函數(shù)
用于屏幕管理和各種圖形功能。
(6)輸入輸出函數(shù)
用于完成輸入輸出功能。
(7)接口函數(shù)
用于與DOS,BIOS和硬件的接口。
(8)字符串函數(shù)
用于字符串操作和處理。
(9)內(nèi)存管理函數(shù)
用于內(nèi)存管理。
(10)數(shù)學(xué)函數(shù)
用于數(shù)學(xué)函數(shù)計(jì)算。
(11)日期和時(shí)間函數(shù)
用于日期,時(shí)間轉(zhuǎn)換操作。
(12)進(jìn)程控制函數(shù)
用于進(jìn)程管理和控制。
(13)其它函數(shù)
用于其它各種功能。
函數(shù)可以避免重復(fù)的書(shū)寫(xiě)。比如一個(gè)運(yùn)算要在不同的地方多次進(jìn)行,就不必把這么多行都寫(xiě)一遍,調(diào)用一個(gè)函數(shù)就行了。同時(shí)減少不必要的變量。從而使程序大大簡(jiǎn)化。
庫(kù)函數(shù)就比較高深了,它的好處我現(xiàn)在還沒(méi)有切實(shí)體會(huì)到。
標(biāo)準(zhǔn)ANSI/ISO C不允許函數(shù)的嵌套定義。某些方言如GNU C允許函數(shù)的嵌套定義,并有限地支持閉包。學(xué)習(xí)C語(yǔ)言應(yīng)以標(biāo)準(zhǔn)C為準(zhǔn),所以,C正確。fun((2,3), (4,5+6,7))含有2個(gè)參數(shù),每個(gè)參數(shù)均為一個(gè)逗號(hào)表達(dá)式,值分別為3和7,相當(dāng)于fun(3, 7)。所以,B正確。
1iscore是整數(shù)數(shù)組,iscore[10]是一個(gè)整數(shù),并且這個(gè)整數(shù)已經(jīng)超出了數(shù)組定義時(shí)的內(nèi)存范圍;average( )函數(shù)的參數(shù)為數(shù)組,你提供個(gè)整數(shù)當(dāng)參數(shù)當(dāng)然不對(duì)
2average函數(shù),不論是從函數(shù)類型,到內(nèi)部實(shí)現(xiàn),計(jì)算的平均數(shù)都是整型,所以輸出就沒(méi)小數(shù)了。
average函數(shù) 改為 float 型,average函數(shù)和main函數(shù)中的iresult 改為 float 型;
main中 printf("%d",iresult); %d改為%f
正確答案是A.
B選項(xiàng)。不能嵌套定義。C選項(xiàng),函數(shù)可以沒(méi)有返回值。D選項(xiàng),沒(méi)有必要放在同一個(gè)c文件中,用其他c文件的函數(shù)可以給其定義的地方函數(shù)名前面加extern修飾。
A:不可以嵌套定義,可以遞歸調(diào)用
B:不一定有函數(shù)值,像void類型。
C:可以放在多個(gè)文件中,包含相應(yīng)的頭文件,就像庫(kù)函數(shù)的調(diào)用,包含相應(yīng)的頭文件即可。
D:這個(gè)正確,函數(shù)值傳遞,是單向傳遞。
所以ABC
C正確
A.函數(shù)可以沒(méi)有返回值,如:
void Show(int x)
{
printf("%d\n",x);
}
這個(gè)函數(shù)的功能僅僅是將傳入的x輸出到控制臺(tái),它沒(méi)有返回值,但是可用。
B.函數(shù)可以嵌套調(diào)用,但不可以嵌套定義。標(biāo)準(zhǔn)C語(yǔ)言不支持嵌套定義,但是有編譯器是支持的,如gcc,下面這個(gè)程序在gcc編譯和運(yùn)行是沒(méi)有任何問(wèn)題的,在VC6.0中編譯不過(guò),本題中指的應(yīng)該是標(biāo)準(zhǔn)C語(yǔ)言。
#includestdlib.h
#includestdio.h
int main()
{
void f(int i)//嵌套定義函數(shù)體
{
printf("%d\n",i);
}
int i=1;
f(i);
i=2;
f(i);
return 0;
}
C,對(duì)。函數(shù)調(diào)用中發(fā)生的數(shù)據(jù)傳送是單向的。即只能把實(shí)參的值傳送給形參,而不能把形參的值反向地傳送給實(shí)參。 因此在函數(shù)調(diào)用過(guò)程中,形參的值發(fā)生改變,而實(shí)參中的值不會(huì)變化,如想實(shí)參的值也改變就必須傳入指針。
D.main函數(shù)也是一個(gè)函數(shù),將它看成普通的函數(shù)就可以了,它可以放在任何的位置,只是C語(yǔ)言是以main為入口的,那么在執(zhí)行main函數(shù)時(shí),在它(main)的前面就必須要有其他函數(shù)的聲明或者定義。如下面例子的兩種形式都是正確的。
形式1,其它函數(shù)的定義放在main函數(shù)前。
#includestdio.h
void Show(int x) //函數(shù)定義
{
printf("%d\n",x);
}
void main()
{
int x = 0;
Show(0);
}
形式2,其他函數(shù)定義放在main函數(shù)后。
#includestdio.h
void Show(int x);//函數(shù)聲明
void main()
{
int x = 0;
Show(0);
}
void Show(int x) //函數(shù)定義
{
printf("%d\n",x);
}
標(biāo)題名稱:在c語(yǔ)言中下面關(guān)于函數(shù) 在C語(yǔ)言函數(shù)中,哪個(gè)函數(shù)是必須的?
網(wǎng)頁(yè)URL:http://www.muchs.cn/article36/hggdpg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、動(dòng)態(tài)網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化、域名注冊(cè)、移動(dòng)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)