freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c語(yǔ)言程序設(shè)計(jì)(三)ppt-在線瀏覽

2025-01-24 21:49本頁(yè)面
  

【正文】 調(diào)用時(shí)實(shí)參求值的順序 安 慶 師 范 學(xué) 院 計(jì) 算 機(jī) 與 信 息 學(xué) 院 30 為什么運(yùn)行結(jié)果不是 1呢?這是因?yàn)橄到y(tǒng) (TC和VC相同 )對(duì)實(shí)參求值順序是從右到左,即相當(dāng)于 f(2,2),所以程序運(yùn)行結(jié)果為 0。 若 k的原值為 1,則在 TC系統(tǒng)對(duì)實(shí)參求值順序是從右到左,運(yùn)行結(jié)果為 2,1;但在 VC系統(tǒng)對(duì)實(shí)參求值順序是從左到右,運(yùn)行結(jié)果為 1,1 。 【 分析 】 安 慶 師 范 學(xué) 院 計(jì) 算 機(jī) 與 信 息 學(xué) 院 31 函數(shù)值的返回 函數(shù)值的返回是通過(guò)被調(diào)函數(shù)中的 return語(yǔ)句實(shí)現(xiàn)的。 return語(yǔ)句的一般形式為: return(表達(dá)式 ); 或 return 表達(dá)式; 【 功能 】 計(jì)算表達(dá)式的值,并作為函數(shù)值返回給主調(diào)函數(shù)。 安 慶 師 范 學(xué) 院 計(jì) 算 機(jī) 與 信 息 學(xué) 院 32 【 說(shuō)明 】 (1) return語(yǔ)句也可以不帶表達(dá)式部分,如: return。 (2) 如果不需要從被調(diào)函數(shù)返回確定的函數(shù)值,被調(diào)函數(shù)可以沒(méi)有 return語(yǔ)句,這時(shí)當(dāng)程序執(zhí)行到函數(shù)體的右括號(hào)“ }”時(shí)自動(dòng)返回到主調(diào)函數(shù)中。如果兩者不一致,以函數(shù)定義的類(lèi)型為準(zhǔn),系統(tǒng)將自動(dòng)進(jìn)行類(lèi)型的轉(zhuǎn)換。 (5) 為了明確表示“不帶回值”,可將函數(shù)定義為“空類(lèi)型”,類(lèi)型說(shuō)明符為“ void”。 安 慶 師 范 學(xué) 院 計(jì) 算 機(jī) 與 信 息 學(xué) 院 33 對(duì)被調(diào)函數(shù)的聲明 一個(gè)函數(shù)能被另一個(gè)函數(shù)調(diào)用需要以下幾個(gè)條件: (1)該函數(shù)必須已經(jīng)存在,無(wú)論是庫(kù)函數(shù)還是用戶自定義函數(shù) (先定義后調(diào)用 )。 (3)調(diào)用庫(kù)函數(shù)時(shí),不需要對(duì)函數(shù)作聲明,只需在源程序的開(kāi)頭用 include命令將相關(guān)的頭文件包含進(jìn)來(lái)。 即是函數(shù)首部加“ 。也可以只給出形參類(lèi)型,而不出現(xiàn)形參變量名,如: int max( int , int )。 安 慶 師 范 學(xué) 院 計(jì) 算 機(jī) 與 信 息 學(xué) 院 35 【 解釋 】 函數(shù)定義 是指對(duì)函數(shù)功能的確立,包括指定函數(shù)名、函數(shù)值的類(lèi)型、形參及其類(lèi)型、函數(shù)體等。 函數(shù)聲明 是指對(duì)已定義函數(shù)的返回值和形參進(jìn)行類(lèi)型說(shuō)明,它只包括函數(shù)名、函數(shù)類(lèi)型、形參類(lèi)型等,不包括函數(shù)體。 安 慶 師 范 學(xué) 院 計(jì) 算 機(jī) 與 信 息 學(xué) 院 36 有幾種情況可以省略對(duì)被調(diào)函數(shù)的聲明: 1. 如果被調(diào)函數(shù)的定義出現(xiàn)在主調(diào)函數(shù)之前,則可以省略聲明。 3. 如果函數(shù)類(lèi)型為整型,則在主調(diào)函數(shù)中可以不要聲明。為了程序的安全,建議都加以聲明為好。 float aver(int x, int y)。 scanf(%d,%d,amp。b)。 /*函數(shù)調(diào)用 */ printf(ave=%\n,ave)。 z=(x+y)/。 } 安 慶 師 范 學(xué) 院 計(jì) 算 機(jī) 與 信 息 學(xué) 院 38 程序運(yùn)行時(shí),若輸入 50,60↙ 運(yùn)行結(jié)果如圖所示 : 安 慶 師 范 學(xué) 院 計(jì) 算 機(jī) 與 信 息 學(xué) 院 39 函數(shù)調(diào)用時(shí)的參數(shù)傳遞 函數(shù)的參數(shù)有形參和實(shí)參兩種。 實(shí)參出現(xiàn)在主調(diào)函數(shù)的調(diào)用語(yǔ)句中,其作用是把實(shí)參的值傳遞給被調(diào)函數(shù)的形參,從而實(shí)現(xiàn)主調(diào)函數(shù)向被調(diào)函數(shù)傳遞數(shù)據(jù)的功能。 就參數(shù)傳遞而言,函數(shù)調(diào)用有傳值調(diào)用和傳地址調(diào)用兩種。 (2)在函數(shù)調(diào)用時(shí),只能把實(shí)參的值 (無(wú)論是數(shù)值還是地址值 )傳遞給形參,而不能把形參的值傳遞給實(shí)參。 安 慶 師 范 學(xué) 院 計(jì) 算 機(jī) 與 信 息 學(xué) 院 41 函數(shù)的傳值調(diào)用 函數(shù)的傳值調(diào)用是指在函數(shù)調(diào)用時(shí)將實(shí)參的數(shù)值傳遞給形參變量。 在實(shí)參也是變量的情況下,形參和實(shí)參各自在不同的函數(shù)中占用存儲(chǔ)空間,在被調(diào)函數(shù)內(nèi)部對(duì)形參的任何操作,其結(jié)果只能影響形參變量的值,而不會(huì)影響到實(shí)參變量的值。 printf(a=%d,b=%d\n,a,b)。a=b。 printf(a=%d,b=%d\n,a,b)。 swap(x,y)。 } 程序運(yùn)行結(jié)果如圖所示 安 慶 師 范 學(xué) 院 計(jì) 算 機(jī) 與 信 息 學(xué) 院 43 swap函數(shù)的功能是交換兩個(gè)參數(shù)的值。 【 分析 】 安 慶 師 范 學(xué) 院 計(jì) 算 機(jī) 與 信 息 學(xué) 院 44 數(shù)組元素作實(shí)參的情況: 數(shù)組元素的實(shí)質(zhì)與普通變量相同,因此用數(shù)組元素作為函數(shù)的實(shí)參與普通變量作為函數(shù)實(shí)參一樣,都是把值傳遞給形參,即實(shí)現(xiàn)單向的值傳遞。 for(i=0。i++)printf(%3d,a[i])。 for(i=0。i++)fun(a[i])。 for(i=0。i++)printf(%3d,a[i])。 } fun (int y) /*函數(shù)定義 */ {printf(%3d,y*=2)。 安 慶 師 范 學(xué) 院 計(jì) 算 機(jī) 與 信 息 學(xué) 院 46 地址傳遞是將數(shù)據(jù)的存儲(chǔ)地址作為實(shí)參傳遞給形參。 下面分別就指針、一維數(shù)組、二維數(shù)組和字符串指針作函數(shù)參數(shù)的情況進(jìn)行討論。 在這種情況下,傳址調(diào)用以后,形參存放地址的改變不會(huì)使得實(shí)參所存地址改變,地址傳遞是單向的。 void swap(int *p1, int *p2) { int *p。 p=p1。 p2=p。 } main() { int i1, i2, *pt1=amp。i2。 scanf(%d%d, amp。i2)。 /*試圖通過(guò) swap函數(shù)交換指針變量 pt1與 pt2的指向 */ printf(*pt1=%d, *pt2=%d\n,*pt1, *pt2)。 【 分析 】 本例 swap函數(shù)的作用是交換形參指針變量 p1和p2的值。 安 慶 師 范 學(xué) 院 計(jì) 算 機(jī) 與 信 息 學(xué) 院 50 但是,由于傳址調(diào)用 地址傳遞的單向性 , pt1和 pt2存放的地址值并沒(méi)有改變。 安 慶 師 范 學(xué) 院 計(jì) 算 機(jī) 與 信 息 學(xué) 院 51 (2)指針作函數(shù)參數(shù)的作用 由于形參指針變量的指向操作可以引起它所指向的主調(diào)函數(shù)變量值的變化,若有多個(gè)指針變量形參,它們分別指向主調(diào)函數(shù)中作為存放運(yùn)算結(jié)果的變量,則可以將被調(diào)函數(shù)中的多個(gè)計(jì)算結(jié)果數(shù)據(jù)傳回主調(diào)函數(shù) (注意以前被調(diào)函數(shù)只能通過(guò)函數(shù)值傳回一個(gè)運(yùn)算結(jié)果 )。 int ast( int x, int y, int *cp, int *dp) {*cp=x+y。} main() {int a=4, b=3, c, d。c, amp。 printf(c=%d, d=%d\n, c, d)。 安 慶 師 范 學(xué) 院 計(jì) 算 機(jī) 與 信 息 學(xué) 院 52 表 81數(shù)組指針作為函數(shù)參數(shù)的形式 實(shí)際參數(shù) 形式參數(shù) 數(shù)組名 數(shù)組 (實(shí)質(zhì)仍為指針變量 ) 數(shù)組名 指針變量 指針變量 (已存數(shù)組首地址 ) 數(shù)組 (實(shí)質(zhì)仍為指針變量 ) 指針變量 (已存數(shù)組首地址 ) 指針變量 數(shù)組指針作為函數(shù)參數(shù)的作用: 形參指針變量接受主調(diào)函數(shù)數(shù)組的首地址,就可以通過(guò)指針變量的指向操作改變主調(diào)函數(shù)數(shù)組元素的值。主函數(shù)輸入 10個(gè)整數(shù),調(diào)用 sort函數(shù)對(duì)輸入的數(shù)據(jù)進(jìn)行排序,并在主函數(shù)中輸出。因此形參不能用普通變量,而要使用指針變量;實(shí)參用數(shù)組名。程序如下: 安 慶 師 范 學(xué) 院 計(jì) 算 機(jī) 與 信 息 學(xué) 院 54 /* */ include main() { void sort(int *x, int n)。 for(i=0。i++) scanf(%d,amp。 sort(a, 10)。i10。 /*輸出結(jié)果 */ printf(\n)。 for(i=0。i++) /*數(shù)組排序 */ for(j=i+1。j++) if(*(x+i)*(x+j)) /* *(x+i)即 a[i], *(x+i)也可寫(xiě)成 x[i] */ {t=*(x+i)。*(x+j)=t。 安 慶 師 范 學(xué) 院 計(jì) 算 機(jī) 與 信 息 學(xué) 院 56 【 說(shuō)明 】 (1)形參也可以用數(shù)組,即 sort函數(shù)的首部可寫(xiě)成:void sort(int x[ ], int n) (2)由于形參 x數(shù)組和主函數(shù)的 a數(shù)組都是局部數(shù)組,只在各自所在的函數(shù)起作用,因此,形參數(shù)組也可以與主函數(shù)中的數(shù)組同名, sort函數(shù)的首部可寫(xiě)成: void sort(int a[], int n),增加了可讀性。 (3)x數(shù)組的元素個(gè)數(shù)沒(méi)有寫(xiě) (當(dāng)然可以寫(xiě) ),因?yàn)樾螀?shù)組的實(shí)質(zhì)是指針變量,目的是接受實(shí)參數(shù)組名首地址,與元素個(gè)數(shù)無(wú)關(guān),所以一般不寫(xiě)元素個(gè)數(shù),而由形參 n接受實(shí)參的整數(shù) (此例為 10)作為元素個(gè)數(shù)。 安 慶 師 范 學(xué) 院 計(jì) 算 機(jī) 與 信 息 學(xué) 院 57 【 例 813】 輸入 N (設(shè)為 10)個(gè)整數(shù),將其中的全部奇數(shù)輸出。 printf(輸入 10個(gè)數(shù) :\n)。 iN。 } void outputodd(int *a) {int i。 iN。 printf(\n)。 input(arr)。 } 安 慶 師 范 學(xué) 院 計(jì) 算 機(jī) 與 信 息 學(xué) 院 58 本例程序有三個(gè)函數(shù),操作的都是同一個(gè)數(shù)組,即 main函數(shù)的 arr數(shù)組。元素個(gè)數(shù)由符號(hào)常量 N定義。 安 慶 師 范 學(xué) 院 計(jì) 算 機(jī) 與 信 息 學(xué) 院 59 【 討論 】 在數(shù)組作為函數(shù)參數(shù)的情況下,參數(shù)傳遞的單向性是否被破壞? 【 例 814】 分析下面程序的運(yùn)行結(jié)果。 c=a[0]。a[1]=c。 printf(x[0]=%d,x[1]=%d\n,x[0],x[1])。 /*函數(shù)調(diào)用 */ printf(x[0]=%d,x[1]=%d\n,x[0],x[1])。 安 慶 師 范 學(xué) 院 計(jì) 算 機(jī) 與 信 息 學(xué) 院 60 【 分析 】 函數(shù) fun的功能是交換數(shù)組中兩個(gè)元素的值。參數(shù)傳遞的單向性是否被破壞?對(duì)這個(gè)問(wèn)題首先要問(wèn):形參和實(shí)參分別是什么?在函數(shù)調(diào)用以后形參和實(shí)參是否發(fā)生了變化?下面的列表回答這個(gè)問(wèn)題。 由于形參是指針變量,其存放的值是可以改變的,例如 【 例 813】 中函數(shù) outputodd的形參 a通過(guò) a++運(yùn)算存放的地址值發(fā)生了改變,實(shí)參數(shù)組名 arr仍然是常量沒(méi)有改變。 安 慶 師 范 學(xué) 院 計(jì) 算 機(jī) 與 信 息 學(xué) 院 62 3. 二維數(shù)組函數(shù)參數(shù) 前面討論數(shù)組作為函數(shù)參數(shù),講的都是一維數(shù)組,這樣的討論可以很自然地推廣到多維數(shù)組的情況。函數(shù)形參既可以用數(shù)組定義也可以用指針變量,實(shí)質(zhì)都是指針變量,可以用與數(shù)組維數(shù)一致的高級(jí)指針變量,例如二維數(shù)組用指向一維數(shù)組的指針變量作形參;也可以用一級(jí)指針變量作形參,這就是將二維數(shù)組當(dāng)成一維數(shù)組訪問(wèn)。 【 分析 】 必須用數(shù)組作為函數(shù)參數(shù)。數(shù)組的行數(shù)和列數(shù)可以用數(shù)值形參,也可以用符號(hào)常量傳遞,本例采用后者,程序編寫(xiě)如下。 int amin, mrow, mcol。 /*函數(shù)聲明 */ amin=min(a, amp。mcol)。 } int min(int (*p)[M], int *pi, int *pj) /*函數(shù)定義 */ {int
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1