2015年計算機二級考試《VB》全真機考操作試題(2)
1在名稱為Forml的窗體上建立一個名稱為“menul”、標題為“文件”的彈出式菜單,其含有三個菜單項,它們的標題分別為:“打開”、“關閉”、“保存”,名稱分別為“ml”、“m2”、“m3”。再添加一個命令按鈕,名稱為“Commandl”、標題為“彈出菜單”。要求:編寫命令按鈕的Click事件過程,使程序運行時,單擊“彈出菜單”按鈕可彈出“文件”菜單(如圖所示)。
注意:程序中不得使用變量,事件過程中只能寫一條語句。存盤時必須存放在考生文件夾下,工程文件名保存為sjt2.vbp,窗體文件名保存為sjt2.frm。
【考點分析】本題考點有:命令按鈕的Name和Cap-tion屬性,菜單編輯器的使用(標題、名稱、內縮符號),菜單項的Visible屬性以及PopupMenu方法。
【解題思路】要創建彈出式菜單需要先用菜單編輯器來建立菜單,并將其主菜單項的可見(Visible)屬性值設置為不可見,然后通過對象的Commandl_Click事件,執行對象的PopupMenu方法來顯示菜單。
【操作步驟】
步驟1:建立界面,添加一個命令按鈕,設置其Name屬性為Commandl,Caption屬性為“彈出菜單”。然后建立一個菜單,菜單的屬性見表3.420
步驟2:打開代碼編輯窗l3,在指定位置編寫如下代碼。
參考答案:
步驟3:調試并運行程序,關閉程序后按題目要求存盤。
2在名稱為Form1的窗休上添加一個名稱為Label1的標簽,字號大小為四號,標題為“等級考試”,如圖1所示。通過設置屬性使標簽初始為不顯示。請編寫適當的程序,使得運行程序時,窗體的標題立即變為“標簽”,單擊窗體時,顯示標簽,如圖2所示。
注意:存盤時,將文件保存至考生文件夾下,且窗體文件名保存為sjt2.frm,工程文件名保存為sit2.vbp。要求程序中不得使用變量,每個事件過程中只能寫一條語句。
【考點分析】本題考點有:標簽的Name、Caption、Visi.ble和FontSize屬性以及窗體的Caption屬性。
【解題思路】通過標簽的Name、Caption和FontSize屬性設置標簽的名稱、標題和字體大小,通過設置標簽的Visible屬性為False,使標簽初始為不可見。編寫適當的程序,在Form_Load事件過程中,窗體的Caption屬性值立即變為“標簽”,在Form_Click事件過程中單擊窗體時,設置標簽的Visible屬性為True顯示標簽。
【操作步驟】
步驟1:新建一個窗體,按照題目要求建立控件并設置其屬性,如表3.37所示。
步驟2:編寫程序代碼。
參考答案:
步驟3:調試并運行程序,關閉程序后按題目要求存盤。
二、簡單應用題
3在考生文件夾下有一個工程文件sit3.vbp。其窗體文件上有一個標題為“得分”的框架,在框架中有一個名稱為Textl的文本框數組,含6個文本框控件;文本框Text2用來輸入難度系數。程序運行時,在左邊的6個文本框中輸入6個得分,輸入難度系數后,單擊“計算分數”按鈕,則可計算出最后得分并顯示在文本框Text3中(如圖所示)。計算方法:
去掉1個最高得分和1個最低得分,求剩下得分的平均分,再乘以3,再乘以難度系數。最后結果保留到第2位小數,不四舍五入。
注意:文件中已經給出了所有控件和程序,但程序不完整,請去掉程序中的注釋符,把程序中的?改為正確的內容,考生不能修改程序中的其他部分和各控件的屬性。最后把修改后的文件按原文件名存盤。
【考點分析】本題考點有:INT()函數、Val()函數、文本框數組的Text屬性、If判斷語句以及For循環語句。
【解題思路】通過Val()函數獲取文本框數組的值,并把它轉換為數值型,通過循環語句和判斷語句,找出最大值和最小值賦值給變量a和b,同時累加所有數值的和賦值給s,那么最終的和為s-a-b,根據算法求剩下得分的平均分,乘以3,再乘以Text2中輸入的難度系數,得出最終的得分。
【操作步驟】
步驟1:打開本題工程文件。
步驟2:打開代碼編輯窗口,去掉程序中的注釋符“´”,將問號改為正確的內容。
參考答案(陰影部分是需考生填入的內容)
步驟3:調試并運行程序,關閉程序后按題目要求存盤。
4在考生文件夾下有一個工程文件sit4.vbp,其窗體上有一個由八個圖片框控件組成的控件數組、兩個命令按鈕及一個計時器控件,如圖l所示。
程序功能:
將計時器控件設置為每隔0.5秒觸發一次Timer事件。運行程序時,只顯示下標為0的圖片框控件數組元素,其他圖片框均不可見。單擊“開始”按鈕,數組中的每個圖片框自左至右依次顯示,時間問隔為0.5秒,產生“月亮”從左向右移動的效果,如圖2所示。月亮移到右端后再從左端重新開始。單擊“停止”按鈕,“月亮”停止移動。
要求:按照題目要求設置控件屬性,去掉程序中的注釋符,把程序中的?改為正確的內容。
注意:不能修改程序的其他部分和控件屬性,最后將修改后的文件按原文件名進行存盤。
【考點分析】本題考點有:計時器的Interval和Ena-bled屬性,圖片框的Left、Top、Visible屬性,Static局部變量定義,For循環語句以及Ⅱ判斷語句。
【解題思路】首先將Timerl的Interval屬性設置為500,使計時器控件設置為每隔0.5秒觸發一次。在Form_Load事件過程中,通過圖片框Visible屬性設置只顯示下標為0的圖片框控件數組元素,其他下標為1~7的圖片框均不顯示。單擊“開始”按鈕,計時器的Enabled屬性設置為True,TimerlTimet事件啟動,運用循環語句將數組中的每個圖片框自左向右依次顯示.產生“月亮”從左向右移動的效果,循環變量設置為局部變量Static,使“月亮”移到右端后再從左端重新開始。單擊“停止”按鈕,“月亮”停止移動。
【操作步驟】
步驟1:打開本題工程文件,將Timerl的Interval屬性設置為500。
步驟2:打開代碼編輯窗口,去掉程序中的注釋符“´”,將問號改為正確的內容。
參考答案(陰影部分是需考生填入的內容)
步驟3:調試并運行程序,關閉程序后按題目要求存盤。
【易錯提示】變量i要定義成局部變量才能使“月亮”移到右端后再從左端重新開始,如果不設置計時器控件的In-terval屬性,則計時器不會起作用,編程的時候要注意。
三、綜合操作題
5考生文件夾下有一個工程文件sit5.vbp,窗體上有兩個文本框,名稱分別為Textl、Text2,都可以多行顯示。還有三個命令按鈕,名稱分別為cl、c2、c3,標題分別為“取數”、“排序”、“存盤”。“取數”按鈕的功能是將考生文件夾下的in5.dat文件中的50個整數讀到數組中,并在Textl中顯示出來;“排序”按鈕的功能是對這50個數按升序排序,并顯示在Text2中;“存盤”按鈕的功能是把排好序的50個數存到考生目錄下的out5.dat文件中,如圖所示。在窗體中已經給出了全部控件和部分程序代碼,要求閱讀程序并去掉程序中的注釋符,把程序中的?改為正確的內容,并編寫“排序”按鈕的Click事件過程,使其實現上述功能,但不能修改程序中的其他部分,也不能修改控件的屬性。最后將修改后的文件按原文件名存盤。
【考點分析】本題考點有:Str()函數、“冒泡法”排序、For循環語句、If判斷語句以及文件操作。
【解題思路】str函數用于數值轉化為字符串,語法為:str(number)。
在循環語句中Step表示步長,可以為正數,表示下一個變量加一個數,也可以為負數,則相反,在默認情況下,步長為1,就不需要使用Step特意標識。
“冒泡法”是一種重要的數據排序算法,它的核心思路是按順序讓一個數列中的每一個數都與它之后的所有的數逐一進行比較,如果該數大于其后面的數,則把這兩個位置的數進行交換。通過這樣的循環,最終按照從小到大的順序排列出該數列。從程序提供的代碼中可以看出,整型數組a的使用范圍是本窗體中的所有事件過程,用來存放從文件中讀取的數據。在排序中,使用雙重循環,外循環每循環一次,確定內循環循環的次數,內循環就是把本次循環中最大的數,放在數組的最后面,這樣就可以實現對這50個數的升序排序。
【操作步驟】
步驟1:打開本題工程文件。
步驟2:打開代碼編輯窗口,去掉程序中的注釋符“´”,
將問號改為正確的內容,并編寫代碼。
參考答案(陰影部分是需考生填入的內容)
Dim a(50) As Integer
Private Sub C1_Click()
Dim k As Integer,ch As String
Open"in5.dat"For Input As #1
ch=""
For k=1 T0 50
Input#1,_____a(k)_____將取出的數據存入數組a中
ch=ch+Str(a(k))+""´將數據存入ch
Next k
Close#1
Text1.Text=____ch______'在Text1文本框中顯示文件內容
End Sub
Private Sub C2_click()
End Sub
Private Sub C3_Click()
Open"out5.dat"For Output As #1
Print#1,Text2.Text
Close#1
End Sub
需編寫的“排序”按鈕的代碼
Private Sub C2_Click()
Dim t As Integer
Dim i As Integer
Dim J As Integer
Dim ch As String
ch=""
For i=50 T0 2 Step-1使用冒泡算法從小到大排序
For J=1 To 49
If a(J)>a(j+1)Then’兩兩比較
t=a(J+1)
a(j+1)=a(J)
a(j)=t
End If
Next J
Next i
For J=1 T0 50´將排序后的數組重新賦給ch
ch=ch+Str(a(J))+""
Next j
Text2.Text=ch
End Sub
步驟3:調試并運行程序,關閉程序后按題目要求存盤。
【易錯提示】注意冒泡排序的用法,理解位置交換的含義和方法,在交換時要有一個中間變量來起到傳遞的作用,否則會使其中一個值丟失而產生錯誤。