第一篇:vb上機(jī)心得體會(huì)
心得體會(huì):
剛開始學(xué)習(xí)vb的時(shí)候,我就覺得大一的計(jì)算機(jī)基礎(chǔ)根本不值一提,難度相去甚遠(yuǎn)。我問過很多以前的同學(xué),他們都說vb是編程語言中最簡單的,但是在這次上機(jī)實(shí)習(xí)過程中,我發(fā)現(xiàn)要完成學(xué)生成績管理系統(tǒng)實(shí)在有很大難度。平時(shí)看課本的時(shí)候,覺得還能夠理解,看得懂,然而“紙上得來終覺淺”,一旦自己調(diào)試程序,總會(huì)犯很多錯(cuò)誤,如前面說的“文件未找到”“下標(biāo)越界”等等,都是平時(shí)沒有機(jī)會(huì)解決和一些曾經(jīng)被自己忽視的問題。有時(shí)候,為了找到代碼中錯(cuò)誤或不符合要求的地方,我不得不一遍又一遍地仔細(xì)檢查程序,甚至標(biāo)點(diǎn)符號都不能放過。細(xì)節(jié)決定成敗,一個(gè)小小的分號也會(huì)起著扭轉(zhuǎn)乾坤的作用。
在實(shí)習(xí)之前,我妄想從網(wǎng)站上下載一個(gè)或者請論壇上的好友幫忙,后來我發(fā)現(xiàn)這條路走不通,他們從來都不給別人提供實(shí)質(zhì)性的幫助,只是象征性地說:“不會(huì)問老師。”于是我打消了這個(gè)念頭,開始自己動(dòng)手做。
當(dāng)我無數(shù)次調(diào)試總算讀出文件的時(shí)候,那種高興勁可想而知。我慢慢覺得,其實(shí)自己調(diào)試程序蠻有意思的。既彌補(bǔ)了在vb學(xué)習(xí)中的漏洞,還學(xué)到了新內(nèi)容,積累了一定的實(shí)戰(zhàn)經(jīng)驗(yàn),對以后的期末考試和等級考試起到了相當(dāng)大的促進(jìn)作用。
實(shí)習(xí)過程中,多虧指導(dǎo)老師幫助我找出錯(cuò)誤的地方。如果不是他們的細(xì)心講解,我很難完成這次實(shí)習(xí)任務(wù)。當(dāng)然,我在編程方面還有很大不足,今后我定會(huì)加倍努力,為等級考試的順利通過打下牢固的基礎(chǔ)。
第二篇:VB上機(jī)試題及答案
上機(jī)操作練習(xí)題
1.某數(shù)組有20個(gè)元素,其值為隨機(jī)產(chǎn)生的兩位整數(shù)。現(xiàn)要求將前10個(gè)元素與后10個(gè)元素對換。即第1個(gè)元素與第20個(gè)元素互換,第2個(gè)數(shù)與第19個(gè)元素互換,…,第10個(gè)元素與第11個(gè)元素互換。在窗體上輸出數(shù)組原來各元素的值與對換后各元素的值。
Option explicit Dim a(1 to 20)as integer, I as integer, j as integer, t as integer Private Sub Form_Load()Show Print “原始數(shù)組是:” Randomize For i = 1 To 20
a(i)= Int(Rnd * 90)+ 10
Print a(i);If i Mod 10 = 0 Then Print Next i Print Print “現(xiàn)在數(shù)組是:” For i = 1 To 10
j = 211
a(k)= a(k + 1)
Next k
ReDim Preserve a(UBound(a)1 End If i = i + 1 Loop While(i <= UBound(a))If flag = False Then MsgBox n & “不在該數(shù)組中” Else Print “刪除” & n & “后的數(shù)組是:” For i = 0 To UBound(a)Print a(i);Next i End If End Sub 3.?dāng)?shù)組a中存放著升序排列的數(shù)據(jù),使用array賦值,將inputbox輸入的新數(shù)插入到數(shù)組中,插入后數(shù)組仍有序。
注意:要求利用動(dòng)態(tài)數(shù)組,能夠?qū)崿F(xiàn)多次插入 Private Sub Form_Load()Show n = 8: ReDim a(n)a = Array(5, 15, 23, 52, 68, 88, 90, 99)n = n + 1: ReDim Preserve a(n)m = InputBox(“請輸入要插入的數(shù)據(jù):”)For i = 1 To n1)Next k a(k)= m For i = 1 To n
Print a(i);Next i Print End Sub 4.6個(gè)評委為4位歌手打分,分?jǐn)?shù)介于1-100之間。去掉一個(gè)最高分,一個(gè)最低分,求出每位選手的最后得分。將4位歌手得分從高到低排列輸出,同時(shí)輸出該選手的編號。
如:
歌手3 95分 歌手 1 87分 歌手 4 80分 歌手 2 70分
/ 19
Option Base 1
Private Type geshou
xuhao As String
fenshu(6)As Integer
score As Integer
pingjun As Integer End Type Dim singer(1 To 4)As geshou Private Sub Command1_Click()For i = 1 To 4 For j = 1 To 6
singer(i).fenshu(j)= Int(Rnd * 100)
singer(i).xuhao = “歌手” & i Next Next Call paixu End Sub
Private Sub paixu()Dim p As geshou For i = 1 To 4
For j = 1 To 5
For k = j To 6
If singer(i).fenshu(j)> singer(i).fenshu(k)Then
t = singer(i).fenshu(j)
singer(i).fenshu(j)= singer(i).fenshu(k)
singer(i).fenshu(k)= t
End If
Next
Next Next For i = 1 To 4 For j = 2 To 5
singer(i).score = singer(i).score + singer(i).fenshu(j)Next singer(i).pingjun = singer(i).score / 4 Next
For i = 1 To 3 For j = i To 4
If singer(i).score < singer(j).score Then
p = singer(i): singer(i)= singer(j): singer(j)= p
End If Next
/ 19
Next For i = 1 To 4 Print singer(i).xuhao & “得分:” & singer(i).pingjun Next End Sub Private Sub Form_Load()End Sub 10個(gè)評委給10個(gè)選手打分 Private Sub Form_Load()Show n = UBound(b)For i = 1 To 10
For j = 1 To 10
a(i, j)= Val(InputBox(“請第” & j & “位評委給第” & i & “位選手打分:”))Next j Next i For i = 1 To 10
max = a(i, 1): sum = 0
min = a(i, 1): ave = 0
For j = 1 To 10
If a(i, j)> max Then max = a(i, j)
If a(i, j)< min Then min = a(i, j)
sum = sum + a(i, j)
Next j
ave =(summin)/(n1
For j = i + 1 To n
If b(i)< b(j)Then
t = b(i): b(i)= b(j): b(j)= t
End If
Next j Next i Print “選手的得分由高到低為:” For i = 1 To 10
Print b(i);Next i End Sub 5.編寫函數(shù)求一元二次方程ax2+bx+c=0的解。
注意:要求考慮方程有兩相等實(shí)根、兩不等實(shí)根和兩個(gè)虛根的情況。Dim a As Single, b As Single, c As Single Dim s As Single a = InputBox(“請輸入a”)
/ 19
b = InputBox(“請輸入b”)c = InputBox(“請輸入c”)s = b ^ 2Sqr(s))/ 2 * a End If End Sub 6.任意輸入一組字符,統(tǒng)計(jì)出大寫字母多少個(gè),小寫字母多少個(gè),數(shù)字多少個(gè)?要求用過程實(shí)現(xiàn)。
Call tongji(a, n, m, o)Print “數(shù)字:” & n & Chr(13)& “小寫:” & m & Chr(13)& “大寫:” & o End Sub Private Sub tongji(a As String, n As Integer, m As Integer, p As Integer)For i = 1 To Len(a)If Asc(Mid(a, i, 1))> 47 And Asc(Mid(a, i, 1))< 58 Then
n = n + 1 ElseIf Asc(Mid(a, i, 1))> 96 And Asc(Mid(a, i, 1))< 123 Then
m = m + 1 ElseIf Asc(Mid(a, i, 1))> 64 And Asc(Mid(a, i, 1))< 91 Then
p = p + 1 End If Next End Sub 7.隨機(jī)產(chǎn)生一個(gè)5*5的矩陣,將主對角線和次對角線元素都置為1,并求出矩陣的四周元素之和,顯示在列表框中。
Option Base 1 Private Sub Form_Load()Dim a(5, 5)As Integer Dim s As Integer For i = 1 To 5 For j = 1 To 5
If i = j Or i = 6Asc(Mid(s1, i, 1))+ 64)ElseIf Asc(Mid(s1, i, 1))< 123 And Asc(Mid(s1, i, 1))> 96 Then convert = convert & Chr(1235: g = e
For j = 1 To n
If j > i Then
a(i, j)= 0
Else
If i = j Then
a(i, j)= 1
Else
a(i, j)= a(i1, ji + 1);String(2 *(i1)/ 2 To 1 Step(-1)
c = c + 1
s = Chr(64 + ii + c + 1);String(2 *(j1)/ 2 Else
x = x / 2 End If i = i + 1 Loop
ReDim Preserve a(UBound(a))If y < 0 Then For i = 1 To UBound(a)convert = convert & a(i)Next convert = “-” & convert Else For i = 1 To UBound(a)
/ 19
convert = convert & a(i)Next End If
End Function Private Sub Command1_Click()Dim y As Integer Text1.Text = “" y = InputBox(”請輸入十進(jìn)制數(shù)字“)Text1.Text = convert(y)
End Sub
Private Sub Form_Load()
End Sub 14.輸入一個(gè)整數(shù)N,產(chǎn)生N個(gè)隨機(jī)數(shù)(范圍1—10*N),然后采用任何2種算法實(shí)現(xiàn)由小到大的排序。將排序前后的數(shù)據(jù)顯示出來。
Option Base 1 Private Sub Command1_Click()Dim a()As Integer, n As Integer n = InputBox(”請輸入數(shù)列項(xiàng)數(shù)“)ReDim a(n)For i = 1 To n
a(i)= Int(Rnd * 10 * n + 1)
Print a(i);Next Print ReDim Preserve a(n)For i = 1 To n1 For j = 1 To n2)+ fact(n2 s = s1 + s2: t = s2: s2 = s: s1 = t Next End Function
Private Sub Command2_Click()n = InputBox(”請輸入n“)Print s(n)End Sub 17.編寫2個(gè)函數(shù),分別采用遞歸法和遞推法求斐波納契數(shù)列的第n個(gè)月的兔子數(shù),n使用inputbox輸入,調(diào)用函數(shù)的結(jié)果在窗體上顯示。Private Sub Command1_Click()List1.Clear Dim i As Integer For i = Val(Text1.Text)To Val(Text2.Text)If isprime(i)= True Then
List1.AddItem(i)
c = c + 1
If i Mod 10 = 9 Then
/ 19
List1.Selected(c1 If n Mod i = 0 Then
isprime = False
Exit For End If Next End Function 18 Dim sum As Long Private Sub Command1_Click()
Dim i As Integer, j As Integer, a(40)As Long
a(1)= 1
a(2)= 1
For i = 3 To 40
a(i)= a(i2)
Next i
sum = 0
For j = 1 To 40
sum = sum + a(j)
Next j End Sub
Private Sub Command2_Click()
Open ”out18.txt“ For Output As #1
Print #1, ”數(shù)列1,1,2,3,5,8…的前四十項(xiàng)的之和是:“
Print #1, sum
Close #1 End Sub 1.百錢買百雞
Option Explicit
Private Sub Command1_Click()Dim a As Integer, b As Integer For a = 1 To 34
For b = 1 To 20
If 3 * a + 5 * b +(100b)/ 3 = 100 Then
/ 19
Print a;
Print b;
Print 100b
End If
Next b Next a End Sub 2.分錢作業(yè)
Private Sub Command1_Click()Dim a As Single,b as single,c as single a = Text1.Text b = Fix(a / 100)Print ”100元:“;Print b c = ab * 50
b = Fix(c / 20)Print ”20元:“;Print b c = c0.05 * b b = Fix((c + 0.005)/ 0.02)Print ”0.02元:“;Print b c = c1
If a(i)= a(j)Then
GoTo aaa
End If
Next j
Next i For i = 1 To 10
Print a(i);Next i Print End Sub
Private Sub Command2_Click()Dim i As Integer, j As Integer, t As Integer For i = 1 To 9
For j = 1 + i To 10
If a(i)> a(j)Then
t = a(j)
a(j)= a(i)
a(i)= t
End If
Next j Next i For i = 1 To 10
Print a(i);Next i Print
End Sub
Private Sub Command3_Click()Dim i As Integer, j As Integer, t As Integer For i = 1 To 9
For j = 1 To 10c)> 10 ^(-5)i =(a + b)/ 2
If i ^ 2c = 0 Then
Exit Do
Else
a = i
End If Loop MsgBox(i)End Sub 7.閏年
Option Explicit
Private Sub 計(jì)算_Click()Dim i As Integer i = InputBox(”請輸入一個(gè)年份“)If i Mod 4 = 0 And i Mod 400 = 0 Then
If i Mod 100 <> 0 Then
MsgBox ”NOT“
Else
MsgBox ”YES“
End If Else
MsgBox ”NOT“ End If
End Sub 8.三角
Option Explicit Private Sub Command1_Click()
/ 19
Dim a As Single Dim b As Single Dim c As Single Dim p As Single Dim s As Single
a = Text1.Text b = Text2.Text c = Text3.Text
p =(a + b + c)/ 2
s = Sqr((pb)* p +(p1
If n Mod i = 0 Then
MsgBox ”NOT“
Exit For
End If Next i If i = n Then
MsgBox ”YES“ End If End Sub
Private Sub Command2_Click()
Dim a As Boolean, n As Double, i As Double a = False n = InputBox(”請輸入一個(gè)數(shù):“)For i = 2 To n-1
If n Mod i = 0 Then
a = True
Exit For
End If Next i If a = True Then
/ 19
MsgBox ”NOT“ Else
MsgBox ”YES“ End If End Sub
Private Sub Command3_Click()Dim n As Double, i As Double n = InputBox(”請輸入一個(gè)數(shù):“)i = 2 Do While i < n
If n Mod i = 0 Then
MsgBox ”NOT“
Exit Do
End If i = i + 1 Loop If i = n Then
MsgBox ”YES“ End If End Sub
Private Sub Command4_Click()Dim n As Double, i As Double, sushu As Boolean n = InputBox(”請輸入一個(gè)數(shù):“)i = 2 sushu = True Do While i < n And sushu = True
If n Mod i = 0 Then
sushu = False
End If i = i + 1 Loop If sushu = True Then
MsgBox ”YES“ Else
MsgBox ”NOT" End If End Sub
/ 19
第三篇:VB上機(jī)試題及答案
1、在工程中添加一個(gè)窗體form1,當(dāng)用戶單擊窗體時(shí),在窗體上顯示九九乘法表程序。結(jié)果如下圖所示(本題編程解決,20分)
參考答案:
Private Sub Form_Click()
Cls
For i = 1 To 9
For j = 1 To i
Print i * j;“ ”;
Next j
Next i End Sub
2、在工程中,添加一個(gè)窗體form2,在窗體上放置一個(gè)文本框text1(文本框中的文字為“改變字形”,居中顯示)。三個(gè)復(fù)選框check1,check2和check3,如圖設(shè)置屬性。
要求:當(dāng)用戶單擊“加粗”、“斜體”、“下劃線”這三個(gè)復(fù)選框時(shí)(即當(dāng)復(fù)選框被選中時(shí))能將文本框的字形變?yōu)椤按煮w、斜體、加下劃線”(本題編程完成,滿分:30分)
參考答案:
Private Sub Check1_Click()
Text1.FontBold = Check1.Value End Sub
Private Sub Check2_Click()
Text1.FontItalic = Check2.Value End Sub
Private Sub Check3_Click()
Text1.FontUnderline = Check3.Value End Sub
3、在工程中添加一窗體form3,在窗體上按下圖放置兩個(gè)標(biāo)簽和一個(gè)文本框,一個(gè)列表框和一個(gè)命令按鈕,各控件的名稱屬性取默認(rèn)值。其他屬性按下圖進(jìn)行設(shè)置。
要求:當(dāng)用戶在文本框輸入他的籍貫后,單擊“添加籍貫”按鈕時(shí),能夠?qū)⒓炋砑拥搅斜砜蛑小kp擊列表框中的某一項(xiàng)時(shí)將該項(xiàng)刪除.(本題:20分)
參考答案:
Private Sub Command1_Click()
List1.AddItem Text1.Text End Sub
Private Sub List1_DblClick()
List1.RemoveItem List1.ListIndex End Sub
4、在窗體form4中建立下圖所示的菜單,各菜單項(xiàng)的名稱如下:
文件:file,新建:NEW,-:kong1,打開:OPEN,關(guān)閉:CLOSE 編輯:EDIT,剪切:CUT,復(fù)制:COPY,粘貼:PASTE(本題不用編程,30分)
參考答案:略
第四篇:VB上機(jī)實(shí)習(xí)第五、六章
165
6.2.1題目
一、選擇題
1.以下敘述中,錯(cuò)誤的是()。
A.雙擊鼠標(biāo)可以觸發(fā)DbiClick事件
B.窗體或控件的事件名稱可以由編程人員確定
C.移動(dòng)鼠標(biāo)時(shí)會(huì)觸發(fā)MouseMove事件
D.控件的名稱可由編程人員確定
2.程序運(yùn)行后,先將焦點(diǎn)移到文本框中,按A鍵,然后單擊窗體,則在窗體上顯示的內(nèi)容是()。
A.MouseDownB。MouseUpC。LoadD。Click
3.窗體的MouseDown事件過程如下:
From_MouseDown(button As Integer,shift,xAs Single,y As Single)
其中有4個(gè)參數(shù),正確的描述是()。
A. 通過button參數(shù)可判定當(dāng)前按下的是哪一個(gè)鼠標(biāo)按鍵
B. Shoft參數(shù)只能用來確定是否按下Shift鍵
C. Shift參數(shù)只能用來確定是否按下Alt鍵與Ctel鍵
D. 參數(shù)x、y是用來設(shè)置鼠標(biāo)當(dāng)前位置的坐標(biāo)
4.當(dāng)用戶按下并釋放一個(gè)鍵后觸發(fā)KeyPress、KeyUp和KeyDown事件,這3個(gè)事件的發(fā)生順序是()
A.KeyPress、KeyUp、KeyDown
B.KeyDown、KeyUp、KeyPress
C.KeyPress、KeyDown、KeyUp
D.KeyDown、KeyPress、KeyUp
5.設(shè)窗體的KeyPreview屬性為True,并且有下列程序。當(dāng)焦點(diǎn)在窗體上的文本框上時(shí),按下X鍵,文本框接收到的字符是()。
Private Sub From_keyDown(keycode AS Integer,Shift As Integer)
Keycode=keycode+1
End Sub
A.XB.YC.空格D.沒有接收到字符
6.下列關(guān)于鍵盤事件的說法中,正確的是()。
A.按下鍵盤上的任意一個(gè)鍵和數(shù)字鍵盤的1鍵的keycode碼相同
B.大鍵盤上的1鍵和數(shù)字鍵盤的1鍵的keycode碼相同
C.keyDown和KeyUp事件過程中都有keyascii參數(shù)
D.大鍵盤上的4鍵的上檔字符是“¥”,當(dāng)同時(shí)按下Shift鍵和大鍵盤上的4鍵時(shí),Key-Press事件過程中的keyascii參數(shù)值是“$”的ASCII值。
7.在KeyDown或KeyUp事件過程中,能用來檢查Ctrl和F3鍵是否同時(shí)被按下的表達(dá)式是()。
A.(button=vbCtrlMask)And(keycode=vbKeyF3)
B.Keycode=vbKeyControl+vbKeyF3
C.(keycode=vbKeyF3)And(shift And vbCtrlMask)
D.(shift And VBCtrlMask)And(keycode And vbKeyF3)
1.2.3.4.5.6.7.在執(zhí)行KeyPress事件過程時(shí),keyascii是所按鍵____ 值。對于有上檔字符和下檔字符的鍵,當(dāng)執(zhí)行KeyPress事件過程中,keycode是____ 字符的____ 值在KeyDown和KeyUp事件過程中,當(dāng)參數(shù)shift的值為____,____,____,時(shí),分別代表____,____,____ 鍵 在MouseDown和KeyUp事件過程中,當(dāng)參數(shù)shift值為____,____,____,時(shí),分別代表鼠標(biāo)的____,____,____,鍵 當(dāng)用戶單擊鼠標(biāo)右鍵時(shí),MouseDown,MouseUp和MouseMove事件過程中的button參數(shù)值為____當(dāng)用戶同時(shí)按下Ctrl和Shift鍵時(shí),單擊鼠標(biāo),MouseDown,MouseUp和MouseMove事件過程中的shift參數(shù)為____,如果要在程序運(yùn)行期間改變鼠標(biāo)的形狀必須先將MousePointer設(shè)置為vbCustom,然后在程序中用LoadPicture函數(shù)將需要的圖標(biāo)文件《。Ico》或指針文件《.cur》裝入____ 屬性中。7.只要將MousePointer屬性設(shè)置為______,鼠標(biāo)指針就會(huì)恢復(fù)原樣。
1.在菜單中放置分隔欄的方法是將該菜單項(xiàng)的Caption設(shè)為()
A.連字符(-)B.下劃線(__)
C.連接符(&)D.兩個(gè)連續(xù)的下劃線(_ _)
2.以下陳述中正確的是()(多選)
A.分隔欄可以出現(xiàn)在頂級菜單項(xiàng)中
B.頂級菜單項(xiàng)的Checked屬性不能為True
C.對同一個(gè)菜單項(xiàng),為其指定訪問鍵后,就不能再為其指定快捷鍵
D.菜單項(xiàng)的Enabled屬性設(shè)為False后,它會(huì)被灰化顯示
3.菜單項(xiàng)數(shù)組必須滿足()(多選)
A.Name屬性值可以不同 B.有相同的行首縮進(jìn)
C.所有元素在菜單中可以不連續(xù) D.各元素必有惟一索引值
4.為了響應(yīng)工具欄上的多個(gè)按鈕的單擊事件,可以通過按鈕的()屬性識別是由哪個(gè)按鈕引發(fā)。
A.Button B.Key C.Index D.B 和C均可
5.在使用菜單編輯器創(chuàng)建菜單時(shí),可在菜單名稱中某字母前插入()符號,那么在運(yùn)行程序時(shí)按Alt鍵和該字母鍵就可以打開該命令菜單。
A.下劃線 B.& C.$ D.@
6.如果要在兩個(gè)菜單命令項(xiàng)之間加一條分隔線,可在標(biāo)題文本框中鍵入()。
A.– B.+ C.& D.#
7.在用菜單編輯器設(shè)計(jì)菜單時(shí),必須輸入的項(xiàng)是()。
A.快捷鍵 B.標(biāo)題 C.索引 D.名稱
8.菜單控件僅支持以下()事件。
A.Click B.MouseDown C.KeyPress D.Load
9.在使用彈出菜單時(shí),下面說法不正確的情況是()。
A.只能同時(shí)顯示一個(gè)彈出菜單
B.使用PopupMenu 方法來顯示彈出菜單
C.在設(shè)計(jì)時(shí),應(yīng)該將彈出菜單的頂層菜單項(xiàng)的Visible屬性設(shè)為False
D.在顯示彈出菜單以后,將執(zhí)行以后的代碼
10.下列不能打開菜單編輯器的操作是()。
A.按Ctrl+E
B.單擊工具欄中的“菜單編輯器”按鈕
C.執(zhí)行“工具”菜單中的“菜單編輯器”命令
D.按Shift + Alt + M
11.假定有一個(gè)菜單項(xiàng),名為MenuItem,為了在運(yùn)行時(shí)使該菜單項(xiàng)失效(變灰),應(yīng)使用的語句為()。
A.MenuItem.Enabled=False B.MenuItem.Enabled=True
C.MenuItem.Visible=True D.Menultem.Visible=False
12.以下關(guān)于菜單編輯器中“索引”項(xiàng)的敘述中,錯(cuò)誤的是()。
A.“索引”確定了菜單項(xiàng)顯示的順序
B.“索引”是控件數(shù)組的下標(biāo)
C.使用“索引”時(shí),可有一組菜單項(xiàng)具有相同的“名字”
D.使用“索引”后,在單擊菜單項(xiàng)的事件過程中可以通過“索引”引用菜單項(xiàng)
13.用戶通過設(shè)置菜單項(xiàng)的()屬性值為False來使該菜單項(xiàng)不可見。
A.Hide B.Checked C.Visible D.Enabled
14.下列關(guān)于菜單的說法中,錯(cuò)誤的是()。
A.每個(gè)菜單項(xiàng)都是一個(gè)控件,與其他控件一樣也有其屬性和事件
B.除了Click事件之外,菜單項(xiàng)不可以響應(yīng)其他事件
C.菜單項(xiàng)的索引號可以不連續(xù)
D.菜單項(xiàng)的索引號必須從1開始
17.以下有關(guān)由多個(gè)窗體和標(biāo)準(zhǔn)模塊組成的應(yīng)用程序設(shè)計(jì)方法的敘述中,錯(cuò)誤的是()。
A.在缺省情況下,設(shè)計(jì)時(shí)的第一個(gè)窗體被指定為啟動(dòng)窗體
B.通過人為設(shè)置,可指定任一窗體為啟動(dòng)窗體
C.通過人為設(shè)置,可指定標(biāo)準(zhǔn)模塊中的Main()過程為啟動(dòng)過程
D.通過人為設(shè)置,可指定窗體模塊中的Main()過程為啟動(dòng)過程
18.以下陳述中正確的是()。(多選)
A.一個(gè)應(yīng)用程序中只能有一個(gè)MDI父窗體
B.MDI父窗體上可以放置任意控件
C.可以用Print方法在MDI父窗體上顯示信息
D.一個(gè)MDI子窗體最小化后,其圖標(biāo)顯示在MDI父窗體中
19.要在工程中創(chuàng)建一個(gè)MDI父窗體只要()。(多選)
A.在菜單中選擇“工程”—“添加MDI窗體”
B.在工具欄的添加按鈕的下拉菜單中選擇“MDI窗體”
C.新建一個(gè)窗體,其將MDIChild屬性設(shè)為True
D.新建一個(gè)窗體,其將MDIChild屬性設(shè)為False
20.要使MDI子窗體在加載時(shí)就自動(dòng)顯示出來,應(yīng)()。
A.將Scrollbars屬性設(shè)為True
B.將Scrollbars屬性設(shè)為False
C.將AutoShowChildren屬性設(shè)為True
D.將AutoShowChildren屬性設(shè)為False
21.使用MDI窗體時(shí),對于下面的說法選擇正確的選項(xiàng)()。
A.能在MDI窗體中打開多個(gè)文檔界面
B.子窗體是模式窗口
C.子窗體的和父窗體能夠同時(shí)顯示自己的菜單
D.如果子窗體的BorderStyle屬性為vbFixedToolWindow,其大小將不能改變
22.多窗體程序由多個(gè)窗體組成。在缺省情況下,VB在執(zhí)行應(yīng)用程序時(shí),總是把()指定為啟動(dòng)窗口。
A.不包含任何控件的窗口 B.設(shè)計(jì)時(shí)的第一個(gè)窗體
C.命名為Frm1的窗體 D.包含控件最多的窗體
23.要使自定義的對話框Form1退出,可以在該對話框的“退出”按鈕的Click事件過程中使用以下()中的一個(gè)語句。(多選)
A.Form1.Unload B.UnloadForm1
C.Form1.Hide D.Unload Me
24.MDI窗體的QueryUnload事件將在()時(shí)候被觸發(fā)。(多選)
A.在代碼中使用Unload語句
B.當(dāng)前Windows操作結(jié)束
C.利用Windows任務(wù)管理器關(guān)閉應(yīng)用程序
D.MDI窗體正在關(guān)閉
E.窗體的所有者正在關(guān)閉
F.雙擊窗體圖標(biāo)或選擇控制菜單中的“關(guān)閉”命令
二、填空題
1.菜單編輯器的“標(biāo)題”選項(xiàng)對應(yīng)于菜單控件的____________屬性。
菜單編輯器的“名稱”選項(xiàng)對應(yīng)于菜單控件的____________屬性。
菜單編輯器的“可見”選項(xiàng)對應(yīng)于菜單控件的____________屬性。
菜單編輯器的“索引”選項(xiàng)對應(yīng)于菜單控件的____________屬性。
菜單編輯器的“復(fù)選”選項(xiàng)對應(yīng)于菜單控件的____________屬性。
菜單編輯器的“有效”選項(xiàng)對應(yīng)于菜單控件的____________屬性。
2.菜單分為______菜單和______菜單,菜單總與__________相關(guān)聯(lián),設(shè)計(jì)菜單需要在______中設(shè)計(jì)。
3.不可以給______級菜單設(shè)置快捷鍵。
4.菜單中的分隔條是一種菜單控件,但不響應(yīng)__________事件,也不能被選中。
5.為顯示彈出式菜單,可以使用__________方法。
6.如果菜單標(biāo)題的某個(gè)字母前輸入一個(gè)“&”符號,那么該字母就成了熱鍵字母;如果在建立菜單時(shí)在標(biāo)題文本框中輸入一個(gè)“______”,那么顯示時(shí)形成一個(gè)分隔符。
7.如果把菜單項(xiàng)的______屬性設(shè)置為True,則該菜單項(xiàng)成為一個(gè)選項(xiàng)。
8.不管是在窗口頂部菜單條上顯示的菜單,還是隱藏的菜單,都可以用______方法把它們作為菜單在程序運(yùn)行期間顯示出來。
9.菜單設(shè)計(jì)中每一個(gè)菜單項(xiàng)是一個(gè)控件,這些控件都只有一個(gè)______事件。
10.為了能夠通過鍵盤訪問主菜單項(xiàng),可在菜單編輯器的“標(biāo)題”選項(xiàng)中的某字母前插入_______符號。運(yùn)行時(shí),該字母會(huì)帶有下劃線,按Alt鍵和該字母就可以訪問相應(yīng)的主菜單項(xiàng)。
11.彈出式菜單在___________中設(shè)計(jì),且一定要使其______級菜單不可見。
12.要使用工具欄控件設(shè)計(jì)工具欄,應(yīng)先在“部件”對話框中選擇__________,然后從工具箱中選__________控件。
13.設(shè)置工具欄控件的__________屬性可以改變工具欄在窗體上的位置。
14.要給工具欄按鈕添加圖像,應(yīng)首先在__________控件中添加所需要的圖像,然后在工具欄的屬性頁中選擇與該控件相關(guān)聯(lián)。
15.運(yùn)行時(shí),要使工具欄ToolBar1中索引值為5的按鈕無效,應(yīng)使用語句:________________________________。
16.要使工具欄控件的某按鈕呈菜單的式樣,可以在其屬性頁中設(shè)置其______選項(xiàng)為5-tbrDropDown。
17.要使用狀態(tài)欄控件設(shè)計(jì)狀態(tài)欄,應(yīng)首先在“部件”對話框中選擇________________,然后從工具箱中選擇__________控件。
18.狀態(tài)欄由多個(gè)“窗格”對象組成,“窗格”對象的特征是通過狀態(tài)欄的_____屬性決定的。
19.要在運(yùn)行時(shí)給狀態(tài)StstusBar1的第二個(gè)窗格添加一幅圖片,該圖片由文件“c:windowsglass.ico”指定,應(yīng)使用語句:______________________________。
20.SDI指__________界面,MDI指__________界面。
21.要將某窗體定義為一個(gè)MDI子窗體,需要將其__________屬性設(shè)置為True
22.在一個(gè)MDI應(yīng)用程序中,可以含有________、_______、______這3類窗體。
23.一個(gè)應(yīng)用程序最多可以有__________個(gè)MDI父窗體。
24.在運(yùn)行時(shí),MDI父窗體中的子窗體最小化時(shí),其圖標(biāo)將顯示在_________中。
第五篇:VB上機(jī)考試習(xí)題以及答案
VB上機(jī)考試
1、利用隨機(jī)函數(shù)產(chǎn)生25個(gè)100到999之間的整數(shù),構(gòu)成5?5的矩陣,輸出該矩陣。Dim a(1 To 5, 1 To 5)Private Sub Form_Click()Randomize For i = 1 To 5 For j = 1 To 5 a(i, j)= Int(Rnd *(99910 + 1)+ 10)Print a;s = s + a Next i Print Avg = s / 25 Print Avg End Sub
3、在窗體上按下鼠標(biāo)的右鍵,記錄其坐標(biāo)。
Private Sub Form_Load()Label1.BorderStyle = 1 Label1.Alignment = 2 End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button = 2 Then Label1.Caption = X & “,” & Y End If End Sub
4、利用隨機(jī)函數(shù)產(chǎn)生25個(gè)10到99之間的整數(shù),按從小到大的順序顯示。Dim a(1 To 25)Private Sub Form_Click()Cls For i = 1 To 25 a(i)= Int(Rnd *(991 For j = 1 To 251 + 1)+ 1)a(x)= a(x)+ 1 Next j For i = 1 To 6 Print i & “出現(xiàn)了” & a(i);“次” Next i
End Sub
6、在文本框中輸入一些英語單詞,統(tǒng)計(jì)空格的個(gè)數(shù)。
Dim n%, x As String, s% Private Sub Form_Click()n = Len(Text1.Text)x = Text1.Text For i = 1 To n If Mid(x, i, 1)= “ ” Then s = s + 1 Next i Print “共出現(xiàn)了” & s & “個(gè)空格” End Sub
7、編程計(jì)算下列公式的值,其中n(<10)為從鍵盤輸入的正整數(shù)。S=1!+3!+5!+……+(2*n-1)!Private Sub Form_Click()n = Val(InputBox(“請輸入一個(gè)不大于10的整數(shù)”))s = 0 For i = 1 To 2 * n2 * i1 a = a + 1 Print Str(a);Next j Print Next i End Sub
10、用For …Next語句編程,雙擊窗體后,在屏幕上顯示如圖:
Private Sub Form_DblClick()For i = 1 To 3 Print Tab(113 * i);For j = 1 To 5 Print x;Next j Print Next i End Sub
12、從文本框輸入一個(gè)正整數(shù),判斷該數(shù)是否為素?cái)?shù)。Dim a As Long Private Sub Form_Click()a = Val(Text1.Text)If a = 2 Then Tag = True ElseIf a Mod 2 = 0 Then Tag = False Else Tag = True For i = 3 To Sqr(a)Step 2 If a Mod i = 0 Then Tag = False: Exit For Next i End If If Tag = True Then Print a;“是素?cái)?shù)” Else Print a;“不是素?cái)?shù)” End If
End Sub
13、利用隨機(jī)函數(shù)產(chǎn)生并顯示10個(gè)3位數(shù)的正整數(shù),找出其中的最大數(shù)。Option Explicit Dim i%, max%, loc% Dim a(1 To 10)As Integer Private Sub Form_Click()Randomize Form1.Cls For i = 1 To 10 a(i)= Int(Rnd *(9991000 + 1)+ 1000)Print a(i)Next i min = 9999 For i = 1 To 10 If a(i)< min Then min = a(i): loc = i Next i Print “最小的數(shù)是”;min Print “在數(shù)組中是第”;loc;“個(gè)數(shù)” End Sub
15、當(dāng)按下鼠標(biāo)左鍵時(shí),窗體的背景色變?yōu)榧t色;松開鼠標(biāo)左鍵時(shí),窗體的背景色變?yōu)榫G色。Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button = 1 Then Form1.BackColor = vbRed
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button = 1 Then Form1.BackColor = vbGreen End Sub
16、編制一個(gè)時(shí)鐘程序,如下圖
:Option Explicit
Private Sub Form_Load()Label1.BackColor = vbWhite Label1.BorderStyle = 1 Label1.Alignment = 2 Timer1.Enabled = True Timer1.Interval = 1000 End Sub
Private Sub Timer1_Timer()Label1.Caption = Time End Sub
17、從鍵盤輸入10個(gè)數(shù),按輸入的順序和按輸入順序相反的順序輸出。Option Explicit Dim i% Dim a(1 To 10)As Single Private Sub Form_Click()For i = 1 To 10 a(i)= Val(InputBox(“請輸入第” & i & “個(gè)數(shù)”))Print a(i);Next i Print For i = 10 To 1 Step-1 Print a(i);Next i
End Sub
18、計(jì)算圓面積的程序。程序運(yùn)行時(shí),單擊窗體,然后在下圖所示的輸入框中輸入圓的半徑,即可在窗體上顯示計(jì)算出的圓面積。
Option Explicit Dim r%, a As Single Const pi As Single = 3.14159 Private Sub Form_Click()r = Val(InputBox(“請輸入圓半徑” & vbCrLf & “(1-9):”, “輸入”, 5))a = pi * r ^ 2 Print “半徑為”;r;“的圓面積為”;a End Sub
19、編寫一個(gè)時(shí)鐘程序,當(dāng)選擇“24小時(shí)”時(shí),以24小時(shí)的方式顯示如A,當(dāng)選擇“12小時(shí)”時(shí),以12小時(shí)的方式顯示如B。
Private Sub Form_Load()Timer1.Interval = 1000 End Sub
Private Sub Timer1_Timer()Select Case True Case Option1.Value Label1.Caption = Time Case Option2.Value Label1.Caption = Format(Time, “HH:MM:SS AM/PM”)End Select End Sub 20、設(shè)計(jì)一個(gè)程序,用戶界面如圖所示。程序運(yùn)行后,用戶在文本框中輸入一段文字,然后按需要單擊選擇框,用以改變文本的字體、字型、顏色以及大小。
Option Explicit
Private Sub Check1_Click()If Check1.Value = 1 Then Text1.FontName = “黑體” Else Text1.FontName = “宋體” End If End Sub
Private Sub Check2_Click()If Check2.Value = 1 Then Text1.FontUnderline = True Else Text1.FontUnderline = False End If End Sub
Private Sub Check3_Click()If Check3.Value = 1 Then Text1.FontSize = 20 Else
Text1.FontSize = 9 End If End Sub
Private Sub Check4_Click()If Check4.Value = 1 Then Text1.ForeColor = vbGreen Else Text1.ForeColor = vbBlack End If End Sub
Private Sub Command1_Click()Text1.Text = “" End Sub
Private Sub Command2_Click()End End Sub 20做出2個(gè)周期的正弦波形.Private Sub Form_Click()Dim i%, x#, y# Const pi As String = 3.1415926 Form1.Scale(-2 * pi, 1.2)-(2 * pi,-1.2)Form1.Line(-2 * pi, 0)-(2 * pi, 0)Form1.Line(0, 1.2)-(0,-1.2)For x =-2 * pi To 2 * pi Step 0.01
y = Sin(x)
Form1.PSet(x, y)Next x End Sub 21以窗體為中心,產(chǎn)生1000個(gè)半徑顏色隨機(jī)的同心圓.Private Sub Form_Click()For i = 1 To 1000
x = Form1.ScaleWidth / 2
y = Form1.ScaleHeight / 2
r = Int(Rnd * y)
c = RGB(255 * Rnd, 255 * Rnd, 255 * Rnd)
Form1.Circle(x, y), r, c Next End Sub 22.九九乘法表 Private Sub Form_Click()Dim i%, j% Form1.Caption = ”九九乘法表“ Print Tab(48);Caption Print Tab(48);”-------------“ For i = 1 To 9
For j = 1 To i
Print Tab((j-1)* 12 + 1);i;”*“;j;”=“;i * j;
Next j Print Next i End Sub 23求最大公約數(shù)和最小公倍數(shù) Private Sub Command2_Click()Text1.Text = ”“ End Sub
Private Sub command1_Click()Dim m%, n%, r%, t% m = Val(Text1.Text)n = Val(Text2.Text)If m < n Then t = m: m = n: n = t t = m * n Do
r = m Mod n
m = n
n = r Loop Until r = 0 Text3.Caption = ”公約數(shù):“ & m Text4.Caption = ”公倍數(shù)" & t / m End Sub 24.用隨機(jī)函數(shù)產(chǎn)生50個(gè)兩位數(shù),保存于一個(gè)一維數(shù)組中,要求找出其中的最大值,最小值及所在位置.