國家二級VB機(jī)試(控制結(jié)構(gòu))模擬試卷2(共258題)_第1頁
國家二級VB機(jī)試(控制結(jié)構(gòu))模擬試卷2(共258題)_第2頁
國家二級VB機(jī)試(控制結(jié)構(gòu))模擬試卷2(共258題)_第3頁
國家二級VB機(jī)試(控制結(jié)構(gòu))模擬試卷2(共258題)_第4頁
國家二級VB機(jī)試(控制結(jié)構(gòu))模擬試卷2(共258題)_第5頁
已閱讀5頁,還剩78頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

國家二級VB機(jī)試(控制結(jié)構(gòu))模擬試卷2(共9套)(共258題)國家二級VB機(jī)試(控制結(jié)構(gòu))模擬試卷第1套一、選擇題(本題共40題,每題1.0分,共40分。)1、窗體上有一個名稱為Textl的文本框,一個名稱為Commandl的命令按鈕。要求編寫一個程序,統(tǒng)計文本框中0-9各數(shù)字字符的個數(shù)。某人編寫如下程序:PrivateSubCommandl_Click()Dimcount(10)AsInteger’第1個For循環(huán)Fori=0To9count(i)=0NextS=Trim(Textl.Text)strLen=Len(s)’第2個For循環(huán)Fori=1TostrLenc=Mid(s,i,1)Ifc>=”0”AndC<=”9”ThenX=Val(c):count(i)=count(i)+1EndIfNext’第3個For循環(huán)Fori=0TO9PrintStr(i),count(i)NextEndSub運(yùn)行程序后,發(fā)現(xiàn)不能實現(xiàn)題目的要求,程序應(yīng)該進(jìn)行的修改是A、將第2個For循環(huán)的初值改為0B、將第2個For語句改為Fori=0To9C、去掉x=Val(c)語句D、將count(i)=count(i)+1改為count(x)=count(x)+1標(biāo)準(zhǔn)答案:D知識點解析:本題中要求分別統(tǒng)計數(shù)字0~9的個數(shù),使用了一個數(shù)組count來存放各個數(shù)字的個數(shù)。在第一個For循環(huán)中,將數(shù)組的各個元素設(shè)置為0,在第二個循環(huán)中,依次取出字符串中的每一個字符,判斷是不是在0~9之間,如果在范圍內(nèi),則應(yīng)該令對應(yīng)的數(shù)組元素加1。如果寫成count(i)=count(i)+l,只能順序的令每一個數(shù)組元素都加1,只有改寫成count(x)=count(x)+1,讓x作為下標(biāo),才能保證讓x對應(yīng)的數(shù)組元素加1。2、在窗體上畫一個組合框,其名稱為Combol,然后編寫如下事件過程:PrivateSubForm_Load()Combo1.Text=”1”Fori=1To10Sum=Sum+iNextiCombo1.Text=SumEndSub程序運(yùn)行后,輸出結(jié)果為A、在組合框的編輯區(qū)中顯示1B、在組合框的編輯區(qū)中顯示不定值C、在組合框的編輯區(qū)中顯示55D、出錯信息標(biāo)準(zhǔn)答案:C知識點解析:組合框的Text屬性將會返回或者設(shè)置編輯區(qū)中的文本,本題中顯示的是1~10的累加和55。3、下面循環(huán)語句中在任何情況下都至少執(zhí)行一次循環(huán)體的是A、DoWhile<條件>循環(huán)體LoopB、While<條件>循環(huán)體WendC、Do循環(huán)體LoopUntil<條件>D、DoUntil<條件>循環(huán)體Loop標(biāo)準(zhǔn)答案:C知識點解析:本題考查循環(huán),DoLoopUnt訂循環(huán)至少會執(zhí)行一次,該循環(huán)是先執(zhí)行然后判斷循環(huán)條件。4、設(shè)a、b都是自然數(shù),為求a除以b的余數(shù),某人編寫了以下函數(shù):Functionfun(aAsInteger,bAsInteger)Whilea>ba=a-bWendfun=aEndFunction在調(diào)試時發(fā)現(xiàn)函數(shù)是錯誤的。為使函數(shù)能產(chǎn)生正確的返回值,應(yīng)做的修改是A、把a(bǔ)=a.b改為a=b.a(chǎn)B、把a(bǔ)=a.b改為a=a\bC、把Whilea>b改為WhileaD、把Whilea>b改為Whilea>=b標(biāo)準(zhǔn)答案:D知識點解析:本題函數(shù)過程的原代碼僅適合a不能被b整除的兩數(shù),而當(dāng)a能被b整除時則不適用,如a=4,b=2,a除以b的余數(shù)為0,而原代碼返回的函數(shù)值為2。因此需將語句Whilea>b改為Whilea>=b。5、設(shè)有如下事件過程:PfivmeSubForm_Click()x=0Whilex<10x=x+1:x=x*xWendPrintxEndSub運(yùn)行程序,單擊窗體,輸出結(jié)果是A、16B、19C、20D、25標(biāo)準(zhǔn)答案:D知識點解析:本題是簡單while循環(huán),在循環(huán)中改變循環(huán)變量x的值,要注意退出循環(huán)時x必然是不會滿足循環(huán)條件的。本題中循環(huán)中x依次變化為1、4、25。6、下面程序在調(diào)試時出現(xiàn)了死循環(huán)PrivateSubCommandl_Click()n=InputBox(“請輸入一個整數(shù)”)DoIfnMod2=0Thenn=n+1Elsen=n+2EndIfLoopUntiln=1000EndSubA、只有輸入的n是偶數(shù)時才會出現(xiàn)死循環(huán),否則不會B、只有輸入的n是奇數(shù)時才會出現(xiàn)死循環(huán),否則不會C、只有輸入的n是大于1000的整數(shù)時才會出現(xiàn)死循環(huán),否則不會D、輸入任何整數(shù)都會出現(xiàn)死循環(huán)標(biāo)準(zhǔn)答案:D知識點解析:本題考查循環(huán)。如果輸入的n是偶數(shù),那么在循環(huán)體中執(zhí)行n=n+1,偶數(shù)+1是奇數(shù),循環(huán)結(jié)束條件LoopUntiln=1000不會滿足,形成死循環(huán);如果輸入的n是奇數(shù),那么循環(huán)體內(nèi)執(zhí)行n=n+2,奇數(shù)+2依然是奇數(shù),循環(huán)結(jié)束條件永遠(yuǎn)不會滿足,也形成死循環(huán)。7、假定有以下循環(huán)結(jié)構(gòu)DoUntil條件表達(dá)式循環(huán)體Loop則以下正確的描述是A、如果“條件表達(dá)式”的值是0,則一次循環(huán)體也不執(zhí)行B、如果“條件表達(dá)式”的值不為0,則至少執(zhí)行一次循環(huán)體C、不論“條件表達(dá)式”的值是否為“真”,至少要執(zhí)行一次循環(huán)體D、如果“條件表達(dá)式”的值恒為0,則無限次執(zhí)行循環(huán)體標(biāo)準(zhǔn)答案:D知識點解析:本題考查的考點是有關(guān)Do型循環(huán)的。對于這種循環(huán)結(jié)構(gòu),首先看條件判斷在循環(huán)體的前面還是后面,如果是先判斷條件,則有可能一次也不執(zhí)行循環(huán)體;如果是后判斷條件,則無論條件如何至少執(zhí)行一次循環(huán)體。在Until循環(huán)中條件為False時執(zhí)行循環(huán)體,條件為True時退出循環(huán);在while循環(huán)中條件為True時執(zhí)行循環(huán)體,條件為False時退出循環(huán),這一點要注意區(qū)分清楚。8、以下VisualBasic不支持的循環(huán)結(jié)構(gòu)是A、For...NextB、ForEach...NextC、Do...LoopD、Do...EndDo標(biāo)準(zhǔn)答案:D知識點解析:VisualBasic支持的循環(huán)結(jié)構(gòu)包括:For...Next循環(huán)、ForEach...Next循環(huán)、Do...Loop循環(huán)和While循環(huán)。9、在窗體上畫兩個文本框(名稱分別為Text1和Text2)和一個命令按鈕(名稱為Commandl),然后編寫如下事件過程:PfivmeSubCommandl_Click()x=0DoWhilex<50x=(x+2)*(x+3):n=n+1LoopText1.Text=Str(n):Text2.Text=Str(x)EndSub程序運(yùn)行后,單擊命令按鈕,在兩個文本框中顯示的值分別為A、1和0B、2和72C、3和50D、4和168標(biāo)準(zhǔn)答案:B知識點解析:本題考查的考點是有關(guān)Do型循環(huán)的。對于這種循環(huán)結(jié)構(gòu),首先看條件判斷在循環(huán)體的前面還是后面,如果是先判斷條件,則有可能一次也不執(zhí)行循環(huán)體;如果是后判斷條件,則無論條件是什么,至少執(zhí)行一次循環(huán)體。在Until循環(huán)中條件為False時執(zhí)行循環(huán)體,條件為True時退出循環(huán);在While循環(huán)中條件為True時執(zhí)行循環(huán)體,條件為False時退出循環(huán),這一點要注意區(qū)分清楚。本題只需要實際計算一下兩次循環(huán)中x和n值的變化即可容易的得出結(jié)果。10、編寫如下程序:PrivateSubCommandl_Click()DimxAsInteger,yAsIntegerx=1:y=1Doy=x*yIfy>10ThenExitDoElsex=X+3EndIfLoopUntilx<=10Printx;yEndSub程序運(yùn)行后,單擊命令按鈕Commandl,輸出結(jié)果為A、11B、41C、42D、728標(biāo)準(zhǔn)答案:B知識點解析:Do型循環(huán)結(jié)構(gòu),首先看條件判斷在循環(huán)體的前面還是后面,如果是先判斷條件,則有可能一次也不執(zhí)行循環(huán)體;如果是后判斷條件,則無論條件是什么,至少執(zhí)行一次循環(huán)體。在Until循環(huán)中條件為False時執(zhí)行循環(huán)體,條件為True時退出循環(huán);在While循環(huán)中條件為Tme時執(zhí)行循環(huán)體,條件為False時退出循環(huán)。本題中使用的是后判斷型循環(huán),第一次循環(huán)時y的值為1,不滿足y>10,執(zhí)行Else分支,x變成4,此時由于滿足x<=10所以結(jié)束循環(huán)。11、編寫如下程序:PrivateSubCommandl_Click()DimnAsLong,SAsStringn=InputBox(”輸入一個數(shù)”)DoWhilen<>0s=s&nMod10:s=S&n\10Mod10n=n\100LoopPrintSEndSub程序運(yùn)行后,單擊命令按鈕Commandl,并輸入數(shù)值123456,則輸出結(jié)果為A、654321B、563412C、642531D、615243標(biāo)準(zhǔn)答案:A知識點解析:本題在循環(huán)中先將n除以10的余數(shù)(即個位數(shù)字)連接到s上,然后將整除10后除以10的余數(shù)(即十位上數(shù)字)連接到s上,然后n整除100的值賦值給n(即去掉最后兩位),然后繼續(xù)進(jìn)行循環(huán),所以最終將會輸出數(shù)字的逆序。12、下面程序計算并輸出的是PrivateSubCommandl_Click()a=10:s=0Dos=s+a*a*a:a=a-1LoopUntila<=0PrintsEndSubA、13+23+33…+103的值B、10!+…+3!+2!+1!的值C、(1+2+3+…+10)3的值D、10個103的和標(biāo)準(zhǔn)答案:A知識點解析:對于Do型循環(huán)結(jié)構(gòu),首先看條件判斷在循環(huán)體的前面還是后面,如果是先判斷條件,則有可能一次也不執(zhí)行循環(huán)體;如果是后判斷條件,則無論條件是什么,至少執(zhí)行一次循環(huán)體。在Until循環(huán)中條件為False時執(zhí)行循環(huán)體,條件為True時退出循環(huán);在While循環(huán)中條件為True時執(zhí)行循環(huán)體,條件為False時退出循環(huán)。本題是一個比較簡單的Do循環(huán),計算從1到10的立方和。13、窗體上有1個名稱為Commandl的命令按鈕,事件過程如下:PrivateSubCommandl_Click()Dimx%,y%,z%x=InputBox(”請輸入第1個整數(shù)”):y=InputBox(”請輸入第2個整數(shù)”)DoUntilx=yIfX>yThenx=x-yElsey=y-xEndifLoopPrintxEndSub運(yùn)行程序,單擊命令按鈕,并輸入2個整數(shù)169和39,則在窗體上顯示的內(nèi)容為A、11B、13C、23D、39標(biāo)準(zhǔn)答案:B知識點解析:本題的循環(huán)中將兩個輸入的數(shù)x和y互相相減,直到x=y為止,實際上就是輾轉(zhuǎn)相減法,求最大公約數(shù)的過程。14、窗體上有1個名稱為Commandl的命令按鈕,事件過程及函數(shù)過程如下:PrivateSubCommandl_Click()DimmAsStringm=InputBox(”請輸入字符串”)Printpick_str(m)EndSubPrivateFunctionpick_str(sAsString)AsStringtemp=””:i=1:sLen=Len(s)DoWhilei<=sLen/2temp=temp+Mid(s,i,1)+Mid(s,sLen-i+1,1)i=i+1Looppick_str=tempEndFunction運(yùn)行程序,單擊命令按鈕,并在輸入對話框中輸入“basic”,則在窗體上顯示的內(nèi)容為A、bcaiB、cbiaC、bcaisD、cbias標(biāo)準(zhǔn)答案:A知識點解析:本題的函數(shù)中使用了Do循環(huán),循環(huán)條件是i<=sLen/2;由于字符串的長度為5,所以循環(huán)會執(zhí)行兩次;在每次循環(huán)中使用Mid函數(shù)依次取得字符串的第一個字符、最后一個字符、第二個字符、倒數(shù)第二個字符。15、編寫如下程序:PrivateSubCommandl_Click()DimmAsInteger,nAsIntegerm=1:n=0DoWhilem<20n=m+n:m=3木m+lLoopPrintm,nEndSub程序運(yùn)行后,單擊命令按鈕Commandl,輸出結(jié)果為A、4018B、4019C、2064D、2164標(biāo)準(zhǔn)答案:A知識點解析:本題的Do循環(huán)是一個先判斷條件型的循環(huán),在循環(huán)中將循環(huán)變量m的值每次改變。分析循環(huán)可看出,在4次循環(huán)中m的值分別為1、4、13、40,而只有前三次循環(huán)中的m值被累加到n中,最后一次循環(huán)由于不滿足m<20而跳出。16、下列循環(huán)中,可以正常結(jié)束的是A、i=10Doi=i+1LoopUntili<1B、i=lDoi=i+1LoopUntili=10C、i=10Doi=i+1LoopWhilei>1D、i=10Doi=i.2LoopUntili=1標(biāo)準(zhǔn)答案:B知識點解析:Do循環(huán)語句的功能是:當(dāng)指定的“循環(huán)條件”為真或直到指定的“循環(huán)條件”變?yōu)檎嬷爸貜?fù)執(zhí)行循環(huán)體。DoWhile|Until…Loop循環(huán)是在條件滿足的情況下才執(zhí)行一次循環(huán)體,而Do…LoopWhile|Until循環(huán)不管是否滿足條件都先執(zhí)行一次循環(huán)體,然后再判斷條件是否成立以決定后續(xù)操作。本題的A選項由于i的值從10開始遞增,永遠(yuǎn)不會滿足i<1而無限循環(huán);C選項由于i的值從10開始遞增,永遠(yuǎn)滿足i>1而無限循環(huán);D選項由于i的值從10開始遞減,但是因為每次遞減2,所以i永遠(yuǎn)為偶數(shù),不會滿足i=1而無限循環(huán)。17、以下能夠正常結(jié)束循環(huán)操作的程序段是A、i=5Doi=i+1LoopUntili<0B、i=5Doi=i+2LoopUntili=1C、i=5DoWhilei>0i=i-2LoopD、i=0DoWhilei<1i=i-2Loop標(biāo)準(zhǔn)答案:C知識點解析:Do循環(huán)語句的功能是:當(dāng)指定的“循環(huán)條件"為真或直到指定的“循環(huán)條件”變?yōu)檎嬷爸貜?fù)執(zhí)行循環(huán)體。DoWhile|Until…Loop循環(huán)是在條件滿足的情況下才執(zhí)行一次循環(huán)體,而Do…Loopwhile|Until循環(huán)不管是否滿足條件都先執(zhí)行一次循環(huán)體,然后再判斷條件是否成立以決定后續(xù)操作。本題的A選項由于i的值從5開始遞增,永遠(yuǎn)不會滿足i<0而無限循環(huán);B選項由于i的值從5開始遞增,永遠(yuǎn)滿足i=1而無限循環(huán):D選項由于i的值從0開始遞減,永遠(yuǎn)滿足i<1而無限循環(huán)。18、窗體上有一個名稱為Commandl的命令按鈕,其單擊事件過程如下:PrivateSubCommandl_Click()DimsAsDoubles=0:i=1DoWhilei<6s=s+i/(i+1):i=i+1LoopPrintsEndSub該事件過程的功能是計算一個表達(dá)式的值,該表達(dá)式是A、1+1/2+2/3+3/4+4/5B、1+1/2+2/3+3/4+4/5+5/6C、1/2+2/3+3/4+4/5D、1/2+2/3+3/4+4/5+5/6標(biāo)準(zhǔn)答案:D知識點解析:本題中Do循環(huán)的循環(huán)變量i的初值為1,繼續(xù)循環(huán)的條件是i<6,在每次循環(huán)中i的值加1,因此循環(huán)會執(zhí)行5次;在第一次循環(huán)中累加1/2,第二次循環(huán)中累加2/3,第三次循環(huán)中累加3/4……即最后計算的是1/2+2/3+3/4+4/5+5/6的值。19、假定有如下程序:PrivateSubForm_Click()DimNAsInteger,JAsIntegerN=0J=1DoUntilN>2N=N+1:J=J+N*(N+11)LoopPrintN:JEndSub運(yùn)行程序,單擊窗體,輸出結(jié)果是A、321B、37C、01D、313標(biāo)準(zhǔn)答案:A知識點解析:Do循環(huán)語句的功能是:當(dāng)指定的“循環(huán)條件”為真或直到指定的“循環(huán)條件”變?yōu)檎嬷爸貜?fù)執(zhí)行循環(huán)體。Dowhileluntil…Loop循環(huán)是在條件滿足的情況下才執(zhí)行一次循環(huán)體,而Do…LoopWhile|UntiI循環(huán)不管是否滿足條件都先執(zhí)行一次循環(huán)體,然后再判斷條件是否成立以決定后續(xù)操作。本題的循環(huán)共執(zhí)行3次,跳出循環(huán)時N的值為3,J的值為21。20、有如下程序:Functionfun(ByValhumAsInteger)AsIntegerDimkAsIntegerk=1num=Abs(num)DoWhilenumk=k*(numMod10):num=num\10Loopfun=kEndFunctionPrivateSubFormClick()DimnAsInteger,rAsIntegern=InputBox(”請輸入一個數(shù):”):n=Int(n):r=fun(n):PrintrEndSub程序運(yùn)行后,單擊窗體,在輸入對話框中輸入246,輸出結(jié)果為A、120B、48C、24D、60標(biāo)準(zhǔn)答案:B知識點解析:在函數(shù)fun中會對傳過來的參數(shù)num進(jìn)行判斷,如果不為0則進(jìn)行循環(huán),將各位數(shù)字乘到一起然后作為函數(shù)的返回值。21、下面程序的功能是輸出100以內(nèi)所有素數(shù):PrivateSubCommandl_Click()Forn=2To100isprime=True:k=2DoWhilek<=n/2And_________IfnModk=0Thenisprime=Falsek=k+1LoopIfisprimeThenPrintnNextnEndSub為使上面程序可以實現(xiàn)該功能,程序代碼中橫線處應(yīng)填寫的代碼是A、isprimeB、NotisprimeC、n<100D、n<=100標(biāo)準(zhǔn)答案:A知識點解析:求素數(shù)的基本思路是,用2到n/2依次去除要判斷的數(shù)n,如果能整除就將isprime置為False代表不是素數(shù);如果isprime已經(jīng)為False,那么循環(huán)沒有繼續(xù)執(zhí)行的必要了,所以應(yīng)填入isprime=True,由于是布爾型變量,可以簡寫為isprime。22、編寫如下程序:DimnumAsInteger,rAsInteger,nAsInteger,iAsInteger,arr(5)AsIntegerPrivateSubCommandl_Click()hum=12:r=2Callsubl(num,r,n)FOri=nTo1Step-1Printarr(i);NextiEndSubSubsubl(dAsInteger,rAsInteger,kAsInteger)k=0DoWhiled<>0k=k+1:arr(k)=dModr:d=d\rLoopEndSub程序運(yùn)行后,單擊命令按鈕Commandl,輸出結(jié)果為A、1100B、0011C、0101D、1010標(biāo)準(zhǔn)答案:A知識點解析:本題實際上是在子過程sub1中對arr數(shù)組進(jìn)行的賦值工作,形參d的值為12,r的值為2,k的初值為0;在循環(huán)中計算d除以2的余數(shù)放到數(shù)組的第一個元素,整除2后再除以2的余數(shù)放到第二個元素……以此類推,最后數(shù)組arr中存放的是(0、0、1、1),在Command1_Click()過程中調(diào)用完子過程對數(shù)組進(jìn)行賦值以后,逆序輸出了數(shù)組的值。23、編寫如下程序:PrivateSubCommandl_Click()DimnAsLong,sAsStringn=InputBox(”輸入一個數(shù)”)DoWhilen<>0Printn\10Mod10::PrintnMod10::n=n\lOOLoopPrintsEndSub程序運(yùn)行后,單擊命令按鈕Commandl,并輸入數(shù)值123456,則輸出結(jié)果為A、654321B、563412C、642531D、615243標(biāo)準(zhǔn)答案:B知識點解析:本題中是在一個Do循環(huán)中對一個數(shù)字進(jìn)行分解,首先輸出該數(shù)字整除10之后再除以10得到的余數(shù)(即十位上數(shù)字),然后輸出該數(shù)除以10得到的余數(shù)(即個位數(shù)字),然后將該數(shù)去掉十位和個位上的數(shù)字以后繼續(xù)循環(huán),最終依次輸出5、6、3、4、1、2。24、假定有以下程序段Fori=1To3Forj=5To1Step-1Printi*jNextjNexti則語句Printi*j的執(zhí)行次數(shù)是A、15B、16C、17D、18標(biāo)準(zhǔn)答案:A知識點解析:本題考查的考點是有關(guān)二重循環(huán)的。For…Next循環(huán)語句可提供一個重復(fù)執(zhí)行的語句序列,遵循“先檢查,后執(zhí)行”的規(guī)則,執(zhí)行過程中,循環(huán)次數(shù)=Int(終值-初值)/步長+1。二重循環(huán)的內(nèi)循環(huán)語句執(zhí)行次數(shù)等于內(nèi)外循環(huán)次數(shù)之積。25、在窗體上畫1個命令按鈕,并編寫如下事件過程:PrivateSubCommand1_Click()Dima(3,3)Form=1To3Forn=1To3Ifn=mOrn=4-mThena(m,n)=m+nElsea(m,n)=0EndIfPrinta(m,n);NextnPrintNextmEndSub運(yùn)行程序,單擊命令按鈕,窗體上顯示的內(nèi)容為A、200040006B、204040406C、230340006D、200045056標(biāo)準(zhǔn)答案:B知識點解析:本題通過一個嵌套的For循環(huán)為二維數(shù)組a的各元素賦值,該二維數(shù)組對應(yīng)矩陣的主對角線上的元素(即滿足條件m=n)和副對角線上的元素(即滿足條件m+n=4)其值為m+n,即主對角線上的元素從左上至右下依次為2、4、6,副對角線上的元素均為4,而其它元素均為0。26、編寫如下程序:PrivateSubCommand1_Click()DimnumAsInteger,kAsInteger,nAsIntegerhum=InputBox(”請輸入一個正整數(shù):”)k=humn=2DoDoWhilenumModn=0Printn;:num=num/nLoopn=n+1LoopUntiln>k/2EndSub程序運(yùn)行后,單擊命令按鈕Commandl,并輸入數(shù)值20,則輸出結(jié)果為A、225B、234C、2345D、25標(biāo)準(zhǔn)答案:A知識點解析:Do型循環(huán)結(jié)構(gòu),首先看條件判斷在循環(huán)體的前面還是后面,如果是先判斷條件,則有可能一次也不執(zhí)行循環(huán)體;如果是后判斷條件,則無論條件是什么,至少執(zhí)行一次循環(huán)體。在Until循環(huán)中條件為False時執(zhí)行循環(huán)體,條件為True時退出循環(huán);在While循環(huán)中條件為True時執(zhí)行循環(huán)體,條件為False時退出循環(huán)。本題是一個嵌套的Do循環(huán),外層循環(huán)是后判斷條件的Until型循環(huán),內(nèi)層循環(huán)是先判斷條件的While型循環(huán)。根據(jù)輸入的值20可判斷出三次輸出的結(jié)果為2、2、5。27、編寫如下程序:PrivateSubCommandl_Click()Dima(3,3)AsInteger,b(3,3)AsIntegerFori=1To3Fori=1To3a(i,j)=i+j:b(i,j)=a(i,j)+i*(j-1)NextjNextiFori=1To3Fori=1To3Printb(i,j);NextjPrintNextiEndSub程序運(yùn)行后,單擊命令按鈕Commandl,輸出結(jié)果為A、234345456B、2463694812C、357581171115D、46871013101418標(biāo)準(zhǔn)答案:B知識點解析:本題中有兩個二維數(shù)組a和b,然后用一個二重循環(huán)為兩個數(shù)組賦值,根據(jù)每次循環(huán)中i和i的值不難得出B為正確答案。28、己知在4行3列的全局?jǐn)?shù)組score(4,3)中存放了4個學(xué)生3門課程的考試成績(均為整數(shù))?,F(xiàn)需要計算每個學(xué)生的總分,某人編寫程序如下:OptionBase1PrivateSubCommand1_Click()DimsumAsIntegersuln=0Fori=1To4Fori=1To3sum=sum+score(i,j)NextjPrint”第”&i&”個學(xué)生的總分是:”:sumNextiEndSub運(yùn)行此程序時發(fā)現(xiàn),除第1個人的總分計算正確外,其他人的總分都是錯誤的,程序需要修改。以下修改方案中正確的是A、把外層循環(huán)語句Fori=1To4改為Fori=1To3內(nèi)層循環(huán)語句Forj=1To3改為Forj=1To4B、把sum=0移到Fori=1To4和Forj=1To3之間C、把sum=sum+score(i,j)改為sum=sum+score(j,i)D、把sum=sum+score(i,j)改為sum=score(i,j)標(biāo)準(zhǔn)答案:B知識點解析:本題考查的考點是有關(guān)循環(huán)求和和二維數(shù)組的。本題要對二維數(shù)組的每行進(jìn)行累加求和,每計算新的一行就應(yīng)該將累加和變量sum清零,否則上一行的累加計算結(jié)果將會在下一行繼續(xù)累加,造成結(jié)果不正確。29、在窗體上畫一個命令按鈕和一個標(biāo)簽,其名稱分別為Commandl和Labell,然后編寫如下事件過程:PrivateSubCommandl_Click()Counter=0Fori=1To4Forj=6To1Step-2Counter=Counter+1NextjNextiLabell.Caption=Str(Counter)EndSub程序運(yùn)行后,單擊命令按鈕,標(biāo)簽中顯示的內(nèi)容是A、11B、12C、16D、20標(biāo)準(zhǔn)答案:B知識點解析:本題考查的考點是有關(guān)循環(huán)的。通過觀察可以得知,在每次內(nèi)循環(huán)中Counter的值會增加1,所以最終結(jié)果就是內(nèi)循環(huán)執(zhí)行的總次數(shù)。由于內(nèi)循環(huán)和外循環(huán)都是For循環(huán),所以循環(huán)次數(shù)一定,外循環(huán)共執(zhí)行4次,每次外循環(huán)中內(nèi)循環(huán)都執(zhí)行3次,故內(nèi)循環(huán)執(zhí)行的總次數(shù)為4*3=12次。30、在窗體上畫一個命令按鈕,然后編寫如下事件過程:PrivateSubCommandl_Click()DimI.NumRandomizeDoForI=1To1000Num=Int(Rnd*100):PrintNum;SelectCaseNumCase12ExitForCase58ExitDoCase65,68,92EndEndSelectNextILoopEndSub上述事件過程執(zhí)行后,下列描述中正確的是A、Do循環(huán)執(zhí)行的次數(shù)為1000次B、在For循環(huán)中產(chǎn)生的隨機(jī)數(shù)小于或等于100C、當(dāng)所產(chǎn)生的隨機(jī)數(shù)為12時結(jié)束所有循環(huán)D、當(dāng)所產(chǎn)生的隨機(jī)數(shù)為65、68或92時窗體關(guān)閉、程序結(jié)束標(biāo)準(zhǔn)答案:D知識點解析:本題考查的考點是有關(guān)隨機(jī)數(shù)和退出語句的。在本題中,首先在循環(huán)中生成一個隨機(jī)數(shù),由于Rnd函數(shù)可以生成0~1開區(qū)間的數(shù),所以Int(Rnd*100)能夠生成0~99之間的整數(shù),隨后對此數(shù)進(jìn)行判斷,當(dāng)隨機(jī)數(shù)為12時退出內(nèi)循環(huán);當(dāng)隨機(jī)數(shù)為58時退出外循環(huán);當(dāng)隨機(jī)數(shù)為65、68或92時將會結(jié)束整個窗體的運(yùn)行。本題中的循環(huán)次數(shù)受隨機(jī)數(shù)控制,所以次數(shù)不定。31、運(yùn)行如下程序PrivateSubCommandl_Click()Dima(5,5)AsIntegerFori=1To5Forj=1To4a(i,j)=i*2+jIfa(i,j)/7=a(i,j)\7Thenn=n+1EndIfNextjNextPrintnEndSub則n的值是A、2B、3C、4D、5標(biāo)準(zhǔn)答案:B知識點解析:在二重循環(huán)中為二維數(shù)組賦初值,每個元素的值均為行號*2加上列號;在If語句中進(jìn)行判斷,如果數(shù)組元素能被7整除則令計數(shù)器n加1,所以整個程序的功能就是統(tǒng)計二維數(shù)組中能被7整除的數(shù)的個數(shù)。32、命令按鈕Commandl的單擊事件過程如下:PrivateSubCommandl_Click()Dima(10,10)AsIntegerx=0Fori=1To3Forj=1To3a(i,j)=i*2ModjIfxA、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識點解析:本題中使用二重循環(huán)為二維數(shù)組賦初值,每個元素的值為行號×2然后除以列號的余數(shù);接下來找出數(shù)組的最大值。由于列號最大只能為3,所以余數(shù)的最大值為2。33、設(shè)有如下程序:OptionBase1Dima(3,4)AsInteger,b(4,3)AsIntegerPrivateSubCommandl_Click()’循環(huán)1Fori=1To3Forj=1To4b(j,i)=a(i,j)NextjNexti’循環(huán)2x=b(1,1)Fori=1To4Forj=1To3Printb(i,j);IfxA、窗體模塊中,不能使用Dim聲明a、b數(shù)組B、“循環(huán)1”可以正常運(yùn)行C、“循環(huán)2”中循環(huán)變量i、i的終值不對,所以不能正常運(yùn)行D、程序可以正常運(yùn)行,x中保存的是數(shù)組b中所有元素中最小的數(shù)標(biāo)準(zhǔn)答案:B知識點解析:在窗體模塊中使用Dim聲明模塊接變量,也可以聲明模塊級數(shù)組;在循環(huán)1中i從1到3,j從1到4,無論是訪問b(i,i)還是a(i,j)均在數(shù)組的范圍內(nèi),可以正常運(yùn)行;在循環(huán)2中b(i,j)的值也在數(shù)組范圍內(nèi),循環(huán)可以正常運(yùn)行;最后x里面保存的是數(shù)組中最大的數(shù)。34、有如下程序:PrivateSubForm_Click()DimSAsInteger,pAsIntegerp=1Fori=1To4Fori=1Tois=s+jNextjp=p*sNextiPrintPEndSub程序運(yùn)行后,單擊窗體,則輸出結(jié)果是A、90B、180C、400D、800標(biāo)準(zhǔn)答案:D知識點解析:本題是一個二重循環(huán),而且內(nèi)循環(huán)次數(shù)根據(jù)外循環(huán)的循環(huán)變量而定。內(nèi)循環(huán)完成累加,內(nèi)循環(huán)結(jié)束后將累加和乘到p中保存起來。在4次外循環(huán)中分別累乘的是1、4、10、20。35、窗體上有1個名稱為Commandl的命令按鈕,事件過程如下:PrivateSubCommandl_Click()Dimarr_x(5,5)AsIntegerFori=1To3Fori=2To4arr_x(i,j)=i*jNextjNextiPrintarr_x(2,1);arr_x(3,2);arr_x(4,3)EndSub運(yùn)行程序,并單擊命令按鈕,窗體上顯示的內(nèi)容為A、060B、260C、0612D、2612標(biāo)準(zhǔn)答案:A知識點解析:本題二重循環(huán)為二維數(shù)組的部分元素賦值,其中art_x(2,1)的值因為列號為1,并沒有在循環(huán)中賦值,保持了默認(rèn)初值0;arr_x(3,2)的值被賦值為3*2的值6;arr_x(4,3)的值因為行號為4也沒有在循環(huán)中賦值,也保持默認(rèn)初值0。36、在窗體上畫一個名稱為Commandl的命令按鈕,并編寫如下程序:OptionBase1PrivateSubCommandl_Click()Dima(4,4)Fori=1To4Forj=1To4a(i,j)=(i一1)*3+jNextjNextiFori=3To4Fori=3To4Printa(j,i);NextjPrintNextiEndSub運(yùn)行程序,單擊命令按鈕,則輸出結(jié)果為A、69710B、710811C、811912D、9121013標(biāo)準(zhǔn)答案:D知識點解析:本題中首先用一個二重循環(huán)為二維數(shù)組的每一個元素賦值,然后輸出二維數(shù)組的部分元素,即依次輸出a(3,3、)、a(4,3)、a(3,4)、a(4,4)的值,根據(jù)二維數(shù)組元素的值,輸出分別為9、12、10、13。37、編寫如下程序:PrivateSubCommandl_Click()Dima(3,3)AsInteger,sAsIntegerFori=lTo3Fori=1To3a(i,j)=i*j+iNextjNextis=0Fori=1To3s=s+a(i,4一i)NextiPrintsEndSub程序運(yùn)行后,單擊命令按鈕Commandl,輸出結(jié)果為A、7B、13C、16D、20標(biāo)準(zhǔn)答案:C知識點解析:本題中首先用一個二重循環(huán)為二維數(shù)組的每一個元素賦值,然后累加二維數(shù)組的部分元素,即依次累加a(1,3)、a(2,2、)、a(3,1)的值,相當(dāng)于對角線求和。38、編寫如下程序:PrivateSubCommand1_Click()DimiAsInteger,jAsIntegern=InputBox(”輸入一個大于1的正整數(shù)”)Fori=2TonForj=2ToSqr(i)IfiModj=0ThenExitForNextjIfj>Sqr(i)ThenPrintiNextiEndSub該程序的功能是A、判斷n是否為素數(shù)B、輸出n以內(nèi)所有的奇數(shù)C、輸出n以內(nèi)所有的偶數(shù)D、輸出n以內(nèi)所有的素數(shù)標(biāo)準(zhǔn)答案:D知識點解析:本題中的外循環(huán)是從2循環(huán)到n,然后進(jìn)入內(nèi)循環(huán),在內(nèi)循環(huán)中依次判斷i能否被j整除,若能整除則退出內(nèi)循環(huán);內(nèi)循環(huán)結(jié)束后進(jìn)行判斷,如果是中途退出內(nèi)循環(huán)的則必然不滿足j>Sqr(i),不會輸出i的值;只有i不能被任何一個j整除的情況下才會輸出i的值,即判斷i是不是素數(shù),只有素數(shù)才輸出。39、命令按鈕Commandl的事件過程如下:PrivateSubCommandl_Click()Dimarr(5,5)AsIntegerDimiAsInteger,JAsIntegerFori=1To4Forj=2To4arr(i,j)=i+jNextjNextiPrintarr(1,3)+arr(3,4)EndSub執(zhí)行上述過程,輸出結(jié)果是A、6B、7C、11D、12標(biāo)準(zhǔn)答案:C知識點解析:本題中首先在一個二重循環(huán)中給二維數(shù)組arr的部分元素賦值,循環(huán)結(jié)束后輸出兩個數(shù)組元素的和,根據(jù)題意arr(1,3)+arr(3,4)=4+7=11。40、有如下程序:PrivateSubCommandl_Click()DimiAsInteger,jAsInteger,sumAsIntegern=1Doj=1Dosum=sum+j:j=j+1Printj;LoopUntili>3n=n+2LoopUntiln>10PrintsumEndSub運(yùn)行上述程序,外層Do循環(huán)執(zhí)行的次數(shù)為A、4B、5C、7D、10標(biāo)準(zhǔn)答案:B知識點解析:外循環(huán)的控制條件為n>10,即n>10的時候結(jié)束循環(huán);在每次內(nèi)循環(huán)中j都會自加,i>3的時候退出內(nèi)循環(huán),即每次外循環(huán)中內(nèi)循環(huán)都會執(zhí)行3次;由于內(nèi)循環(huán)沒有改變n的值,而在外循環(huán)中n的值自加2,所以外循環(huán)共循環(huán)5次。國家二級VB機(jī)試(控制結(jié)構(gòu))模擬試卷第2套一、選擇題(本題共26題,每題1.0分,共26分。)1、現(xiàn)有語句:y=IIf(x>0,xMod3,0)設(shè)x=10,則y的值是A、0B、1C、3D、語句有錯標(biāo)準(zhǔn)答案:B知識點解析:本題考查的考點是有關(guān)IIf函數(shù)的。IIf函數(shù)可用于執(zhí)行簡單的條件判斷操作,它是“If…Then…Else”結(jié)構(gòu)的簡寫版本。格式:ResuIt=IIf(<條件>,,)其中“Result”是函數(shù)的返回值,“條件”是一個邏輯表達(dá)式。當(dāng)“條件”為真時,IIf函數(shù)返回“True部分”的值,而當(dāng)“條件”為假時返回“False部分”的值?!癟rue部分”或“FaIse部分”可以是表達(dá)式、變量或其他函數(shù)。本題中由于x=10是大于0的,所以返回值為xMod3的值即1。2、設(shè)x是整型變量,與函數(shù)IIf(x>0,-x,x)有相同結(jié)果的代數(shù)式是A、|x|B、-|x|C、xD、-x標(biāo)準(zhǔn)答案:B知識點解析:lIf函數(shù)可以用來執(zhí)行簡單的條件判斷操作,它是“If…Then…Else”結(jié)構(gòu)的簡寫版本,其格式為:result=IIf(條件,True部分,F(xiàn)alse部分)。其中“result”是函數(shù)的返回值,“條件”是一個邏輯表達(dá)式。當(dāng)“條件”為真時,IIf函數(shù)返回“True部分”,否則返回“False部分”?!癟rue部分”或“False部分”可以是表達(dá)式、變量或其他函數(shù)。本題中IIf函數(shù)的作用是如果x>0則返回-x,否則返回x,等價于-|x|。3、計算下面分段函數(shù)的正確語句是A、Y=IIf(x>0,x+1,IIf(x<0,x-1,0))B、Y=IIf(x=0,0,IIf(x>0,x-1,x+1))C、Y=IIf(x>0,x+1,IIf(x<0,0,x-1))D、Y=IIf(x=0,0,x-1,x+1)標(biāo)準(zhǔn)答案:A知識點解析:IIf函數(shù)可用來執(zhí)行簡單的條件判斷操作,它是“If…Then…Else”結(jié)構(gòu)的簡寫版本。格式為:resuIt=IIf(<條件>,,)。當(dāng)<條件>為真時,IIf函數(shù)返回,而當(dāng)<條件>為假時,返回。本題中分段函數(shù)共有三段,因此需要使用嵌套的IIf函數(shù)。4、現(xiàn)有如下語句:x=IIf(a>50,Int(a\3),aMod2)當(dāng)a=52時,x的值是A、0B、1C、17D、18標(biāo)準(zhǔn)答案:C知識點解析:IIf函數(shù)可用來執(zhí)行簡單的條件判斷操作,它是“If…Then…Else”結(jié)構(gòu)的簡寫版本。格式為:result=IIf(<條件>,,)。當(dāng)<條件>為真時,IIf函數(shù)返回,而當(dāng)<條件>為假時,返回。本題中a的值是52,所以條件為真,將返回52\3的值即17。5、在下面語句或函數(shù)中,不能描述選擇結(jié)構(gòu)的是A、If語句B、IIf函數(shù)C、SelectCase語句D、While語句標(biāo)準(zhǔn)答案:D知識點解析:選擇結(jié)構(gòu)可以使用IIf函數(shù)、If語句來實現(xiàn)兩個分支的選擇結(jié)構(gòu),使用Selectcase語句實現(xiàn)多分支選擇結(jié)構(gòu),While語句用來描述循環(huán)結(jié)構(gòu)。6、設(shè)窗體上有Text1、Text2兩個文本框,并編寫了下面的程序代碼:PrivateSubText1_KeyPress(KeyAsciiAsInteger)If"A"<=Chr(KeyAscii)AndChr(KeyAscii)<="Z"ThenKeyAscii=KeyAscii+(Asc("a")-Asc("A"))EndIfn=0IfKeyAscii=13ThenFork=1ToLen(Text1)ch$=Mid(Text1,k,1)If"a"<=chAndch<="z"Thenn=n+1NextkText2=nEndIfEndSub運(yùn)行程序,在Text1中輸入“VisualBasic6.0”后按回車鍵,則在Text2文本框顯示的是A、11B、16C、VisualBasic6.0D、visualbasic6.0標(biāo)準(zhǔn)答案:A知識點解析:本題中的第一個If…Then結(jié)構(gòu)的作用是將所有輸入的大寫字符轉(zhuǎn)換為小寫字符:第二個If結(jié)構(gòu)的條件是按下回車鍵,里面嵌套了一個For循環(huán),在循環(huán)中依次取出文本框中的每一個字符進(jìn)行判斷,若其為小寫字符則n自加1,循環(huán)結(jié)束后n的值就是文本框中字母的個數(shù)。7、編寫如下程序:PrivateSubCommand1_Click()DimaAsInteger,bAsIntegera=3:b=2Ifa*b<10Thenb=b+1Elseb=b-1EndIfPrintb-a>0EndSub程序運(yùn)行后,單擊命令按鈕Command1,輸出結(jié)果為A、TrueB、FalseC、1D、-1標(biāo)準(zhǔn)答案:B知識點解析:本題的程序中由于a*b<10條件成立,因此執(zhí)行Then分支,b自加1變成3,最后輸出b-a>0的值即False。8、編寫如下程序:PrivateSubCommand1_Click()DimscoreAsIntegerscore=86Ifscore>85Thenr=1ElseIfscore>60Thenr=2Elser=0EndIfPrintrEndSub程序運(yùn)行后,單擊命令按鈕Command1,輸出結(jié)果為A、0B、1C、2D、86標(biāo)準(zhǔn)答案:B知識點解析:塊結(jié)構(gòu)條件語句的格式為:lf<條件l>Then:<語句塊l>[ElseIf<條件2>Then:<語句塊2>]…[Else:<語句塊n>]EndIf如果“條件1”為True,則執(zhí)行“語句塊1”并跳出結(jié)構(gòu):否則如果“條件2”為True,則執(zhí)行“語句塊2”并跳出結(jié)構(gòu)…否則執(zhí)行“語句塊n”并結(jié)束整個結(jié)構(gòu)。9、設(shè)有如下事件過程:PrivateSubForm_Click()Sum=0Fork=lTo3Ifk<=1Thenx=1Elselfk<=2Thenx=2Elselfk<=3Thenx=3Elsex=4EndIfSum=Sum+xNextkPrintSumEndSub程序運(yùn)行后,單擊窗體,輸出結(jié)果是A、9B、6C、3D、10標(biāo)準(zhǔn)答案:B知識點解析:本題總共循環(huán)三次,在每次循環(huán)中由于循環(huán)變量k的值不同,將分別進(jìn)入If語句的不同分支。在塊結(jié)構(gòu)的If語句中,一旦滿足某個If或者ElseIf后面的條件,將不再判斷其他條件是否滿足。所以本題輸出的是1+2+3的值。10、設(shè)有下面的語句:PrintIIf(x>0,1,IIf(x<0,-1,0))與此語句輸出結(jié)果不同的程序段是A、Ifx>0Thenx=1Elselfx<0Thenx=-1EndIfPrintxB、Ifx>0ThenPrint1ElseIfx<0ThenPrint-1ElsePrint0EndIfC、SelectCasexCaseIs>0Print1CaseIs<0Print-1CaseElsePrint0EndSelectD、Ifx<>0ThenIfx>0ThenPrint1Elselfx<0ThenPrint-1ElsePrint0EndIfEndIf標(biāo)準(zhǔn)答案:D知識點解析:IIf函數(shù)可用來執(zhí)行簡單的條件判斷操作,它是“If…then…Else”結(jié)構(gòu)的簡寫版本。格式為:Resuh=IIf(<條件>,,)。當(dāng)<條件>為真時,IIf函數(shù)返回,而當(dāng)<條件>為假時,返回。本題中IIf函數(shù)的功能是判斷x是不是正數(shù),如果是返回1,否則繼續(xù)判斷a是不是負(fù)數(shù),如果是返回-1,否則返回0,即返回x的符號。分析4個選項只有D選項不應(yīng)該使用ElseIf語句而應(yīng)該使用EIse語句。11、在窗體上畫一命令按鈕和一文本框,其名稱分別為Command1和Text1,然后編寫如下程序:FunctionFun(xAsInteger,PrivateSubCommand1_Click()yAsInteger)AsIntegerDimaAsInteger,bAsIntegerFun=IIf(xA、12B、20C、24D、40標(biāo)準(zhǔn)答案:A知識點解析:命令按鈕的Defaull屬性用于設(shè)置窗體的缺省命令按鈕,程序運(yùn)行時,按下鍵將執(zhí)行該命令按鈕的單擊事件過程。IIf函數(shù)可用來執(zhí)行簡單的條件判斷操作,它是“If…then…Else”結(jié)構(gòu)的簡寫版本。格式為:Result=Ilf(<條件>,,)。當(dāng)<條件>為真時,Ilf函數(shù)返回,而當(dāng)<條件>為假時,返回。本題在函數(shù)Fun中判斷x是否比y小,如果小則返回x作為返回值,否則返回y作為返回值,即返回兩個參數(shù)中的最小值。12、三角形的構(gòu)成條件是:任意2邊之和大于第3邊。設(shè)變量a、b、c是3條直線的長度,要求判斷這3條直線能否構(gòu)成一個三角形。下面有3個程序段可以正確判斷,另一個不能正確判斷的是A、Ifa+b>cAnda+c>bAndb+c>aThenPrint"可以構(gòu)成一個三角形"ElsePrint"不能構(gòu)成三角形"EndIfB、Ifa+b>cOra+c>bOrb+c>aThenPrint"可以構(gòu)成一個三角形"ElsePrint"不能構(gòu)成三角形"EndIfC、Ifa+b<=cOra+c<=bOrb+c<=aThenPrint"不能構(gòu)成三角形"ElsePrint"可以構(gòu)成一個三角形"EndIfD、Ifa+b<=cOra+c<=bThenPrint"不能構(gòu)成三角形"Elselfb+c<=aThenPrint"不能構(gòu)成三角形"ElsePrint"可以構(gòu)成一個三角形"EndIf標(biāo)準(zhǔn)答案:B知識點解析:任意兩邊之和大于第三邊,必須要求任意兩個變量的和全部大于另一個變量,也就是三個表達(dá)式必須同時成立,只有一個或兩個成立是不行的,故此B選項不能正確判斷。13、設(shè)x為一整型變量,且語句的開始為:SelectCasex,則不符合語法規(guī)則的Case子句是A、CaseIs>20B、Case1To10C、Case0D、Case2,3,4標(biāo)準(zhǔn)答案:C知識點解析:Case語句中含有多個參量,這些參量的含義分別為:①測試表達(dá)式:可以是任何表達(dá)式,通常采用變量或常量:②語句塊1,語句塊2,……:每個語句塊由一行或多行合法的VisualBasic語句組成:③表達(dá)式列表1,表達(dá)式列表2,…:稱為域值??刹捎?種形式之一:表達(dá)式1[,表達(dá)式2]…和表達(dá)式1To表達(dá)式2。④Is關(guān)系運(yùn)算表達(dá)式,其中可使用的運(yùn)算符有=(等于)、<>(不等于)、<(小于)、>(大于)、<=(小于或等于)、>=(大于或等于)。14、假定有如下情況語句:SelectCaseX能表示|X|>5的Case子句是A、CaseNot(-5To5)B、Case5To-5C、CaseIs<-5.Is>5D、CaseAbs(X)>5標(biāo)準(zhǔn)答案:C知識點解析:多分支控制結(jié)構(gòu)又稱為SelectCase語句或Case語句,可以同時對條件的多個取值來判斷。其格式為:Selectcase<測試表達(dá)式>[Case<表達(dá)式列表1>]:[語句塊1][CaseElse]:[語句塊n]EndSelectCase語句以SelectCase開頭,以EndSelect結(jié)束。其中,表達(dá)式列表1,表達(dá)式列表2,…稱為域值。可采用3種形式:①表達(dá)式1[,表達(dá)式2]…;②表達(dá)式1To表達(dá)式2;③Is關(guān)系運(yùn)算表達(dá)式。其中,可使用的運(yùn)算符有等于(=)、不等于(<>)、小于(<)、大于(>)、小于或等于(<=)、大于或等于(>=)。15、現(xiàn)有如下一段程序:PrivateSubCommand1_Click()x=UCase(InputBox(”輸入:“))SelectCasexCase"A"To"C"Print"考核通過!"Case"D"Print"考核不通過!"CaseElsePrint"輸入數(shù)據(jù)不合法!"EndSelectEndSub執(zhí)行程序,在輸入框中輸入字母“B”,則以下敘述中正確的是A、程序運(yùn)行錯B、在窗體上顯示“考核通過!”C、在窗體上顯示“考核不通過!”D、在窗體上顯示“輸入數(shù)據(jù)不合法!”標(biāo)準(zhǔn)答案:B知識點解析:多分支控制結(jié)構(gòu)又稱為SelectCase語句或Case語句,可以同時對條件的多個取值來判斷。其格式為:同上題。16、窗體上有1個名稱為Command1的命令按鈕,事件過程如下:PfivateSubCommand1_Click()DimnumAsInteger.xAsIntegernum=Val(InputBox("請輸入一個正整數(shù)"))SelectCasenumCaseIs>100x=x+numCaseIs<90X=numCaseElsex=x*numEndSelectPrintx;EndSub運(yùn)行程序,并在三次單擊命令按鈕時,分別輸入正整數(shù)100、90和60,則窗體上顯示的內(nèi)容為A、000B、0060C、0900D、100060標(biāo)準(zhǔn)答案:B知識點解析:多分支控制結(jié)構(gòu)又稱為SelectCase語句或Case語句,可以同時對條件的多個取值來判斷。其格式為:同上題。本題中第一次輸入100執(zhí)行CaseElse分支,由于x是默認(rèn)初值0所以輸出0;第二次輸入90也執(zhí)行CaseElse分支,由于x是默認(rèn)初值0所以輸出0;第三次輸入60執(zhí)行第二個分支輸出60。17、窗體上有一個名稱為Text1的文本框,一個名稱為Command1的命令按鈕。命令按鈕的單擊事件過程如下:PrivateSubCommand1_Click()Dimx1AsInteger,x2AsInteger,x3AsIntegers=Trim(Text1.Text)strLen=Len(s)Fori=1TostrLenc=Mid(s,i,1)SelectCasecCase"0"To"9"xl=x1+1Case"A"To"Z"x2=x2+1Case"a"To"z"x3=3+1CaseElsex4=x4+1EndSelectNextPrint"x1";x1,"x2";x2,"x3";x3,"x4";x4EndSub以下關(guān)于上述程序的敘述中,正確的是A、S是去掉文本框中字符串末尾的空格B、SelectCasec有誤,Case后應(yīng)該是一個表達(dá)式C、各Case分支條件有誤,不能用To表示字符的取值區(qū)間D、x4是字符串中非字母、非數(shù)字字符的個數(shù)標(biāo)準(zhǔn)答案:D知識點解析:Trim函數(shù)的作用是去掉文本框中字符串兩端的空格;多分支控制結(jié)構(gòu)又稱為SelectCase語句或Case語句,可以同時對條件的多個取值來判斷,Case后面的表達(dá)式可采用3種形式:①表達(dá)式1[,表達(dá)式2]…;②表達(dá)式1To表達(dá)式2;③Is關(guān)系運(yùn)算表達(dá)式。最終x1是字符串中數(shù)字的個數(shù);x2是字符串中大寫字母的個數(shù);x3是字符串中小寫字母的個數(shù);x4是字符串中非字母、非數(shù)字字符的個數(shù)。18、編寫如下程序:PrivateSubCommand1_Click()DimmAsInteger,nAsIntegerm=2:n=1SelectCasemCase1SelectCasenCase1Prim"AAA"Case2Print"BBB"Case2Print"CCC"EndSelectEndSub程序運(yùn)行后,單擊命令按鈕Command1,輸出結(jié)果為A、AAAB、BBBC、CCCD、1標(biāo)準(zhǔn)答案:C知識點解析:多分支控制結(jié)構(gòu)又稱為SelectCase語句或Case語句,可以同時對條件的多個取值來判斷。本題是一個嵌套的SelectCase語句,首先判斷m的值,本題由于m的值為2,所以不會執(zhí)行Case1分支,直接執(zhí)行Case2分支輸出“CCC”。19、某人設(shè)計了如下程序用于計算并輸出7!(7的階乘)PrivateSubCommand1_Click()t=0Fork=7To2Step-1t=t*kNextPritetEndSub執(zhí)行程序時,發(fā)現(xiàn)結(jié)果是錯誤的。下面的修改方案中能夠得到正確的是A、把t=0改為t=1B、把Fork=7to2Step-1改為Fork=7to1Step-1C、把Fork=7to2Step-1改為Fork=1to7D、把Next改為Nextk標(biāo)準(zhǔn)答案:A知識點解析:本題考查循環(huán)控制結(jié)構(gòu)。在Command1的Click事件過程中,變量t的初值為0,在For循環(huán)里面,t變量保存累乘積。由于t初值為0,因此累乘積永遠(yuǎn)都是0,因此t的初值應(yīng)該設(shè)置為1。20、為計算an的值,某人編寫了函數(shù)power如下:PrivateFunctionpower(aAsInteger,nAsInteger)AsLongDimPAsLongP=aFork=1TonP=p*aNextkPower=pEndFunction在調(diào)試時發(fā)現(xiàn)是錯誤的,例如Printpower(5,4)的輸出應(yīng)該是625,但實際輸出是3125。程序需要修改。下面的修改方案中有3個是正確的,錯誤的一個是A、把Fork=1Ton改為Fork=2TonB、把P=p*a改為P=p^aC、把Fork=1Ton改為Fork=-1Ton-1D、把P=a改為P=1標(biāo)準(zhǔn)答案:B知識點解析:本題考查循環(huán)控制結(jié)構(gòu)。選項A循環(huán)少執(zhí)行一次,由丁p初始化為a相當(dāng)于執(zhí)行了第一次,因此循環(huán)必須少執(zhí)行一次才能計算正確的an;選項B中p^a已經(jīng)是冪運(yùn)算了,不需要循環(huán)來計算;選項C循環(huán)少執(zhí)行一次,正確;選項D中p初始化為1,循環(huán)執(zhí)行n次正確。21、某人為計算n!(0A、把p=1改為p=nB、把Fork=n.1To2Step-1改為Fork=1Ton-1C、把Fork=n.1To2Step-1改為Fork=1TonD、把Fork=n.1To2Step-1改為Fork=2Ton標(biāo)準(zhǔn)答案:B知識點解析:本題考查的考點是有關(guān)循環(huán)次數(shù)的。本題題干中程序的錯誤在于,p的值是從1一直乘到n-1的值,也就是n.1的階乘。選項A可以在這個基礎(chǔ)上再乘n就得到n的階乘;選項C和D)都能夠保證從1乘到n,只有選項B是錯誤的。22、閱讀程序:PrivateSubForm_Click()a=0Forj=1To15a=a+jMod3NextjPrintaEndSub程序運(yùn)行后,單擊窗體,輸出結(jié)果是A、105B、1C、120D、15標(biāo)準(zhǔn)答案:D知識點解析:本題考查的考點是有關(guān)循環(huán)的。本題中循環(huán)的特點是:每執(zhí)行3次循環(huán),依次向a中加上0+1+2也就是3;循環(huán)共執(zhí)行了15次,所以a中的值應(yīng)該為15。23、在窗體上畫一個命令按鈕,其名稱為Command1,然后編寫如下代碼:OptionBase1PrivateSubCommand1_Click()Dimaa=Array(1,2,3,4):j=1Fori=4To1Step-1S=S+a(i)*j:j=j*10NextiPrintsEndSub程序運(yùn)行后,單擊命令按鈕,其輸出結(jié)果是A、4321B、1234C、34D、12標(biāo)準(zhǔn)答案:B知識點解析:本題考查的考點是有關(guān)循環(huán)的。在本題的循環(huán)中,首先取得數(shù)組的最后一個元素并乘1后放入s;然后取得第3個元素并乘10后加到s里面,然后取得第2個元素并乘100后加到s里面,最后取得第1個元素并乘1000后加到s里面,所以s的最終值為1234。24、在窗體上畫一個命令按鈕,名稱為Command1,然后編寫如下代碼:OptionBase0PrivateSubCommand1_Click()DimA1(4)AsInteger,A2(4)AsIntegerFork=0To2Al(k+1)=InputBox("請輸入一個整數(shù)")A2(3-k)=A1(k+1)NextkPrintA2(k)EndSub程序運(yùn)行后,單擊命令按鈕,在輸入對話框中依次輸入2、4、6,則輸出結(jié)果為A、0B、1C、2D、3標(biāo)準(zhǔn)答案:C知識點解析:本題的關(guān)鍵之處在于抓住每次具體給哪個數(shù)組元素進(jìn)行了賦值,第一次循環(huán)中輸入的2被賦給了A1(1)和A2(3),第二次循環(huán)中輸入的4被賦給了A1(2)和A2(2),第三次循環(huán)中輸入的6被賦給了A1(3)和A2(1),跳出循環(huán)時k的值為3,所以最后輸出2。25、設(shè)有以下程序:PrivateSubForm_Click()x=50Fori=1To4y=InputBox("請輸入一個整數(shù)")y=Val(y)IfyMod5=0Thena=a+y:x=yElsea=a+xEndIfNextiPrintaEndSub程序運(yùn)行后,單擊窗體,在輸入對話框中依次輸入15、24、35、46,輸出結(jié)果為A、100B、50C、120D、70標(biāo)準(zhǔn)答案:A知識點解析:本題考查的考點是有關(guān)循環(huán)的。本題需要寫出每一次循環(huán)的變量變化情況。第一次循環(huán)時輸入15,If判斷為真,所以a=15,x=15;第二次循環(huán)時輸入24,If判斷為假,所以a=15+15=30,x仍然為15;第三次循環(huán)時輸入35,If判斷為真,所以a=30+35=65,x=35;第四次循環(huán)時輸入46,If判斷為假,所以a=65+35=100,x=35。26、有下面程序代碼:PrivateSubCommand1_Click()a=3:s=0Fork=1To5s=s+aModk:a=a+kNextkPrintsEndSub程序運(yùn)行后,單擊命令按鈕Command1,輸出結(jié)果是A、15B、13C、4D、1標(biāo)準(zhǔn)答案:C知識點解析:在:For循環(huán)中k的值從1變化到5,在每次循環(huán)中為累加和變量s累加上aModk的值然后令a自加k,故此整個循環(huán)過程中s=0+0+0+1+3=4。國家二級VB機(jī)試(控制結(jié)構(gòu))模擬試卷第3套一、選擇題(本題共27題,每題1.0分,共27分。)1、編寫如下程序:PrivateSubCommandl_Click()Dima(10)AsStrings="123456":n=Len(s)Fork=1Tona(k)=Mid(s,k,1)NextkFori=1Ton\2t=a(i)a(i)=a(n-i+1):a(n-i+1)=tNextiFork=1TonPrinta(k);NextkEndSub程序運(yùn)行后,單擊命令按鈕Commandl,輸出結(jié)果為A、654321B、123456C、654123D、123654標(biāo)準(zhǔn)答案:A知識點解析:本題中有三個For循環(huán),但是這三個循環(huán)之間沒有嵌套關(guān)系,而是順序的關(guān)系。在第一個循環(huán)中依次取出字符串s中的每一個字符存入數(shù)組a;第二個循環(huán)中將數(shù)組的第一個元素和最后一個元素互換,第二個元素和倒數(shù)第二個元素互換……以此類推完成數(shù)組的逆序;第三個循環(huán)輸出數(shù)組元素。2、窗體上有1個名稱為Commandl的命令按鈕;1個名稱為List1、沒有列表項的列表框。編寫如下程序:PrivateSubCommandl_Click()DimxAsString,sAsString,tempAsStringDimiAsIntegerx=InputBox("輸入字符串","輸入")Ifx<>""ThenFori=Len(x)To1Step-1s=Mid(x,i,1)IfS<>""Thentemp=s+tempElseList1.AddItemtemps="":temp=""EndIfNextList1.AddItemtempElseMsgBox"輸入內(nèi)容為空!"EndIfEndSub程序運(yùn)行后,單擊命令按鈕Commandl,并輸入“Happynewyear”,則在Lis1中顯示的內(nèi)容為A、yearnewHappyB、HappynewyearC、raeywenyppaHD、yopaHwenraey標(biāo)準(zhǔn)答案:A知識點解析:本題的循環(huán)中倒序從字符串s中依次取出每一個字符,只要該字符不是空格就將其連接到temp的前面,見到空格就把連接好的temp加入到列表框中,即先加入year,然后是new,最后是Happy。3、設(shè)窗體上有一個文本框Text1和一個命令按鈕Command1,并有以下事件過程:PrivateSubCommand1_Click()DimsAsString,chAsStringS=""Fork=1ToLen(Text1)ch=Mid(Text1,k,1)s=ch+sNextkText1.Text=sEndSub程序執(zhí)行時,在文本框中輸入“Basic”,然后單擊命令按鈕,則Text1中顯示的是A、BasicB、cisaBC、BASICD、CISAB標(biāo)準(zhǔn)答案:B知識點解析:本題考查的考點是有關(guān)循環(huán)和取子串函數(shù)的。本題比較簡單,循環(huán)次數(shù)就是字符串的長度,每次都在第k位取一個字母,最后倒序連接起來。注意每次都把ch連接到s的前面。4、某人編寫了如下程序,用來求10個整數(shù)(整數(shù)從鍵盤輸入)中的最大值:PrivateSubCommandl_Click()Dima(10)AsInteger,maxAsIntegerFork=1To10a(k)=InputBox("輸入一個整數(shù)")Nextkmax=0Fork=1To10Ifa(k)>maxThenmax=a(k)EndIfNextkPrintmaxEndSub運(yùn)行程序時發(fā)現(xiàn),當(dāng)輸入10個正數(shù)時,可以得到正確結(jié)果,但輸入10個負(fù)數(shù)時結(jié)果是錯誤的,程序需要修改。下面的修改中可以得到正確運(yùn)行結(jié)果的是A、把Ifa(k)>maxThen改為Ifa(k)<maxThenB、把max=a(k)改為a(k)=maxC、把第2個循環(huán)語句Fork=1To10改為Fork=2To10D、把max=0改為max=a(10)標(biāo)準(zhǔn)答案:D知識點解析:本題考查的考點是有關(guān)循環(huán)和數(shù)組的。本題為了實現(xiàn)求取最大值,首先應(yīng)該假設(shè)數(shù)組中的某一個數(shù)就是最大值,再依次與數(shù)組元素比較,一旦某個元素比當(dāng)前的最大值大,就把它作為新的最大值。max初值設(shè)為0是不可以的,它沒有考慮到數(shù)組元素都小于0的情況。5、在窗體上畫一個名稱為Textl的文本框和一個名稱為Commandl的命令按鈕,然后編寫如下事件過程:PrivateSubCommandl_Click()DimiAsInteger,nAsIntegerFori=0To50i=i+3:n=n+1Ifi>10ThenExitForNextText1.TeXt=Str(n)EndSub程序運(yùn)行后,單擊命令按鈕,在文本框中顯示的值是A、2B、3C、4D、5標(biāo)準(zhǔn)答案:B知識點解析:本題考查的考點是有關(guān)循環(huán)的。實際上本題就要關(guān)注循環(huán)何時結(jié)束,第一次循環(huán)中,i的值變成3,n的值變?yōu)?,然后i+1變成4;由于滿足循環(huán)條件,所以第二次循環(huán)中,i的值變成7,n的值變?yōu)?,然后i+1變成8;由于還是滿足循環(huán)條件,所以第三次循環(huán)中,i的值變成11,n的值變?yōu)?,然后判斷由于i已經(jīng)大于10,所以退出循環(huán),最后n的值為3。6、在窗體上畫一個名為Command1的命令按鈕,然后編寫如下代碼:OptionBase1PrivateSubCommandl_Click()Dimaa=Array(1,2,3,4):J=1Fori=4To1Step-1s=s+a(i)*j:j=j*10NextiPrintSEndSub運(yùn)行上面的程序,其輸出結(jié)果是A、1234B、12C、34D、4321標(biāo)準(zhǔn)答案:A知識點解析:本題考查的考點是有關(guān)循環(huán)的。本題也很簡單,首先取得數(shù)組的最后一個元素加到累加變量中,然后取倒數(shù)第二個元素,乘10后加到累加變量中,然后取倒數(shù)第三個元素,乘100后加到累加變量中,以此類推,最后結(jié)果為1234。7、在窗體上畫一個名稱為Textl的文本框和一個名稱為Commandl的命令按鈕,然后編寫如下事件過程:PrivateSubCommandlClick()DimiAsInteger,nAsIntegerFori=0To50i=i+3:n=n+1Ifi>10ThenExitForNextText1.Text=Str(n)EndSub程序運(yùn)行后,單擊命令按鈕,在文本框中顯示的值是A、2B、3C、4D、5標(biāo)準(zhǔn)答案:B知識點解析

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論