VB上机试题及答案
国家二级VB机试(上机操作)模拟试卷400(题后含答案及解析)

国家二级VB机试(上机操作)模拟试卷400(题后含答案及解析) 全部题型 2. 基本操作题 3. 简单应用题 4. 综合应用题基本操作题1.请根据以下各小题的要求设计Visua,Basic应用程序(包括界面和代码)。
(1)在名称为Form1标题为“选课”的窗体上画一个复选框数组,名称为CH1,共有四个复选框,按顺序其标题分别是“数学”、“语文”、“外语”、“计算机”,其中“语文”、“计算机”复选框处于选中状态,运行时的窗体如图3—147所示。
请画控件并设置相应属性。
注意:存盘时必须存放在考生文件夹下,工程文件名为sjt1.vbp,窗体文件名为sjt1.frm。
(2)在名称为Form1的窗体上画一个名称为HS1的水平滚动条,其刻度值范围为1~100;画一个命令按钮,名称为C1,标题为“移动滚动框”。
请编写适当的事件过程,使得在运行时,每单击命令按钮一次(假定单击次数少于10次),滚动框向右移动10个刻度。
运行时的窗体如图3—148所示。
要求程序中不得使用变量,事件过程中只能写一条语句。
注意:存盘时必须存放在考生文件夹下,工程文件名为sjt2.vbp,窗体文件名为sjt2.frm。
正确答案:(1)【操作步骤】步骤1:新建一个“标准EXE”工程。
步骤2:在窗体Form1中加入一个复选框,并用“复制”和“粘贴”的方法,生成包含四个元素的复选框数组。
步骤3:分别设置窗体和复选框数组中各元素的相关属性。
步骤4:按要求将文件保存至考生文件夹中。
(2)【操作步骤】步骤1:新建一个“标准EXE”工程,按要求画出控件并设置相应属性。
步骤2:在代码编辑窗口,编写命令按钮的Click事件过程。
参考代码:Private Sub C1_Click( )HS1.Value=HS1.Value+10End Sub 步骤3:按要求将文件保存至考生文件夹中。
简单应用题2.(1)在名称为Form1的窗体上画一个名称为Text1的文本框,再建立一个名称为Format的弹出式菜单,含三个菜单项,标题分别为“加粗”、“斜体”、“下划线”,名称分别为M1、M2、M3。
国家二级VB机试(上机操作)模拟试卷102(题后含答案及解析)

国家二级VB机试(上机操作)模拟试卷102(题后含答案及解析) 全部题型 2. 基本操作题 3. 简单应用题 4. 综合应用题基本操作题1.请根据以下各小题的要求设计Visual Basic应用程序(包括界面和代码)。
(1)在名称为Forml的窗体上画一个名称为.CDl的通用对话框,通过属性窗口设置CDl的初始路径为C:\,默认的文件名为None,标题为“保存等级考试”,如图3.125所示。
注意:存盘时必须存放在考生文件夹下,工程文件名为sjtl.vbp,窗体文件名为sjtl.frm。
(2)在名称为Forml的窗体上设计一个菜单。
要求在窗体上添加名为menu0,标题为“菜单命令”的主菜单,再添加两个名称分别为“menu1”、“menu2”,标题分别为“不可用菜单项”、“上一菜单项可用”的子菜单,并且使程序运行时,menul子菜单不可用,menu2子菜单已经选中(运行时的效果如图3.126所示)。
再编写适当的事件过程,使得程序运行时,单击“上一菜单项可用”,则“不可用菜单项”变为黑色(可用)。
要求程序中不得使用变量,且只有一条语句。
注意:存盘时必须存放在考生文件夹下,工程文件名为sjt2.vbp,窗体文件名为sjt2.fm正确答案:第1小题【操作步骤】步骤1:新建一个“标准EXE”工程,选择【工程】→【部件】命令,在弹出的“部件”对话框的列表中选中“MicroSofy Common Dialog Control6.0”项目,单击“确定”按钮。
步骤2:在窗体Forml 上画一个通用对话框并设置相关属性。
步骤3:编写Forml的Load事件,加入下面的代码:CD 1.ShowSave步骤4:按要求将文件保存至考生文件夹中。
第2小题【操作步骤】步骤1:新建一个“标准EXE”工程,打开VB菜单设计器按要求设计菜单。
步骤2:打开代码编辑窗口,编写“上一菜单项可用”命令的Click事件过程。
参考代码:Private Sub menu2 C1ick( ) menul.Enabled=TrueEnd Sub步骤3:按要求将文件保存至考生文件夹中。
vb上机考试习题以及答案

VB上机考试1、利用随机函数产生25个100到999之间的整数,构成5?5的矩阵,输出该矩阵。
Dim a(1 To 5, 1 To 5)Private Sub Form_Click()RandomizeFor i = 1 To 5For j = 1 To 5a(i, j) = Int(Rnd * (999 - 100 + 1) + 100)Print a(i, j);Next jPrintNext iEnd Sub2、利用随机函数产生25个10到99之间的整数,求其平均值(要求保留3位小数,第4位四舍五入)。
Private Sub Form_Click()For i = 1 To 25a = Int(Rnd * (99 - 10 + 1) + 10)Print a;s = s + aNext iPrintAvg = s / 25Print AvgEnd Sub3、在窗体上按下鼠标的右键,记录其坐标。
Private Sub Form_Load()= 1= 2End SubPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button = 2 Then= X & "," & YEnd IfEnd Sub4、利用随机函数产生25个10到99之间的整数,按从小到大的顺序显示。
Dim a(1 To 25)Private Sub Form_Click()ClsFor i = 1 To 25a(i) = Int(Rnd * (99 - 10 + 1) + 10)Print a(i);Next iPrintFor i = 1 To 25 - 1For j = 1 To 25 - iIf a(j) > a(j + 1) Then tmp = a(j): a(j) = a(j + 1): a(j + 1) = tmp Next jNext iFor i = 1 To 25Print a(i);Next iEnd Sub5、利用随机函数产生50个 [1,6] 之间的整数, 分别统计出1的个数,2的个数,3的个数,4的个数,5的个数和6的个数。
vb上机试题及答案

vb上机试题及答案一、选择题(每题2分,共10分)1. VB中,用来声明变量的关键字是:A. DimB. SetC. CallD. Function答案:A2. 下列哪个不是VB中的控件事件?A. ClickB. LoadC. PrintD. Resize答案:C3. VB中,用于循环结构的关键字是:A. ForB. NextC. LoopD. Do答案:A4. VB中,用于定义过程的关键字是:A. SubB. FunctionC. DimD. Call答案:A5. VB中,用于定义窗体的关键字是:A. FormB. ClassC. ModuleD. Property答案:A二、填空题(每题2分,共10分)1. VB中,使用________关键字可以定义一个数组。
答案:Dim2. 在VB中,________函数用于将字符串转换为大写。
答案:UCase3. VB中的________函数用于计算字符串的长度。
答案:Len4. 使用________语句可以退出当前循环。
答案:Exit For5. VB中,________语句用于创建一个子程序。
答案:Sub三、简答题(每题5分,共15分)1. 请简述VB中如何声明一个变量,并赋值。
答案:在VB中,使用Dim关键字声明变量,例如Dim myVar As Integer,然后使用赋值语句赋值,例如myVar = 10。
2. 解释VB中什么是事件驱动编程。
答案:事件驱动编程是一种编程范式,程序的执行流程由外部事件触发,而不是由程序的顺序执行决定。
在VB中,用户操作(如点击按钮)会触发事件,程序响应这些事件执行相应的代码。
3. 描述VB中如何使用条件语句。
答案:在VB中,使用If...Then...Else语句来实现条件判断。
例如,If condition Then '执行代码块 1 Else '执行代码块 2 End If。
四、编程题(每题15分,共30分)1. 编写一个VB程序,计算并输出1到100之间所有偶数的和。
国家二级VB机试(上机操作)模拟试卷354(题后含答案及解析)

国家二级VB机试(上机操作)模拟试卷354(题后含答案及解析) 全部题型 2. 基本操作题 3. 简单应用题 4. 综合应用题基本操作题1.(1)在名称为Form1的窗体上画一个名称为Combol的组合框,其宽度为1200,其类型如图3.188所示(即简单组合框)。
要求如下:①请按图中所示,通过属性窗口输入“北京”、“上海”、“广州”、“深圳”。
②设置适当的属性,使得运行时,窗体的最大化按钮和最小化按钮消失。
注意:存盘时必须存放在考生文件夹下,工程文件名为sjtl.vbp,窗体文件名为sjtl.frm。
(2)在名称为Form1的窗体上画两个文本框,名称分别为Text1、Text2,再画两个命令按钮,名称分别为Command1、Command2,标题分别为“左”、“右”,如图3.189。
要求:编写适当的事件过程,使得程序运行时,单击“左”按钮,则焦点位于Text1上;单击“右”按钮,则焦点位于Text2上。
注意:程序中不得使用变量,事件过程中只能写一条语句。
存盘时必须存放在考生文件夹下,工程文件名为sjt2.vbp,窗体文件名为sjt2.frm。
正确答案:(1)步骤1:新建一个“标准EXE”工程,按要求画出控件并设置属性。
步骤2:按要求将文件保存至考生文件夹中。
(2)步骤1:新建一个“标准。
EXE”工程,按要求画出控件并设置属性。
步骤2:双击“左”命令按钮,打开代码编辑窗口,在按钮的Click事件过程中输入代码。
步骤3:从代码编辑窗口的“对象”下拉列表中选择Command2,从“事件”下拉列表选择Click,编写以下事件过程。
参考代码:PriVate Sub Command1_Click( )Text1.SetFocusEnd SubPriVate Sub Command2_Click( ).Text2.SetFocusEnd Sub 步骤4:按要求将文件保存至考生文件夹中。
解析:(1)本题只需要在窗体上画出相应控件并设置其属性即可。
国家二级VB机试(上机操作)模拟试卷600(题后含答案及解析)

国家二级VB机试(上机操作)模拟试卷600(题后含答案及解析)题型有:1.jpg /> 步骤2:打开代码编辑窗口,在指定位置编写如下代码。
参考答案PriVate Sub Commandl_Click( ) Text2=Textl.SelLength End Sub 步骤3:调试并运行程序,关闭程序后按题目要求存盘。
【易错提示】SelLength属性与SelStart和SelText属性容易混淆,SelStart属性是返回/设置选定文本的起始点,SelText属性是返回/设置当前选定文本的字符串。
解析:selLength属性用于返回/设置选定的字符数,通过文本框的Name 和Caption属性设置文本框的名称和标题,通过命令按钮的Name和Cap.tion 属性设置命令按钮的名称和标题。
简单应用题3.在考生文件夹下有一个工程文件sjt3.vbp。
程序运行后,单击“读入数据”按钮,可将考生文件夹下in3.1xt文件中的所有英文单词读入,并在Textl 文本框中显示;单击“插入列表框”按钮,则按顺序将每个单词作为一项添加到List1列表框中(如图所示)。
在in3.txt文件中,每个单词之间用一个空格字符隔开,最后一个单词的后面没有空格。
已经给出了所有控件和程序,但程序不完整。
要求:请去掉程序中的注释符,把程序中的?改为正确的内容,使其能正确运行,但不能修改程序中的其他部分和控件属性。
最后用原来的文件名保存工程文件和窗体文件。
正确答案:【操作步骤】步骤l:打开本题工程文件。
步骤2:打开代码编辑窗口,去掉程序中的注释符“′”,将问号改为正确的内容。
参考答案(阴影部分是需考生填入的内容) Private Sub Commandl_C1ick( ) Dim st$.ch$ Open App.Path&"\in3.txt"For In—put As#’打开文件Do While Not EOF(1)′文件指针是否到达文件末尾Input#1,ch′达到文件末尾返回true.否则返回false st=st&ch′将读出的数据加到原有数据末尾Loop Close#1′关闭文件Textl=st′将内容显示在文本框中End Sub Private Sub Command2_Click( ) Dim st$,word$,C$ St=Textl n=Len(St) For k=1 TO n c=Mid(st,k,1)′从st 中依次取出1个字符进行比较If c<>""Then word=word&C E1Se Listl.AddItem word word=""将word清空,为下一次作准备End If Next LiStl.AddItem word End Sub 步骤3:调试并运行程序,关闭程序后按题目要求存盘。
国家二级VB机试(上机操作)模拟试卷460(题后含答案及解析)

国家二级VB机试(上机操作)模拟试卷460(题后含答案及解析) 全部题型 2. 基本操作题 3. 简单应用题 4. 综合应用题基本操作题1.请根据以下各小题的要求设计Visual Basic应用程序(包括界面和代码)。
(1)在名称为Form1的窗体上画1个名称为Cbol的组合框,组合框的列表项分别是:北京、天津、上海。
请设置组合框的参数,使其外观如图3-6所示。
窗体的标题是“用组合框”。
注意:存盘时,将文件保存至考生文件夹下,且窗体文件名为sjt1.frm,工程文件名为sjt1.vbp。
(2)在名称为Form1的窗体上画1个名称为Pl的图片框,窗体的标题为“程序设计”,如图3-7(a)所示。
编写适当的事件过程,使得程序运行后,单击窗体,则在图片框中显示窗体的标题,并把窗体的标题变为Basic,如图3-7(b)所示。
注意:存盘时,将文件保存至考生文件夹下,且窗体文件名为sjt2.frm,工程文件名为sjt2.vbp。
正确答案:第1小题【操作步骤】步骤1:新建一个“标准EXE”工程,在窗体Form1中加入一个组合框。
按表4-3设置其相关属性。
步骤2:按要求将文件保存至考生文件夹中。
第2小题【操作步骤】步骤1:新建一个“标准EXE”工程,在窗体Form1中加入一个图片框。
按表4-4设置其相关属性。
步骤2:在打开的代码编辑窗口中,编写窗体的Click 事件代码。
参考代码:Private Sub Form Click( ) P1.Print Form1.Caption Form1.Caption=”Basic”End Sub 步骤3:按要求将文件保存至考生文件夹中。
简单应用题2.(1)在考生文件夹中有一个工程文件sjt3.vbp,窗体上有2个命令按钮、1.个水平滚动条和1个计时器,其名称分别为Command1、Command2、HScroll1和’Timed,如图3-8(a)所示。
程序运行后,按钮Command1、Command2的标题分别立即显示“开始”“停止”,同时把计时器的Intaval属性设置为100,Enabled 属性设置为False。
VB上机试题及答案

上机操作练习题1.某数组有20个元素,其值为随机产生的两位整数。
现要求将前10个元素与后10个元素对换。
即第1个元素与第20个元素互换,第2个数与第19个元素互换,…,第10个元素与第11个元素互换.在窗体上输出数组原来各元素的值与对换后各元素的值。
Option explicitDim a(1 to 20) as integer, I as integer,j as integer, t as integerPrivate Sub Form_Load()ShowPrint "原始数组是:”RandomizeFor i = 1 To 20a(i) = Int(Rnd *90)+ 10Print a(i);If i Mod 10 = 0 Then PrintNext iPrintPrint ”现在数组是:”For i = 1 To 10j = 21 - it = a(i):a(i)= a(j):a(j) = tNext iFor i = 1 To 20Print a(i);If i Mod 10 = 0 Then PrintNext iEnd Sub2.从数组中删除一个数。
先定义一个一维数组,大小、数组的值自定。
从键盘上输入一个数,若这个数在数组当中,就把它删除;若这个数不在数组中,提示“该数不在数组中"注意:1)如果数组中存在多个与该数相同的元素,每一个都能删除;2)能实现多次删除Private Sub Form_Load()ShowReDim a(9)As Integerm = 1Print ”原来数组为:”For i = 0 To 9a(i) = InputBox(”请输入第”&m &"个数:”)Print a(i);m = m + 1Next iPrintn = InputBox(”查找的数是:")i = 0:flag = FalseDoIf a(i) = n Thenj = i:flag = TrueFor k = j To UBound(a) - 1a(k)= a(k + 1)Next kReDim Preserve a(UBound(a) - 1)i = i - 1End Ifi = i + 1Loop While (i <= UBound(a))If flag = False ThenMsgBox n &"不在该数组中”ElsePrint ”删除”&n &"后的数组是:”For i = 0 To UBound(a)Print a(i);Next iEnd IfEnd Sub3.数组a中存放着升序排列的数据,使用array赋值,将inputbox输入的新数插入到数组中,插入后数组仍有序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上机操作练习题1.某数组有20个元素,其值为随机产生的两位整数。
现要求将前10个元素与后10个元素对换。
即第1个元素与第20个元素互换,第2个数与第19个元素互换,…,第10个元素与第11个元素互换。
在窗体上输出数组原来各元素的值与对换后各元素的值。
Option explicitDim a(1to20)asinteger,I asinteger,j as integer,ta sintegerPrivate Sub Form_Load()ShowPrint"原始数组是:"RandomizeFor i = 1 To 20a(i)=Int(Rnd* 90) + 10Print a(i);Ifi Mod 10 = 0Then PrintNext iPrintPrint "现在数组是:"Fori=1To10j = 21- it=a(i): a(i) = a(j):a(j) =tNext iFori = 1To20Print a(i);If i Mod 10= 0Then PrintNext iEnd Sub2.从数组中删除一个数。
先定义一个一维数组,大小、数组的值自定。
从键盘上输入一个数,若这个数在数组当中,就把它删除;若这个数不在数组中,提示“该数不在数组中”注意:1)如果数组中存在多个与该数相同的元素,每一个都能删除;2)能实现多次删除Private Sub Form_Load()ShowReDima(9) AsIntegerm = 1Print"原来数组为:"Fori=0 To 9a(i) = InputBox("请输入第" &m&"个数:")Printa(i);m = m + 1Next iPrintn = InputBox("查找的数是:")i = 0: flag = FalseDoIf a(i) = n Thenj = i: flag =TrueFork = j ToUBound(a) - 1a(k) = a(k + 1)Next kReDim Preserve a(UBound(a) - 1)i=i-1End Ifi = i +1Loop While(i <=UBound(a))If flag =False ThenMsgBoxn&"不在该数组中"ElsePrint "删除" & n &"后的数组是:"For i = 0ToUBound(a)Print a(i);Next iEnd IfEnd Sub3.数组a中存放着升序排列的数据,使用array赋值,将inputbox输入的新数插入到数组中,插入后数组仍有序。
注意:要求利用动态数组,能够实现多次插入PrivateSub Form_Load()Shown = 8: ReDim a(n)a= Array(5,15, 23, 52, 68,88, 90, 99)n= n +1: ReDim Preserve a(n)m=InputBox("请输入要插入的数据:")For i= 1 To n - 1Ifm<a(i) ThenExit ForNextiFor k= n Toi+1Step-1a(k) =a(k- 1)Nextka(k) =mFor i = 1 To nPrint a(i);Next iPrintEnd Sub4.6个评委为4位歌手打分,分数介于1-100之间。
去掉一个最高分,一个最低分,求出每位选手的最后得分。
将4位歌手得分从高到低排列输出,同时输出该选手的编号。
如:歌手3 95分歌手 1 87分歌手 4 80分歌手 2 70分Option Base 1Private Type geshouxuhaoAs Stringfenshu(6)As IntegerscoreAsIntegerpingjunAs IntegerEndTypeDimsinger(1 To 4) As geshouPrivateSub Command1_Click()Fori = 1 To4Forj = 1To6singer(i).fenshu(j) =Int(Rnd *100)singer(i).xuhao = "歌手"&iNextNextCall paixuEnd SubPrivate Sub paixu()Dimp As geshouFor i=1To 4For j = 1 To 5For k =j To 6Ifsinger(i).fenshu(j)> singer(i).fenshu(k) Thent= singer(i).fenshu(j)singer(i).fenshu(j) = singer(i).fenshu(k)singer(i).fenshu(k) =tEndIfNextNextNextFor i =1To4Forj= 2 To5singer(i).score=singer(i).score+ singer(i).fenshu(j) Nextsinger(i).pingjun=singer(i).score/ 4NextFor i=1 To 3Forj=i To 4If singer(i).score< singer(j).scoreThenp = singer(i):singer(i)= singer(j): singer(j) =pEnd IfNextNextFor i =1 To 4Printsinger(i).xuhao& "得分:"& singer(i).pingjunNextEnd SubPrivate Sub Form_Load()EndSub10个评委给10个选手打分Private Sub Form_Load()Shown = UBound(b)Fori= 1 To 10For j =1To10a(i,j)= Val(InputBox("请第"& j & "位评委给第" & i & "位选手打分:"))Next jNext iFor i = 1To10max=a(i, 1): sum=0min=a(i, 1):ave= 0For j = 1 To10If 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 jave= (sum -max- min) / (n - 2)b(i)= aveNext iFor i = 1 Ton- 1Forj= i+ 1 TonIf b(i) <b(j)Thent=b(i): b(i) = b(j): b(j) = tEnd IfNext jNextiPrint"选手的得分由高到低为:"For i = 1 To 10Printb(i);Next iEnd Sub5.编写函数求一元二次方程ax2+bx+c=0的解。
注意:要求考虑方程有两相等实根、两不等实根和两个虚根的情况。
DimaAsSingle, b As Single, c As SingleDim s As Singlea =InputBox("请输入a")b=InputBox("请输入b")c= InputBox("请输入c")s= b ^ 2 - 4*a * cIf s <0 ThenMsgBox("方程无解")ElseIf s = 0 ThenPrint-b/ 2 * aElsePrint((-b)+ Sqr(s)) / 2 *a&" " & ((-b)-Sqr(s)) / 2 * aEndIfEnd Sub6. 任意输入一组字符,统计出大写字母多少个,小写字母多少个,数字多少个?要求用过程实现。
Calltongji(a, n, m,o)Print"数字:"& n &Chr(13) & "小写:" &m & Chr(13) & "大写:"& oEnd SubPrivate Sub tongji(a As String,n As Integer,mAs Integer,p AsInteger)For i = 1To Len(a)If Asc(Mid(a,i,1))>47And Asc(Mid(a, i,1))<58 Thenn= n+ 1ElseIf Asc(Mid(a,i,1))> 96 AndAsc(Mid(a, i,1)) <123 Thenm = m + 1ElseIf Asc(Mid(a,i,1)) > 64 And Asc(Mid(a, i,1)) <91 Thenp =p + 1End IfNextEndSub7.随机产生一个5*5的矩阵,将主对角线和次对角线元素都置为1,并求出矩阵的四周元素之和,显示在列表框中。
Option Base 1Private Sub Form_Load()Dim a(5,5)As IntegerDims AsIntegerFori= 1To5For j=1 To 5If i =jOr i =6- j Thena(i, j) = 1Elsea(i,j) = Int(Rnd* 1000)End IfText1.Text = Text1.Text &" "& a(i,j)s= s + a(i, j)NextText1.Text =Text1.Text & vbCrLf & vbCrLfNextList1.AddItem (s)End Sub8.编写一个函数,能将字母按下列规律译成密码:A<-->Z a<-->zB<-->Y b<-->y即第1个字母与第26个字母互换,第i个字母与第(26-i+1)个字母互换。
在文本框中任意输入一个字符串,调用该函数将密码显示在另一个文本框中。
Private Sub Command1_Click()Dim s1 As Strings1 = Text1.TextText2.Text = convert(s1)End SubPrivateFunction convert(s1As String)As StringFor i = 1To Len(s1)If Asc(Mid(s1,i, 1)) <91And Asc(Mid(s1,i,1))>64Thenconvert = convert& Chr(91 -Asc(Mid(s1, i, 1)) + 64)ElseIf Asc(Mid(s1, i,1)) <123 And Asc(Mid(s1,i,1)) > 96Thenconvert = convert & Chr(123 - Asc(Mid(s1,i,1)) + 96)EndIfNextEndFunction9.编写2个函数,分别求两个正整数的最大公约数和最小公倍数,用户任意输入两个数,采用函数嵌套调用,该函数将它们在窗体显示。