新聞中心
你們能不能給我通俗地解釋一下在C語(yǔ)言中函數(shù)是什么有什么作用?
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ú)須定義, 也不必在程序中作類(lèi)型說(shuō)明,只需在程序前包含有該函數(shù)原型的頭文件即可在程序中直接調(diào)用。在前面各章的例題中反復(fù)用到printf 、 scanf 、 getchar 、putchar、gets、puts、strcat等函數(shù)均屬此類(lèi)。
(2)用戶定義函數(shù)
由用戶按需要寫(xiě)的函數(shù)。對(duì)于用戶自定義函數(shù), 不僅要在程序中定義函數(shù)本身, 而且在主調(diào)函數(shù)模塊中還必須對(duì)該被調(diào)函數(shù)進(jìn)行類(lèi)型說(shuō)明,然后才能使用。
2. C語(yǔ)言的函數(shù)兼有其它語(yǔ)言中的函數(shù)和過(guò)程兩種功能,從這個(gè)角度看,又可把函數(shù)分為有返回值函數(shù)和無(wú)返回值函數(shù)兩種。
(1)有返回值函數(shù)
此類(lèi)函數(shù)被調(diào)用執(zhí)行完后將向調(diào)用者返回一個(gè)執(zhí)行結(jié)果, 稱為函數(shù)返回值。如數(shù)學(xué)函數(shù)即屬于此類(lèi)函數(shù)。 由用戶定義的這種要返回函數(shù)值的函數(shù),必須在函數(shù)定義和函數(shù)說(shuō)明中明確返回值的類(lèi)型。
(2)無(wú)返回值函數(shù)
此類(lèi)函數(shù)用于完成某項(xiàng)特定的處理任務(wù), 執(zhí)行完成后不向調(diào)用者返回函數(shù)值。這類(lèi)函數(shù)類(lèi)似于其它語(yǔ)言的過(guò)程。 由于函數(shù)無(wú)須返回值,用戶在定義此類(lèi)函數(shù)時(shí)可指定它的返回為“空類(lèi)型”, 空類(lèi)型的說(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ù)傳送。 此類(lèi)函數(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ù)又可從功能角度作以下分類(lèi)。
(1)字符類(lèi)型分類(lèi)函數(shù)
用于對(duì)字符按ASCII碼分類(lèi):字母,數(shù)字,控制字符,分隔符,大小寫(xiě)字母等。
(2)轉(zhuǎn)換函數(shù)
用于字符或字符串的轉(zhuǎn)換;在字符量和各類(lèi)數(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ì)到。
c語(yǔ)言中有關(guān)函數(shù)的說(shuō)法以下正確的是?
標(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正確。
c語(yǔ)言關(guān)于函數(shù)調(diào)用
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ù)類(lèi)型,到內(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
136、以下對(duì)C語(yǔ)言函數(shù)的有關(guān)描述中,正確的是
正確答案是A.
B選項(xiàng)。不能嵌套定義。C選項(xiàng),函數(shù)可以沒(méi)有返回值。D選項(xiàng),沒(méi)有必要放在同一個(gè)c文件中,用其他c文件的函數(shù)可以給其定義的地方函數(shù)名前面加extern修飾。
以下對(duì)C語(yǔ)言函數(shù)的有關(guān)描述中,不正確的描述是哪個(gè)?(選擇是問(wèn)題補(bǔ)充里)
A:不可以嵌套定義,可以遞歸調(diào)用
B:不一定有函數(shù)值,像void類(lèi)型。
C:可以放在多個(gè)文件中,包含相應(yīng)的頭文件,就像庫(kù)函數(shù)的調(diào)用,包含相應(yīng)的頭文件即可。
D:這個(gè)正確,函數(shù)值傳遞,是單向傳遞。
所以ABC
C語(yǔ)言中,下列關(guān)于函數(shù)的敘述中,正確的的? 解釋下為什么,狂謝
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è)網(wǎng)址:http://fisionsoft.com.cn/article/hggdpg.html