大學(xué)VB考試題庫大全
一、單項選擇題
1、與傳統(tǒng)的程序設(shè)計語言相比,Visual Basic最突出的特點是(C)。
A、結(jié)構(gòu)化程序設(shè)計 ? ?B、程序開發(fā)環(huán)境
C、事件驅(qū)動編程機制 ? D、程序調(diào)試技術(shù)
2、賦值語句:a=123 & MID("123456",3,2)執(zhí)行后,a變量中的值是(C)。
A、"12334" ? ?B、123 ? ?C、12334 ? D、157
3、保存一個工程至少應(yīng)保存兩個文件,這兩個文件分別是(B)。
A、文本文件和工程文件 ?B、窗體文件和工程文件
C、窗體文件和標(biāo)準(zhǔn)模塊文件 D、類模塊文件和工程文件
4、以下能在窗體Form1的標(biāo)題欄中顯示"VisualBasic窗體"的語句是(C)。
A、Form1.Name="VisualBasic窗體"
B、Form1.Title="VisualBasic窗體"
C、Form1.Caption="VisualBasic窗體"
D、Form1.Text="VisualBasic窗體"
5、為了裝入一個Visual Basic應(yīng)用程序,應(yīng)當(dāng)(D)
A、只裝入窗體文件(.frm)
B、只裝入工程文件(.vbp)
C、分別裝入工程文件和標(biāo)準(zhǔn)模塊文件(.bas)
D、分別裝入工程文件、窗體文件和標(biāo)準(zhǔn)模塊文件
6、賦給一個數(shù)組的數(shù)據(jù)類型一定要(A)。
A、相同 ?B、不相同 ? C、兩可 ? D、都不對
7、下面正確的賦值語句是(C)。
A、x+y=30 ?B、y=π*r*r ?C、y=x+30 ?D、3y=x
8、Visual Basic 6.0集成環(huán)境的主窗口中不包括(C)。
A、標(biāo)題欄 ?B、菜單欄 ?C、狀態(tài)欄 D、工具欄
9、以下敘述中錯誤的是(C)。
A、Visual Basic 是事件驅(qū)動型可視化編程工具
B、Visual Basic應(yīng)用程序不具有明顯的開始和結(jié)束語句
C、Visual Basic工具箱中的所有控件都具有寬度(Width)和高度(Height)屬性
D、Visual Basic中控件的某些屬性只能在運行時設(shè)置
10、要使Print方法在Form_Load事件中起作用,要對窗體的(C)屬性進行設(shè)置。
A、Backcolor ? ?B、ForeColor
C、AutoRedraw ? ?D、BackStyle
11、若要使命令按鈕不可操作,要對(A)屬性進行設(shè)制。
A、Enabled ? ? B、Visible
C、BackColor ? ?D、Caption
12、以下敘述中錯誤的是(B)。
?A、一個工程中可以包含多個窗體文件
B、在一個窗體文件中用Private定義的通用過程能被其他窗體調(diào)用
C、在設(shè)計VB程序時,窗體、標(biāo)準(zhǔn)模塊、類模塊等需要分別保存為不同類型的磁盤文件。
D、一個工程默認的啟動對象是Form1
13、Cls方法可以清除窗體或圖片框中的(C)內(nèi)容。
A、在設(shè)計階段使用Picture設(shè)置的背景位圖
B、在設(shè)計階段放置的控件
C、在運行階段產(chǎn)生的圖形和文字
D、以上均可
14、設(shè)x=3,y=5,則以下表達式值為真的是?(C)
A、(-3+5>x) And (y>0) ??B、(x<0) Eqv (y>0)
C、(x>y) Or (y>0) ? ?D、x>=y And y>10
15、為了防止用戶隨意將光標(biāo)置于控件之上,應(yīng)將進行(D)設(shè)置。
A、將控件的TabIndex屬性設(shè)置為0
B、將控件的TabStop屬性設(shè)置為True
C、將控件的TabStop屬性設(shè)置為False
D、將控件的Enabled屬性設(shè)置為False
16、要判斷在文本框是否按了Enter鍵,應(yīng)在文本框的(D)事件中判斷。
A、Change ?B、KeyDown ?C、Click ?D、KeyPress
17、以下關(guān)于焦點的敘述中,錯誤的是(A)。
A、如果文本框的TabStop屬性為False,則不能接收從鍵盤上輸入的數(shù)據(jù)
B、當(dāng)文本框失去焦點時,觸發(fā)LostFocus事件
C、當(dāng)文本框的Enabled屬性為False時,其Tab順序不起作用
D、可以用TabIndex屬性改變Tab順序
18、如果文本框的Enabled屬性設(shè)為False,則(A)。
A、文本框的文本將變成灰色,并且此時用戶不能將光標(biāo)置于文本框上。
B、文本框的文本將變成灰色,用戶仍然能將光標(biāo)置于文本框上,但是不能改變文本框中的內(nèi)容。
C、文本框的文本將變成灰色,用戶仍然能改變文本框中的內(nèi)容。
D、文本框的文本正常顯示,用戶能將光標(biāo)置于文本框上,但是不能改變文本框中的內(nèi)容。
19、程序運行后,在窗體上單擊鼠標(biāo),此時窗體不會接收到的事件是(C)。
A、MouseDown ? ?B、MouseUp
C、Load ? ? ?D、Click
20、圖像框有一個屬性,可以自動調(diào)整圖形的大小,以適應(yīng)圖像框的尺寸,這個屬性是(B)。
A、Autosize ? ?B、Stretch
C、AutoRedraw ? D、Appearance
21、為了防止用戶隨意將光標(biāo)置于控件之上,應(yīng)設(shè)置的屬性是(D)。
A、將控件的TabIndex屬性設(shè)置為0
B、將控件的TabStop屬性設(shè)置為True
C、將控件的TabStop屬性設(shè)置為False
D、將控件的Enabled屬性設(shè)置為False
22、不論何控件,共同具有的是(B)屬性。
A、Text ? ? B、Name
C、ForeColor ? ?D、Caption
23、以下關(guān)于窗體的描述中,錯誤的是(A)。
A、執(zhí)行Unload Form1語句后,窗體Form1消失,但仍在內(nèi)存中
B、窗體的Load事件在加載窗體時發(fā)生
C、當(dāng)窗體的Enabled屬性為False時,通過鼠標(biāo)和鍵盤對窗體的操作都被禁止
D、窗體的Height、Width屬性用于設(shè)置窗體的高和寬
24、當(dāng)運行程序時,系統(tǒng)自動執(zhí)行窗體的(A)事件過程。
A、Load ? ? ?B、Click
C、Unload ? ? D、GotFocus
25、窗體設(shè)計器是用來設(shè)計(B)。
A、應(yīng)用程序的代碼段 ?B、應(yīng)用程序的界面
C、對象的屬性 ? ?D、對象的事件
26、Visual Basic是一種面向?qū)ο蟮目梢暬绦蛟O(shè)計語言,采取了(A)的編程機制。
A、事件驅(qū)動 ? ? B、按過程順序執(zhí)行
C、從主程序開始執(zhí)行 ?D、按模塊順序執(zhí)行
27、確定一個控件在窗體上的位置的屬性是(D)。
A、Width或Height ? B、Width和Height
C、Top或Left ? ?D、Top和 Left
28、如果要改變窗體的標(biāo)題,則需要設(shè)置的屬性是(A)。
A、Caption ? ? B、Name
C、BackColor ? ? D、BorderStyle
29、以下敘述中錯誤的是(C)。
A、打開一個工程文件時,系統(tǒng)自動裝入與該工程有關(guān)的窗體、標(biāo)準(zhǔn)模塊等文件
B、保存Visual Basic程序時,應(yīng)分別保存窗體文件及工程文件
C、Visual Basic應(yīng)用程序只能以解釋方式執(zhí)行
D、事件可以由用戶引發(fā),也可以由系統(tǒng)引發(fā)
30、以下敘述中錯誤的是(B)。
A、雙擊鼠標(biāo)可以觸發(fā)DblClick事件
B、窗體或控件的事件的名稱可以由編程人員確定
C、移動鼠標(biāo)時,會觸發(fā)MouseMove事件
D、控件的名稱可以由編程人員設(shè)定
31、在Visual Basic中最基本的對象是(C)。它是應(yīng)用程序的基石,是其他控件的容器。
A、文本框 ? ? B、命令按鈕
C、窗體 ? ? ?D、標(biāo)簽
32、以下敘述中正確的是(A)。
A、窗體的Name屬性指定窗體的名稱,用來標(biāo)識一個窗體
B、窗體的Name屬性的值是顯示在窗體標(biāo)題欄中的文本
C、可以在運行期間改變對象的Name屬性的值
D、對象的Name屬性值可以為空
33、在設(shè)計階段,當(dāng)雙擊窗體上的某個控件時,所打開的窗口是(C)。
A、工程資源管理器窗口 ? ? B、工具箱窗口
C、代碼窗口 ? ? ? ?D、屬性窗口
34、Visual Basic是一種面向?qū)ο蟮目梢暬绦蛟O(shè)計語言,采取了的編程機制是(A)。
A、事件驅(qū)動 ? ? ? B、按過程順序執(zhí)行
C、從主程序開始執(zhí)行 ? ?D、按模塊順序執(zhí)行
35、用來設(shè)置粗體字的屬性是(C)。
A、FontItalic ? ? ?B、FontName
C、FontBold ? ? ? D、FontSize
36、如果一個工程含有多個窗體及標(biāo)準(zhǔn)模塊,則以下敘述中錯誤的是(A)。
A、如果工程中含有Sub Main過程,則程序一定首先執(zhí)行該過程
B、不能把標(biāo)準(zhǔn)模塊設(shè)置為啟動模塊
C、用Hide方法只是隱藏一個窗體,不能從內(nèi)存中清除該窗體
D、任何時刻最多只有一個窗體是活動窗體
37、為了把焦點移到文本框,所使用的方法是(A)。
A、SetFocus ? ? ?B、Visible
C、Refresh ? ? ?D、GetFocus
38、INT(100*RND)產(chǎn)生的隨機整數(shù)的閉區(qū)間是(A)。
A、[0,99] ?? ? B、[1,100]
C、[0,100] ?? ? D、[1,99]
39、如果要在命令按鈕上顯示圖形文件,應(yīng)設(shè)置命令按鈕的(B)。
A、Style屬性和Graphics屬性B、Style屬性和Picture屬性
C、Caption屬性 ? ? D、Graphics屬性
40、若要使命令按鈕不可操作,要對(A)屬性進行設(shè)制。
A、Enabled ? ? B、Visible
C、BackColor ? ? D、Caption
41、假定窗體的名稱為Form1,則把窗體的標(biāo)題設(shè)置為“VB_Test”的語句為(B)。
A、Form1=“VB_Test” ? B、Form1.Caption=“VB_Test”
C、Form1.Text=“VB_Test” D、Form1.name=“VB_Test”
42、以下敘述中錯誤的是(A)。
A、在工程資源管理器窗口中只能包含一個工程文件及屬于該工程的其他文件
B、以.BAS為擴展名的文件是標(biāo)準(zhǔn)模塊文件
C、窗體文件包含該窗體及其控件的屬性
D、一個工程中可以含有多個標(biāo)準(zhǔn)模塊文件
43、要使文本框獲得輸入焦點,則應(yīng)采用文本框控件的哪個方法(A)。
A、GotFocus ? ? B、LostFocus
C、KeyPress ? ? D、SetFocus
44、以下不能在“工程資源管理器”窗口中列出的文件類型是(B)。
A、.bas ?B、.res ? C、.frm ? D、.ocx
45、剛建立一個新的標(biāo)準(zhǔn)EXE工程后,不在工具箱中出現(xiàn)的控件是(C)。
A、單選按鈕 ?B、圖片框 C、通用對話框 ? D、文本框
46、以下敘述中錯誤的是(B)。
A、雙擊鼠標(biāo)可以觸發(fā)DblClick事件
B、窗體或控件的事件的名稱可以由編程人員確定
C、移動鼠標(biāo)時,會觸發(fā)MouseMove事件
D、控件的名稱可以由編程人員設(shè)定
47、以下能夠觸發(fā)文本框Change事件的操作是(D)。
A、文本框失去焦點 ? ?B、文本框獲得焦點
C、設(shè)置文本框的焦點 ? D、改變文本框的內(nèi)容
48、以下敘述中錯誤的是(C)。
A、一個工程中只能有一個Sub Main過程
B、窗體的Show方法的作用是將指定的窗體裝入內(nèi)存并顯示該窗體
C、窗體的Hide方法和Unload方法的作用完全相同
D、若工程文件中有多個窗體,可以根據(jù)需要指定一個窗體為啟動窗體
49、語句Print Abs(-6^2)+Int(-6^2)的輸出結(jié)果是(A)。
A、0 ? ?B、1 ? C、-1 ? ?D、-72
50、如果將布爾常量值TRUE賦值給一個整型變量,則整型變量的值為(B)。
A、0 ? B、-1 ? ?C、TRUE ? ?D、FALSE
51、函數(shù)String(n, "str")的功能是(B)。
A、把數(shù)值型數(shù)據(jù)轉(zhuǎn)換為字符串
B、返回由n個字符組成的字符串
C、從字符串中取出n個字符
D、從字符串中第n個字符的位置開始取子字符串
52、語句Print Format(“Hello World”,“>”)的輸出結(jié)果是(C)。
A、hello WORLD ? ?B、hello world
C、HELLO WORLD ? ?D、HELLO world
53、聲明符號常量應(yīng)該用關(guān)鍵字(B)。
A、Static ? B、Const ?C、Private ? D、Variant
54、要強制顯示聲明變量,可在窗體模塊或標(biāo)準(zhǔn)模塊的聲明段中加入語句(B)。
A、Option Base 0 ? ?B、Option Explicit
C、Option Base 1 ? ?D、Option Compare
55、下列可作為Visual Basic變量名的是(D)。
A、A#A ?B、4A ? ?C、?xy ? D、constA
56、設(shè)a=10,b=5,c=1,執(zhí)行語句Print a > b > c后,窗體上顯示的是(B)。
A、True ?B、False ? C、1 ? ?D、出錯信息
57、執(zhí)行x$=String(6, "124abc")后,x的值是(B)。
A、124abc ? B、111111 ?C、124 ? D、abc
58、設(shè)a=6,則執(zhí)行 x=IIf(a>5,-1,0)后,x 的值為(D)
A、5 ? ? B、6 ?? ?C、0 ?? ?D、-1
59、執(zhí)行語句:c$=“Glad”& Mid$(“Nice to meet you”,5,3),則變量c$的值為(C)。
A、Nice to meet you ? B、Glad Nice to meet you
C、Glad to ? ? ?D、Glad
60、下面(D)是合法的字符常數(shù)。
A、ABC$ ?B、" ABC" ? C、' ABC' ?D、ABC
61、對于語句If x=1 Then y=1,下列說法正確的是(C)。
A、x=1 和 y=1 均為賦值語句
B、x=1 和 y=1 均為關(guān)系表達式
C、x=1 為關(guān)系表達式, y=1 為賦值語句
D、x=1 為賦值語句, y=1 為關(guān)系表達式
62、設(shè)有聲明:Dim X As Integer,如果Sgn(X) 的值為-1,則X的值是(D)。
A、任何整數(shù) ? B、0 ?C、等于0的整數(shù) D、小于0的數(shù)
63、在一行內(nèi)寫多條語句時,每個語句之間用(B)符號分隔。
A、, ? B、: ? ?C、、 ? ? D、;
64、從鍵盤上輸入兩個字符串,分別保存在變量str1、str2中。確定第二個字符串在第一個字符串中起始位置的函數(shù)是(D)。
A、Left ?B、Mid ?C、String ?D、Instr
65、設(shè)S="中華人民共和國",表達式Left(S,1)+Right(S,1)+Mid(S,3,2)的值為(B)
A、"中華民國" ? ? B、"中國人民"
C、"中共人民" ?? ? D、"人民共和"
66、下列可作為 Visual Basic中的變量名的是(A)。
A、Filename ?B、A(A+B) ?C、254D ? D、Print
67、下面(A)是合法的變量名。
A、X_yz ? B、123abc ?C、Integer ?D、X-Y
68、以下變量命名非法的是(C)。
A、xyz123 ?B、printaa ?C、boolean ?D、Bernald
69、設(shè)有變量聲明:Dim TestDate As Date,為變量TestDate正確賦值的表達方式是(A)。
A、TextDate=#1/1/2002#
B、TestDate=#“1/1/2002”#
C、TextDate=date(“1/1/2002”)
D、TestDate=Format(“m/d/yy”,“1/1/2002”)
70、設(shè)a=2,b=3,c=4,d=5,表達式a>b AND c<=d的值是(B)。
A、True ?B、False ??C、-1 ? D、1
71、表達式6*8 Mod 9的值是(B)。
A、4 ?? B、3 ? ?C、6 ? D、7
72、 假設(shè)變量bool_x是一個布爾型(邏輯型)的變量,則下面正確的賦值語句是(D)
A、bool_x = "False" ?? B、bool_x = .False.
C、bool_x = #False# ?? D、bool_x = False
73、設(shè)a=“Visual Basic”,下面使b=“Basic”的語句是(B)。
A、b=Left(a,8,12) ? ?B、b=Mid(a,8,5)
C、b=Rigth(a,5,5) ? ?D、b=Left(a,8,5)
74、語句Print Format$(32548.5,“###,###.###”)的輸出結(jié)果是(B)。
A、32548.5 ?B、32,548.5 ?C、032,548.50 ?D、32,548.50
75、以下聲明語句中錯誤的是(D)。
A、Const var1=123 ?? B、Dim var2 = 'ABC'
C、Dim x_y_z% ? ? D、Static var3 As Integer
76、可以同時刪除字符串前導(dǎo)和尾部空白的函數(shù)是(C)。
A、Ltrim ? B、Rtrim ? C、Trim ? D、Mid
77、下列可為合法變量名的是(D)。
A、Integer ????B、False ? C、public ?D、thanksgiving
78、變量未賦值時,數(shù)值型變量的值為( A)。
A、0 ? ?B、空 ? ?C、1 ? ?D、無任何值
79、表達式16/4-2^5*8/4 Mod 5\2的值為(B)。
A、14 ? ?B、4 ? ?C、20 ? ?D、2
確的80、下面If語句統(tǒng)計滿足性別為男、職稱為副教授以上、年齡小于40歲條件的人數(shù),不正語句是(D)。
A、If sex="男"And age<40 And (duty="教授"Or duty="副教授") ?Then n=n+1
B、If sex="男"And age<40 And InStr(duty,"教授")>0 ?Then n=n+1
C、If sex="男"And age<40 And Right(duty,2)= "教授" ?Then n=n+1
D、If sex="男"And age<40 And duty="教授"And duty="副教授" Then n=n+1
81、設(shè)a=3,b=5,則以下表達式值為真的是(B)。
A、a>=b And b>10
B、(a>b)Or(b>0)
C、(a<0)or(b<0)
D、(-3+5>a)And(b>0)
82、執(zhí)行語句a=InputBox("Today","Tomorrow","Yesterday",,,"Day before yesterday",5), 將顯示一個輸入對話框,在對話框的輸入?yún)^(qū)中顯示的信息是(A)。
A、Today
B、Tomorrow
C、Yesterday
D、Day before Yesterday
83、VB提供了結(jié)構(gòu)化程序設(shè)計的3種基本結(jié)構(gòu),這3種基本結(jié)構(gòu)是(B)。
A、遞歸結(jié)構(gòu),分支結(jié)構(gòu),循環(huán)結(jié)構(gòu)
B、選擇結(jié)構(gòu),過程結(jié)構(gòu),順序結(jié)構(gòu)
C、過程結(jié)構(gòu),輸入、輸出結(jié)構(gòu),轉(zhuǎn)向結(jié)構(gòu)
D、分支結(jié)構(gòu),循環(huán)結(jié)構(gòu),順序結(jié)構(gòu)
84、下面If語句統(tǒng)計滿足性別為男、職稱為副教授以上、年齡小于40歲條件的人數(shù),不正確的語句是(D)。
A、If sex=“男”And age<40 And InStr(duty,“教授”)>0 ?Then n=n+1
B、If sex=“男”And age<40 And (duty=“教授”O(jiān)r duty=“副教授”) ?Then n=n+1
C、If sex=“男”And age<40 And Right(duty,2)= “教授” ?Then n=n+1
D、If sex=“男”And age<40 And duty=“教授”And duty=“副教授” Then n=n+1
85、當(dāng)語句w=IIf(4>10,”Red”,“Green”)執(zhí)行后,變量w中的值是(C)。
A、Null
B、“Red”
C、“Green”
D、-1
86、賦值語句:a=123+MID(“123456”,3,2)執(zhí)行后,a變量中的值是(D)。
A、“12334”
B、123
C、12334
D、157
87、設(shè)有語句x=InputBox(“AAAA”,“BBBB”,“”),程序運行后,所產(chǎn)生的對話框的標(biāo)題應(yīng)為(C)。
A、AAAA
B、空
C、BBBB
D、出錯,不能產(chǎn)生對話框
88、下面正確的賦值語句是(C)。
A、x+y=30
B、y=π*r*r
C、y=x+30
D、3y=x
89、VB提供了結(jié)構(gòu)化程序設(shè)計的三種基本結(jié)構(gòu),三種基本結(jié)構(gòu)是(D)。
A、遞歸結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
B、選擇結(jié)構(gòu)、過程結(jié)構(gòu)、順序結(jié)構(gòu)
C、過程結(jié)構(gòu)、輸入輸出結(jié)構(gòu)、轉(zhuǎn)向結(jié)構(gòu)
D、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、順序結(jié)構(gòu)
90、下面程序段求兩個數(shù)中的大數(shù),不正確的是(D)。
A、Max=IIf(x>y,x,y)
B、If x>y Then Max=x Else Max=y
C、Max=x:If ?y>=x Then Max=y
D、If y>x Then Max=y :Max=x
91、下列程序段: Dim ?x If ?x ?Then ?Print x ?Else ?Print x+1 運行后,顯示的結(jié)果是(A)。
A、1
B、0
C、-1
D、出錯
92、以下不屬于vb的三種基本結(jié)構(gòu)的是(C)?
A、順序結(jié)構(gòu)
B、選擇結(jié)構(gòu)
C、遞歸結(jié)構(gòu)
D、循環(huán)結(jié)構(gòu)
93、語句If x=1 Then y=1,下列說法正確的是(C)。
A、x=1和y=1均為賦值語句
B、x=1和y=1均為關(guān)系表達式
C、x=1為關(guān)系表達式,y=1為賦值語句
D、x=1為賦值語句, y=1為關(guān)系表達式
94、賦值語句:a=123 & MID(“123456”,3,2)執(zhí)行后,a變量中的值是(C)。
A、“12334”
B、123
C、12334
D、157
95、下面程序段顯示的結(jié)果是(A)。 ??
Dim x ??
x=Int(Rnd)+5 ??
Select Case ?x ????
Case 5 ??????
“優(yōu)秀”
Case 4
Print“良好”
?Case 3
Print“通過”
Case Else
?Print“不通過”
?End Select
A、優(yōu)秀
B、良好
C、通過
D、不通過
96、為了給x,y,z這3個變量賦初值1,下面正確的賦值語句是(A)。
A、x=1:y=1:z=1
B、x=1,y=1,z=1
C、x=y=z=1
D、xyz=1
97、下列語句正確的是(C)
A、If A≠B Then Print "A不等于B"
B、If A<>B Then Printf A不等于B
C、If A<>B Then Print "A不等于B"
D、If A≠B Print "A不等于B"
98、設(shè)有語句x$=InputBox(“輸入數(shù)值”,“0”,“示例”),程序運行后,如果從鍵盤上輸入數(shù)值10并按回車鍵,則下列敘述中正確的是(D)。
A、變量X的值是數(shù)值10
B、在InputBox對話框標(biāo)題欄中顯示的是“示例”
C、0是默認值
D、變量X的值是字符串“10”
99、運行下列程序段后,顯示的結(jié)果為(B) J1=4: J2=9 If J1<J2 Then Print J2 Else Print J1 ?
A、4 ?
B、9
C、13
D、49
100、InputBox函數(shù)返回值的類型為(B)。
A、數(shù)值
B、字符串
C、變體
D、數(shù)值或字符串(視輸入的數(shù)據(jù)而定)
101、一個數(shù)組說明為Dim a(0 to 5,1 to 5) As Integer,則該數(shù)組共有(C) ?個元素。 ?
A、25
B、36
C、30
D、不確定
102、數(shù)組聲明語句Dim a(2 to 3, -2 ?to 2,3 to 5)中,數(shù)組a包含元素的個數(shù)為(C)。
A、120
B、75
C、30
D、13
103、如果在上題語句前加入 Option Base 1,則該數(shù)組共有(D) 個元素。 ?
A、15
B、16
C、13
D、不確定
104、如果有聲明 Dim a(15) As Integer,則該數(shù)組共有(B)個元素。 ?
A、15
B、16
C、13
D、不確定
105、一個數(shù)組說明為Dim a(5,1 to 5) As Integer,則該數(shù)組共有(C) ?個元素。 ?
A、25
B、36
C、30
D、不確定 ?
106、在VB中,默認的數(shù)組下標(biāo)的下界從0開始,要想在通用聲明段界定下界,則應(yīng)使用(A)。
A、Option Base
B、Option Explicit
C、Explicit
D、Low Base
107、如下數(shù)組聲明語句,正確的是(B)。
A、Dim ?a[3, 4] ?as ?Integer
B、Dim ?a(3, ?4) ?as ?Integer
C、Dim ?a(n, n) ?as ?Integer
D、Dim ?a[3][4) ?as ?Integer
108、賦給一個數(shù)組的數(shù)據(jù)的值的類型一定要(A)。 ?
A、相同
B、不相同
C、兩可
D、都不對 ?
109、數(shù)組的下標(biāo)可取的變量類型是(A)。 ?
A、數(shù)值型
B、字符型
C、日期型
D、可變型
110、數(shù)組聲明語句Dim a(0 to 3, -2 ?to 2,0 to 5)中,數(shù)組a包含元素的個數(shù)為(A)。
A、120
B、75
C、60
D、13
111、假定有如下的Sub過程: Sub S (x As Single, y As Single) t = x x = t / y y = t Mod y End Sub 在窗體上添加一個命令按鈕,然后編寫如下事件過程: Private Sub Command1_Click() Dim a As Single Dim b As Single a = 5: b = 4 S a, b Print a, b End Sub 程序運行時,單擊命令按鈕得到的結(jié)果(D)。
A、5 ????????4
B、1 ????????1
C、1.25 ?????4
D、1.25 ?????1
112、用以下方式聲明的變量,(B)可以在整個程序中通用?
A、在窗體模塊用Dim進行聲明
B、在窗體模塊用Public進行聲明
C、在窗體模塊用Private進行聲明
D、在窗體模塊用Static進行聲明
113、在窗體上添加一個命令按鈕和三個標(biāo)簽,編寫事件過程: Private x As Integer Private Sub Command1_Click() Static y As Integer Dim z As Integer N=10: z=N+z: y=y+z: x=x+z Label1.Caption = x Label2.Caption = y Label3.Caption = z End Sub 程序運行后,連續(xù)三次單擊命令按鈕,則三個標(biāo)簽中顯示的內(nèi)容分別是(A)。
A、10 ?10 ?10
B、30 ?30 ?30
C、30 ?30 ?10
D、10 ?30 ?30
114、以下敘述中錯誤的是(D)。
A、如果過程被定義為Static類型,則該過程中的局部變量都是Static類型
B、Sub過程中不能嵌套定義Sub過程
C、Sub過程中可以嵌套調(diào)用Sub過程
D、事件過程可以像通用過程一樣由用戶定義過程名
115、在在窗體上添加一個命令按鈕Command1和一個文本框Text1,然后編寫如 下事件過程:
?Private Sub Command1_Click() ?????
?Dim x As Integer, y As Integer, z As Integer ?????
?x = 5 ???????
y = 7 ??????
z = 0 ??????
Text1.Text = "" ??????
Call p1(x, y, z) ??????
Text1.Text = Str(z) ??????
End Sub Private Sub p1(ByVal a As Integer, ByVal b As Integer, c As Integer)
c = a + b
End Sub
程序運行后,單擊命令按鈕得到的結(jié)果是(A)。
A、12
B、0
C、Str(z)
D、沒有顯示結(jié)果
116、如果在程序中要將a定義為靜態(tài)變量,且為整型數(shù),則應(yīng)使用的語句是:(B)?
A、Redim a As Integer
B、Static a As Integer
C、Public a As Integer
D、Dim a As Integer
117、以下程序的運行結(jié)果是(C)
?Sub s1(b() As Integer)
For i = 1 To 4
b(i) = 2 * i
Next i
End Sub
Private Sub Command1_Click()
Dim a(1 To 4) As Integer
For i = 1 To 4 ???????
? a(i) = i + 5
Next i
s1 a()
For i = 1 To 4
Print a(i)
?Next i
?End Sub
A、12 ?14 ?16 ?18
B、6 ?7 ?8 ?9
C、2 ?4 ?6 ?8
D、1 ?2 ?3 ?4
118、以下程序的運行結(jié)果是(D)。 Function f(m As Integer) As Integer b = 1 Static c As Integer b = b + 1 c = c + 1 f = m * b * c End Function Private Sub Command1_Click() Dim a As Integer a = 2 Sum = 0 For i = 1 To 3 Sum = Sum + f(a) Next i Print Sum End Sub
A、12
B、28
C、32
D、24
119、下列程序輸出結(jié)果(C)。
?Private Sub Command1_Click() ???
?For i = 1 To 10 ????
GetValue i ????
Next i ????
Print GetValue(i) ????
End Sub
Private Function GetValue(ByVal a As Integer) Static S As Integer S = S + a
GetValue = S
End Function
A、10
B、65
C、66
D、11
120、在過程定義的變量,若希望在離開該過程后,還能保存過程中局部變量的值,則應(yīng)使用(D)關(guān)鍵字在過程中定義局部變量。
A、Dim
B、Private
C、Public
D、Static
121、在過程定義中用(C)表示形參的傳值。
A、Var
B、ByDef
C、ByVal
D、Value
122、在在窗體上添加一個命令按鈕Command1和兩個名稱分別為Label1和 Label2的標(biāo)簽,然后編寫如下事件過程: ?????Private X As Integer ??Private Sub Command1_Click() ???X = 5: y = 3 ???Call proc(X, y) ???Label1.Caption = X ???Label2.Caption = y ??End Sub Sub proc(ByVal a As Integer, ByVal b As Integer) X = a * a y = b + b End Sub 程序運行后,單擊命令按鈕,則兩個標(biāo)簽label1和label2中顯示的內(nèi)容分別是(B)。
A、25,3
B、25,6
C、5,3
D、5,6
123、以下程序的運行結(jié)果是(C)。 Dim x As Integer, y As Integer, z As Integer Sub s1(a As Integer, b As Integer)
Dim c As Integer
a = 2 * a b = b + 2 c = a + b
End Sub
Sub s2(a As Integer, ByVal b As Integer)
?Dim c As Integer
a = 2 * a
b = b + 2
?c = a + b
End Sub
?Private Sub Command1_Click()
?x = 4:y = :4 z = 6
Call s1(x, y)
Print x + y + z
?Call s2(x, y)
Print x + y + z
End Sub
A、24 ???28 ?
B、20 ???28
C、20 ???18
D、20 ???20
124、以下關(guān)于過程及過程參數(shù)的描述中,錯誤的是(C)。
A、過程的參數(shù)可以是控件名稱
B、用數(shù)組作為過程的參數(shù)時,使用的是“傳地址”方式
C、只有函數(shù)過程能夠?qū)⑦^程中處理的信息傳回到調(diào)用的程序中
D、窗體可以作為過程的參數(shù)
125、以下屬于Visual Basic合法的數(shù)組元素是(C)
A、x8
B、x[8]
C、s(0)
D、v[8]
126、下列敘述中正確的是(C)。
A、在窗體的Form_Load事件過程中定義的變量是全局變量
B、局部變量的作用域可以超出所定義的過程
C、在某個Sub過程中定義的局部變量可以與其它事件過程中定義的局部變量同名,但其作用域只限于該過程
D、在調(diào)用過程時,所有局部變量被系統(tǒng)初始化為0或空字符串
127、假定有以下函數(shù)過程: Function Fun(S As String) As String Dim s1 As String For i = 1 To Len(S) s1 = UCase(Mid(S, i, 1)) + s1 Next i Fun = s1 End Function 在窗體上添加一個命令按鈕,然后編寫如下事件過程: Private Sub Command1_Click() ??????Dim str1 As String, str2 As String ??????str1 = InputBox("請輸入一個字符串") ??????str2 = Fun(str1) ??????Print str2 End Sub 程序運行后,單擊命令按鈕,如果在輸入對話框中輸入字符串“abcdefg”,單擊"確定"按鈕后程序在窗體上輸出結(jié)果(D)。
A、abcdefg
B、gfedcba
C、GFEDCBA
D、ABCDEFG
128、若已編寫了一個Sort子過程,在該工程中有多個窗體,為了方便的調(diào)用Sort子過程,應(yīng)該將該過程放在(B)。
A、窗體模塊
B、標(biāo)準(zhǔn)模塊
C、類模塊
D、工程
129、下面子過程語句說明合法的是(D)
A、Sub f1(ByVal n() As Integer)
B、Function f1(f1 As Integer) As Integer
C、Sub f1(n() As Integer)As Integer
D、Function f1(ByVal n As Integer)As Integer
130、在過程定義的變量,若希望在離開該過程后,還能保存過程中局部變量的值,則應(yīng)使用(D)關(guān)鍵字在過程中定義局部變量。
A、Dim
B、Private
C、Public
D、Static
131、在窗體上畫三個單選按鈕,組成一個名為chkOption的控件數(shù)組。用于標(biāo)識各個控件數(shù)組元素的參數(shù)是(D)。
A、Tag
B、Index
C、ListIndex
D、Name
132、假如列表框(List1)有四個數(shù)據(jù)項,那么把數(shù)據(jù)項“China”添加到列表框的最后,應(yīng)使用(D)語句。
A、List1.AddItem 3, "China"
B、List1.AddItem "China", List1.List1Count-1
C、List1.AddItem "China", 3
D、List1.AddItem "China"
133、如果列表框(List1)中沒有被選定的項目,則執(zhí)行List1.RemoveItem List1.ListIndex語句的結(jié)果是(D)。
A、移去第一項
B、移去最后一項
C、移去最后加入列表的一項
D、以上都不對
134、以下敘述中錯誤的是(C)。
A、在KeyUp和KeyDown事件過程中,從鍵盤上輸入A或a被視作相同的字母(即具有相同的KeyCode)
B、在KeyUp和KeyDown事件過程中,將鍵盤上的“1”和右側(cè)小鍵盤上的“1”視作不同的數(shù)字(具有不同的KeyCode)
C、KeyPress事件中不能識別鍵盤上某個鍵的按下與釋放
D、KeyPress事件中可以識別鍵盤上某個鍵的按下與釋放
135、設(shè)組合框Combo1中有3個項目,則以下能刪除最后一項的語句是(B)。
A、Combo1.RemoveItem Text
B、Combo1.RemoveItem 2
C、Combo1.RemoveItem 3
D、Combo1.RemoveItem Combo1.Listcount
136、下列控件中,沒有Caption屬性的是(B)。
A、框架
B、列表框
C、復(fù)選框
D、單選按鈕
137、引用列表框(List1)最后一個數(shù)據(jù)項應(yīng)使用的表達式是(C)
A、List1.List(List1.ListCount)
B、List1.List(ListCount)
C、List1.List(List1.ListCount-1)
D、List1.List(ListCount-1)
138、窗體的MouseDown事件過程Form_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)有4個參數(shù),關(guān)于這些參數(shù),正確的描述是(A)。
A、通過Button參數(shù)判定當(dāng)前按下的是哪一個鼠標(biāo)鍵
B、Shift參數(shù)只能用來確定是否按下Shift鍵
C、Shift參數(shù)只能用來確定是否按下Alt和Ctrl鍵
D、參數(shù)x,y用來設(shè)置鼠標(biāo)當(dāng)前位置的坐標(biāo)
139、復(fù)選框的Value屬性為1時,表示(B)。
A、復(fù)選框未被選中
B、復(fù)選框被選中
C、復(fù)選框內(nèi)有灰色的勾
D、復(fù)選框操作有錯誤。
140、引用列表框的最后一項應(yīng)使用(A)。
A、List1.List(List1.ListCount-1)
B、List1.List(List1.ListCount)
C、List1.List(ListCount)
D、List1.List(ListCount-1)
141、設(shè)窗體上有一個列表框控件List1,且其中含有若干列表項。則以下能表示當(dāng)前被選中的列表項內(nèi)容的是(D)。
A、List1.List
B、List1.ListIndex
C、List1.Index
D、List1.Text
142、表示滾動條控件取值范圍最大值的屬性是(A)。
A、Max
B、LargeChange
C、Value
D、Max-Min
143、為了在按下Esc鍵時執(zhí)行某個命令按鈕的Click事件過程,需要把該命令按鈕的一個屬性設(shè)置為True,這個屬性是(D)。
A、Value
B、Default
C、Cancel
D、Enabled
144、假如列表框(List1)有四個數(shù)據(jù)項,那么把數(shù)據(jù)項“China”添加到列表框的最后,應(yīng)使用語句(D)。
A、List1.AddItem 3, "China"
B、List1.AddItem "China", List1.List1Count-1
C、List1.AddItem "China", 3
D、List1.AddItem "China", List1.List1Count
145、復(fù)選框的Value屬性為2時,表示(C)。
A、復(fù)選框未被選中
B、復(fù)選框被選中
C、復(fù)選框內(nèi)有灰色的勾
D、復(fù)選框操作有錯誤。
146、為了在按下回車鍵時執(zhí)行某個命令按鈕的事件過程,需要把該命令按鈕的一個屬性設(shè)置為True,這個屬性是(A)。
A、Value
B、Default
C、Cancel
D、Caption
147、下面說法不正確的是(D)?
A、層菜單不允許設(shè)置快捷鍵
B、使菜單項中的文字具有下畫線,可在標(biāo)題文字前加&符號
C、一菜單項名為MenuTerm,則語句MenuTerm.Enable = Flase 將使該菜單項失效
D、希望在菜單中顯示"&"符號,則在標(biāo)題欄中輸入"&"符號
148、以下敘述中錯誤的是(C)。
A、在程序運行時,通用對話框控件是不可見的
B、在同一個程序中,用不同的方法(如ShowOpen或ShowSave等)打開的通用對話框具有不同的作用
C、調(diào)用通用對話框控件的ShowOpen方法,可以直接打開在該通用對話框中指定的文件
D、調(diào)用通用對話框控件的ShowColor方法,可以打開顏色對話框
?
149、菜單編輯器中,輸入哪一個選項(A)會在菜單欄上顯示文本
A、標(biāo)題 ????????
B、名稱 ??????????
C、索引 ???????????
D、訪問鍵
150、菜單控件只有一個事件(B)
A、MouseUp ?????
B、Click ??????????
C、DBClick ????????
D、KeyPress
151、在用通用對話框控件建立“打開”或“保存”文件對話框時,如果需要指定文件列表框所列出的文件類型是文本文件(即.txt文件),則正確的描述格式是(A)。
A、“text (.txt)|(*.txt)”
B、“文本文件( .txt) | (.txt)”
C、“text(.txt)||(*.txt)”
D、“text(.txt)(*.txt)”
152、下面哪個屬性可以控制菜單項可見或不可見(C)
A、Hide ?????????
B、Checked ????????
C、Visible ?????????
D、Enabled
153、下面說法不正確的是(D)
A、層菜單不允許設(shè)置快捷鍵
B、使菜單項中的文字具有下畫線,可在標(biāo)題文字前加&符號。
C、一菜單項名為MenuTerm,則語句MenuTerm.Enabled = Flase 將使該菜單項失效。
D、希望在菜單中顯示“&”符號,則在標(biāo)題欄中輸入“&”符號。
154、下面哪個屬性可以控制菜單項可見或不可見(C)?
A、Hide
B、Checked
C、Visible
D、Enabled
155、改變驅(qū)動器列表框的Drive屬性將激活(A)事件。
A、Change
B、Scroll
C、KeyDown
D、KeyUp
156、在窗體上建立通用對話框需要添加的控件是(C)
A、Data控件
B、Form控件
C、CommonDialog控件
D、VBComboBox控件
157、下面幾個關(guān)鍵字均表示文件的打開方式,只能進行讀不能寫的是(A)。
A、Input
B、Output ?
C、Random
D、Append
158、為建一個隨機文件,其中每一條記錄由多個不同數(shù)據(jù)類型的數(shù)據(jù)項組成,應(yīng)使用(A)。
A、記錄類型
B、數(shù)組
C、字符串類型
D、變體類型
159、下列說法錯誤的是(B)。
A、當(dāng)用Write # 語句寫順序文件時,文件必須以O(shè)utput或Append方式打開
B、用Open語句打開一個文件時,對同一個文件可以用幾個不同的文件號打開
C、用Output和Append方式打開文件時,不用將文件關(guān)閉,就能重新打開文件
D、用Append方式打開文件時,進行寫操作,寫入文件的數(shù)據(jù)附加到原來文件的后面
160、執(zhí)行語句Open "Sample.dat" For Random As #1 Len = 50 后,對文件"Sample.dat"中的數(shù)據(jù)能夠進行的操作是(C)。
A、只能寫不能讀 ?
B、只能讀不能寫
C、即可以讀,也可以寫
D、不能讀,也不能寫
?
?
?
?
?
?
?
?
1,下面程序?qū)σ阎獢?shù)組a,刪除數(shù)組中數(shù)組元素中某個元素
Private Sub Command1_Click()
Dim a(), key%, i%, j%
a = Array(1, 6, 8, 3, 5, 9, 10, 2, 7, 4)
key = Val(InputBox("輸入要刪除的值"))
For i = 0 To UBound(a)
If?key = a(i)?Then
?For j = i + 1 To UBound(a)
?a(j - 1) = a(j)
?Next j
?ReDim Preserve a(UBound(a) - 1)
?MsgBox ("刪除完成")
?Exit Sub
End If
Next i
MsgBox ("找不到要刪除的元素")
End Sub
2,下列程序表示將輸入的一個數(shù)插入到按遞減的有序數(shù)列中,插入后使該序列仍有序
Private Sub Form_Click()
Dim a, i%, n%, m%
a = Array(19, 17, 15, 13, 11, 9, 7, 5, 3, 1)
n = UBound(a)
ReDim Preserve a(n + 1)
m = Val(InputBox("輸入欲插入的數(shù)"))
For i = UBound(a) - 1 To 0 Step -1
If m >= a(i) Then
a(i + 1) = a(i)
If i = 0 Then a(i) = m
Else
a(i + 1) = m
Exit For
End If
Next i
For i = 0 To UBound(a)
?Print a(i)
Next i
End Sub
3,下列程序在1000~9999之間查找滿足如下條件的整數(shù):該整數(shù),逆向排列得到的
另一個四位數(shù)是它自身的倍數(shù)(2倍以上)。查找結(jié)果和逆向排列數(shù)分別顯示在對應(yīng)
的列表框
Private Sub Command1_Click()
Dim n As Integer
Dim m As Integer
Dim i As Integer
For i = 1000 To 9999
???m = 0
???n = i
???Do While n > 0
?????m =?m * 10?+ n Mod 10
?????n = n \ 10
???Loop
???If?m Mod i=0And m \ i > 1 Then
???list1.AddItem i
???list2.AddItem m & "=" & i & "*" & m \ i
???End If
Next i
End Sub
4,將100~150之間的偶數(shù),拆分成兩個素數(shù)之和,最后輸出格式如圖。其中,prime函數(shù)判斷
參數(shù)x是否為質(zhì)數(shù)
Private Function prime(ByVal x As Integer) As Boolean
prime =?ture
For i = 2 To Sqr(x)
?If x Mod i = 0?Then
???prime = False
???Exit Function
???End If
Next i
End Function
Private Sub Form_Load()
i = 1
For n = 100 To 150
???For k = 3 To n / 2
???If prime(k)?And prime(n - k)?Then
????Print i; ":"; "="; k; "+"; n - k
Exit For
End If
???Next k
???i = i + 1
Next n
End Sub
10,
子過程F(N,M,T)對一個四位數(shù)n整整數(shù)判斷:已知該整數(shù)n,逆向排列獲得另一個4位數(shù)m是特自身的倍數(shù),則t為true
表示滿足上述條件。。。
Private Sub Command1_Click()
Dim t As Boolean, i%, k%
text1 = ""
text2 = ""
For i = 1000 To 9999
??Call f(i, k, t)
??If t Then
??text1 = text1 & i & vbCrLf
??text2 = text2 & k & "=" & i & "*" & k \ i & vbCrLf
??End If
Next i
End Sub
Sub f(ByVal n%, ByRef m%, byreyftag As Boolean)
Dim i%
Tag = False
m = 0
i = n
Do While?i > 0
m = m * 10 + i Mod 10
i = i \ 10
Loop
If m Mod n = 0 And m \ n > 1 Then
???Tag = True
End If
End Sub
?
6.8.子過程MoveStr()是把字符組移動m個位置, ??
當(dāng)Tag為Ture是左移,則前m個字符一道字符數(shù)組尾
,例如,“abcdefghij”左移3個位置后,結(jié)果為
“defghijabc”;。。。。。
?
Public Sub MoveStr(a $(),m%,Tag As Boolean)
??Dim i%, j%, t$
??If Tag Then
????For i = 1 To m
???????c = a(0)
???????For j = 0 To UBound(a) - 1
?????????a(j) = a(j + 1)
???????Next j
???????a (UBound(a)) - 1
????Next i
??Else
????For i = 1 To m
??????c = a(UBound(a))
??????For j = UBound(a) To 1 Step -1
????????a(j) = a(j - 1)
??????Next j
??????a(0) = c
????Next i
??End If
End Sub
?
?
?
6.9.子過程CountN用來統(tǒng)計字符串中各數(shù)字
字符(0-9)出現(xiàn)的個數(shù);主調(diào)程序?qū)υ趖extbox1
框輸入的文本,每次單擊“統(tǒng)計”按鈕,調(diào)用該子
過程,在Label1框顯示結(jié)果。
?
Private Sub Command1_Click()
????Dim n(9) As Integer, i%
????Call CountN(n(), text1.Text)
????list1.Clear
????For i = 0 To 9
????????If n(i) Then list1.AddItem "字符" & i & "出現(xiàn)的次數(shù)為" & n(i)
????Next
End Sub
Sub CountN(ByRef num%(), ByVal s As String)
????Dim c As String * 1, i%, m%, j%
????For i = 0 To 9
????????num(i) = 0
????Next i
????m = Len(s)
????For i = 1 To m
????????c =?Mid(s, i, 1)
????????If c >= "0" And c <= "9" Then
????????????j = Val(c)
????????????num(j) = num(j) + 1
????????End If
????Next i
End Sub
?
?
?
?
6.11.下列程序中的子過程myplit。。用于實現(xiàn)split函數(shù)的功能,即將數(shù)字字符
s鞍分隔符“,”分離到sArry數(shù)組中,分離的個數(shù)為n。。。。
????????
Private Sub Text1_KeyPress(KeyAscii As Integer)
????Dim strl As String, num(100) As Integer, n%, i%
????If KeyAscii = 13 Then
????????str1 = Trim(Text1.Text)
????????Call MySplit(str1, num, n)
????????list1.Text = ""
????????For i = 1 To n
????????????list1.AddItem num(i)
????????Next
????End If
End Sub
Sub MySplit(ByVal str1 As String, ByRef sn() As Integer, ByRef n As Integer)
????Dim i%, j%, ch$
????i = 0
????j = InStr(Str, ",")
????Do While j > 0
????????sn(i) = Val(Mid(str1, 1, j - 1))
????????str1 = Mid(str1, j + 1)
????????i = i + 1
????????j = InStr(str1, ",")
????Loop
????sn(i) = Val(str1)
????n = i
End Sub
?
?
?
?
1工程中有兩個窗體form1和form2,一個標(biāo)準(zhǔn)模塊module1,設(shè)在form1中定義了過程aa,在module1中定義了過程bb。
Sub aa(x, y, z)
???z = x * x + y * y
End Sub
Sub bb(x, y, z)
??z = x ^ 3 + y ^ 3
End Sub
當(dāng)在form1中單擊命令按鈕時,調(diào)用以上過程計算兩個數(shù)的平方和和立方和,并分別將計算結(jié)果顯示在文本框text3和text4中,請?zhí)羁胀瓿烧{(diào)用語句。
Private Sub Command1_Click()
??a = Val(Text1.Text)
??b = Val(Text2.Text)
??Call ?[aa(a,b,c1) ] ?????????
??Text3.Text = c1
??bb [a,b,c2 ?] ???????????
??Text4.Text = c2
End Sub
――――――――――――――――――
2下面的程序用于根據(jù)文本框X中輸入的內(nèi)容進行以下處理:若X為2、4、6,則打印"X的值為2、4、6";若X在11到15之間,則打印"X的值為大于等于11小于等于15";若X大于20,則打印"X的值大于20";否則,打印"X不在范圍內(nèi)"。
Private Sub Command1_Click()
??Select Case Val(X.Text)
????Case [2,4,6 ??]
??????Print "X的值為2,4,6"
????Case ?[11 to 15 ??]
??????Print "X的值為大于等于11小于等于15"
????Case Is >20
??????Print "X的值大于20"
????Case Else
??????Print "X不在范圍內(nèi)"
??End Select
End Sub
――――――――――――――
3下面的程序是使用冒泡法對數(shù)組進行排序,請將程序補充完整。
Option Base 1
Private Sub Command1_Click()
?????Dim iA(0 To 10)
?????n = 6
?????iA(0) = 8: iA(1) = 6: iA(2) = 9: iA(3) = 3: iA(4) = 2: iA(5) = 7
???????For i= 1 To n - 1 ?????????????' 進行n-1遍比較
???????' 對第i遍比較時,大數(shù)沉底
???????For [j=1 to n-i ???] ?????????' 在數(shù)組 i~n個元素中選最小元素的下標(biāo)
????????????If [?iA(j) > iA(j+1) ?]?Then
??????????????t = iA(j)
??????????????iA(j) = iA(j + 1)
??????????????iA(j + 1) = t
????????????End If
???????Next j
End Sub
――――――――――――
4 程序的功能是使用輾轉(zhuǎn)相除法求兩個數(shù)的最大公約數(shù)。
Private Sub Command1_Click()
??Dim m%, n%
??m = Int(InputBox("input an integer"))
??n = Int(InputBox("input another integer"))
??Print gcd(m, n)
End Sub
Public Function gcd%(m%, n%)
??Dim t%
??If [?m<n ?]?Then t = m: m = n: n = t
??Do
????r = m Mod n
????If r = 0 Then Exit Do
????m = n
????[?n=r ???]
??Loop
??gcd = n
End Function
―――――――――
5、輸入任意長度的字符串,要求將字符順序倒置,例如,將輸入的“ABCDEF”變換成“FEDCBA”。請將程序補充完整。
Private Sub Command1_Click()
??Dim a$, i%, c$, n% ?'n存放字符串的長度
??a = InputBox("input a string")
??n = [Len(a) ??]
??For i = 1 To Int(n / 2)
????c = Mid(a, i, 1)
????Mid(a, i, 1) = [ Mid(a,n-i+1,1)??]
????Mid(a, n - i + 1, 1) = c
??Next i
End Sub
――――――――――
6、下面的程序允許用戶按Enter(回車)鍵后,將組合框中沒有的項目添加到組合框。請將程序補充完整。
Private Sub Combo1_KeyPress(KeyAscii As Integer)
Dim flag As Boolean
If KeyAscii = 13 Then
???flag = False
???For i = 0 To Combo1.ListCount - 1 '查找項目是否已存在
??????If [ combo1.text=combo1.list(i) ???] Then
????????flag = True
????????Exit For
??????End If
????Next i
????If flag = False Then ??'不存在則添加
??????[ combo1.AddItem combo1.Text ????]
????End If
End If
End Sub
―――――――――
7、下面的程序是使用選擇法對數(shù)組進行升序排列,請將程序補充完整。
Option Base 1
Private Sub Command1_Click()
?????Dim iA(1 To 10)
?????n = 6
?????iA(1) = 8: iA(2) = 6: iA(3) = 9: iA(4) = 3: iA(5) = 2: iA(6) = 7
?????For i = 1 To n - 1 ?????????????' 進行n-1遍比較
????????iMin = i ???????????????' 對第i遍比較時,初始假定第i個元素最小
????????For [ j=i+1 to n ???] ?????????????' 在數(shù)組 i~n個元素中選最小元素的下標(biāo)
????????????If [a(j)<a(imin) ?] Then iMin = j
????????Next j
????????t = iA(i) ??????????????????'i~n個元素中選出的最小元素與第i個元素交換
????????iA(i) = iA(iMin)
????????iA(iMin) = t
?????Next i
End Sub
―――――――――――
8、找出被3、5、7除,余數(shù)均為1的最小的5個正整數(shù)。
Private Sub Command1_Click()
??Dim countn%, n%
??n = 1: countn = 0
??Do
????n = n + 1
????If [?n mod 3=1 And n mod 5=1 And n mod 7=1 ]Then
????????Print n
????????countn = countn + 1
????End If
??Loop [?until count n=5 ??]
End Sub
――――――――――――――
9、下面程序段是檢查輸入的算術(shù)表達式中圓括號是否配對,并顯示相應(yīng)的結(jié)果。本程序在文本框輸入表達式,
邊輸入,邊統(tǒng)計,以輸入回車鍵作為表達式輸入結(jié)束,然后顯示結(jié)果。
Dim count1%
Private Sub Text1_KeyPress(KeyAscii As Integer)
??If [ chr(keyAscii) ???] = "(" Then
????count1 = count1 + 1
??ElseIf Chr(KeyAscii) = ")" Then
????[?count1=count1+1 ??]
??End If
??If KeyAscii = 13 Then
????If count1 = 0 Then
????????Print "左右括號配對"
????ElseIf count1 > 0 Then
????????Print "左括號多于右括號"; count1; "個"
????Else
????????Print "右括號多于左括號"; -count1; "個"
????End If
??End If
End Sub
――――――――――――
10、順序文件的建立。建立文件名為“c:\stud1.txt”的順序文件,內(nèi)容來自文本框,
每按Enter鍵寫入一條記錄,然后清除文本框的內(nèi)容,直到文本框內(nèi)輸入“END”字符串。
Private Sub Form_Load()
??Open “c:\stud1.txt” For Output As #1
??Text1.Text=“”
End Sub
Private Sub Text1_KeyPress(keyAscii As Integer)
?If keyAscii=13 Then
???If[?Ucase(Text1)="END" ??] Then
???????Close #1
???????End
???Else
????[Print #1,Text1 ?]
????Text1.Text=“”
???End If
??End If
End Sub
―――――――――――――
11、輸入若干字符,統(tǒng)計有多少個元音字母、有多少個其他字母,不區(qū)分大小寫,并顯示結(jié)果。其中,CountY中放元音字母個數(shù),CountC中放其他字符數(shù)。
Private Sub Command1_Click()
??Dim CountY%, CountC%, i%
??Dim C$, B$
??c=Text1.Text
??For i = 1 To Len(C)
????B =UCase(Mid(C, i, 1))
????If [?"A"<=B And B<="Z" ??] Then
??????Select Case B
????????Case "A","E","I", "O","U"
??????????CountY = CountY + 1
????????Case [?Else ???]
??????????CountC = CountC + 1
?????End Select
???End If
??Next ?i
??Print "元音字母有"; CountY; "個"
??Print "其它字母有"; CountC; "個"
End Sub
――――――――
12、將C盤根目錄下的一個文本文件old.dat復(fù)制到新文件new.dat中,并利用文件操作語句
將old.dat文件從磁盤上刪除。
Private Sub Command1_Click()
??Dim str1 $
??Open “c:\old.dat” ?For Input As #1
??Open “c:\new.dat” [For output As #2 ]
??Do While[ ?Not EoF(1) ??]
????Line Input #1,str1
?????Print #2,str1
??Loop
??Close #1,#2
??KILL “c:\old.dat”
End Sub
―――――――――
<PIXTEL_MMI_EBOOK_2005>6 ?????
13、產(chǎn)生[10,37]之間的隨機整數(shù)的Visual Basic表達式是[<int(Rnd*28+10)>]。
判斷s字符變量是大寫字母字符的邏輯表達式為[<s>="A" And s<="Z">]。
表示x是5的倍數(shù)或9的倍數(shù)的邏輯表達式是[<x Mod 5=0 Or x Mod 9=0>]
Len("vb程序設(shè)計")的值是[<6>]。
表示字符變量s是字母字符(不區(qū)分大小寫)的VB表達式是[<Lcase(s)>="a" And Lcase(s)<="z"或者Ucase(s)>="A" And Ucase(s)<="Z">]。
將一個兩位數(shù)x的個位數(shù)與十位數(shù)交換位置,組成另一個兩位數(shù),則對應(yīng)的表達式是[<(x Mod 10)+x\10>]。
隨機產(chǎn)生一個“C”~“L”范圍內(nèi)的大寫字符,則對應(yīng)的VB表達式是[<Chr(Int(Rnd*10+68))>]。
Round(-3.5)的值是[<-4>]。
Int(3.5)的值是[<3>]。
下面程序段運行后的輸出結(jié)果是[<2 20 3 21 4 22 5 23>]。
For i = 0 To 3
????Print Tab(5 * i + 1); "2" + i; "2" & i;
Next i
循環(huán)語句For i=-3 to 20 Step 0 的循環(huán)次數(shù)是[<無數(shù)次>]。
在過程中定義的局部變量,如果希望過程結(jié)束后還保存變量的值,則應(yīng)使用[<Static>]關(guān)鍵字進行聲明。
由Array函數(shù)建立的數(shù)組,其變量必須是[<Variant>]。
要使循環(huán)語句循環(huán)執(zhí)行20次,F(xiàn)or k=____ to -5 Step -2,則k=[<33>]。
循環(huán)語句For i=-3.5 to 5.5 Step 0.5的循環(huán)次數(shù)是[<19>]。
下列程序段中,第41句共執(zhí)行了[<12>]次。
30 ?For j = 1 To 12 Step 3
40 ?????For k = 6 To 2 Step -2
41 ?????????Print j, k
42 ?????Next k
43 ?Next j
循環(huán)語句For i=-3 to 20 Step 4的循環(huán)次數(shù)是[<6>]。
下面程序運行后的輸出結(jié)果是[<**$$$****$$$$$>]。
a = "*": b = "$"
For i = 1 To 4
????If i Mod 2 = 0 Then
????????x$ = String(Len(a) + i, b)
????Else
????????x$ = String(Len(a) + i, a)
????End If
????Print x$;
Next i
下面程序的運行結(jié)果是[<22 484>]。
x = 242: y = 44
z = x * y
Do Until nx = y
????If x > y Then x = x - y Else y = y - x
Loop
Print x, z / x
下列程序段中,第40句共執(zhí)行了[<4>]次。
30 ?For j = 1 To 12 Step 3
40 ?????For k = 6 To 2 Step -2
41 ?????????Print j, k
42 ?????Next k
43 ?Next j
如果在建立菜單時在標(biāo)題文本框中輸入一個[<下劃線或者“_”>],那么菜單顯示時形成一個分隔線
如果菜單標(biāo)題的某個字母前輸入一個[<&>]符號,那么該字母就成了熱鍵字母。
[<Clear>]方法可以清除列表框中的所有內(nèi)容。
列表框中的[<List>]和Selected兩個屬性均為數(shù)組。
[<Style>]屬性設(shè)置為1,單選按鈕和復(fù)選框以圖形方式顯示。
當(dāng)用戶單擊滾動條的空白處時,滑塊移動的增量由[<Largechange>]屬性決定。
當(dāng)用戶單擊鼠標(biāo)右鍵時,MouseDown、MouseUp和MouseMove事件過程中的Button參數(shù)值為[<2>]。
列表框中項目的序號是從[<0>]開始的。
Visual Basic中有一種控件組合了文本框和列表框的特性,這種控件是[<組合框>]。
如果窗體的[<KeyPreview>]屬性設(shè)置為True,則控件的KeyPress事件過程可以接收到在窗體的KeyPress過程中修改過的值。
復(fù)選框的[<Value>]屬性設(shè)置為2-Grayed時,變成灰色,禁止用戶選擇。
復(fù)選框的[<value>]屬性設(shè)置為2-Grayed時,復(fù)選框變成灰色,禁止用戶選擇。
滾動條產(chǎn)生Change事件是因為它的[<Value>]屬性值改變了。
如果要每隔15秒產(chǎn)生一個Timer事件,則Interval屬性應(yīng)設(shè)置為[<15000>]。
當(dāng)用戶單擊滾動條兩端的箭頭時,滑塊移動的增量由[<Smallchange>]屬性決定。
[<List1.Listcount-1>]表示列表框(List1)中最后一項的序號。
Visual Basic提供的對數(shù)據(jù)文件的三種訪問方式為順序訪問方式、[<二進制訪問方式>]和隨機訪問方式。
?
?
一、單項選擇題
1、與傳統(tǒng)的程序設(shè)計語言相比,Visual Basic最突出的特點是(C)。
?
?
1 ???產(chǎn)生1-100以內(nèi)的素數(shù)
Private Sub Command1_Click()
Dim i%, j%, tag As Boolean
For j = 1 To 100
tag = True
For i = 2 To j - 1
If j Mod i = 0 Then tag = False
Next i
If tag Then Print j;
Next j
End Sub
2、從鍵盤輸入任意長度的字符串,要求將字符順序倒置,例如,將輸入的“ABCDEFG”變換成“GFEDCBA”。?
Private Sub Form_Click()
Dim i, a, b, n As String
n = InputBox("輸入字符")
i = Len(n)
For a = 1 To i / 2
b = Mid(n, a, 1)
?Mid(n, a, 1) = Mid(n, i + 1 - a, 1)
?Mid(n, i + 1 - a, 1) = b
?Next a
?Print n
End Sub
3.0到200 被5 或11 整除的數(shù)的和
Private Sub Command1_Click()
Dim i%
For i = 0 To 200
If i Mod 11 = 0 Or i Mod 5 = 0 Then
Sum = Sum + i
End If
Next i
Print "總和是"; Sum
End Sub
4輸入一年份,判斷他是否為閏年,并現(xiàn)實是否是閏年的有關(guān)信息。
Private Sub Command1_Click()
Dim y%
y = Val(Text1)
If y Mod 4 = 0 And y Mod 100?<> 0 ?Or?y Mod 400 = 0 Then
MsgBox (y & "年是閏年")
Else
MsgBox (y & "年是平年")
End If
End Sub
5、已知x,y,z 3個變量中存放了3個不同的數(shù),比較它們的大小并進行調(diào)整,使得x<y<z。
Private Sub Command1_Click()
Dim x!, y!, z!
x = InputBox("input x")
y = InputBox("input y")
z = InputBox("input z")
Print Tab(8); " "; "x"; " ???y"; " ????z"
Print "排序前:"; x; " ?"; y; " ??"; z
If x < y Then t = x: x = y: y = t:
If x < z Then t = x: x = z: z = t:
If y < y Then t = y: y = z: z = t:
Print "排序后:"; ""; x; " ?"; y; " ??"; z
End Sub
6、求s=a+aa+aaa+...aaaaa(n個a),其中a和n的值隨機產(chǎn)生,a的范圍是[1,9]的整數(shù),n的范圍是[5,10]。如a=3,n=6,則s=3+33+333+3333+33333+333333。編程確定n和a的值,并計算s。
Private Sub Form_click()
Dim s!, t!, i!, a%, n%
a = Int(Rnd * 9 + 1)
n = Int(Rnd * 6 + 5)
t = 0: s = 0
Print Tab(9); "a="; a, "n="; n
For i = 1 To n
t = t * 10 + a
s = s + t
Print Tab(9); t
Next i
Print Tab(9); "s="; s
End Sub
7、計算100~300之間所有能被3和7整除的數(shù)之和。
Private Sub Command1_Click()
Dim s%, i%
s = 0
For i = 100 To 300
If i Mod 3 = 0 Or i Mod 7 = 0 Then
s = s + i
End If
Next i
Print "s=" & s
End Sub
8、編程求200--400范圍內(nèi)5的倍數(shù)或7的倍數(shù)之和。(一個數(shù)如果同時是7和5的倍數(shù),則只能加一次。)?
Private Sub Command1_Click()
Dim s1%, s2%, s3%, i%
s1 = 0
s2 = 0
For i = 200 To 400
If i Mod 5 = 0 Or i Mod 7 = 0 Then
s1 = s1 + i
End If
Next i
For i = 200 To 400
If i Mod 5 = 0 And i Mod 7 = 0 Then
s2 = s2 + i
End If
Next i
s3 = s1 - s2
Print s3
End Sub
9找出被3、5、7除,余數(shù)均為1的最小的5個正整數(shù)。
Private Sub Command1_Click()
Dim countN%, n%
countN = 0
n = 1
Do
n = n + 1
If n Mod 3 = 1 And n Mod 5 = 1 And n Mod 7 = 1 Then
Print n
countN = countN + 1
End If
Loop Until countN = 5
End Sub
10、某次歌曲大獎賽,有7個評委。如果分別輸入7個評委對某個參賽者的打分數(shù),按照去掉一個最高分和一個最低分的計算辦法,求出該參賽者的平均得分。
Private Sub Form_Click()
Dim a(6) As Integer, i%, t%, s!, max%, min%, imin%, imax%
Randomize
For i = 0 To 6
a(i) = InputBox("輸入評委所打的分數(shù)") ?或者?'也可以用隨機數(shù)產(chǎn)生 ???'a(i) = Int(Rnd * 31 + 70)
Next i
For i = 0 To 6
Print a(i);
Next i
imax = 0: max = a(0)
For i = 1 To 6
If a(i) >= max Then max = a(i): imax = i
Next i
t = a(0): a(0) = a(imax): a(imax) = t
imin = 6: min = a(6)
For i = 0 To 5
If a(i) <= min Then min = a(i): imin = i
Next i
t = a(6): a(6) = a(imin): a(imin) = t
Print "除去最高分和最低分之后的分數(shù)"
For i = 1 To 5
Print a(i);
Next i
For i = 1 To 5
s = s + a(i)
Next i
Print "該參賽者的平均得分為"; s / 5
End Sub
11、編程顯示100~500之間所有的水仙花數(shù)之和。(水仙花數(shù)是3位數(shù),其各位數(shù)之和等于該數(shù)本身)?
Private Sub Form_Click()
Print "100~500之間所有的水仙花數(shù)為:"
?Dim x%, a%, b%, c%
For x = 100 To 500
a = x Mod 10
b = (x Mod 100) \ 10
c = x \ 100
If x = a ^ 3 + b ^ 3 + c ^ 3 Then Print x
Next x
End Sub
12、隨機產(chǎn)生一個三位正整數(shù),然后逆序輸出,產(chǎn)生的數(shù)與逆序數(shù)同時顯示。例如,產(chǎn)生246,輸出是642。
Private Sub Command1_Click()
Text1 = Int(Rnd * 900 + 100)
End Sub
Private Sub Command2_Click()
Dim x%, x1%, x2%, x3%
x = Val(Text1)
x1 = x Mod 10
x2 = (x Mod 100) \ 10
x3 = x \ 100
Text2 = x1 * 100 + x2 * 10 + x3
End Sub
否構(gòu)成三角13、從鍵盤輸入三角形的三條邊a,b,c的值,根據(jù)其數(shù)值,判斷能形。
Private Sub Command1_Click()
Dim a%, b%, c%
a = Val(InputBox("inputa"))
b = Val(InputBox("inputb"))
c = Val(InputBox("inputc"))
If a + b >??c ?And??b + c >??a??And ?a + c >?b Then
MsgBox ("能構(gòu)成三角形")
Else
MsgBox ("不能構(gòu)成三角形")
End If
End Sub
14、已知數(shù)組a(),編程刪除a中第5個元素。數(shù)組a中的元素分別為{12,6,4,89,75,63,100,20,31}。
Private Sub Form_Click()
Dim a(), i%, n%
a = Array(12, 6, 4, 89, 75, 63, 100, 20, 31)
n = UBound(a)
For i = 0 To n
Print a(i);
Next i
For i = 5 To n
a(i - 1) = a(i)
Next i
n = n - 1
ReDim Preserve a(n)
For i = 0 To n
Print a(i);
Next i
End Sub
14、已知數(shù)組a(),編程刪除a中第5個元素。數(shù)組a中的元素分別為{12,6,4,89,75,63,100,20,31}。
Private Sub Form_Click()
Dim a(), i%, n%
a = Array(12, 6, 4, 89, 75, 63, 100, 20, 31)
n = UBound(a)
For i = 0 To n
??Print a(i);
Next i
For i = 5 To n
a(i - 1) = a(i)
Next i
n = n - 1
ReDim Preserve a(n)
For i = 0 To n
?Print a(i);
Next i
End Sub
15、隨機生成一個整型的二維數(shù)組,范圍在[10,20]之間,以上三角形式輸出該數(shù)組。(下三角、全部元素)
Dim a%(4, 4), i%, j%
Private Sub Form_load()
For i = 0 To 4
For j = 0 To 4
a(i, j) = Int(Rnd * 11 + 10)
Next j
Next i
End Sub
Private Sub Command1_Click()
Picture1.Cls
For i = 0 To 4
For j = 0 To 4
Picture1.Print a(i, j); "";
Next j
Picture1.Print
Next i
End Sub
Private Sub Command2_Click()
Picture2.Cls
For i = 0 To 4
For j = i To 4
Picture2.Print a(i, j); "";
Next j
Picture2.Print
Next i
End Sub
Private Sub Command3_Click()
Picture3.Cls
For i = 0 To 4
For j = 0 To i
Picture3.Print a(i, j); "";
Next j
Picture3.Print
Next i
End Sub
16、利用隨機函數(shù)生成一個4×4的矩陣(即二維矩陣),范圍是[20,50]內(nèi)的整數(shù),輸出每行中的最大值和下標(biāo)。
Dim a%(3, 3), i%, j%, imax%
Private Sub Command1_Click()
?For i = 0 To 3
?For j = 0 To 3
?a(i, j) = Int(Rnd * 31 + 20)
?Picture1.Print a(i, j); "";
?Next j
?Picture1.Print
?Next i
imax = 0
??For i = 0 To 3
?For j = 0 To 3
?If a(i, imax) <?a(i, j) Then
?imax = j
??End If
??Next j
???Picture2.Print "第"; i + 1; "行"; "最大值為"; a(i, imax); "下標(biāo)為"; "("; i; imax; ")"
???Next i
End Sub
17、利用隨機函數(shù)生成一個4×4的矩陣(即二維矩陣),范圍是[40,80]內(nèi)的整數(shù),求它的最大值及所對應(yīng)的下標(biāo)。
Private Sub Form_Click()
Dim a(3, 3), max%, imax%
For i = 0 To 3
??For j = 0 To 3
a(i, j) = Int(Rnd * 41 + 40)
??Next j
Next i
For i = 0 To 3
??For j = 0 To 3
?Print a(i, j);
???Next j
Next i
For i = 0 To 3
??For j = 0 To 3
???If max < a(i, j) Then max = a(i, j): imax = i & j
??Next j
Next i
?Print "max="; max; "imax="; imax
End Sub
18、輸入一系列字符串,編程求出長度最大的字符串并輸出其所對應(yīng)的次序
Private Sub Form_Click()
Dim a(5) As String, b(4) As Integer, t%, max%, imax%
For i = 1 To 5
?a(i) = InputBox("a")
?Next i
For i = 0 To 4
?b(i) = Len(Trim(a(i)))
?Next i
?max = 1
For i = 0 To 4
?If max < b(i) Then max = b(i): imax = i
?Next i
?Print "max="; a(i)
?Print "cixu="; imax + 1
End Sub
19、利用隨機函數(shù)生成一個4×4的矩陣(即二維矩陣),范圍是[20,50]內(nèi)的整數(shù),輸出該矩陣所有數(shù)據(jù)之和
Private Sub Form_Click()
Dim a(3, 3), sum%
For i = 0 To 3
??For j = 0 To 3
a(i, j) = Int(Rnd * 31 + 20)
??Next j
Next i
For i = 0 To 3
??For j = 0 To 3
?Print a(i, j);
???Next j
Next i
For i = 0 To 3
??For j = 0 To 3
???sum = sum + a(i, j)
???Next j
??Next i
?Print "sum="; sum
End Sub
20、輸入一系列字符串,將字符串按遞減次序排列。請編程實現(xiàn)
Dim a() As String, n%, i%, j%
Private Sub Command1_Click()
n = Val(Text1)
ReDim a(n) As String
For i = LBound(a) To UBound(a)
a(i) = InputBox("請輸入字符串")
Picture1.Print a(i); Spc(1);
Next i
End Sub
Private Sub Command2_Click()
For i = 0 To n
For j = 0 To n - 1
If a(j) < a(j + 1) Then t = a(j): a(j) = a(j + 1): a(j + 1) = t
Next j
Next i
For i = 0 To n
Picture2.Print Tab(3); a(i); Spc(1)
Next i
End Sub
21.隨機產(chǎn)生30~100(包括30、100)中的十個正整數(shù),求最大值、最小值、平均值,并顯示整個數(shù)組的值和結(jié)果。
Private Sub Form_Click()
Dim a(1 To 10) As Integer, i%, maxa%, mina%, avera!
For i = 1 To 10
a(i) = Int(Rnd * 71 + 30)
Next i
mina = a(1)
maxa = a(1)
avera = a(1)
For i = 2 To 10
If a(i) >?maxa Then maxa = a(i)
If a(i) <?mina Then mina = a(i)
avera = avera + a(i)
Next i
For i = 1 To 10
Print a(i);
Next i
Print "max="; maxa, "min="; mina, "aver="; avera / 10
End Sub
22、、定義三個4×4的二維數(shù)組A,B,C,A和B中的元素均隨機生成,數(shù)組A的范圍是1~20,數(shù)組B的范圍是100~200,數(shù)組C是A和B相乘得到的。請編程生成并輸出A,B,C。
Private Sub Form_Click()
Dim a%(1 To 4, 1 To 4), b%(1 To 4, 1 To 4), c%(1 To 4, 1 To 4)
Print "數(shù)組A"
?For i = 1 To 4
??For j = 1 To 4
???a(i, j) = Int(Rnd * 20 + 1)
Print Tab(j * 4); a(i, j);
?Next j
Next i
Print "數(shù)組B"
?For i = 1 To 4
??For j = 1 To 4
???b(i, j) = Int(Rnd * 100 + 100)
Print Tab(j * 6); b(i, j);
?Next j
Next i
'Print "數(shù)組C";
?'For i = 1 To 4
??'For j = 1 To 4
???'c(i, j) = b(i, j) * a(i, j)
'Print Tab(j * 4); c(i, j);
?'Next j
'Next i
Print "數(shù)組C";
?For i = 1 To 4
??For j = 1 To 4
???c(i, j) = b(i, j) * a(i, j)
Print Tab(j * 6); c(i, j);
?Next j
Next i
End Sub
23、隨機產(chǎn)生15個小寫字母,放在字符串中。(提示:c=chr(int(rnd*26+97)))
Private Sub Form_Click()
Dim a$(1 To 15), i%
Print "字符數(shù)組為a(i):"
?For i = 1 To 15
??a(i) = Chr(Int(Rnd * 26 + 97))
??Print a(i); Spc(1);
Next i
End Sub
Private Sub Form_Load()
FontSize = "10"
End Sub
24、隨機產(chǎn)生10個[30,100]內(nèi)的整數(shù),求最大值及所對應(yīng)的下標(biāo)
Private Sub Form_Click()
Dim a(9), max%, imax%
For i = 0 To 9
a(i) = Int(Rnd * 71 + 30)
Print a(i);
Next i
max = a(0)
For i = 1 To 9
?If max < a(i) Then max = a(i): imax = i
?Next i
Print "max="; max
Print "imax="; imax
End Sub
25、定義三個4×4的二維數(shù)組A,B,C,A和B中的元素均隨機生成,數(shù)組A的范圍是1~20,數(shù)組B的范圍是100~200,數(shù)組C是A和B相加得到的。請編程生成并輸出A,B,C。
Private Sub Command1_Click()
Dim a(3, 3), b(3, 3), c(3, 3), t%, m%
For i = 0 To 3
??For j = 0 To 3
???a(i, j) = Int(Rnd * 20 + 1)
??Picture1.Print a(i, j);
???Next j
?Next i
?Picture1.Print
For i = 0 To 3
??For j = 0 To 3
b(i, j) = Int(Rnd * 101 + 100)
?Picture1.Print b(i, j);
?Next j
Next i
?Picture1.Print
?For i = 0 To 3
???For j = 0 To 3
????c(i, j) = a(i, j) + b(i, j)
?????Picture1.Print c(i, j);
????Next j
?Next i
26.?、利用隨機函數(shù)生成一個4×4的矩陣(即二維矩陣),范圍是[20,50]內(nèi)的整數(shù),求它的兩條對角線上元素之和。
Private Sub Command1_Click()
Dim a%(3, 3), i%, j%, sum%
For i = 0 To 3
?For j = 0 To 3
?a(i, j) = Int(Rnd * 31 + 20)
?Picture1.Print a(i, j); "";
?Next j
?Picture1.Print
?Next i
sum = 0
For i = 0 To 3
sum = sum + a(i, i) + a(i, 3 - i)
Next i
Text1 = sum
End Sub
.?27、利用隨機函數(shù)生成一個4×4的矩陣(即二維矩陣),范圍是[40,80]內(nèi)的整數(shù),求它的最小值及所對應(yīng)的下標(biāo)。
Dim a%(3, 3), i%, j%, imin%
Private Sub Command1_Click()
?For i = 0 To 3
?For j = 0 To 3
?a(i, j) = Int(Rnd * 21 + 40)
?Picture1.Print a(i, j); "";
?Next j
?Picture1.Print
?Next i
?imax = 0
?For i = 0 To 3
?For j = 0 To 3
?If a(i, imin) >?a(i, j) Then
?imin = j
??End If
??Next j
??Picture2.Print "第"; i + 1; "行"; "最小值為"; a(i, imin); "下標(biāo)為"; "("; i; imin; ")"
??Next i
End Sub
28、隨機生成一個整型的二維數(shù)組,范圍在[10,20]之間,以下三角形式輸出該數(shù)組。
?Private Sub Form_Click()
Dim a(4, 4) As Integer
For i = 0 To 4
??For j = 0 To 4
???a(i, j) = Int(Rnd * 11 + 10)
???Next j
?Next i
For i = 0 To 4
??For j = 0 To i
?Print a(i, j);
?Next j
Next i
End Sub
29、有10個評委對歌手進行打分(分數(shù)存放在A數(shù)組中)要求編程計算歌手平均得分(按去掉一個最高分和一個最低分的計算辦法計算)。
Private Sub Form_Click()
Dim a(), max%, min%, imax%, imin%, s!
a = Array(98, 97, 95, 91, 90, 99, 93, 94, 93, 96)
n = UBound(a)
For i = 0 To n
?Print a(i);
?Next i
min = a(0): imin = 0
For i = 0 To n
?If a(i) < min Then min = a(i): imin = i
?Next i
?Print "min="; min; "imin="; imin
?For i = imin + 1 To n
??a(i - 1) = a(i)
??Next i
?ReDim Preserve a(n - 1)
??For i = 0 To n - 1
???Print a(i);
???Next i
For i = 0 To n - 1
If a(i) > max Then max = a(i): imax = i
Next i
Print "max="; max; "imax="; imax
??ReDim Preserve a(n - 2)
??s = 0
??For i = 0 To n - 2
??s = s + a(i)
???Print a(i);
???Next i
??Print "avr="; s / (n - 1)
End Sub
30.已知一維數(shù)組a中元素已排序,分別為{12,15,21,25,27,35,36,39,48,52},編程將30插入數(shù)組,使a仍保持有序。
Private Sub Form_load()
Dim a(), i%, k%, x%, n%
a = Array(1, 4, 7, 9, 12, 14, 23, 56)
n = UBound(a)
For i = 0 To n
List1.AddItem a(i)
Next i
End Sub
Private Sub command1_Click()
x = Val(Text1)
For k = 0 To List1.ListCount - 1
If x <?Val(List1.List(k)) Then Exit For
Next k
List1.AddItem x, k
End Sub
31、聲明一個整型的二維數(shù)組a(1 to 4,1 to 4),用隨機函數(shù)產(chǎn)生各元素,范圍介于[1,20]之間,編程將第1行和第3行對應(yīng)元素交換。
Private Sub Form_Click()
Dim a%(1 To 4, 1 To 4), i%, j%
Print "排序前"
For i = 1 To 4
?For j = 1 To 4
??a(i, j) = Int(Rnd * 20 + 1)
??Print Tab(j * 4); a(i, j);
??Next j
Next i
Print "排序后"
For j = 1 To 4
t = a(1, j): a(1, j) = a(3, j): a(3, j) = t
Next j
For i = 1 To 4
?For j = 1 To 4
??Print Tab(j * 4); a(i, j);
??Next j
Next i
End Sub
32、隨機產(chǎn)生15個大寫字母,放在字符數(shù)組中。提示:c=chr(int(rnd*26+65))
Private Sub Form_Click()
Dim a(1 To 15) As String
For i = 1 To 15
a(i) = Chr(Int(Rnd * 26 + 65))
Print Tab(i * 2); a(i);
?Next i
End Sub
33.編寫一個過程計算并輸出區(qū)間[100,1000]內(nèi)所有素數(shù)的和(要求判斷素數(shù)使用過程(函數(shù)或子過程)來實現(xiàn))。調(diào)用該過程。(提示:只能被1 和自身整除的自然數(shù)成為素數(shù))
Function sushu%(ByVal x%)
Dim m%, Tag As Boolean, i%
?m = Val(x)
?Tag = True
?For i = 2 To m - 1
?If (m Mod i) = 0 Then Tag = False
?Next i
?If Tag Then sushu = x
End Function
?
Private Sub Command1_Click()
Dim i%, k%
For i = 100 To 1000
If sushu(i) Then List1.AddItem i
Next i
Sum = 0
?For k = 0 To List1.ListCount - 1
?Sum = Sum + Val(List1.List(k))
?Next k
Label1 = "[100,1000]內(nèi)所有素數(shù)和為:" & Sum
End Sub
34、隨機產(chǎn)生10個1~100的正整數(shù)放入數(shù)組,顯示產(chǎn)生的數(shù),求最大值、最小值、平均值。
?
Private Sub Form_Click()
Dim a(1 To 10) As Integer, i%, maxa%, mina%, suma%
For i = 1 To 10
a(i) = Int(Rnd * 71 + 30)
Next i
mina = a(1)
maxa = a(1)
suma = a(1)
For i = 2 To 10
If a(i) > maxa Then maxa = a(i)
If a(i) < mina Then mina = a(i)
suma = suma + a(i)
Next i
For i = 1 To 10
Print a(i);
Next i
Print "max="; maxa, "min="; mina, "aver="; suma / 10
End Sub
35.編程輸出n行楊輝三角形圖,n由鍵盤輸入。
Private Sub Command1_Click()
Dim n%, i%, j%
n = Val(Text1)
Dim a%(1 To 1000, 1 To 1000)
For i = 1 To n
a(i, 1) = 1
Next i
For i = 1 To n
a(i, i) = 1
Next i
For j = 2 To i - 1
For i = 3 To n
a(i, j) = a(i - 1, j - 1) + a(i - 1, j)
Next i
Picture1.Print ;
Next j
Picture1.Print Tab(j * n); a(i, j)
For i = 1 To n
For j = 1 To i
Picture1.Print a(i, j); "";
Next j
Picture1.Print
Next i
End Sub
37、聲明一個整型的二維數(shù)組a(1?to?4,1?to?4),用隨機函數(shù)產(chǎn)生各元素,范圍介于[1,20]之間,編程將第2行和第4行對應(yīng)元素交換。
Private Sub Form_Click()
Dim a(0 To 3, 0 To 3), i%, j%, t
For i = 0 To 3
??For j = 0 To 3
??a(i, j) = Int(Rnd * 21 + 1)
??Print Tab(j * 5); a(i, j);
Next j
Next i
??For j = 0 To 3
t = a(1, j): a(1, j) = a(3, j): a(3, j) = t
Next j
For i = 0 To 3
?For j = 0 To 3
Print Tab(j * 5); a(i, j);
Next j
Next i
End Sub
38、隨機產(chǎn)生10個[30,100]內(nèi)的整數(shù),求最小值及所對應(yīng)的下標(biāo)。
Private Sub Form_click()
Dim a(1 To 10) As Integer, zb%, mina%, i%
For i = 1 To 10
a(i) = Int(Rnd * 71 + 30)
Print a(i);
Next i
?zb = 1
?mina = a(1)
For i = 2 To 10
If mina > a(i) Then mina = a(i): zb = i
Next i
Print "min="; mina, "zb="; zb
End Sub
39、編寫一個判斷素數(shù)的通用過程(函數(shù)或子程序)。調(diào)用該過程,計算并輸出區(qū)間[1000,1100]內(nèi)所有素數(shù)的和。(提示:只能被1和自身整除的自然數(shù)稱為素數(shù)。)
Private Sub Picture1_Click()
Dim i%, avera
avera = 0
For i = 1000 To 1100
If ss(i) <> 0 Then Print ss(i)
avera = avera + ss(i)
Next i
Picture1.Print avera
End Sub
Function ss(n) As Integer
Dim i%, tag As Boolean
tag = True
For i = 3 To n / 2
If (n Mod i) = 0 Then tag = False
Next i
If tag Then ss = n
End Function
40.編一子過程Procmin(a(),amin),求一維數(shù)組中a的最小值amin.
(隨機產(chǎn)生10個200-400之間的數(shù),并顯示數(shù)組各元素;調(diào)用子函數(shù),顯示最小值)
Private Sub Form_Click()
Dim a(1 To 10), amin, i%
For i = 1 To 10
a(i) = Int(Rnd * 200 + 200)
Print a(i);
Next i
Call s(a(), amin)
Print "min="; amin
End Sub
Sub s(b(), min)
Dim i%
min = b(LBound(b))
For i = LBound(b) + 1 To UBound(b)
If b(i) <?min Then min = b(i)
Next i
End Sub
41:.編一冒泡程序,對已知整數(shù)按遞減次序排列,用子過程
Sub sort(a())
Dim imin%, i%, j%
For i = 0 To UBound(a) - 1
???For j = 0 To UBound(a) - 1 - i
???If a(j+1) >?a(j ) Then
???t = a(j): a(j) = a(j + 1): a(j + 1) = t
???End If
???Next j
???Next i??
End Sub
Private Sub Form_Click()
Dim b(), i%
b = Array(8, 9, 4, 2, 6)
Call sort(b())
?For i = 0 To UBound(b)
??Print b(i);
??Next i
End Sub
43.用選擇排序法子過程對已知的若干整數(shù)按遞增次序排列
Sub sort(a())
Dim imin%, i%, j%
For i = 0 To UBound(a) - 1
imin = i
For j = i + 1 To UBound(a)
?If a(j) <?a(imin) Then imin = j
Next j
t = a(i): a(i) = a(imin): a(imin) = t
Next i
End Sub
Private Sub Form_Click()
Dim b(), i%
b = Array(8, 9, 4, 2, 6)
Call sort(b())
For i = 0 To UBound(b)
Print b(i);
Next i
End Sub
45.編一冒泡程序,對已知整數(shù)按遞增次序排列,用子過程
Sub sort(a())
Dim imin%, i%, j%
For i = 0 To UBound(a) - 1
?For j = 0 To UBound(a) - 1 - i
??If a(j) >?a(j + 1) Then
??t = a(j): a(j) = a(j + 1): a(j + 1) = t
??End If
?Next j
Next i
End Sub
Private Sub Form_Click()
Dim b(), i%
b = Array(8, 9, 4, 2, 6)
Call sort(b())
?For i = 0 To UBound(b)
??Print b(i);
??Next i
End Sub
?