2013秋江苏省二级VB上机真题第1套
一、改错题(14分)
【题目】
本程序的功能是生成由n(n通过InputBox函数输入)个3位升序数构成的随机数组,所谓升序数是指从高位到低位数字值依次增加的整数
(本程序界面由1个TextBox和1个CommandButton组成,所有对象均采用缺省名)
Option Explicit
Option Base 1
Private Sub Command1_Click()
Dim n as long, a() As Integer, k as Integer, p as Integer
n=InputBox(“输入数据个数;”,”升序数数组”,10)
Redim a(n)
Do
p= Int(Rnd*900)+101
If judge(p) Then
k=k+1
a(k)=p
Text1.text=Text1.text &Str(a(k))
If K Mod 5=0 Then Text1.text = Text1.text &vbcrlf
End If
Loop Until k>n
End Sub
public Function judge(n as integer) As Boolean
Dim i as integer, a(3) as integer
For i=3 To 1 Step -1
a(i)= n Mod 10
n=n\10
Next i
For i=1 to 2
If a(i)>=a(i+1) Then Exit For
Next i
judge=True
End Function
1.新建
工程
路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理
,按参考界面形式创建窗体,再从T盘根目录下的err.txt文件中将有错误的程序代码复制到代码编辑器窗口中或自行输入上述代码,改正程序中的错误。
2.改错时,不得增加或删除语句,但可适当调整语句的位置。
3.将窗体文件和工程文件分别命名为F1和P1,并保存到T盘的根目录下。
二、编程题(26分)
【题目】
编写程序,找出给定范围内所有不是素数的亏数。所谓亏数是指除本身外其所有因子之和小于自身的正整数。例如,106的因子为1、2、53,和为56,故106是亏数。(注意:凡因子和为1的即为素数)
【编程要求】
1.程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见。
2.运行程序,在”a:”文本框中输入数据范围的起始值,在”b:”文本框中输入数据范围的终止值后,单击”查找”按钮,若数据范围内存在”亏数”,则将它们按附图参考界面所示的格式输出到列
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
框中,否则在列表框中输出”指定范围内无亏数”的信息,单击”清除”按钮,将文本框与列表框清空,焦点置于”a:”文本框上
3.程序中至少应定义一个通用过程,用于求一个整数的因子和或判断其是否为”亏数”
【要求】将窗体文件和工程文件分别命名为F2和P2,并保存到T盘的根目录下
一、改错题
第15行 Loop Until k>n 改为 k=n
第17行 Private Function judge(n as integer) As Boolean 改为Byval n
第24行 If a(i)>=a(i+1) Then Exit Function 改为Exit Function
二、编程题
Option Explicit
Option Base 1
Private Sub CmdClear_Click()
Text1.Text = "": Text2.Text = ""
List1.Clear
Text1.SetFocus
End Sub
Private Sub CmdFind_Click()
Dim a As Integer, b As Integer, i As Integer
Dim st As String, flg As Boolean, sum As Integer
a = Val(Text1.Text)
b = Val(Text2.Text)
For i = a To b
flg = False: st = "": sum = 0
Call judge(i, flg, st, sum)
If flg Then
List1.AddItem i& ":" &st& "=" & sum
End If
Next i
If List1.ListCount = 9 Then List1.AddItem "指定范围内无亏数"
End Sub
Private Sub judge(n As Integer, fg As Boolean, st As String, sum As Integer)
Dim i As Integer
For i = 1 To n - 1
If n Mod i = 0 Then
sum = sum + i
st = st&i& "+"
End If
Next i
If sum < n And sum <> 1 Then
fg = True
st = Left(st, Len(st) - 1)
End If
End Sub
2013春江苏省计算机二级VB上机真题2
一、改错题
【题目】
本程序的功能是找出给定范围内因子个数最多的整数.程序界面参加下图
(本程序界面由1个ListBox、1个Label、1个TextBox和1个CommandButton组成,所有对象均采用缺省名)
Option Explicit
Option Base 1
Private Sub Command1_Click()
Dim i As integer,j as integer,m as integer,n as integer
Dim s As String, mx as integer
Dim yz() as integer,c() as integer
m=15: n=35
Redim c(m:n)
For i=m to n
s=i& ":"
Call qyz(i,yz)
c(i)=Ubound(yz)
For j=1 to Ubound(yz)
s=s &yz(j) &","
next j
s=Left(s,len(s)-1)
List1.Additem s
Next i
mx=c(1)
For i=m to n
if c(i)>mx then mx=c(i)
Next i
For i=m to n
if c(i)=mx then Text1.text=text1.text &i& ","
Next i
Text1.Text=Left(Text1.text,Len(text1.text)-1)
End Sub
Private Sub qyz(Byval n as integer,yz() as integer)
Dim i as integer,p as integer
For i=1 to n-1
if n mod i=0 then
p=p+1
Redimyz(p)
yz(p)=i
End if
next i
End Sub
1.新建工程,按参考界面形式创建窗体,再从T盘根目录下的err.txt文件中将有错误的程序代码复制到代码编辑器窗口中或自行输入上述代码,改正程序中的错误。
2.改错时,不得增加或删除语句,但可适当调整语句的位置。
3.将窗体文件和工程文件分别命名为F1和P1,并保存到T盘的根目录下。
二、编程题
【题目】
编写程序,输入一个对称数,求比该对称数大的最近的一个对称数,所以对称数是指正读与倒读都相同的整数,例如12321就是一个对称数
【编程要求】
1.程序界面参见下图,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见
2.运行程序,在“对称数n:”文本框中输入一个整数,按”运行”按钮,判断输入的数是否为对称数,如果是,则计算机下一个对称数,并显示结果,否则,显示如图所示
2012秋江苏省计算机二级VB上机真题1
改错题共三个错误
(1)s=str(i)修改为 s=cstr(i)
(2)If Mid(s,i+1,1)-Mid(s,i,1)<1 then 修改为:If Mid(s,i+1,1)-Mid(s,i,1)<=1
(3)倒数第三行的Exit For 修改为Exit Function
2012年春江苏省计算机二级VB上机考试真题1
一、改错题(14分)
【题目】
本程序的功能是在六位正整数中查找超级自恋数。如果将一个六位正整数从高位到低
位,每两位分为一组,共分为三组,三组数据的立方的和正好等于其本身,则称该六位正整数为
超级自恋数。
1 Option Explicit
2 Private Sub CmdFind_Click()
3 Dim k As Long,num()As Integer,fg As Boolean
4 Dim i As Integer,st As String
5 st=""
6 For k=100000 To 999999
7 fg=False
j Call judge(k,num,fg)
9 If fg Then
10 For i=UBound(num) To 1 Step -1
11 st=st&num(i) & "^3+"
12 Next i
13 List1.Additem Left(st,Len(st)-1) & "=" & k
14 End If
15 Next k
16 End Sub
17 Private Sub judge(n As Long,a()As Integer,fg As Boolean)
18 Dim k As Integer,nt As Long,sum As Long
19 nt=n
20 Do
21 k=k+1
22 ReDim a(k)
23 a(k)=n Mod 100
24 n=n\100
25 Loop Until n=0
26 For k=1 To UBound(a)
27 sum=sum+a(k)^3
28 Next k
29 If sum=nt Then fg=True
30 End Sub
【要求】
1.新建工程,按参考界面形式创建窗体,再从T盘根目录下的err.txt文件中将有错误的程序代码复制到代码编辑器窗口中或自行输入上述代码,改正程序中的错误。
2.改错时,不得增加或删除语句,但可适当调整语句的位置。
3.将窗体文件和工程文件分别命名为F1和P1,并保存到T盘的根目录下。
二、编程题(26分)
【题目】
编写程序,找出给定范围内所有满足以下条件的整数:该整数的平方数的各位数字之和为素数。
【编程要求】
1.程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见。
2.运行程序,在文本框"A:"中输入查找整数范围的起始值,在文本框"B:"中输入终止值后按"查找"按钮,则将符合要求的整数按参考界面的格式输出到列表框中;按"清除"按钮,将两个文本框与列表框清空,焦点置于文本框"A:"上。
3.程序中至少应定义一个通用过程,用于求一个整数各位数字之和或判断一个整数是否是素数(注意:1不是素数)。
【要求】
将窗体文件和工程文件分别命名为F2和P2,并保存到T盘的根目录下。
参考
答案
八年级地理上册填图题岩土工程勘察试题省略号的作用及举例应急救援安全知识车间5s试题及答案
一、改错题
第5行st="" 改为挪动至 For循环内,如fg=False之后
第17行Private Sub judge(n As Long,a()As Integer,fg As Boolean) 改为ByVal n
第22行ReDim a(k) 改为Redim Preserve a(k)
二、编程题
Option Explicit
Private Sub CmdFind_Click()
Dim a As Integer,b As Integer,ss As Long
Dim n As Integer,st As String,k As Integer
a=Text1: b=Text2
For n=a To b
ss=n*n
st=""
k=nsum(ss,st)
If prime(k) Then
List1.AddItem n & "^2=" &ss& ":" &st& "=" & k
End If
Next n
End Sub
Private Function nsum(n As Long,st As String) As Integer
Dim p As String,q As String,i As Integer
p=CStr(n)
For i=1 To Len(P)
q=Mid(p,i,1)
nsum=nsum+Val(q)
st=st& q & "+"
Next i
st=Left(st,Len(st)-1)
End Function
Private Function prime(n As Integer)As Boolean
Dim i As Integer
If n=1 Then Exit Function
For i=2 To Sqr(n)
If n Mod i=0 Then Exit Function
Next i
prime=True
End Function
Private Sub CmdClear_Click()
Text1="" : Text2=""
List1.Clear
Text1.SetFocus
End Sub
2011秋二级Visual Basic上机试卷
(本试卷完成时间为70分钟)
一、改错题(14分)
【题目】
本程序的功能是:找出100~999之间的回文数,且其对应的8进制数也是回文数的整数。所谓回文数,是指正读与倒读都相同的数。
1 Option Explicit
2 Private Sub Command1_Click()
3 Dim i As Integer,m As Integer
4 For i=100 To 999
5 m=d2Q(i)
6 If m And Reverse(i)Then
7 List1.AddItem CStr(i)
8 List2.AddItem CStr(m)
9 End If
10 Next i
11 End Sub
12 Private Function d2Q(n As Integer)As String
13 Dim P As Integer
14 Do
15 P=n Mod 8
16 d2Q=CStr(p) & d2Q
17 n=n\8
18 Loop Until n=0
19 End Function
20 Private Function Reverse(n As Integer)As Boolean
21 Dim i As Integer,s As String
22 s=CStr(n)
23 For i=1 To Len(s)/2
24 If Mid(S,i,1)<>Mid(S,Len(s)-i+1,1) Then Exit For
25 Next i
26 Reverse=True
27 End Function
【要求】
1.新建工程,按参考界面形式创建窗体,再从T盘根目录下的err.txt文件中将有错误的程序代码复制到代码编辑器窗口中或自行输入上述代码,改正程序中的错误。
2.改错时,不得增加或删除语句,但可适当调整语句位置。
3.将窗体文件和工程文件分别命名为F1和P1,并保存到T盘的根目录下。
二、编程题(26分)
【题目】
编写程序,求出巴都万数列(Padovan Sequence)的第n1项到第n2项中的素数数据项。巴都万数列的计算公式如下:
P=
【编程要求】
1.程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见。
2.运行程序,在两个文本框中分别输入起始项与终止项的序号后按"查找"按钮,则在多行文本框中,按每
行10个元素输出数列项数据,并在列表框中输出其中的素数数据项及其序号;按"清除"按钮,将三个文本框
与列表框清空,焦点置于第一个文本框上;按"结束"按扭,结束程序运行。
3.程序中应定义一个判断素数的通用过程。
【要求】
将窗体文件和工程文件分别命名为F2和P2,并保存到T盘的根目录下。
参考答案
一、改错题
第6行 If m And Reverse(i) Then 改为Reverse(m)
第12行 Private Function d2Q(n As Integer)As String 改为ByVal n
第24行 Exit For改为Function
二、编程题
Option Explicit
Private Sub CmdFind_Click()
Dim n1 As Integer, n2 As Integer, i As Integer
Dim k As Integer, js As Integer, st As String
n1 = Text1: n2 = Text2
For i = n1 To n2
k = Padovan(i)
st = st&Str(k)
js = js + 1
If js Mod 10 = 0 Then
st = st&vbCrLf
End If
If prime(k) Then
List1.AddItem k & "--(" &i& ")"
End If
Next i
Text3 = st
End Sub
Private Function Padovan(n As Integer) As Integer
If n = 0 Or n = 1 Or n = 2 Then
Padovan = 1
Else
Padovan = Padovan(n - 2) + Padovan(n - 3)
End If
End Function
Private Function prime(n As Integer) As Boolean
Dim iAs Integer
If n = 1 Then Exit Function
For i = 2 To Sqr(n)
If n Mod i = 0 Then Exit Function
Next i
prime = True
End Function
Private Sub CmdClear_click()
Text1 = "": Text2 = "": Text3 = ""
List1.Clear
Text1.SetFocus
End Sub
Private Sub CmdExit_click()
End
End Sub
2011春江苏省计算机二级VB上机真题2
一、改错题(14分)
【题目】
本程序的功能是:找出使用公式m^2-m+41(m=1~100)生成的一个数据序列中的所有
非素数,分别输出这些非素数的全部真因子。所谓数n的真因子是指除1和n之外的因子。
程序界面参见下图。
Option Explicit
Private Sub Command1_Click()
Dim m As Integer,p As Long
Dim st1 As String
st1=""
For m=1 To 100
p=m*m-m+41
If Not prime(p) Then
Call fac(p,st1)
List1.AddItem "第" & m & "项" & p & ":" & st1
End If
Next m
End Sub
Private Function prime(n As Long) As Boolean
Dim k As Integer
For k=2 To Sqr(n)
If n Mod k=0 Then Exit For
Next k
prime=True
End Function
Private Sub fac(n As L0ng,st As String)
Dim i As Integer
For i=2 To n\2
If n Mod i=0 Then
st=st&i& ","
End If
Next i
st=Right(st,Len(st)一1)
End Sub
【要求】
1.新建工程,输入上述代码,改正程序中的错误。
2.改错时,不得增加或删除语句,但可适当调整语句位置。
3.将窗体文件和工程文件分别命名为F1和P1,并保存到T盘的根目录下。
二、编程题(26分)
【题目】
编写程序,在一个数组中找出比第一个数组元素的值大的所有数组元素中值最小的元素。如果第一个数组元素值本身为最大数,则输出"无"。
【编程要求】
1.程序界面参见下图,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见。
2.运行程序,按"处理"按钮,则生成由10个两位随机数组成的数组并显示在文本框Text1中,找出比第一个数组元素a(1)大的最小元素输出在文本框Text2中,若没有比a(1)大的数组元素,则在Text2中输出"无";按"清除"按钮,将所有文本框清空,焦点置于"处理"按钮上;按"结束"按钮,结束程序运行。
3.程序中应定义一个通用过程,用于求一维数组中比a(1)大的最小元素。
【算法提示】
先找出所有比数组原第一个元素大的元素存入一新数组,再找出其中的最小元素即可。
【要求】
将窗体文件和工程文件分别命名为F2和P2,并保存到T盘的根目录下。