版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C語言程序設(shè)計(jì)智能工程學(xué)院“現(xiàn)場(chǎng)課程”
目
錄目錄CONTENTS
函數(shù)概述7.1
函數(shù)定義7.2
函數(shù)的調(diào)用7.3模塊化程序設(shè)計(jì)的核心思想,是將復(fù)雜的大型程序拆解為若干個(gè)獨(dú)立的程序模塊,每個(gè)模塊專注實(shí)現(xiàn)一個(gè)特定功能,通過模塊間的協(xié)作完成整體任務(wù)。在C語言中,函數(shù)正是實(shí)現(xiàn)模塊功能的核心載體——一個(gè)完整的C程序,通常由1個(gè)主函數(shù)(main函數(shù))和若干個(gè)其他函數(shù)構(gòu)成。程序運(yùn)行時(shí),由主函數(shù)作為入口,調(diào)用其他函數(shù);這些被調(diào)用的函數(shù)之間,也可以相互調(diào)用。并且,同一個(gè)函數(shù)可被一個(gè)或多個(gè)函數(shù)調(diào)用任意次數(shù),極大提升了代碼的復(fù)用性,其調(diào)用關(guān)系可通過包含函數(shù)a~f的示意圖直觀呈現(xiàn)。?為了更通俗地理解這一概念,我們可以將編寫程序類比為學(xué)校組織學(xué)生打掃教室衛(wèi)生的過程:主函數(shù)就如同負(fù)責(zé)統(tǒng)籌安排的老師,核心作用是控制程序每一步的執(zhí)行流程,決定何時(shí)調(diào)用哪個(gè)“功能模塊”;而程序中定義的其他函數(shù),就像分工明確的學(xué)生——有的專門負(fù)責(zé)擦窗戶,有的專注擦桌子,有的承擔(dān)掃地任務(wù),每個(gè)函數(shù)都只聚焦于完成自己對(duì)應(yīng)的“特定工作”。從用戶使用的角度看,函數(shù)可分為庫函數(shù)和用戶自定義函數(shù)兩大類,下面分別進(jìn)行介紹。
7.1函數(shù)概述庫函數(shù)是C語言標(biāo)準(zhǔn)庫或第三方庫中預(yù)先實(shí)現(xiàn)并封裝好的函數(shù),它們由編譯器廠商或開發(fā)組織提供,用于完成一些常用的基礎(chǔ)功能,供開發(fā)者直接調(diào)用,無需用戶自己編寫實(shí)現(xiàn)代碼。例如,調(diào)用printf和scanf函數(shù)時(shí)需要在程序開頭包含stdio.h頭文件;調(diào)用sqrt函數(shù)和log函數(shù)時(shí)需要包含math.h頭文件;調(diào)用strcpy函數(shù)和strlen函數(shù)時(shí)需要包含string.h頭文件。庫函數(shù)主要包括以下特點(diǎn):通用性強(qiáng):覆蓋了程序開發(fā)中常見的基礎(chǔ)功能,如輸入輸出(printf、scanf)、字符串處理(strlen、strcpy)、數(shù)學(xué)運(yùn)算(sqrt、sin)、內(nèi)存管理(malloc、free)等。高效可靠:經(jīng)過嚴(yán)格測(cè)試和優(yōu)化,執(zhí)行效率高且穩(wěn)定性強(qiáng),避免了用戶重復(fù)開發(fā)可能出現(xiàn)的錯(cuò)誤。需包含頭文件:使用庫函數(shù)前,必須通過#include指令包含對(duì)應(yīng)的頭文件(頭文件中聲明了函數(shù)的原型)。例如:使用printf、scanf需包含<stdio.h>;使用strlen需包含<string.h>;使用sqrt(開平方)需包含<math.h>。
7.1函數(shù)概述7.1.1庫函數(shù)了解函數(shù)返回值的意義及類型。3了解需要使用的包含文件。4
提示不同的C語言編譯系統(tǒng)提供的庫函數(shù)的數(shù)量和功能會(huì)有一些不同,不過,大多數(shù)基本函數(shù)都是相同的。
7.1函數(shù)概述明確函數(shù)的功能。1了解函數(shù)參數(shù)的數(shù)目和順序,以及每個(gè)參數(shù)的意義及類型。2使用庫函數(shù)時(shí)應(yīng)注意以下幾個(gè)問題:7.1.1庫函數(shù)【例7-1】計(jì)算一個(gè)數(shù)的平方根?!締栴}分析】計(jì)算一個(gè)數(shù)的平方根,需先明確輸入非負(fù)(負(fù)數(shù)無實(shí)根,需提示錯(cuò)誤)。數(shù)據(jù)類型選double以兼容小數(shù)結(jié)果。計(jì)算可直接用<math.h>的sqrt庫函數(shù)(高效精準(zhǔn)),或手動(dòng)實(shí)現(xiàn)牛頓迭代法/二分法(適合學(xué)底層)。還需處理輸入非數(shù)值的情況,輸出可借printf控制精度,核心是先驗(yàn)輸入合法性,再選適配計(jì)算方式輸出結(jié)果。
7.1函數(shù)概述7.1.1庫函數(shù)【參考代碼】#include<stdio.h>//包含輸入輸出庫函數(shù)的頭文件#include<math.h>//包含數(shù)學(xué)庫函數(shù)的頭文件intmain(){doublenum,result;printf("請(qǐng)輸入一個(gè)非負(fù)數(shù):");scanf("%lf",&num);if(num<0){printf("錯(cuò)誤:輸入的數(shù)不能為負(fù)數(shù)!\n");return1;//程序異常退出}result=sqrt(num);printf("%lf的平方根是:%lf\n",num,result);return0;}
7.1函數(shù)概述7.1.1庫函數(shù)【運(yùn)行結(jié)果】程序運(yùn)行結(jié)果如圖所示。
7.1函數(shù)概述7.1.1庫函數(shù)【例7-2】打印固定格式的歡迎信息。【問題分析】該程序含頭文件、自定義函數(shù)printWelcome和主函數(shù)。printWelcome為無參無返回值函數(shù),用printf輸出固定格式歡迎信息;main函數(shù)調(diào)用它實(shí)現(xiàn)功能。體現(xiàn)函數(shù)封裝性,便于復(fù)用與維護(hù),是C語言模塊化編程基礎(chǔ)示例。在C語言中,用戶自定義函數(shù)是由程序員根據(jù)需求自行設(shè)計(jì)的函數(shù),用于封裝特定功能,提高代碼的復(fù)用性和可讀性。
7.1函數(shù)概述7.1.2用戶自定義函數(shù)【參考代碼】#include<stdio.h>//自定義函數(shù):打印固定格式的歡迎信息voidprintWelcome(){printf("====================\n");printf("WelcometoCLang\n");printf("====================\n");}intmain(){printWelcome();//調(diào)用自定義函數(shù)return0;}
7.1函數(shù)概述7.1.2用戶自定義函數(shù)【運(yùn)行結(jié)果】程序運(yùn)行結(jié)果如圖所示。【程序說明】程序先引入標(biāo)準(zhǔn)輸入輸出庫,定義無參無返回值函數(shù)printWelcome,其用printf輸出帶分隔線的歡迎信息。主函數(shù)main調(diào)用該函數(shù)完成打印。此程序展示了C語言自定義函數(shù)的基本用法,通過封裝固定功能實(shí)現(xiàn)代碼復(fù)用,結(jié)構(gòu)清晰易維護(hù)。
7.1函數(shù)概述7.1.2用戶自定義函數(shù)
名師點(diǎn)睛(1)一個(gè)C程序可由一個(gè)或多個(gè)程序模塊組成,每個(gè)程序模塊可作為一個(gè)源程序文件。對(duì)于較大的程序,一般由若干個(gè)源程序文件組成。一個(gè)源程序文件可以為多個(gè)C程序共用。(2)C語言是以源文件為單位進(jìn)行編譯的,一個(gè)源程序可由一個(gè)或多個(gè)函數(shù)組成。(3)在C語言中,不管main函數(shù)在程序中的什么位置,程序總是從main函數(shù)開始執(zhí)行,調(diào)用其他函數(shù)后,最終在main函數(shù)中結(jié)束。(4)所有函數(shù)都是平行的,在定義時(shí)相互獨(dú)立,一個(gè)函數(shù)不屬于另一個(gè)函數(shù)。函數(shù)不可以嵌套定義,但可以相互調(diào)用,main函數(shù)可以調(diào)用任何函數(shù),一個(gè)函數(shù)可以多次被調(diào)用,而其他函數(shù)不能調(diào)用main函數(shù)。
7.1函數(shù)概述7.1.2用戶自定義函數(shù)無參函數(shù)定義1在C語言中,無參函數(shù)是指不接收任何輸入?yún)?shù)的函數(shù),其定義格式為:類型說明符函數(shù)名(){ 函數(shù)體;}或類型說明符函數(shù)名(void){ 函數(shù)體;}函數(shù)名后面括號(hào)內(nèi)的void表示“空”,即函數(shù)沒有參數(shù)。無參函數(shù)的“類型說明符”指定函數(shù)返回值的類型,可以是任何有效類型。省略“類型說明符”時(shí),系統(tǒng)默認(rèn)的函數(shù)返回值類型為int型。當(dāng)函數(shù)只完成特定操作而不需返回函數(shù)值時(shí),可用類型名void,如例7-2中的window,desk和floor函數(shù)。此外,函數(shù)的命名規(guī)則與變量的命名規(guī)則相同。
7.2函數(shù)定義有參函數(shù)定義2在C語言中,有參函數(shù)是指需要接收外部輸入?yún)?shù)的函數(shù),定義有參函數(shù)的一般形式為:類型說明符函數(shù)名(形式參數(shù)聲明){ 函數(shù)體}有參函數(shù)在函數(shù)名后的括號(hào)內(nèi)必須有形式參數(shù)(簡(jiǎn)稱“形參”)表,用于調(diào)用函數(shù)和被調(diào)函數(shù)之間的數(shù)據(jù)傳遞,故必須對(duì)其進(jìn)行類型說明,這由形式參數(shù)聲明部分完成。一般情況下,函數(shù)中需要多少個(gè)原始數(shù)據(jù),函數(shù)的形參表中就應(yīng)有多少個(gè)形參,每個(gè)形參存放一個(gè)數(shù)據(jù),形參之間用逗號(hào)隔開。例如:intmin(inta,intb){ intc; c=a<b?a:b; return(c);}
7.2函數(shù)定義空函數(shù)3C語言中可以有“空函數(shù)”,它的形式為:類型說明符函數(shù)名(){}例如:voidtriangle(){}調(diào)用此函數(shù)時(shí),什么工作也不做。在主調(diào)函數(shù)中寫“triangle();”,表明這里要調(diào)用一個(gè)函數(shù)而現(xiàn)在這個(gè)函數(shù)不起作用,等以后擴(kuò)充函數(shù)功能時(shí)再補(bǔ)上。
7.2函數(shù)定義
目
錄目錄CONTENTS
函數(shù)概述7.1
函數(shù)定義7.2
函數(shù)的調(diào)用7.3函數(shù)調(diào)用的一般形式為:函數(shù)名(實(shí)際參數(shù)表列)需要說明以下幾點(diǎn):如果調(diào)用無參函數(shù),則“實(shí)際參數(shù)表列”可以沒有,但括號(hào)不能省略。實(shí)際參數(shù)(簡(jiǎn)稱“實(shí)參”)表中實(shí)參的類型及個(gè)數(shù)必須與形參相同,并且順序一致。當(dāng)有多個(gè)實(shí)參時(shí),參數(shù)之間用逗號(hào)隔開。實(shí)參可以是常量、有確定值的變量或表達(dá)式及函數(shù)調(diào)用。
7.3函數(shù)的調(diào)用7.3.1函數(shù)的調(diào)用形式123【例7-3】求兩個(gè)實(shí)數(shù)的平均值。【問題分析】在這里我們定義一個(gè)有參函數(shù)用于計(jì)算兩實(shí)數(shù)的平均值。在主函數(shù)中可以多次調(diào)用此函數(shù)用于計(jì)算不同數(shù)值的平均值。
7.3函數(shù)的調(diào)用7.3.1函數(shù)的調(diào)用形式【參考代碼】#include<stdio.h>floataverage(floatx,floaty) /*定義函數(shù)用于計(jì)算兩數(shù)的平均值,x和y為形參*/{floatav; /*定義變量av用于存放平均值*/
av=(x+y)/2.0; /*求平均值*/
returnav; /*返回av的值*/}intmain(){
floata=1.8,b=2.6,c;
c=average(a,b); /*實(shí)參為確定值的變量*/
printf("Theavergaeof%5.2fand%5.2fis%5.2f\n",a,b,c);
c=average(a,a+b); /*實(shí)參為表達(dá)式*/
printf("Theavergaeof%5.2fand%5.2fis%5.2f\n",a,a+b,c);
c=average(2.0,4.0); /*實(shí)參為常量*/
printf("Theavergaeof2.0and4.0is%5.2f\n",c);
c=average(c,average(a,b)); /*實(shí)參為函數(shù)調(diào)用*/
printf("Theavergaeis%5.2f\n",c);}
7.3函數(shù)的調(diào)用7.3.1函數(shù)的調(diào)用形式【運(yùn)行結(jié)果】程序運(yùn)行結(jié)果如圖所示。
7.3函數(shù)的調(diào)用7.3.1函數(shù)的調(diào)用形式【程序說明】求兩個(gè)實(shí)數(shù)的平均值函數(shù)average有兩個(gè)形式參數(shù)x和y,這兩個(gè)參數(shù)用來接收調(diào)用函數(shù)時(shí)傳遞來的變量或表達(dá)式的值。該程序主函數(shù)調(diào)用了四次average函數(shù),第一次調(diào)用時(shí),用形式參數(shù)x和y接收實(shí)參變量a和b的值;第二次調(diào)用時(shí),用表達(dá)式a+b作為實(shí)參之一,將a和a+b的值傳給形參x和y;第三次調(diào)用時(shí),用常量作為實(shí)參,將2.0和4.0的值傳給x和y;第四次調(diào)用時(shí),用函數(shù)調(diào)用average(a,b)作為實(shí)參之一,將c和average(a,b)的值傳給形參x和y。按被調(diào)用函數(shù)在主調(diào)函數(shù)中出現(xiàn)的位置和完成的功能進(jìn)行劃分,函數(shù)調(diào)用有下列三種調(diào)用方式。
7.3函數(shù)的調(diào)用7.3.1函數(shù)的調(diào)用形式把函數(shù)調(diào)用作為一個(gè)語句,如例7-2中的“window();”,這時(shí)不要求函數(shù)帶回值,只要求函數(shù)完成一定的操作。1在表達(dá)式中調(diào)用函數(shù),這種表達(dá)式稱為函數(shù)表達(dá)式。這時(shí)要求函數(shù)帶回一個(gè)確定的值以參加表達(dá)式的運(yùn)算。例如:c=average(a,b); /*將調(diào)用函數(shù)的結(jié)果賦值給c*/d=8*average(a,b); /*將調(diào)用函數(shù)的結(jié)果乘以8后賦值給d*/2將函數(shù)調(diào)用作為另一個(gè)函數(shù)調(diào)用的實(shí)參。例如:c=average(c,average(a,b));此處把a(bǔ)verage(a,b)作為average函數(shù)的一個(gè)參數(shù)。3
7.3函數(shù)的調(diào)用7.3.1函數(shù)的調(diào)用形式在一個(gè)函數(shù)調(diào)用另一個(gè)函數(shù)時(shí),如果使用用戶自定義函數(shù),并且該函數(shù)與主調(diào)函數(shù)在同一個(gè)文件中,此時(shí)一般被調(diào)用函數(shù)應(yīng)放在主調(diào)函數(shù)之前定義。若被調(diào)用函數(shù)的定義在主調(diào)函數(shù)之后出現(xiàn),就必須在主調(diào)函數(shù)中對(duì)被調(diào)函數(shù)加以聲明。函數(shù)聲明的一般形式為:類型說明符函數(shù)名(形參表);函數(shù)聲明實(shí)際上就是函數(shù)定義時(shí)的函數(shù)頭,后面加分號(hào)構(gòu)成一條聲明語句。函數(shù)聲明與函數(shù)頭的區(qū)別是,函數(shù)聲明的形參表中可以只寫類型名,而不寫形參名。例如,下面兩種寫法都是正確的:floataverage(floatx,floaty);floataverage(float,float);【例7-4】輸入兩個(gè)實(shí)數(shù),用一個(gè)函數(shù)求出兩數(shù)中較小數(shù)?!締栴}分析】分別編寫min函數(shù)和main函數(shù),main函數(shù)在min函數(shù)之前,需要在main函數(shù)中對(duì)min函數(shù)進(jìn)行聲明。
7.3函數(shù)的調(diào)用7.3.2函數(shù)聲明【參考代碼】#include<stdio.h>intmain(){floatx,y,z;
floatmin(floata,floatb); /*函數(shù)聲明*/
printf("Pleaseentertwonumbers:");
scanf("%f
%f",&x,&y);
z=min(x,y); /*函數(shù)調(diào)用*/
printf("minis%f\n",z); /*輸出結(jié)果*/
return0;}floatmin(floata,floatb) /*函數(shù)定義*/{
floatc;
if(a>b) /*比較大小,將較小數(shù)賦值給c*/ c=b;
else c=a;
returnc; /*返回值為c*/}
7.3函數(shù)的調(diào)用7.3.2函數(shù)聲明【運(yùn)行結(jié)果】程序運(yùn)行結(jié)果如圖所示。
7.3函數(shù)的調(diào)用7.3.2函數(shù)聲明【程序說明】程序第5行是對(duì)被調(diào)用的min函數(shù)的聲明:floatmin(floata,floatb);從程序中可以看到,main函數(shù)的位置在min函數(shù)的前面,而程序編譯時(shí)是從上到下逐行進(jìn)行的。如果沒有對(duì)min函數(shù)的聲明,當(dāng)編譯到程序第8行(z=min(x,y);)時(shí),編譯系統(tǒng)將無法確定min是不是函數(shù)名,也無法判斷實(shí)參(x和y)的類型和格式是否正確,因此,在調(diào)用函數(shù)前必須對(duì)被調(diào)函數(shù)加以聲明。C語言規(guī)定以下幾種情況,可以不在主調(diào)函數(shù)中對(duì)被調(diào)函數(shù)進(jìn)行聲明:如果被調(diào)函數(shù)寫在主調(diào)函數(shù)的前面,可以不必進(jìn)行聲明。例7-2和例7-3均屬于此種情況,在此不再贅述。1如果函數(shù)的返回值為整型或字符型,可以不必進(jìn)行聲明。2
7.3函數(shù)的調(diào)用7.3.2函數(shù)聲明【例7-5】通過自定義函數(shù),求任意兩個(gè)整數(shù)的和?!緟⒖即a】#include<stdio.h>intsum(int,int);
intmain(){inta,b;
printf("inputtwointegers:");
scanf("%d
%d",&a,&b);
printf("Thesumof%dand%dis%d\n",a,b,sum(a,b)); /*調(diào)用函數(shù)*/
return0;}intsum(inta,intb) /*函數(shù)定義*/{
return(a+b); /*返回a+b的值*/}
7.3函數(shù)的調(diào)用7.3.2函數(shù)聲明【運(yùn)行結(jié)果】程序運(yùn)行結(jié)果如圖所示。
7.3函數(shù)的調(diào)用7.3.2函數(shù)聲明如果在所有函數(shù)定義之前,在源程序文件的開頭,即在函數(shù)的外部已經(jīng)對(duì)函數(shù)進(jìn)行了聲明,則在各個(gè)調(diào)用函數(shù)中不必再對(duì)所調(diào)用的函數(shù)進(jìn)行聲明。例如,例7-4程序中也可將第5行函數(shù)聲明(floatmin(floata,floatb);)放到main函數(shù)之前。3
名師點(diǎn)睛在調(diào)用函數(shù)前,可以在主調(diào)函數(shù)內(nèi)部對(duì)被調(diào)函數(shù)進(jìn)行聲明。如果使用這種聲明方式,則本次函數(shù)聲明只在主調(diào)函數(shù)內(nèi)部有效,也就是說,如果其他函數(shù)中也需要調(diào)用該被調(diào)函數(shù),在那些函數(shù)中對(duì)被調(diào)函數(shù)仍然需要進(jìn)行聲明。如果已經(jīng)在文件的開頭(或在函數(shù)前)對(duì)某函數(shù)進(jìn)行了聲明,則從聲明處開始,在本文件中對(duì)聲明函數(shù)的調(diào)用不需要再次進(jìn)行聲明。
7.3函數(shù)的調(diào)用7.3.2函數(shù)聲明在調(diào)用有參函數(shù)時(shí),主調(diào)函數(shù)和被調(diào)函數(shù)之間往往有數(shù)據(jù)傳遞關(guān)系。前面已經(jīng)介紹過,在定義函數(shù)時(shí)函數(shù)名后面圓括號(hào)內(nèi)的為“形式參數(shù)”(簡(jiǎn)稱“形參”),用于接收主調(diào)函數(shù)傳來的數(shù)據(jù);在調(diào)用函數(shù)時(shí),函數(shù)調(diào)用語句的函數(shù)名后面圓括號(hào)中的內(nèi)容為“實(shí)際參數(shù)”(簡(jiǎn)稱“實(shí)參”)。在調(diào)用函數(shù)過程中,系統(tǒng)會(huì)把實(shí)參的值傳遞給被調(diào)用函數(shù)的形參。該值在函數(shù)調(diào)用期間有效,可以參加該函數(shù)的運(yùn)算。例如,例7-4程序中第12~20行是一個(gè)被調(diào)函數(shù)(注意第12行的末尾沒有分號(hào))。第12行定義了一個(gè)函數(shù)名為min,函數(shù)類型為float的函數(shù)。指定兩個(gè)形參a和b,形參的類型為float。主調(diào)函數(shù)main的第8行(z=min(x,y);)是一個(gè)函數(shù)調(diào)用語句,表示調(diào)用min函數(shù),此處函數(shù)名min后面圓括號(hào)內(nèi)的x和y是實(shí)參。x和y是主調(diào)函數(shù)main函數(shù)中定義的變量,a和b是被調(diào)函數(shù)min中定義的形參變量,通過函數(shù)調(diào)用,使兩個(gè)函數(shù)之間發(fā)生數(shù)據(jù)傳遞。實(shí)參x和y的值按順序?qū)?yīng)傳遞給被調(diào)函數(shù)中的形參a和b,x傳給a,y傳給b。在執(zhí)行被調(diào)函數(shù)min后,其返回值c作為函數(shù)的返回值返回給主調(diào)函數(shù),賦給變量z。
7.3函數(shù)的調(diào)用7.3.3函數(shù)的參數(shù)傳遞
名師點(diǎn)睛關(guān)于形參和實(shí)參的說明如下:(1)函數(shù)中指定的形參變量,在未出現(xiàn)函數(shù)調(diào)用時(shí),并不占用內(nèi)存單元。在發(fā)生函數(shù)調(diào)用時(shí),被調(diào)函數(shù)的形參被臨時(shí)分配內(nèi)存單元,調(diào)用結(jié)束后,形參所占的內(nèi)存單元被自動(dòng)釋放。(2)函數(shù)一旦被定義,就可多次調(diào)用,但必須保證形參和實(shí)參數(shù)據(jù)類型一致。如果實(shí)參和形參數(shù)據(jù)類型不一致,則按不同類型數(shù)值的賦值規(guī)則進(jìn)行轉(zhuǎn)換。例如,實(shí)參a為float型變量,其值為5.8,而形參x為int型,則在傳遞時(shí)先將實(shí)數(shù)5.8轉(zhuǎn)換成整數(shù)5,然后送到形參x。(3)實(shí)參可以是常量、變量或表達(dá)式,但要求它們有確定的值。(4)在被定義的函數(shù)中,必須指定形參的數(shù)據(jù)類型。(5)C語言規(guī)定,實(shí)參對(duì)形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實(shí)參傳給形參,而不能由形參傳回給實(shí)參。
7.3函數(shù)的調(diào)用7.3.3函數(shù)的參數(shù)傳遞【例7-6】閱讀下面的程序,試分析運(yùn)行結(jié)果。#include<stdio.h>intswap(inti,intj){intt;
t=i;i=j;j=t;
printf("Infunctioni=%d,j=%d\n",i,j);}intmain(){
inti=2,j=3;
swap(i,j);
printf("Outfunctioni=%d,j=%d\n",i,j);
return0;}
7.3函數(shù)的調(diào)用7.3.3函數(shù)的參數(shù)傳遞【運(yùn)行結(jié)果】程序運(yùn)行結(jié)果如圖所示?!境绦蛘f明】該程序中的swap函數(shù)的作用是將形參i和j兩數(shù)互換,因此,在函數(shù)內(nèi)部輸出i和j時(shí),兩數(shù)實(shí)現(xiàn)了交換。但是,C語言中規(guī)定:只能把實(shí)參數(shù)值傳遞給形參,而形參不能把數(shù)值傳遞給實(shí)參。因此,main函數(shù)中的i和j還是原來的值,沒有實(shí)現(xiàn)交換。
7.3函數(shù)的調(diào)用7.3.3函數(shù)的參數(shù)傳遞一般情況下,主調(diào)函數(shù)調(diào)用完被調(diào)函數(shù)后,都希望能夠得到一個(gè)確定的值,這就是函數(shù)的返回值。在C語言中,函數(shù)返回值是通過return語句來實(shí)現(xiàn)的。return語句的一般形式有三種:return(表達(dá)式);return表達(dá)式;return;下面對(duì)返回語句和函數(shù)返回值作一些說明。(1)return語句可使函數(shù)從被調(diào)函數(shù)中退出,返回到調(diào)用它的代碼處,并向調(diào)用函數(shù)返回一個(gè)確定的值。如果需要從被調(diào)函數(shù)帶回一個(gè)函數(shù)值(供主調(diào)函數(shù)使用),被調(diào)函數(shù)中必須包含return語句且return中帶表達(dá)式,此時(shí)使用return語句的前兩種形式均可。如果不需要從被調(diào)函數(shù)帶回函數(shù)值,應(yīng)該用不帶表達(dá)式的return語句;也可以不要return語句,這時(shí)被調(diào)函數(shù)一直執(zhí)行到函數(shù)體的末尾,然后返回
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年外派至中鐵建昆侖高速公路運(yùn)營管理有限公司南充過境高速及德遂高速公路路巡隊(duì)員招聘?jìng)淇碱}庫完整答案詳解
- 2026年中共寧德市委黨校招聘勞務(wù)派遣人員7人備考題庫及1套完整答案詳解
- 2026年《中國文化報(bào)》社有限公司招聘?jìng)淇碱}庫及一套參考答案詳解
- 2026年中煤科工集團(tuán)武漢設(shè)計(jì)研究院有限公司招聘?jìng)淇碱}庫及參考答案詳解一套
- 2026年【張家堡社區(qū)衛(wèi)生服務(wù)中心】招聘5人備考題庫帶答案詳解
- 2026年合肥市規(guī)劃設(shè)計(jì)研究院公開招聘工作人員備考題庫及一套參考答案詳解
- 2026年興山縣公開招聘社區(qū)專職工作者(網(wǎng)格員)備考題庫帶答案詳解
- 2026年中國煤炭地質(zhì)總局水文地質(zhì)局招聘?jìng)淇碱}庫及一套完整答案詳解
- 2026年關(guān)于滄州市第二中學(xué)公開選聘教師的備考題庫完整參考答案詳解
- 2026年外派至中鐵建昆侖高速公路運(yùn)營管理有限公司德遂高速公路路巡隊(duì)員招聘?jìng)淇碱}庫及完整答案詳解1套
- 2025浙江紹興越城黃酒小鎮(zhèn)旅游開發(fā)有限公司編外人員第二次招聘總筆試歷年典型考點(diǎn)題庫附帶答案詳解2套試卷
- DB54∕T 0378-2024 牦牛短期育肥技術(shù)規(guī)范
- 2025 年中國裝配式裝修產(chǎn)業(yè)發(fā)展研究報(bào)告
- 戶外拓展活動(dòng)中中級(jí)攀巖指導(dǎo)員職責(zé)分工計(jì)劃
- 數(shù)據(jù)中心配電知識(shí)培訓(xùn)課件
- 數(shù)據(jù)標(biāo)注員專業(yè)技能考核試卷及答案
- 傳染病信息報(bào)告管理規(guī)范2025版
- 海南自貿(mào)港課件
- 北京市東城區(qū)2026屆數(shù)學(xué)九上期末考試試題含解析
- 叉車盲區(qū)安全培訓(xùn)記錄課件
- 自然資源部所屬單位2025年度公開招聘工作人員(第三批)筆試模擬試題含答案詳解
評(píng)論
0/150
提交評(píng)論