國家二級VB機試(過程)模擬試卷1_第1頁
國家二級VB機試(過程)模擬試卷1_第2頁
國家二級VB機試(過程)模擬試卷1_第3頁
國家二級VB機試(過程)模擬試卷1_第4頁
國家二級VB機試(過程)模擬試卷1_第5頁
已閱讀5頁,還剩90頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

國家二級VB機試(過程)模擬試卷第1

一、選擇題(本題共43題,每題1.0分,共43分。)

1>假定有如下事件過程:PrivateSubForm_Click()DimXAsIntcgcr,nAsInteger

x=l:n=0DoWhilex<28x=x*3:n=n+lloopPrintx,nEndSub程序運行后,單擊

窗體,輸出結(jié)果是

A、814

B、563

C、281

D、2435

標(biāo)準(zhǔn)答案:A

知識點解析:本題考查D。While循環(huán).在窗體的Click事件代碼里面,定義了變量

x和n,分析D。While循環(huán)可知,n保存循環(huán)次數(shù),x是循環(huán)控制變量,如果x的

值小于28則進入循環(huán)體,因此x和n的變化過程是:3和1、9和2、27和3、81

和4,經(jīng)過4次循環(huán)后x值變成81,循環(huán)條件不成立,循環(huán)結(jié)束。

2、以下敘述中錯誤的是

A、標(biāo)準(zhǔn)模塊文件的擴展名是.bas

B、標(biāo)準(zhǔn)模塊文件是純代碼文件

C、在標(biāo)準(zhǔn)模塊中聲明的全局變量可以在整個工程中使用

D、在標(biāo)準(zhǔn)模塊中不能定義過程

標(biāo)準(zhǔn)答案:D

知識之解析:本題考查的考點是有關(guān)標(biāo)準(zhǔn)模塊的。VB中的標(biāo)準(zhǔn)模塊也稱全局模塊

或總模塊,由全局變量聲明、模塊層聲明及通用過程等幾部分組成,其擴展名

為.bas,里面只有代碼而沒有任何控件。其中全局聲明放在標(biāo)準(zhǔn)模塊的首部,可以

在整個工程中使用。

3、下面不能在信息框中輸出“VB”的是

A、MsgBox”VB”

B、x=MsgBox("VB")

C、MsgBox(''VB")

D、CallMsgBox,,VB,,

標(biāo)準(zhǔn)答案:D

知識點解析:MsgBox()函數(shù)用于顯示提示信息,并可返回一個代表用戶單擊了哪

個按鈕的Integer類型值,當(dāng)其作為函數(shù)使用時必須將參數(shù)放在括號內(nèi)部,而返回

值可以賦值給一個變量,也可以單獨使用此函數(shù)而不將其返回值賦值給變量;

MsgBox過程也用于顯示提示信息,作為過程可以獨立使用,也可以使用Call關(guān)鍵

字來進行調(diào)用,但此時參數(shù)需要加括號。

4、以下關(guān)于過程的敘述中,錯誤的是

A、在Sub過程中不能再定義Sub過程

B、事件過程也是Sub過程

C、過程調(diào)用語句的形參個數(shù)必須與實參個數(shù)相同

D、函數(shù)過程一定有返回值

標(biāo)準(zhǔn)答案:C

知識點解析:Sub過程分為事件過程和通用過程,過程不允許嵌套定義,即在Sub

過程中再定義Sub過程;函數(shù)過程必須有一個返回值,當(dāng)過程的聲明語句中使用

了可選參數(shù)的時候,允許實參個數(shù)與形參不同。

5、設(shè)子程序過程定義的首部為:PublicSubs(xAsInteger,YAsSingle)?0以下正

確的調(diào)用形式為

A、CallS5,4.8

B、CallSub(5,4.8)

C、Sub5,4.8

D、S5,4.8

標(biāo)準(zhǔn)答案:D

知識點解析:子過程可以獨立使用,也可以使用Call關(guān)鍵字來進行調(diào)用,但此時

參數(shù)需要加括號。本題中子程序的名字是S,故此B、C選項可以排除,A選項中

缺少參數(shù)的括號。

6、在窗體上畫兩個標(biāo)簽和一個命令按鈕,其名稱分別為Labell、Label2和

Command),然后編寫如下程序:PrivateSubfunc(LAsLabel)L.Caption="1234”

EndSubPrivateSubForm_Load()Label1.Caption*ABCDE"Label2.Caption=IO

EndSubPrivateSubCommandl_Click()a=Val(LabeI2.Caption)Callfunc(Labell)

Label2.Ciption=aEndSub程庠運行后,單擊命令按鈕,則在兩個標(biāo)簽中顯示的內(nèi)

容分別為

A、ABCD和10

B、1234和100

C、ABCD和100

D、1234和10

標(biāo)準(zhǔn)答案:D

知識點解析:本題考查的考點是有關(guān)過程調(diào)用的。窗體加載時首先執(zhí)行了Load事

件里面的代碼,設(shè)置Labell的標(biāo)題為“ABCDE”,Label2的標(biāo)題為“10”;當(dāng)單擊命

令按鈕時,調(diào)用了func過程,在這個過程中把傳入的Labell的標(biāo)題設(shè)置為

“1234”,Label2的標(biāo)題沒有發(fā)生變化。

7、設(shè)有如卜.Commandl的單擊事件過程及fun過程:PrivateSub

Commandl_Click()DimXAsIntegerx=Val(InputBox(“請輸入一彳、整數(shù)"))fun(x)End

SubPrivateSubfun(xAsInteger)IfxMod2=0Thenfun(x/2、Printx;EndSub執(zhí)

行上述程序,輸入6,結(jié)果是

A、36

B、63

C、6

D、程序死循環(huán)

標(biāo)準(zhǔn)答案:A

知識點解析:本題中的fun過程是一個遞歸調(diào)用,如果參數(shù)x為偶數(shù)則進入遞歸;

本題中的實參6傳入fun過程之后,因其是偶數(shù),所以執(zhí)行fun(6/2),也就是先輸

出3,然后返回到fun中輸出6。

8、編寫如下程序:PrivateSubCommandI_Click()DimstrlAsString,str2AsString

strl=InputBox("輸入一個字符串“)sub自tri,str2:Printstr2EndSubSubsubf(slAs

String,s2AsString)DimtempAsStringStaticiAsIntegeri=i+ltemp=Mid(sl,i,1)

IftempoM"Thensubfsi.s2s2=s2&tempEndSub程序運行后,單擊命令按鈕

Commandl,且輸入“abcdef,則輸出結(jié)果為

A、afbecd

B、cdbeaf

C、fedcba

D、adbecf

標(biāo)準(zhǔn)答案:C

知識點解析?:本題中的子過程subf會進行遞歸調(diào)用,只要在參數(shù)si中取出的字符

不是空字符串就進行遞歸,直到i的值超過si的長度才停止,然后進行回歸操

作,相當(dāng)于每一次向s2中連接的字符都是最后取出的si中的字符,最終實現(xiàn)字符

串的逆序操作。

9、以下關(guān)于函數(shù)過程的敘述中,正確的是

A、函數(shù)過程形參的類型與函數(shù)返回值的類型沒有關(guān)系

B、在函數(shù)過程中,過程的返回值可以有多個

C、當(dāng)數(shù)組作為函數(shù)過程的參數(shù)時,既能以傳值方式傳遞,也能以傳址方式傳遞

D、如果不指明函數(shù)過程參數(shù)的類型,則該參數(shù)沒有數(shù)據(jù)類型

標(biāo)準(zhǔn)答案:A

知識點解析:本題考查的考點是有關(guān)函數(shù)過程的。函數(shù)過程可以返回一個函數(shù)值,

但這個函數(shù)值的類型和參數(shù)類型沒有任何關(guān)系;如果不指明參數(shù)的類型,則默認(rèn)參

數(shù)為變體型;數(shù)組作為函數(shù)參數(shù)時只能通過傳地址的方式來調(diào)用。

10、在VB中,函數(shù)過程與子程序過程的區(qū)別之一是

A、函數(shù)過程必須有參數(shù),而子程序過程可以沒有

B、函數(shù)過程的參數(shù)傳遞只采用值傳遞,而子程序過程只采用地址傳遞

C、在程序中,子程序過程調(diào)用的代碼可以寫在表達(dá)式中,而函數(shù)過程不能

D、函數(shù)過程有返回值,而子程序過程沒有

標(biāo)準(zhǔn)答案:D

知識點解析:函數(shù)過程和Sub子過程一樣,也可以有參數(shù)也可以沒有參數(shù);參數(shù)

傳遞也可以使用地址傳涕也可以使用值傳遞;都是在代碼中進行調(diào)用,只是函數(shù)過

程必須有一個返回值,子過程沒有。

11>在窗體上畫一個命令按鈕(名稱為Command】),并編寫如下代碼:FunctionFun

l(ByValaAsInteger,bAsInteger)AsIntegerDimlAsIntegert=a.b:b=t+a:

Funl:t+bEndFunctionPrivateSubCommandl_Click()DimXAsIntegerx=10Print

Funl(Funl(x,(bunl(x?x-1))),x—1)EndSub程序運行后,單擊命令按鈕,輸出

結(jié)果是

A、10

B、0

C、II

D、21

標(biāo)準(zhǔn)答案:B

知識點解析:本題考查的考點是有關(guān)過程調(diào)用的。對于這種復(fù)雜的函數(shù)調(diào)用,一定

要搞清楚調(diào)用的順序以及參數(shù)傳遞的是值還是地址。根據(jù)過程調(diào)用的原則,首先調(diào)

用最內(nèi)層的Funl(x,x—1),其結(jié)果為12,x的值不變?nèi)詾?0;然后調(diào)用Funl(x,

12),其結(jié)果為6,x的值也不變?yōu)?0;最后調(diào)用Funl(6,x-1),其結(jié)果為0,x的值

也不變?yōu)?0。本題中的傳址調(diào)用是沒有作用的,因為表達(dá)式是不能傳地址的。

12、有下面程序代碼:PrivateSubCommandl_CIick()DimaAsString

a=<tCOMPUTER,,n=search(a,"T"):PrintIIf(n=O,"未找到“,n)EndSubPrivate

Functionsearch(strAsString,chAsString)AsIntegerFork=lToLen(str)

c=Mid(str,k,I)Ifc=chThensearch=k:ExitFunctionEndIfNextksearch=0End

Function程序運行后,單擊命令按鈕Commandl,輸出結(jié)果是

A、0

B、8

C、6

D、未找到

標(biāo)準(zhǔn)答案:C

知識點解析:本題中search函數(shù)的參數(shù)是兩個字符串,在函數(shù)內(nèi)進行循環(huán),依次

取出第一個參數(shù)的第k位和第二個參數(shù)進行比較,如果相等則返回k的值,實際上

就是查找第二個參數(shù)在第一個參數(shù)中出現(xiàn)的位置。

13^現(xiàn)有如下程序:PrivateSubCommandl_Click()s=0Fori=lTo5s=s+f(5+i)Next

PrintsEndSubPublicFunctionf(xAsInteger)IfX>=10Thent=x+lElset=x+2EndIf

f=tEndFunction運行程序,則窗體上顯示的是

A、38

B、49

C、61

D、70

標(biāo)準(zhǔn)答案:B

知識點解析:本題考查的考點是有關(guān)函數(shù)調(diào)用和If語句的。要注意在前4次循環(huán)

中每次調(diào)用f函數(shù)時傳遞的參數(shù)分別為6、7、8、9,都是小于10的,最后一次循

環(huán)傳遞參數(shù)10,所以最終結(jié)果應(yīng)該為8+9+10+11+11=49。

14>假定有以下通用過程:FunctionFun(nAsInteger)AsIntegerx=n*n;Fun=x—11

EndFunction在窗體上畫一個命令按鈕,其名稱為Commandl,然后編寫如卜事件

過程:PrivateSubCominandl_CIick()DimiAsIntegerFori=lTo2y=Fun(i)Printy;

NextiEndSub程序運行后,單擊命令按鈕,在窗體上顯示的內(nèi)容是

A、13

B、108

C、-10-7

D、05

標(biāo)準(zhǔn)答案:C

知識點解析:本題共調(diào)用Fun函數(shù)2次,每次的函數(shù)值都是參數(shù)的平方減去II的

值,故此輸出一10,-7.

15,求1!+2!+.......+10!的程序如下:PrivateFunctions(xAsInteger)f=lFori=lTo

xf=f*iNexts=fEndFunctionPrivateSubCommand1_Click()DimiAsInteger,yAs

LongFori=lTo10()NextPrintyEndSub為實現(xiàn)功能要求,程序的括號中應(yīng)該填

入的內(nèi)容是

A、Calls(i)

B、Calls

C、y=y+s(i)

D、y=y+s

標(biāo)準(zhǔn)答案:C

知識點解析:函數(shù)過程有一個返回值.一般出現(xiàn)在表達(dá)式中組成表達(dá)式的一部分C

本題的題口要求累加各個數(shù)的階乘,而函數(shù)s的作用是求參數(shù)的階乘,因此應(yīng)該在

每次循環(huán)中累加f函數(shù)的值,參數(shù)為循環(huán)變量i。

16、在窗體上畫一個名稱為Command】的命令按鈕,并編寫如下程序:Function

Fun(x)y=0Ifx<10Theny=xElsey=y+10EndIfFun=yEndFunctionPrivateSub

CommandlC1ick()n=InputBox("請輸入一個數(shù)“)n=Val(n)P=Fun(n):PrintPEndSub

運行程序「單擊命令按鈕,將顯示輸入對話框,如果在對話框中輸入100,并單擊

“確定”按鈕,則輸出結(jié)果為

A、10

B、100

C、110

D、出錯信息

標(biāo)準(zhǔn)答案:A

知識點解析:本題是一個簡單的函數(shù)調(diào)用,在函數(shù)中會判斷參數(shù)X的值,根據(jù)X的

值不同執(zhí)行If語句的不同分支。由于實際參數(shù)為100不滿足x<10,因此函數(shù)返回

值為10o

17、設(shè)有如下事件過程:PrivateSubCommandl_Click()Dimaa=Array(12,3,8,

5,10,3,5,9,2,4)Fork=lTo9Printfun(a(k-1),a(k));NextkEnd

SubPrivateFunctionfun(x,y)AsIntegerDoWhileX>=yx=x-yLoopfun=xEnd

Function程序運行時的輸出結(jié)果是

A、401030040

B、033513512

C、9-53-57-2-47-2

D、933573572

標(biāo)準(zhǔn)答案:B

知識點解析:本題中函數(shù)fun的作用是當(dāng)?shù)谝粋€形參比第二個形參大或著相等的時

候讓它減去第二個形參,直到比第二個形參小為止;在按鈕的單擊事件中循環(huán)調(diào)用

9次函數(shù),每次都用數(shù)組的前一個元素和后一個元素作為函數(shù)的實參,所以應(yīng)輸出

的是12-3—3—3.3、3、8—5、5、10—3、3、5、9-2、2。

18,設(shè)有如下函數(shù):FunctionDelSpace(chAsString)AsIntegerDimn%,st$,

c$st="":n=0Fork=lTOLen(ch)c=Mid(ch,k,1)Ifco,M,Thenst=st&CElsen=n+l

EndIfNextkch=st:DelSpace=nEndFunction該函數(shù)的功能是

A、統(tǒng)計并返回字符串ch中字符的個數(shù)

B、刪除字符串ch中的空格符,返回刪除字符的個數(shù)

C、統(tǒng)計并返回字符串ch中非空格字符數(shù)

D、刪除字符串ch中除空格符外的其他字符,返回刪除字符的個數(shù)

標(biāo)準(zhǔn)答案:B

知識點解析:在函數(shù)中進行字符串的正向遍歷,每次取出字符串中的一個字符,判

斷該字符如果不是空格就將其連接到4I:否則令n+L循環(huán)結(jié)束后將會刪除字符

串ch中的空格符,返并使用函數(shù)值返回刪除字符的個數(shù)。

19、窗體上有一個名稱為Command1的命令按鈕,其單擊事件過程及相關(guān)的函數(shù)過

程如下:PrivateSubCommandl_Click()DimiAsIntegerFori=lTo500Ifp(i)Then

s=s+lNextPrintsEndSubPrivateFunctionp(xAsInteger)AsBooleanIfxMod7o0

Thenp二TrueElsep二FalseEndIfEndFunction關(guān)于上述程序,以卜?敘述中正確的是

A、程序功能是統(tǒng)計1-500范圍內(nèi)能被7整除的整數(shù)個數(shù)

B、Command!Click事件過程中If語句的條件表達(dá)式不完整

C、Function過程定義方.誤,函數(shù)過程P的名稱與該過程中的變量名P相同

D、函數(shù)過程p的返回值為Boolean類型

標(biāo)準(zhǔn)答案:D

知識點解析:調(diào)用Funclion過程要返回一個值,因此可以像內(nèi)部函數(shù)一樣在表達(dá)

式中使用。如果在Function過程中省略“過程名=表達(dá)式”,則該過程返回一個默認(rèn)

值(數(shù)值函數(shù)過程返回0值:字符串函數(shù)過程返回空字符串)。因此,通常要在過程

體中給“過程名”賦值。本題中函數(shù)p的返回值為Boolean類型,功能是判斷參數(shù)x

是否能被7整除,如果不能整除返回True,否則返回FalseoConimandlClick事件

過程中使用了單行的If語句,不需要臼se分支和Endlf語句。程序功能是統(tǒng)計1-

500范圍內(nèi)不能被7整除的整數(shù)個數(shù)。

20、設(shè)有下面程序代碼:PrivateSubCommandl_Click()DimstrAsString,chAs

Stringstr="VisualBasicProgramming“:ch="a"n=fun(ch,str):Printstr,nEndSub

PrivateFunctionfun(chAsString,strAsString)AsIntegerDimstrbufAsString,cAs

String,nAsIntegerFork=lToLen(str)c=Mid$(str,k,1)IfcochThen

strbuf=strbut&cElsestrbut=strbut&UCasc(c):n=n+lEndItNextkstr=strbut:tun=n

EndFunction程序運行時的輸出是

A^VisualBasicProgramming0

B、VisuAlBAsicProgrAmming3

C、VisulBsicProgrmming3

D、VisualBasicProgramming2

標(biāo)準(zhǔn)答案:B

知識點解析:本題中函數(shù)fun除了有返回值外,還通過地址傳遞的形參sir帶回修

改以后的字符串。在函數(shù)中會依次遍歷整個字符串,每一次取得一個字符,判斷該

字符和給定的參數(shù)“建是否相等,如果不等則將其原樣連接,否則將此字符轉(zhuǎn)換成

大寫字符以后連接,而且令計數(shù)器加1。所以整個函數(shù)的功能就是將形參sir中所

有等于形參ch的字符轉(zhuǎn)換成大寫,并且統(tǒng)計這類字符的個數(shù)作為函數(shù)返回值。

21、以下敘述中錯誤的是

A、在通用過程中,多個形式參數(shù)之間可以用逗號作為分隔符

B、在Print方法中,多個輸出項之間可以用逗號作為分隔符

C、在Dim語句中,所定義的多個變量可以用逗號作為分隔符

D、當(dāng)一行中有多個語句時,可以用逗號作為分隔符

標(biāo)準(zhǔn)答案:D

知識點解析:本題考查的考點是有關(guān)分隔符的。在過程的參數(shù)中需要用分隔符隔

開;在Print方法中使用逗號可以隔開多個輸出項:在一條Dim語句中定義多個變

量時,這些變量也要用逗號隔開:在一行中寫多個語句時,多個語句之間需要用冒

號隔開。

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

A、調(diào)用過程時可以用控件名稱作為實際參數(shù)

B、用數(shù)組作為過程的參數(shù)時,使用的是“傳地址”方式

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

D、窗體(Fomi)可以作為過程的參數(shù)

標(biāo)準(zhǔn)答案:C

知識點解析:本題考查的考點是有關(guān)過程參數(shù)的。在VBU」不僅可以使用窗體作為

通用過程的參數(shù),還可以使用控件作為通用過程參數(shù)。控件參數(shù)用法同窗體參數(shù),

不過形參類型一般為Control。在使用數(shù)組作為參數(shù)時,使用的是傳地址的方式。

要想把過程中的信息傳回到調(diào)用過程中,不但使用函數(shù)可以完成,也可以使用傳地

址調(diào)用的參數(shù)傳遞來完成。

23、下面是求最大公約數(shù)的函數(shù)的首部Functiongcd(ByValxAsInteger,ByVaiYAs

Integer)As如teger若要輸出8、12、16這3個數(shù)的最大公約數(shù),下面正確的語句是

A、Printgod(8,12),gcd(12,16),gcd(16,8)

Printgcd(8,12,16)

C、Printgcd(8),gcd(12),gcd(16)

D、Printgcd(8,gcd(12,16))

標(biāo)準(zhǔn)答案:D

知識點解析:函數(shù)過程在傳遞參數(shù)時,形參表與實參表中對應(yīng)變量的名字不必相

同,但參數(shù)的個數(shù)、對應(yīng)位置和對應(yīng)類型必須相同。本題中的gcd函數(shù)有兩個參

數(shù),任何對于gcd的調(diào)用都必須傳遞實參為兩個整型值;選項A)中得到3個結(jié)

果,顯然不是我們所需要的;選項D)中的函數(shù)嵌套調(diào)用能夠求出3個數(shù)的最大公

約數(shù)。

24、為了通過傳值方式來傳送過程參數(shù),在函數(shù)聲明部分應(yīng)使用的關(guān)鍵字為

A、Value

B、ByVai

C、ByRef

D、Reference

標(biāo)準(zhǔn)答案:B

知識點解析:傳值就是通過值傳送實際參數(shù),即傳送實參的值而不是傳送它的地

址。在這種情況下,通用過程不訪問變量(實參)的原始地址,因此不會改變原來變

量的值,所有的變化都是在變量的副木上進行的。傳值方式通過關(guān)鍵字ByVai來

實現(xiàn)。也就是說,在定義通用過程時,如果形參前面有ByVai,則該參數(shù)通過傳值

方式傳送。在傳值方式下,對形參的改變不會影響到實參。

25、以下過程定義中正確的過程首行是

A、PrivateSubProc(OptionalaasInteger,basInteger)

B、PrivateSubProc(aasInteger)asInteger

C>PrivateSubProc(a()AsInteger)

D、PrivateSubProc(ByVala()AsInteger)

標(biāo)準(zhǔn)答案:C

知識點解析:VisualBasic允許用數(shù)組作為參數(shù)。但用數(shù)組作為過程的參數(shù)時,應(yīng)

在數(shù)組名的后面加上一對括號,以免與普通變量相混淆;而且只能使用地址傳遞,

不能使用值傳遞。為了定義可選參數(shù),需要在參數(shù)表中使用Optional關(guān)鍵字來指定

可選參數(shù),但是可選參數(shù)必須是變體型,而且放在參數(shù)表的最后。Sub子過程是不

能有返回值類型的。

26、某人編寫了下面的程序PrivateSubCommandl_Click()DimaAsInteger,bAs

Integera=InputBox("請輸入整數(shù)")b=InputBox("請/入整如)proa:probCall

pro(a+b)EndSubPrivateSubpro(nAsInteger)While(n>0)PrintnMod10:n=n\10

WendPrimEndSub此程序功能是:輸入2個正整數(shù),反序輸出這2個數(shù)的每一位

數(shù)字,再反序輸出這2個數(shù)之和的每一位數(shù)字。例如:若輸入123和234,則應(yīng)該

輸出:321432753但調(diào)試時發(fā)現(xiàn)只輸出了前2行(即2個數(shù)的反序),而未輸出

第3行(即2個數(shù)之和的反序),程序需要修改。下面的修改方案中正確的是

A^把過程pro的形式參數(shù)nAsInteger改為ByVainAsInteger

B、把Callpro(a+b、)改為proa+b

C、把n=n\10改為n=n/10

D、在prob語句之后增加語句c%=a+b,再把Callpro(a+b)改為proc

標(biāo)準(zhǔn)答案:A

知識點解析:本題考查的考點是有關(guān)過程調(diào)用的。本題題干中的程序之所以不能顯

示第三行的值,是由于在調(diào)用pro函數(shù)時使用的是默認(rèn)的傳地址調(diào)用,這時在pr。

過程中的對形參的更改都會影響到實參。仔細(xì)觀察pro過程,發(fā)現(xiàn)每次循環(huán)都要對

形參n整除10一直到n為0為止,所以每次pro過程調(diào)用結(jié)束后都會把對應(yīng)實參

改為0。修改參數(shù)傳遞方式為傳值調(diào)用即可使程序正確運行。

27、有下面程序代碼:PrivateSubCommandl_Click()DimxAsInteger,sAsInteger

x=lFork=lTo3x=x+l:procx:s:s+xNextkPrintsEndSubPrivateSub

proc(ByValaAsInteger)StaticxAsIntegerx=x+l:a=a+xEndSub程序運彳j后,單

擊命令按鈕Command1,輸出結(jié)果是

A、6

B、9

C、15

D、19

標(biāo)準(zhǔn)答案:B

知識點解析:本題中首先要區(qū)分在命令按鈕的單擊事件中定義的x是局部變量,僅

能在過程內(nèi)部起作用;在子過程proc中定義的靜態(tài)變量x也是局部變量,也只能

在本過程中起作用。在VB的過程調(diào)用時,參數(shù)有兩種傳遞方式;傳址傳遞和傳值

傳遞。如果在過程聲明時形參用ByVai聲明,說明此參數(shù)為傳值調(diào)用;若用ByRef

聲明,說明此參數(shù)為傳址調(diào)用:沒有說明傳遞類型,則默認(rèn)為傳址傳遞。即形參的

結(jié)果會傳遞給實參。本題中proc過程的參數(shù)a用的是值傳遞,因此形參的改變不

會影響到實參,所以在命令按鈕的單擊事件中循環(huán)累加的是2+3+4=9。

28、編寫如下程序:PrivateSubCommandl_Click()DimxAsIntegerx=10Print

funl(x,12)+xEndSubPrivateFunctionfunl(mAsInteger,nAsInteger)AsInteger

Ifn>10Thenm=nfunl=m+nEndFunction程序運行后,單擊命令按鈕Command),

輸出結(jié)果為

A、30

B、32

C、34

D、36

標(biāo)準(zhǔn)答案:D

知識點解析:本體是一個簡單的函數(shù)調(diào)用,調(diào)用funl函數(shù)時將x的值作為實參傳

送給funl函數(shù),由于第二個參數(shù)12滿足n>10,會將形參m的值也改變?yōu)?2,因

返回的函數(shù)值為24;由于函數(shù)funl的各個參數(shù)為地址傳遞,因此對于形參m的值

會影響實參x的值,即x的值也變?yōu)?2。

29、在窗體上畫一個名稱為Commandl的命令按鈕,再畫兩個名稱分別為Label1、

Labcl2的標(biāo)簽,然后編寫如下程序代碼:PrivateXAsIntegerPrivateSub

Commandl_Click()X=5:Y=3Callproc(X,Y)Label1.Caption=X

Label2.C叩tion=YEndSubPrivateSubproc(aAsInteger,ByVaibAsInteger)

X=a*a:Y=b+bHndSub程序運行后,單擊命令按鈕,則兩個標(biāo)簽中顯示的內(nèi)容分

別是

A、25和3

B、5和3

C、25和6

D、5和6

標(biāo)準(zhǔn)答案:A

知識點解析:本題考查的考點是有關(guān)參數(shù)傳遞的。在VB的過程調(diào)用時,參數(shù)有兩

種傳遞方式:傳址傳遞和傳值傳遞。如果在過程聲明時形參用ByVai聲明,說明

此參數(shù)為傳值調(diào)用:若用ByRef聲明,說明此參數(shù)為傳址調(diào)用:沒有說明傳遞類

型,則默認(rèn)為傳址傳遞。即形參的結(jié)果會傳遞給實參。由于本題中的實參Y采用

傳值傳遞,實參X采用傳址傳遞,而且X是全局變量,所以在被調(diào)過程中改變了

X的值而沒有改變Y的值。

30、設(shè)有如下通用過程:PublicFunctionf(xAsInteger)DimyAsIntegerx=20:

y=2:f=x*yEndFunction在窗體上畫一個命令按鈕,其名稱為Command],然后編

寫如下事件過程:PrivateSubCommandl_Click()StaticxAsIntegerx=IO:y=5:

y=fix)Printx;yEndSuh程序運行后,如果單擊命令按鈕,則在窗體上顯示的內(nèi)容

A、105

B、2040

C、205

D、1040

標(biāo)準(zhǔn)答案:B

知識點解析:本題中函數(shù)f中的形參x和按鈕的單擊事件中的靜態(tài)變量x是不同的

變量,相互之間互不影響。函數(shù)f的參數(shù)X使用的是地址傳遞的形式,即形參的變

化會影響到實參;在命令按鈕的單擊事件中調(diào)用函數(shù)f,會使得參數(shù)X的值變成

20,函數(shù)返回值為40。

31、命任何一個滾動條滾動框件過程如下:PrivateSubCommandl_Click()x=10

Printf(x)EndSubPrivateFunctionf(yAsInteger)f=y*yEndFunction運行上述程

序,如下敘述中正確的是:

A、程序運行出錯,x變量的類型與函數(shù)參數(shù)的類型不符

B、在窗體上顯示100

C、函數(shù)定義錯,函數(shù)名f不能又作為變量名

D、在窗體上顯示10

標(biāo)準(zhǔn)答案:A

知識點解析:在淵用子過程或者函數(shù)過程時,要求實參與形參必須是匹配的,即個

數(shù)相同、類型相同、順序一致。本題中命令按鈕的Click事件中隱式聲明了變量

X,所以X是變體型:在調(diào)用函數(shù)f的時候?qū)⒆凅w型的X作為實參傳送,但函數(shù)f中

的形參y是整型的,故此產(chǎn)生類型不匹配的情況。

32、編寫如下程序:PrivateSubCommandl_Click()DimxAsInteger,yAsInteger

x=InputBox("輸入第一個數(shù)"):y=InputBox(“輸入第二個數(shù)")CallRx,y)Printx,y

EndSubSubf(aAsInteger.ByVaibAsInteger)a=a*2:x=a+b:b=b+100EndSub程

序運行后,單擊命令按鈕Command1,并輸入數(shù)值10和15,則輸出結(jié)果為

A、10115

B、20115

C、3515

D、2015

標(biāo)準(zhǔn)答案:D

知識點解析:在VisualBasic中調(diào)用過程時,參數(shù)有兩種傳遞形式:按值傳遞

(ByVai)和按址傳遞(Byrd),默認(rèn)為按址傳遞。其中,當(dāng)參數(shù)按址傳遞時,如果在

引用該參數(shù)的過程中改變了形參的值,同時也就改變了傳遞參數(shù)時實參變量的值。

本題中f的參數(shù)a是按地址傳遞的,b是按值傳遞的,因此在f中對a的改變會影

響實參x,對b的操作不會影響實參y。

33、現(xiàn)有程序如下:OptionBase1PrivateSubFormClick()Dimx(5,6)AsInteger,

y(5)AsIntegerFori=lTo5Forj=lTo6x(i,j)=Int(Rnd*9+I)NextjNextiCallf(5,

6,x,y)Fori=lTo5Printy(i);NextiEndSubSubf(mAsInteger,nAsInteger,

a()AsInteger.h()AsInteger)Fori=lTomh(i)=0Fori=1Tonh(i)=h(i)+a(i,j)

Next{NextiEndSub關(guān)于上述程序,以下敘述中正確的是

A、調(diào)用過程語句有錯,參數(shù)不匹配

B、程序有錯,數(shù)組下標(biāo)越界

C、y數(shù)組中保存的是x數(shù)組每行數(shù)據(jù)之和

D、x數(shù)組中數(shù)據(jù)的取值范圍是1-10

標(biāo)準(zhǔn)答案:C

知識點解析:本題中子過程f的四個形參分別為整型、整型、整型數(shù)組和整型數(shù)

組,在窗體的單擊事件中調(diào)用過程f,四個實參和四個形參可以匹配,調(diào)用語句沒

有錯誤:在二重循環(huán)中為二維數(shù)組的每個元素賦值,數(shù)組下界從1開始,因此不會

越界;在二重循環(huán)中為數(shù)組x的元素賦值為0?9之間的值;在過程f中用一個二

重循環(huán)以此計算x數(shù)組每行數(shù)據(jù)之和放在y數(shù)組中,

34、窗體上有一個名稱為Command1的命令按鈕,一個名稱為Textl的文本框。編

寫如下程序:PrivateSubCommand!Click()DimxAsIntegerx=Va1(InputBox("輸入

數(shù)據(jù)”))Text1=Str(x+fun(x)+fun(x))EndSubPrivateFunctionfun(ByRefnAsInteger)

IfnMod3=0Thenn=n+nElsen=n*nEndIffun=nEndFunction對于上述程序,以下

敘述中錯誤的是

A、語句fun=n有錯,因為n是整型,fun沒有定義類型

B、運行程序,輸入值為5時,文本框中顯示655

C、運行程序,輸入值為6時,文本框中顯示42

D、ByRef表示參數(shù)按址傳遞

標(biāo)準(zhǔn)答案:A

知識點解析:本題中的函數(shù)fun的功能是判斷參數(shù)是否能被3整除,若可以整除則

將n翻倍,否則將n變?yōu)閚的平方返回。在函數(shù)頭部沒有聲明函數(shù)的返回值類型,

默認(rèn)為變體型,可以接受任何數(shù)據(jù)類型的賦值;ByRef表示參數(shù)按址傳遞,對形參

的改變將會影響實參;當(dāng)輸入5的時候輸出5+25+625=655;當(dāng)輸入6的時候輸出

6+12+24=42o

35、窗體上有一個名稱為Command]的命令按鈕,并有如下程序代碼:PrivateSub

Commandl_Click()Staticaa=l:b=2:c=3Callf(a,b,c)Printa:b:cEndSubSub

f(ByValx,ByRefy,z)x=x+l:y=y+1:z=z+1EndSub運行程序,單擊命令按鈕,

窗體上顯示的是

A、133

B、134

C、233

D、234

標(biāo)準(zhǔn)答案:B

知識點解析?:在VisualBasic中調(diào)用過程時,參數(shù)有兩種傳遞形式:按值傳遞

(ByVai)和按址傳遞(Byref),默認(rèn)為按址傳遞。其中,當(dāng)參數(shù)按址傳遞時,如果在

引用該參數(shù)的過程中改變了形參的值,同時也就改變了傳遞參數(shù)時實參變量的值。

本題中f的參數(shù)x是按值傳遞的,y和z是按地址傳遞的,因此在f中對x的改變

不會影響實參a,對y和z的操作會影響實參b和c。

36、窗體上有一個名稱為Command1的命令按鈕,其單擊事件過程如下:Private

SubCommandI_Click()DimxAsInteger,VAsIntegerStaticzAsIntegerx=3:y=5:

z=yCallf(x,y,z)Printx;y;zEndSubPrivateSubf(ByValaAsInteger,ByRefb

AsInteger,cAsInteger)a=a+a:b=b+b:c=c+cEndSub運行程序,單擊命令按鈕

時,3個標(biāo)簽中顯示的內(nèi)容分別是

A、355

B、3510

C、3105

D、31010

標(biāo)準(zhǔn)答案:D

知識點解析:在VisualBasic中調(diào)用過程時,參數(shù)有兩種傳遞形式:按值傳遞

(ByVai)和按址傳遞(Byre。,默認(rèn)為按址傳遞。其中,當(dāng)參數(shù)按址傳遞時,如果在

引用該參數(shù)的過程中改變了形參的值,同時也就改變了傳遞參數(shù)時實參變量的值。

本題中f的參數(shù)a是按值傳遞的,b和c是按地址傳遞的,因此在f中對a的改變不

會影響實參x,對b和c的操作會影響實參x和y。

37、窗體上有一個名稱為Command的命令按鈕,其單擊事件過程及相關(guān)的代碼如

卜:PrivateSubCommandlClick()DimxAsInteger,yAsIntegerx=Val(InputBox(“輸

入整數(shù)"))y=Val(InputBox("輸入整數(shù)"))PrintStr(fun(x,y)+x+y)EndSubPrivate

Functionfun(ByRefmAsInteger,ByVainAsInteger)n=n+n:fun=m+nEnd

Funciion運行程序,單擊命令按鈕時,出現(xiàn)輸入對話框,分別輸入3、5,則窗體

上顯示的是

A、27

B、28

C、33

D、38

標(biāo)準(zhǔn)答案:C

知識點解析?:在VisualBasic中調(diào)用過程時,參數(shù)有兩種傳遞形式:按值傳遞

(Byval)和按址傳遞(Byref),默認(rèn)為按址傳遞。其中,當(dāng)參數(shù)按址傳遞時,如果在引

用該參數(shù)的過程中改變了形參的值,同時也就改變了傳遞參數(shù)時實參變量的值。本

題中fun的參數(shù)m是按地址傳遞的,n是按值傳遞的,因此在f中對m的改變會影

響實參x,對n的操作不會影響實參y,即輸出的是Slr(19十9十5尸“33”。

38、設(shè)有如下程序:PrivateSubInv(ByValxSlrAsString,ySlrAsString)DimtStr

AsStringDimLAsIntegerL=Len(xStr)DoWhileL>=1tStr=tStr+Mid(xStr,L,1):L=L-

1LoopyStr=tStrEndSubPrivateSubForm_Click()DimSIAsString,S2AsString

Sl^abcderinvSl.S2PrintS2EndSub運行程序,單擊窗體,輸出結(jié)果為

A、abcdef

B、afbecd

C、fedcba

D、defabc

標(biāo)準(zhǔn)答案:C

知識點解析:在VisualBasic中調(diào)用過程時,參數(shù)有兩種傳遞形式:按值傳遞

(Byval)和按址傳遞(Byrd),默認(rèn)為按址傳遞。其中,當(dāng)參數(shù)按址傳遞時,如果在引

用該參數(shù)的過程中改變了形參的值,同時也就改變了傳遞參數(shù)時實參變量的值。本

題中Inv的參數(shù)xSlr一是按值傳遞的,yStr是按地址傳遞的,因此在Inv中對xSlr

的改變不會影響實參S1,對yStr的操作會影響實參S2。過程Inv的作用是在每次

循環(huán)中取出S1字符串靠后面的值連接到tStr中,然后將iStr賦值給ySlr從而通過

地址傳遞帶回給S2,即字符串的逆序。

39、設(shè)有如下程序:PrivateSubsV(ByValmAsInteger,nAsInteger)m=m*2:n=n-

5;Printm:nEndSubPrivateSubForm_Click()DimXAsInteger,YAsIntegerx=IO:

y=15:sVx,yPrintx;YEndSub運行程序,單擊窗體,輸出結(jié)果為

A、20101010

B、10152010

C、20151015

D、20102010

標(biāo)準(zhǔn)答案:A

知識點解析:在VisualBasic中調(diào)用過程時,參數(shù)有兩種傳遞形式:按值傳遞

(ByVai)和按址傳遞(Byr田,默認(rèn)為按址傳遞。其中,當(dāng)參數(shù)按址傳遞時,如果在

引用該參數(shù)的過程中改變了形參的值,同時也就改變了傳遞參數(shù)時實參變量的值。

本題中sV的參數(shù)m是按值傳遞的,n是按地址傳遞的,因此在sV中對m的改變

不會影響實參x,對n的操作會影響實參y。

4。、由高中數(shù)學(xué)可知,對于連續(xù)函數(shù)f(x),若f(xl)與f(x2)值的符號相反,則在xl

和x2之間必存在x0,使得f(xO)=O(該點稱為“零點設(shè)有VB函數(shù):Private

Functionf(xAsSingle)AsSingle可以返回f(x)的值(函數(shù)體沒有給出)。下面程序的功

能是從鍵盤輸入2個實數(shù)xl、x2,判斷在xl、x2之間是否存在零點。PrivateSub

Commandl_Click()DimxlAsSingle,x2AsSinglexl=InputBox("請輸入一個實數(shù)

xl")x2=InputBox("請再輸入一個實數(shù)x2")If()ThcnPrint"在“:xl;n

與”;x2;”之間存在零點"ElsePrint”不能確定在“;與“與“:x2;”之間是否存在

零點”EndIfEndSubPrivateFunctionf(xAsSingle)AsSingleEndFunction為使上面

程序可以實現(xiàn)該功能,程序代碼中橫線處應(yīng)填寫的代碼是

A、f(xl)>0Orf(x2)<0

B、f(xl)<0Andf(x2)<0

C、f(xl)*f(x2)<0

D、f(xl)*f(x2)>0

標(biāo)準(zhǔn)答案:C

知識點解析:本題實際是要求判斷兩個函數(shù)值是否符號相反,由中學(xué)數(shù)學(xué)的知識可

知,兩數(shù)相反的標(biāo)志是兩數(shù)相乘結(jié)果小于0。

41、編寫如下程序:PrivateSubCommandl_Click()DimxAsInteger,YAsInteger

x=10:y=20Callfunl(x,y)Printx:YEndSubPrivateFunctionfunl(ByValmAs

Integer,nAsInteger)AsIntegerm=m*m:n=n+nEndFunction程序運行后,單擊命

令按鈕Commandl,輸出結(jié)果為

A、1025

B、1040

C、10025

D、10040

標(biāo)準(zhǔn)答案:B

知識點解析:在VisualBasic中調(diào)用過程時,參數(shù)有兩種傳遞形式:按值傳遞

(ByVai)和按址傳遞(Byref),默認(rèn)為按址傳遞。其中,當(dāng)參數(shù)按址傳遞時,如果在

引用該參數(shù)的過程中改變了形參的值,同時也就改變了傳遞參數(shù)時實參變量的值。

本題中。funl的參數(shù)m是按值傳遞的,n是按地址傳遞的,因此在funl中對m的

改變不會影響實參x,對n的操作會影響實參y。

42、設(shè)有以下過程:PrivateSubproc(xAsInteger,OptionalYAsInteger)Printx,y

EndSub針對此過程,下面正確的過程調(diào)用語句是

A、Callproc(a!,23)

B、Callprocx%,12

C>procb%

D、x=proc(12)

標(biāo)準(zhǔn)答案:C

知識點解析:Optional聲明的參數(shù)是可選參數(shù),在調(diào)用的時候可以省略對應(yīng)的實

參,但是可選參數(shù)必須放在形參列表的最后聲明;在過程內(nèi)可以使用IsMissing函

數(shù)來判斷是否實際調(diào)用的時候省略了對應(yīng)的實參。子過程可以獨立使用,也可以使

用Call關(guān)鍵字來進行調(diào)用,但此時參數(shù)需要加括號。

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

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

B、調(diào)用過程時使用的實參的個數(shù)應(yīng)與過程形參的個數(shù)相同(假定不含可變參數(shù))

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

D、窗體可以作為過程的參數(shù)

標(biāo)準(zhǔn)答案:C

知識點解析:本題考查的考點是有關(guān)過程參數(shù)的。過程的參數(shù)可.以為任何控件,包

括窗體,在傳遞參數(shù)時,形參表與實參表中對應(yīng)變量的名字不必相同,但參數(shù)的個

數(shù)、對應(yīng)位置和對應(yīng)類型必須相同。除了函數(shù)過程可以把信息返回到調(diào)用程序中,

一般過程也可以通過地址傳遞的方法把信息返回到調(diào)用程序中。

家二級VB機試(過程)模擬試卷第2

一、選擇題(本題共43題,每題1.0分,共43分。)

1、假定有如下事件過程:PrivateSubFormClick()DimXAsInteger,nAsInteger

x=l:n=0DoWhilex<28x=x*3:n=n+lloopPrintx,nEndSub程序運行后,單擊

窗體,輸出結(jié)果是

A、814

B、563

C、281

D、2435

標(biāo)準(zhǔn)答案:A

知識點解析?:本題考查D。While循環(huán)。在窗體的Click事件代碼里面,定義了變量

x和n,分析D。While循環(huán)可知,n保存循環(huán)次數(shù),x是循環(huán)控制變量,如果x的

值小于28則進入循環(huán)體,因此x和n的變化過程是:3和0、9和2、27和3、81

和4,經(jīng)過4次循環(huán)后x值變成81,循環(huán)條件不成立,循環(huán)結(jié)束。

2、以下敘述中錯誤的是

A、標(biāo)準(zhǔn)模塊文件的擴展名是.bas

B、標(biāo)準(zhǔn)模塊文件是純代碼文件

C、在標(biāo)準(zhǔn)模塊中聲明的全局變量可以在整個工程中使用

D、在標(biāo)準(zhǔn)模塊中不能定義過程

標(biāo)準(zhǔn)答案:D

知識點解析:本題考查的考點是有關(guān)標(biāo)準(zhǔn)模塊的。VB中的標(biāo)準(zhǔn)模塊也稱全局模塊

或總模塊,由全局變量聲明、模塊層聲明及通用過程等幾部分組成,其擴展名

為.bas,里面只有代碼而沒有任何控件。其中全局聲明放在標(biāo)準(zhǔn)模塊的首部,可

以在整個工程中使用。

3、下面不能在信息框中輸出“VB”的是

A、MsgBox”VB”

B、x=MagBox(''VB")

C、MsgBox(”VB”)

D、CallMsgBox”VB”

標(biāo)準(zhǔn)答案:D

知識點解析:MsgBox()函數(shù)用于顯示提示信息,并可返回一個代表用戶單擊了哪

個按鈕的Integer類型值,當(dāng)其作為函數(shù)使用時必須將參數(shù)放在括號內(nèi)部,而返回

值可以賦值給一個變量,也可以單獨使用此函數(shù)而不將其返回值賦值給變量;

MsgBox過程也用于顯示提示信息,作為過程可以獨立使用,也可以使用Call關(guān)鍵

字來進行調(diào)用,但此時參數(shù)需要加括號。

4、以下關(guān)于過程的敘述中,錯誤的是

A、在Sub過程中不能再定義Sub過程

B、事件過程也是Sub過程

C、過程調(diào)用語句的形參個數(shù)必須與實參個數(shù)相同

D、函數(shù)過程一定有返回值

標(biāo)準(zhǔn)答案:C

知識點解析:Sub過程分為事件過程和通用過程,過程不允許嵌套定義,即在Sub

過程中再定義Sub過程:函數(shù)過程必須有一個返回值,當(dāng)過程的聲明語句中使用

了可選參數(shù)的時候,允許實參個數(shù)與形參不同。

5、設(shè)子程序過程定義的首部為:PublicSubS(XAsInteger,YAsSingle)則以卜正確

的調(diào)用形式為

A、CallS5,4.8

B、CallSub(5,4.8)

C、Sub5,4.8

D、S5:4.8

標(biāo)準(zhǔn)答案:D

知識點解析:子過程可以獨立使用,也可以使用Call關(guān)鍵字來進行調(diào)用,但此時

參數(shù)需要加括號。本題中子程序的名字是S,故此B、C選項可以排除,A選項中

缺少參數(shù)的括號。

6、在窗體上畫兩個標(biāo)簽和一個命令按鈕,其名稱分別為Labell、Label2和

command1,然后編寫如下程序:PrivateSubfunc(LAsLabel)L.Caption^'1234''

EndSubPrivateSubFormLoad()Label1.Caption="ABCDE"Label2.Caption=10

EndSubPrivateSubCommandl_Click()a=Val(Labe12.Caption)Callfunc(Labell)

Labcl2.Caption=aEndSub程序運行后,單擊命令按鈕,則在兩個標(biāo)簽中顯示的內(nèi)

容分別為

A、ABCD和10

B、1234和100

C、ABCDfO100

D、1234和10

標(biāo)準(zhǔn)答案:D

知識點解析:本題考查的考點是有關(guān)過程調(diào)用的。窗體加載時首先執(zhí)行了Load事

件里面的代碼,設(shè)置Labell的標(biāo)題為“ABCDE”,Label2的標(biāo)題為“10”;當(dāng)單擊命

令按鈕時,調(diào)用了func過程,在這個過程中把傳入的Labell的標(biāo)題設(shè)置為

“1234”,Label2的標(biāo)題沒有發(fā)生變化。

7、設(shè)有如下Command1的單擊事件過程及fun過程:PrivateSub

Commandl_Click()DimXAsIntegerx=Val(InputBox(“請輸入一個整數(shù)"))fun(x)End

SubPrivateSubfun(xAsInteger)IfxMod2=0Thenfun(x/2)Printx;EndSub執(zhí)行

上述程序,輸入6,結(jié)具是

A、36

B、63

「、6

D、程序死循環(huán)

標(biāo)準(zhǔn)答案:A

知識點解析:本題中的fun過程是一個遞歸調(diào)用,如果參數(shù)x為偶數(shù)則進入遞歸;

本題中的實參6傳入fun過程之后,因其是偶數(shù),所以執(zhí)行fun(6/2).也就是先輸

出3,然后返回到fun中輸出6。

8、編寫如下程序:PrivateSubCommandl_Click()DimstrlAsString,str2AsString

strl=InputBox("輸入一個字符串")subfstrl,str2:Printstr2EndSubSubsubf(s1As

String,s2AsString)DimtempAsStringStaticiAsIntegeri=i+ltemp=Mid(sl,i,1)

Iftempo44,,Thensubfsl,s2s2=s2&tempEndSub程序運行后,單擊命令按鈕

Command1,且輸入“abcdeP,則輸出結(jié)果為

A、afbecd

B>edbeaf

C、fedeba

D、adbecf

標(biāo)準(zhǔn)答案:C

知識點解析:本題中的子過程subf會進行遞歸調(diào)用,只要在參數(shù)si中取出的字符

不是空字符串就進行遞歸,直到i的值超過si的長度才停止,然后進行回歸操

作,相當(dāng)于每一次向s2中連接的字符都是最后取出的si中的字符,最終實現(xiàn)字符

串的逆序操作。

9、以下關(guān)于函數(shù)過程的敘述中,正確的是

A、函數(shù)過程形參的類型與函數(shù)返回值的類型沒有關(guān)系

13、在函數(shù)過程中,過程的返回值可以有多個

C、當(dāng)數(shù)組作為函數(shù)過程的參數(shù)時,既能以傳值方式傳遞,也能以傳址方式傳潴

D、如果不指明函數(shù)過程參數(shù)的類型,則該參數(shù)沒有數(shù)據(jù)類型

標(biāo)準(zhǔn)答案:A

知識點解析:本題考查的考點是有關(guān)函數(shù)過程的。函數(shù)過程町以返回一個函數(shù)值,

但這個函數(shù)值的類型和參數(shù)類型沒有任何關(guān)系;如果不指明參數(shù)的類型,則默認(rèn)參

數(shù)為變體型;數(shù)組作為函數(shù)參數(shù)時只能通過傳地址的方式來調(diào)用。

10、在VB中,函數(shù)過程與子程序過程的區(qū)別之一是

A、函數(shù)過程必須有參數(shù),而子程序過程可以沒有

B、函數(shù)過程的參數(shù)傳遞只采用值傳遞,而子程序過程只采用地址傳遞

C、在程序中,子程序過程調(diào)用的代碼可以寫在表達(dá)式中,而函數(shù)過程不能

D、函數(shù)過程有返回值,而子程序過程沒有

標(biāo)準(zhǔn)答案:D

知識點解析:函數(shù)過程和Sub子過程一樣,也可以有參數(shù)也可以沒有參數(shù);參數(shù)

傳遞也可以使用地址傳涕也可以使用值傳遞:都是在代碼中進行調(diào)用,只是函數(shù)過

程必須有一個返回值,子過程沒有。

11、在窗體上畫一個命令按鈕(名稱為Command〕),并編寫如卜代碼:FunctionFun

1(ByVaiaAsInteger,bAsInteger)AsIntegerDimtAsIntegert=a-b:b=t+a:

Funl=t+bEndFunctionPrivateSubCommandl_Click()DimxAsIntegerx=10Print

Funl(Funl(x,(Funl(x,x-I))),x—1)EndSub程序運行后,單擊命令按鈕,輸出

結(jié)果是

A、10

B、0

C、11

D、21

標(biāo)準(zhǔn)答案:B

知識點解析:本題考查的考點是有關(guān)過程調(diào)用的。對于這種復(fù)雜的困數(shù)調(diào)用,一定

要搞清楚調(diào)用的順序以及參數(shù)傳遞的是值還是地址。根據(jù)過程調(diào)用的原則,首先調(diào)

用最內(nèi)層的Funl(x,x—l),其結(jié)果為12,x的值不變?nèi)詾?0;然后調(diào)用

Funl(x,12),其結(jié)果為6,x的值也不變?yōu)?0;最后調(diào)用Funl(6,x-1),其結(jié)果

為0,X的值也不變?yōu)?0。本題中的傳址調(diào)用是沒有作用的,因為表達(dá)式是不能傳

地址的。

12>有下面程序代碼:PrivateSubCommandl_Click()DimaAsString

a=''COMPUTER"n=search(a,'T)PrintIIf(n=0,"未找至0",n)EndSubPrivate

Functionsearch(strAsString,chAsString)AsIntegerFork=lToLen(str)

c=Mid(str,k,1)Ifc=chThensearch=k:ExitFunctionEndIfNextksearch=0End

Function程序運行后,單擊命令按鈕Command1,輸出結(jié)果是

A、0

B、8

C、6

D、未找到

標(biāo)準(zhǔn)答案:C

知識點解析:本題中search函數(shù)的參數(shù)是兩個字符串,在函數(shù)內(nèi)進行循環(huán),依次

取出第一個參數(shù)的第k位和第二個參數(shù)進行比較,如果相等則返回k的值,實際上

就是查找第二個參數(shù)在第一個參數(shù)中出現(xiàn)的位置。

13、現(xiàn)有如下程序:PrivateSubCommandl_Click()s=0Fori=lTo5s=s+f(5+i)Next

PrintsEndSubPublicFunctionf(xAsInteger)Ifx>=10Thent=x+lElset=x+2EndIf

f=tEndFunction運行程序,則窗體上顯示的是

A、38

B、49

C、61

D、70

標(biāo)準(zhǔn)答案:B

知識點解析:本題考奄的考點是有關(guān)函數(shù)調(diào)用和If語句的。要注意在前4次循環(huán)

中每次調(diào)用f函數(shù)時傳遞的參數(shù)分別為6、7、8、9,都是小于10的,最后一次循

環(huán)傳遞參數(shù)10,所以最終結(jié)果應(yīng)該為8+9+10+11+11=49。

14、假定有以下通用過程:FunctionFun(nAsInteger)AsIntegerx=n*n:Fun=x-11

EndFunction在窗體上畫一個命令按鈕,其名稱為Commandl,然后編寫如卜事件

過程:PrivateSubCommandl_Click()DimiAsIntegerFori=lTo2y=Fun(i)Printy:

NextiEndSub程序運行后,單擊命令按鈕,在窗體上顯示的內(nèi)容是

A、I3

B、108

C、-10—7

D、05

標(biāo)準(zhǔn)答案:C

知識點解析:本題共調(diào)用Fun函數(shù)2次,每次的函數(shù)值都是參數(shù)的平方減去II的

值,故此輸出一10,-7,

15、求1!+2!+.......+10!的程序如b:PrivateFunctions(xAsInteger)f=lFori=lTo

xf=f*iNexts=fEndFunctionPrivateSubCommandl_Click()DimiAsInteger,yAs

LongFori=lTo10()NextPrintyEndSub為實現(xiàn)功能要求,程序的括號中應(yīng)該填

入的內(nèi)容是

A、Calls(i)

Calls

C、y=y+s(i)

D、y=y+s

標(biāo)準(zhǔn)答案:C

知識點解析:函數(shù)過程有一個返回值,一般出現(xiàn)在表達(dá)式中組成表達(dá)式的一部分。

本題的題目要求累加各個數(shù)的階乘,而函數(shù)s的作用是求參數(shù)的階乘,因此應(yīng)該在

每次循環(huán)中累加f函數(shù)的值,參數(shù)為循環(huán)變量i。

16、在窗體上畫一個名禰為Command1的命令按鈕,并編寫如卜程序:Function

Fun(x)y=0Ifx<10Theny=xElsey=y+10EndIfFun=yEndFunctionPrivateSub

Commandl_Click()n=InputBox("請琉入一個數(shù)")n=Val(n)P=Fun(n):PrintPEndSub

運行程序「單擊命令按鈕,將顯示輸入對話框,如果在對話框中輸入100,并單擊

“確定”按鈕,則輸出結(jié)果為

A、10

B、100

C、110

D、出錯信息

標(biāo)準(zhǔn)答案:A

知識點解析:本題是一個簡單的函數(shù)調(diào)用,在函數(shù)中會判斷參數(shù)x

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論