《Visual Basic程序設(shè)計(jì)》課件1第6章_第1頁
《Visual Basic程序設(shè)計(jì)》課件1第6章_第2頁
《Visual Basic程序設(shè)計(jì)》課件1第6章_第3頁
《Visual Basic程序設(shè)計(jì)》課件1第6章_第4頁
《Visual Basic程序設(shè)計(jì)》課件1第6章_第5頁
已閱讀5頁,還剩99頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第6章過程6.1Sub過程

6.2Function過程

6.3過程、變量的作用域

6.4應(yīng)用舉例6.5遞歸

教學(xué)小結(jié)

習(xí)題

6.1Sub過程

6.1.1Sub過程的定義

Sub過程的建立有兩種方法,第一種方法是通過菜單建立,第二種方法是在代碼窗口下直接建立。這里介紹后一種方法。

在窗體的通用聲明段或標(biāo)準(zhǔn)模塊的代碼窗口中,直接輸入Sub過程。格式如下:

[Static][Private|Public]Sub過程名([參數(shù)列表])

語句組

EndSub6.1.2Sub過程的調(diào)用

Sub過程的調(diào)用有兩種格式:

格式一:

Call過程名[(參數(shù)列表)]

格式二:

過程名參數(shù)列表

其中,參數(shù)列表代表要傳送給Sub過程的實(shí)際值,稱為實(shí)際參數(shù)(簡稱實(shí)參),可以為常量、變量、數(shù)組元素、數(shù)組名或表達(dá)式等形式。與形參類似,參數(shù)之間用逗號分隔。

例6-1

求組合數(shù) 的值,設(shè)m=6,n=10。

分析:本題需要計(jì)算不同數(shù)的階乘3次,可以編寫一個(gè)Sub過程,求任意整型數(shù)x的階乘,以供主程序中多次調(diào)用。定義過程時(shí)需要設(shè)置兩個(gè)形參,一個(gè)用于傳入x值,另一個(gè)用于存放計(jì)算結(jié)果。

程序代碼如下:為了便于描述程序的運(yùn)行過程,程序中注釋字母用于標(biāo)記程序執(zhí)行的位置。

程序執(zhí)行過程描述如下:

(1)當(dāng)單擊窗體上命令按鈕(Command1),程序運(yùn)行Command1_Click事件,聲明變量后,變量獲得初值為0。

(2)程序運(yùn)行到A處,調(diào)用fact過程,通過參數(shù)傳遞將實(shí)參n、y的地址傳給過程形參x、f,使得n與x、y與f分別共用同一存儲(chǔ)區(qū)域,在過程中對形參x、f的操作也就是對實(shí)參n、y的操作。

(3)程序運(yùn)行到B處,f獲得值為1,開始進(jìn)行階乘運(yùn)算。

(4)程序運(yùn)行到C處,f中保存的就是n(本次n=10)的階乘值,返回主程序D處。

(5)程序運(yùn)行到D處,此時(shí)的y就是10!,轉(zhuǎn)存到變量s中。

(6)程序運(yùn)行到E處,再次調(diào)用fact過程,將實(shí)參m、y的地址傳給過程形參x、f(注意,這時(shí)m的值為6,f的值仍為10!)。

(7)程序再次運(yùn)行到B處,f原來的值被1取代,開始進(jìn)行6的階乘運(yùn)算。

(8)程序運(yùn)行到F處,將6!?計(jì)算到變量s中。

(9)程序運(yùn)行到G處,第三次調(diào)用fact過程,計(jì)算(10-?6)!。

(10)程序運(yùn)行到H處,將4!?計(jì)算到變量s中,最后輸出結(jié)果。6.1.3過程調(diào)用中的參數(shù)傳遞

形參與實(shí)參之間的數(shù)據(jù)傳遞作用可以簡單理解為:它是過程傳遞運(yùn)算對象和將過程執(zhí)行結(jié)果返回給主程序的“橋梁”。在過程被調(diào)用之前,所有形參只是起到標(biāo)識(shí)運(yùn)算對象的“模板”的作用,當(dāng)程序流程轉(zhuǎn)去執(zhí)行過程時(shí),實(shí)參按一定方式將數(shù)據(jù)傳給形參后過程體被執(zhí)行,過程的運(yùn)算結(jié)果還可通過形參將數(shù)據(jù)傳給實(shí)參返回到主程序。過程調(diào)用中參數(shù)傳遞有兩種方式:傳值和傳地址,默認(rèn)為傳地址。

1.傳地址方式

傳地址是VB默認(rèn)的參數(shù)傳遞方式。在這種方式下,實(shí)參傳給形參的是存儲(chǔ)地址,使得形參與實(shí)參共用同一存儲(chǔ)單元,因此,在過程中對形參的任何操作實(shí)質(zhì)都是對相應(yīng)實(shí)參的操作。在程序設(shè)計(jì)中,利用傳地址方式可以獲得過程處理的結(jié)果。要實(shí)現(xiàn)傳地址方式可在過程定義時(shí)對形參作標(biāo)識(shí)或在過程調(diào)用時(shí)對實(shí)參作限制,具體辦法是:

(1)在過程定義時(shí),形參前加ByRef顯式說明(省略也可以)。

(2)在過程調(diào)用時(shí),與形參對應(yīng)位置的實(shí)參必須是相同類型的變量或數(shù)組名,實(shí)參為常數(shù)或表達(dá)式是無法實(shí)現(xiàn)地址傳遞的。參數(shù)傳遞時(shí),當(dāng)實(shí)參為變量時(shí),把實(shí)參的地址傳遞給形參,使實(shí)參與形參共享同一存儲(chǔ)單元段;當(dāng)實(shí)參為數(shù)組時(shí),把實(shí)參數(shù)組的存儲(chǔ)地址傳遞給形參數(shù)組,使實(shí)參數(shù)組與形參數(shù)組共享同一存儲(chǔ)區(qū)域。

例6-2

一個(gè)整型數(shù)組有10個(gè)元素,將第一個(gè)元素與最后一個(gè)元素對調(diào),第二個(gè)與倒數(shù)第二個(gè)對調(diào),……,輸出對調(diào)前后數(shù)組各元素的值。

根據(jù)題意可知,需要兩次輸出數(shù)組各元素的值,可以定義一個(gè)過程供主程序中調(diào)用,其作用為輸出任意一個(gè)一維整型數(shù)組。

新建一個(gè)工程,在窗體的通用聲明段中定義過程parray。程序代碼如下:

例6-3

編寫求兩個(gè)整數(shù)的最大公約數(shù)過程,在主程序中調(diào)用該過程求兩個(gè)數(shù)的最大公約數(shù),并根據(jù)最大公約數(shù)求最小公倍數(shù)。

分析:要求兩個(gè)整數(shù)的最大公約數(shù),需要在過程定義中設(shè)置兩個(gè)形參用于接收這兩個(gè)整數(shù),再設(shè)置一個(gè)參數(shù)用于存放過程中得到的最大公約數(shù)。

程序代碼如下:

2.傳值方式

當(dāng)以傳值方式調(diào)用一個(gè)過程時(shí),實(shí)參將其值復(fù)制給形參后,就失去與形參的“聯(lián)系”,此時(shí)形參擁有獨(dú)立的存儲(chǔ)單元,過程執(zhí)行中如果形參的值發(fā)生變化,對應(yīng)位置的實(shí)參值不會(huì)受任何影響。當(dāng)過程調(diào)用結(jié)束時(shí),形參所占用的存儲(chǔ)單元也同時(shí)被釋放。

實(shí)現(xiàn)傳值方式也可體現(xiàn)在過程調(diào)用和過程聲明中。

(1)在過程調(diào)用時(shí),如果實(shí)參為常量、表達(dá)式或?yàn)閹Юㄌ柕淖兞?,參?shù)傳遞是按傳值方式進(jìn)行的。

(2)定義過程時(shí),如果形參前加ByVal關(guān)鍵字,調(diào)用過程時(shí),不管實(shí)參以何種形式,參數(shù)傳遞均采用傳值方式。

例6-4

分別用傳地址方式和傳值方式編寫交換兩個(gè)整數(shù)的過程并調(diào)用。

程序代碼如下:使用過程編寫程序時(shí),初學(xué)者往往思想比較混亂,總覺得無從下手。為此,本書提出如下建議:

(1)定義過程時(shí),應(yīng)根據(jù)處理問題的需要確定形參的個(gè)數(shù)及其作用,明確參數(shù)傳遞方式,以確定對形參與實(shí)參的具體要求。在形參前加ByVal和ByRef(或省略ByRef),以確定形參的類型和作用。

(2)調(diào)用過程時(shí),要根據(jù)形參個(gè)數(shù)、數(shù)據(jù)類型及參數(shù)傳遞方式確定實(shí)參的個(gè)數(shù)與類型。

(3)在選擇參數(shù)傳遞方式時(shí),遵照如下原則:

①過程中處理的對象是數(shù)組時(shí),只能采用傳地址方式。

②過程的運(yùn)算結(jié)果需要通過參數(shù)返回時(shí),必須采用傳地址方式。該方式有如下優(yōu)點(diǎn):

第一,過程中各參數(shù)作用明確,形參m和n接收的是實(shí)參的值,形參t可以返回過程運(yùn)算結(jié)果,參數(shù)傳遞方式分別是傳值和傳地址。

第二,調(diào)用過程格式簡單,實(shí)參不需要加括號。例如,調(diào)用gys過程語句Callgys(a,b,x),無論實(shí)參a、b帶括號與否,均不會(huì)出現(xiàn)錯(cuò)誤。

第三,調(diào)用過程時(shí)實(shí)參數(shù)據(jù)類型的限制較寬松。在傳值方式下,實(shí)參與形參數(shù)據(jù)類型只要相容即可。比如,若形參為雙精度時(shí),實(shí)參可以是任何數(shù)值型數(shù)據(jù)。而在傳地址方式時(shí),實(shí)參的類型必須與形參一致,否則會(huì)出現(xiàn)如圖6-1所示錯(cuò)誤。圖6-1實(shí)參與形參類型不一致時(shí)的出錯(cuò)信息

例6-5

編寫求一組整數(shù)平均值的過程,并在主程序中調(diào)用。

分析:編寫過程代碼時(shí),首先考慮形參個(gè)數(shù)及參數(shù)傳遞方式。因?yàn)橐幚淼氖且唤M整數(shù),個(gè)數(shù)并沒有確定,所以設(shè)置一個(gè)整型形參數(shù)組接收處理對象。而運(yùn)算結(jié)果只有一個(gè)平均值,所以設(shè)置1個(gè)普通變量返回(平均值),參數(shù)傳遞方式均為傳地址方式。過程調(diào)用時(shí),實(shí)參的個(gè)數(shù)應(yīng)與形參個(gè)數(shù)一樣,第一個(gè)實(shí)參應(yīng)為數(shù)組,第二個(gè)實(shí)參只能為變量。

實(shí)現(xiàn)求一組整數(shù)平均值的過程如下:

例6-6

編寫能獲得一組整數(shù)的平均值、最大值和最小值的過程并調(diào)用。

程序代碼如下: 6.2Function過程

6.2.1Function過程的定義

定義Function過程格式為:

[Static][Private|Public]Function過程名([參數(shù)列表])[As數(shù)據(jù)類型]

語句組

EndFunction說明:

(1)與Sub過程相比,F(xiàn)unction過程的過程名不僅標(biāo)識(shí)函數(shù)過程,而且還有返回函數(shù)運(yùn)算結(jié)果的功能,所以比Sub過程多了數(shù)據(jù)類型聲明。

(2)語句組中一般應(yīng)有一條語句將過程的運(yùn)算結(jié)果賦給過程名。格式為:

過程名=表達(dá)式

(3)如果在過程體中含有ExitFunction語句時(shí),表示強(qiáng)行退出過程。6.2.2Function過程的調(diào)用

Function過程一經(jīng)定義,調(diào)用方式就與系統(tǒng)提供的內(nèi)部函數(shù)完全相同。

例6-7

求組合數(shù) 的值,設(shè)m=6,n=10。

函數(shù)過程及調(diào)用代碼如下:比較例6-1與例6-7可以看出,使用函數(shù)過程時(shí),定義時(shí)因?yàn)楹瘮?shù)名可以返回一個(gè)值,所以就可以少一個(gè)形式參數(shù);調(diào)用時(shí)因?yàn)楹瘮?shù)名就帶著處理結(jié)果,所以可以像使用內(nèi)部函數(shù)一樣直接寫入表達(dá)式中。

實(shí)際上,將過程定義為Sub過程還是Function過程沒有必然的界限??梢赃@樣考慮:使用Sub過程能實(shí)現(xiàn)的功能也一定能使用Function過程實(shí)現(xiàn),反之亦然。但一般情況下,如果不需要過程返回處理結(jié)果,或者需要返回多個(gè)處理結(jié)果,則選擇Sub過程;如果需要返回的運(yùn)算結(jié)果只有一個(gè),則選擇Function過程會(huì)更方便些。 6.3過程、變量的作用域

6.3.1過程的作用域

過程的作用域分為模塊級和全局級兩種。

1.模塊級過程

模塊級過程是指在窗體或標(biāo)準(zhǔn)模塊通用聲明段定義的、用Private關(guān)鍵字限制的過程,這類過程只能被它所屬的窗體或標(biāo)準(zhǔn)模塊中的其他過程調(diào)用。

例如,在窗體1的通用聲明段定義一個(gè)模塊級過程fact,分別被窗體1下的Command1_Click()和Form_Click()所調(diào)用是允許的。若在窗體2下調(diào)用窗體1中定義的過程“fact”,會(huì)出現(xiàn)如圖6-2所示的提示信息。圖6-2調(diào)用無效過程時(shí)提示信息

2.全局級過程

在窗體或標(biāo)準(zhǔn)模塊中定義的過程默認(rèn)是全局級的,也可用Public關(guān)鍵字顯式聲明。全局級過程可供該應(yīng)用程序中所有窗體和所有標(biāo)準(zhǔn)模塊中的過程調(diào)用,但根據(jù)過程所處的位置不同,其調(diào)用方式有所區(qū)別:

(1)在窗體中定義的全局級過程,該窗體之外的其他過程要調(diào)用,必須在過程名前加該過程所在的窗體名。

(2)在標(biāo)準(zhǔn)模塊中定義的全局級過程,該工程的任何過程都可以直接調(diào)用。6.3.2變量的作用域

變量的作用域可分為過程級、模塊級和全局級。過程級和模塊級常被稱為私有級變量,而全局級也常被稱為公有級變量。

1.過程級變量

過程級變量的作用范圍限制在聲明它的過程內(nèi)部,只有該過程內(nèi)部的代碼才能訪問或改變變量的值。該類變量通常用來存儲(chǔ)過程中的臨時(shí)數(shù)據(jù),在過程內(nèi)部使用關(guān)鍵字Dim或Static來聲明變量。例如:

DimaAsinteger,bAsSingle

StaticaAsString如果在過程中未說明而直接使用了某個(gè)變量,則該變量被默認(rèn)為局部于該過程的過程級變量。

用Static聲明的變量稱為靜態(tài)變量,該類變量在過程執(zhí)行結(jié)束后一直存在,直到窗體關(guān)閉。而用Dim聲明的變量只在過程執(zhí)行時(shí)存在,退出過程后這類變量就會(huì)消失。請看下面的代碼段:

PrivateSubForm_Click()

DimiAsInteger

i=i+1

Printi

EndSub每單擊一次窗體,窗體上均顯示相同的數(shù)“1”。這是因?yàn)?,過程每次運(yùn)行時(shí),為變量i分配存儲(chǔ)空間,過程運(yùn)行結(jié)束后,變量i所占用的存儲(chǔ)空間被釋放,再次運(yùn)行時(shí)變量i重新被分配內(nèi)存空間。

再看下面的代碼段:

PrivateSubForm_Click()

StaticiAsInteger

i=i+1

Printi

EndSub每單擊一次窗體,過程變量i累加1次,第n次運(yùn)行i的值為“n”。原因是用Static定義的變量為靜態(tài)變量,過程第一次運(yùn)行時(shí),為變量i分配存儲(chǔ)空間,運(yùn)行結(jié)束后,i所占用的存儲(chǔ)空間被保護(hù)起來,其值也被保留下來,再次運(yùn)行時(shí),變量i還使用原來的存儲(chǔ)空間,其值也是上一次保留下來的值,所以之后的運(yùn)算也就是在上一次值的基礎(chǔ)上進(jìn)行的。

2.模塊(窗體)級變量

模塊級(也稱窗體級)變量的作用域限制在聲明它的窗體(模塊)中,該窗體(模塊)中的所有過程均可訪問該變量,其他窗體(模塊)則不能。該類變量在窗體(模塊)的通用段中用關(guān)鍵字Private或Dim聲明。

例6-8

窗體級變量的作用范圍示例。

程序代碼如下:圖6-3窗體級變量作用范圍

3.全局級變量

全局級變量在所有模塊的所有過程都能訪問,它的作用范圍是整個(gè)應(yīng)用程序,該類變量在模塊的通用段中使用關(guān)鍵字Public聲明。

例6-9

變量的作用范圍綜合示例。

程序代碼如下:程序運(yùn)行結(jié)果如圖6-4所示。由此可以看出,當(dāng)變量名相同而作用域不同時(shí),將優(yōu)先訪問作用域小的變量。圖6-4變量作用范圍示例在定義變量時(shí)應(yīng)將變量聲明為哪一個(gè)級別呢?這主要取決于變量要在什么范圍內(nèi)使用。

(1)如果變量只在某一個(gè)過程中使用,它的運(yùn)算結(jié)果也不被其他過程再次使用,則可以聲明為過程級變量。如本書中的大部分例題采用的都是這種級別的變量。

(2)如果變量將在同一窗體的多個(gè)過程中被用到,且彼此之間還有相互關(guān)系,則可以聲明為窗體(模塊)級變量。

(3)如果變量將在多個(gè)窗體被用到,且彼此之間還有相互關(guān)系,則可以聲明為全局級變量。 6.4應(yīng)用舉例

例6-10

編程對鍵盤上輸入的任意個(gè)數(shù)排序。

分析:排序算法在第5章已經(jīng)介紹過,這里回顧一下算法過程。

(1)定義數(shù)組。

(2)為數(shù)組元素賦值。

(3)輸出排序前的數(shù)組元素值。

(4)選擇一種排序算法對數(shù)組各元素排序。

(5)輸出排序后的數(shù)組元素值。

(6)結(jié)束。在這個(gè)算法中輸出數(shù)組元素值的程序段被執(zhí)行了兩次,不需要返回值,可以將其寫成一個(gè)Sub過程。排序是對數(shù)組中元素進(jìn)行了重新排列,因?yàn)閿?shù)組是傳地址的,在過程中對形參數(shù)組排好序?qū)嶋H上會(huì)直接反映在實(shí)參中,沒有其他結(jié)果需要返回,所以也用Sub過程。

在窗體上添加1個(gè)文本框,用于輸入待排序的數(shù)據(jù),數(shù)據(jù)之間用逗號分隔;1個(gè)圖片框用于顯示排序前的數(shù)組及排序后的數(shù)組;1個(gè)Option1控件數(shù)組,元素分別為Option1(0)、Option1(1),用于選擇是按升序還是降序排序,它們被置于框架Frame1中。窗體界面如圖6-5a所示,各控件屬性設(shè)置放在Form_Load事件中,排序代碼放在Option1控件數(shù)組的DblClick事件中。圖6-5a窗體界面圖6-5b程序運(yùn)行界面本例中定義了兩個(gè)Sub過程,一個(gè)用于輸出一維數(shù)組,一個(gè)用于排序,前者有一個(gè)數(shù)組參數(shù),后者除了一個(gè)數(shù)組參數(shù)外,還有一個(gè)決定升、降序的參數(shù)。

例6-11

判斷一個(gè)整數(shù)是否是回文數(shù)。所謂回文數(shù)是這樣的數(shù),將這個(gè)數(shù)從左向右讀和從右向左讀的值相等。如121就是回文數(shù),345就不是回文數(shù)。

分析:判斷回文數(shù)可以有很多方法,由于VB中可以自動(dòng)進(jìn)行數(shù)值與數(shù)字字符串的類型互換,所以這里可以將輸入的數(shù)當(dāng)成字符串來處理。

程序代碼如下:

例6-12

設(shè)計(jì)一個(gè)數(shù)值轉(zhuǎn)換函數(shù),能夠?qū)⑹M(jìn)制整數(shù)轉(zhuǎn)換成十六進(jìn)制以內(nèi)的任意進(jìn)制數(shù)。

分析:十進(jìn)制數(shù)轉(zhuǎn)換成n進(jìn)制常采用的方法是“除n取余,余數(shù)倒寫”,當(dāng)n大于9時(shí),需要把大于9的余數(shù)轉(zhuǎn)換成字母。為了方便轉(zhuǎn)換,可以將余數(shù)0~9、A~F分別放在一個(gè)字符串?dāng)?shù)組中。

轉(zhuǎn)換函數(shù)過程名為DecToN,有兩個(gè)參數(shù),一個(gè)是待轉(zhuǎn)換的十進(jìn)制整數(shù),一個(gè)是需要轉(zhuǎn)換的進(jìn)制,轉(zhuǎn)換結(jié)果是一個(gè)字符串(即函數(shù)值為一個(gè)字符型)。

程序代碼如下:

6.5遞歸

簡單地說,遞歸就是一個(gè)過程調(diào)用自己本身。VB的過程具有遞歸調(diào)用功能。許多問題都具有遞歸的特性,用遞歸調(diào)用來解決會(huì)非常方便。

例6-13

利用遞歸調(diào)用計(jì)算n!。

分析:根據(jù)階乘的定義,求n的階乘可以轉(zhuǎn)換為求n×(n-1)!,利用過程遞歸來完成。說明:當(dāng)n>0時(shí),在過程fact中調(diào)用fact過程,參數(shù)為n-1,這種操作一直持續(xù)到n=0為止。下面以n=5為例,說明遞歸調(diào)用的過程。編寫遞歸過程的關(guān)鍵是寫出能構(gòu)成遞歸的兩個(gè)條件:

(1)遞歸結(jié)束條件及結(jié)束時(shí)的值。

(2)能用遞歸形式表示,并且遞歸向結(jié)束條件收斂。

例6-14

用遞歸求兩個(gè)數(shù)的最大公約數(shù)。

分析求最大公約數(shù)的方法可以得到構(gòu)成遞歸的兩個(gè)條件:

函數(shù)代碼如下:

教學(xué)小結(jié)

使用VB編寫應(yīng)用軟件時(shí),提倡用“可視化的思想進(jìn)行界面設(shè)計(jì),結(jié)構(gòu)化的思想進(jìn)行功能實(shí)現(xiàn)”。本章講解的過程就是將功能相對完整的程序段組織在一起,便于在程序中多處調(diào)用,既提高了程序段的共享能力,也便于整個(gè)程序的維護(hù),同時(shí)也體現(xiàn)了結(jié)構(gòu)化程序設(shè)計(jì)思想。由于本章某些概念、程序組織的結(jié)構(gòu)是全新的,教學(xué)中存在教師講授費(fèi)勁,學(xué)生學(xué)習(xí)“吃不消”的現(xiàn)象,但這章又是本書的重點(diǎn)和難點(diǎn),應(yīng)在教學(xué)中引起足夠的重視。

(1)與事件過程對比,充分理解用戶自定義過程在程序設(shè)計(jì)中的作用,了解應(yīng)用自定義過程后程序總體結(jié)構(gòu)的變化。

(2)掌握Sub過程和Function過程的定義與調(diào)用格式,熟悉參數(shù)傳遞方式及其特點(diǎn),具備正確設(shè)置過程參數(shù)及參數(shù)傳遞的能力。

(3)在編程時(shí),對Sub過程和Function過程不應(yīng)刻意區(qū)別,用Sub過程實(shí)現(xiàn)的問題,同樣可以用Function過程來實(shí)現(xiàn);反之亦然。編寫過程的關(guān)鍵是確定參數(shù)的個(gè)數(shù)及其作用,明確參數(shù)傳遞方式,以確定對形參與實(shí)參的具體要求。

(4)變量和過程的作用域是規(guī)定變量能被訪問或過程能被調(diào)用的范圍,讀者可通過本章實(shí)例熟練掌握并靈活應(yīng)用。

習(xí)題

一、選擇題

1.VB中在模塊的通用聲明段用DimX聲明的變量是

變量。

(A)過程級 (B)模塊級

(C)全局級 (D)靜態(tài)

2.在VisualBasic應(yīng)用程序中,以下描述正確的是

。

(A)過程的定義可以嵌套,但過程的調(diào)用不能嵌套

(B)過程的定義不可以嵌套,但過程的調(diào)用可以嵌套

(C)過程的定義和過程的調(diào)用均可以嵌套

(D)過程的定義和過程的調(diào)用均不可以嵌套則以下說法中正確的是

(A)調(diào)用過程S1可以實(shí)現(xiàn)交換兩個(gè)變量的值的操作,S2不能實(shí)現(xiàn)

(B)調(diào)用過程S2可以實(shí)現(xiàn)交換兩個(gè)變量的值的操作,S1不能實(shí)現(xiàn)

(C)調(diào)用過程S1和S2都可以實(shí)現(xiàn)交換兩個(gè)變量的值的操作

(D)調(diào)用過程S1和S2都不能實(shí)現(xiàn)交換兩個(gè)變量的值的操作

14.下面過程說明語句合法的是

。

(A)

Subf1(ByValn%())

(B)

Subf1(n%)AsInteger

(C)?Functionf1%(f1%)

(D)?Functionf1(ByValn%)

15.要想從過程調(diào)用后通過參數(shù)返回兩個(gè)結(jié)果,下面過程說明合法的是

(A)

Subf2(ByValn%,ByValm%)

(B)

Subf1(n%,ByValm%)

(C)

Subf1(n%,m%)

(D)

Subf1(ByValn%,m%)

17.下列敘述錯(cuò)誤的是

。

(A)?Sub過程可以遞歸調(diào)用

(B)?Sub過程不可以由其過程名返回結(jié)果值

(C)表達(dá)式中可以調(diào)用Function過程

(D)表達(dá)式中可以調(diào)用Sub過程

18.以下關(guān)于過程及過程參數(shù)的描述中,錯(cuò)誤的是

(A)過程的參數(shù)可以是控件名稱

(B)過程的參數(shù)可以是窗體

(C)只有函數(shù)過程能夠?qū)⑦^程中處理的信息傳回到調(diào)用的程序中

(D)用數(shù)組作為過程的參數(shù)時(shí),使用的是傳地址方式

19.模塊中采用以下方式定義的過程,能被其他模塊調(diào)用的是

。

(A)?PrivateSubS1()

(B)?PublicSubS2()

(C)?PrivateFunctionF1()

(D)均不能被其他模塊調(diào)用

20.為了在同一模塊中的不同過程之間互相傳遞數(shù)據(jù),下述方法中錯(cuò)誤的是

。

(A)利用全局變量

(B)利用傳地址方式的變量作為過程參數(shù)

(C)利用靜態(tài)變量

(D)利用模塊級變量運(yùn)行以上程序,正確的結(jié)果是

(A)?Form1的Caption屬性值為"V

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論