07秋VB上机.docx
《07秋VB上机.docx》由会员分享,可在线阅读,更多相关《07秋VB上机.docx(18页珍藏版)》请在冰豆网上搜索。
07秋VB上机
江苏省高等学校非计算机专业学生
计算机基础知识和应用能力等级考试上机试卷(2007秋)
二级VisualBasic语言(试卷代号VB01)
(本试卷完成时间70分钟)
【考试须知】
1.改错题的界面不作要求,主要用来调试程序,若题目中有参考界面,则仅作参考;
2.答题完成后,文件必须存放在指定位置,否则适当扣分;考试盘中若无指定文件,则不予评分;
3.程序代码应缩行书写(呈锯齿形)。
一、改错题(14分)
【题目】本程序的功能是从随机生成的由3位数组成的数组中,找出所有的升序数。
所谓升序数是指该数的各位数字自左向右,依次递增的整数,如134,278,489等。
OptionExplicit
PrivateSubCommand1_Click()
DimA(30)AsInteger,iAsInteger,kAsInteger
ForI=1To30
A(i)=Int(900*Rnd+100)
Picture1.PrintA(i);
IfiMod5=0ThenPicture1.Print
Nexti
Picture1.Print“升序数:
”
ForI=1To30
IfSX(A)Then
Picture1.PrintA(i);
K=k+1
EndIf
Nexti
Ifk=0ThenPicture1.Print“无升序数”
Picture1.Print
EndSub
PrivateFunctionSX(NAsInteger)AsBoolean
DimIAsInteger
Dimw1AsInteger,w2AsInteger
ForI=2ToLen(Str(N))
W1=Mid(N,i-1,1)
w2=Mid(N,I,1)
Ifw1>=w2ThenExitFor
Nexti
SX=True
EndFunction
【要求】
1.新建工程,输入上述代码,改正程序中的错误;
2.改错时,不得增加或删除语句,但可适当调整语句位置;
3.将窗体文件和工程文件分别命名为F1和P1,并保存到软盘A的根目录下。
二、编程题(26分)
【题目】编写一个查找介于整数A,B之间所有同构数的程序。
若一个数出现在自己平方数的右端,则称此数为同构数。
如5在52=25的右端,25在252=625的右端,故5和25为同构数。
【编程要求】
1.程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见;
2.运行程序,在文本框1与文本框2中分别输入表示查找范围的A与B的数值,按“查找”按钮,则开始查找并在列表框中显示结果;按“清除”按钮,则将文本框和列表框清空,并将焦点置于文本框1上;按“结束”按钮,结束程序运行;
3.程序中应定义一个名为pd的函数过程,用于判断一个正整数是否为同构数。
【要求】
将窗体文件和工程文件分别命名为F2和P2,并保存到软盘A的根目录下。
江苏省高等学校非计算机专业学生
计算机基础知识和应用能力等级考试上机试卷(2007秋)
二级VisualBasic语言(试卷代号VB02)
(本试卷完成时间70分钟)
【考试须知】
1.改错题的界面不作要求,主要用来调试程序,若题目中有参考界面,则仅作参考;
2.答题完成后,文件必须存放在指定位置,否则适当扣分;考试盘中若无指定文件,则不予评分;
3.程序代码应缩行书写(呈锯齿形)。
一、改错题(14分)
【题目】本程序的功能是:
将在一个字符串中的英文词汇提取出来并重组成正常的英文句子。
说明:
输入的字符串必须以非英文字符结束。
(程序界面参见右图)
OptionExplicit
OptionBase1
PrivateSubCommand1_Click()
DimstAsString,words()AsString,iAsInteger
st=LCase(Text1)
Callchoice(st,words)
st=""
Fori=1ToUBound(words)
st=st&words(i)&""
Nexti
st=st&words(i)&"."
Text2=UCase(Left(st,1))&Mid(st,2)
EndSub
PrivateSubchoice(sAsString,ws()AsString)
DimstAsString*1,iAsInteger,kAsInteger
DimPAsString
Fori=1ToLen(s)
st=Mid(s,i,1)
k=k+1
Ifst>="a"Andst<="z"Then
P=P&st
ElseIfP<>""Then
ReDimws(k)
ws(k)=P
P=""
EndIf
Nexti
EndSub
【要求】
1.新建工程,输入上述代码,改正程序中的错误;
2.改错时,不得增加或删除语句,但可适当调整语句位置;
3.将窗体文件和工程文件分别命名为Fl和P1,并保存到软盘A的根目录下。
二、编程题(26分)
【题目】编写程序,输入数据范围m、n,求出介于m、n之间所有的素数,并按每行五个素数的形式输出到多行文本框中。
【编程要求】
1.程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见;
2.运行程序,在文本框1和文本框2中分别输入m与n的值,按“运行”按钮,则开始查找并按要求格式在多行文本框3中显示结果;按“清除”按钮,将文本框清空,并将焦点置于文本框1;按“结束”按钮,结束程序运行;
3.程序中应定义一个名为prime的函数过程,用于判断一个正整数是否为素数。
【要求】
将窗体文件和工程文件分别命名为F2和P2,并保存到软盘A的根目录下。
江苏省高等学校非计算机专业学生
计算机基础知识和应用能力等级考试上机试卷(2007秋)
二级VisualBasic语言(试卷代号VB03)
(本试卷完成时间70分钟)
【考试须知】
1.改错题的界面不作要求,主要用来调试程序,若题目中有参考界面,则仅作参考;
2.答题完成后,文件必须存放在指定位置,否则适当扣分;考试盘中若无指定文件,则不予评分;
3.程序代码应缩行书写(呈锯齿形)。
一、改错题(14分)
【题目】本程序的功能是找出2~30之内的所有完数。
所谓完数是指一个数除自身以外的所有因子(1被认为是因子)的和等于该数的数。
例如6的因子是l、2、3,l+2+3=6,所以6是完数。
OptionExplicit
PrivateSubCommand1_Click()
DimstAsString,fAsBoolean
DimiAsInteger,ws()AsInteger,JAsInteger
Fori=2To30
Callwanshu(i,f,ws)
f=False
IffThen
st=CStr(i)&"="
ForJ=1ToUBound(ws)
st=st&ws(J)&"+"
NextJ
List1.AddItemst&ws(J)
EndIf
st=""
Nexti
EndSub
PrivateSubwanshu(nAsInteger,fAsBoolean,ws()AsInteger)
DimiAsInteger,kAsInteger,sumAsInteger
Fori=1Ton-1
k=k+1
IfnModi=0Then
ReDimPreservews(k)
ws(k)=i
sum=sum+i
EndIf
Nexti
Ifn=sumThenf=True
EndSub
【要求】
1.新建工程,输入上述代码,改正程序中的错误;
2.改错时,不得增加或删除语句,但可适当调整语句位置;
3.将窗体文件和工程文件分别命名为F1和P1,并保存到软盘A的根目录下。
二、编程题(26分)
【题目】编写程序,随机生成一个由两位数组成的4行5列的数组,求数组每一行的最小元素及其所在的列号。
(若一行有多个最小元素则取其中之一即可)
【编程要求】
1.程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见;
2.运行程序,按“生成数组”按钮,生成一个4行5列的两位随机整数数组,并在图片框中输出;再按“求每行最小”按钮,则调用求二维数组每行最小元素及其位置的Sub过程,求出每行最小元素及所在列号,输出到多行文本框;按“清除”按钮,则将图片框与多行文本框清空;
3.程序中应定义一个名为rowmin的通用Sub过程,用于求二维数组每行最小元素及其位置。
【要求】
将窗体文件和工程文件分别命名为F2和P2,并保存到软盘A的根目录下。
江苏省高等学校非计算机专业学生
计算机基础知识和应用能力等级考试上机试卷(2007秋)
二级VisualBasic语言(试卷代号VB04)
(本试卷完成时间70分钟)
【考试须知】
1.改错题的界面不作要求,主要用来调试程序,若题目中有参考界面,则仅作参考;
2.答题完成后,文件必须存放在指定位置,否则适当扣分;考试盘中若无指定文件,则不予评分;
3.程序代码应缩行书写(呈锯齿形)。
一、改错题(14分)
【题目】本程序的功能是。
将文本框中输入的以逗号分隔的若干数据存入一个数组;如果相邻数据的和为素数,则将其输出到列表框中。
OptionExplicit
PrivateSubCommand1_Click()
Dima()AsInteger,iAsInteger
DimkAsInteger,sAsString,stAsString
s=text1
Callchange(s,a)
Fori=1ToUBound(a)
k=a(i)+a(i+1)
Ifprime(k)Then
st=a(i)&"+"&a(i+1)&"="&k
List1.AddItemst
EndIf
Nexti
EndSub
PrivateSubchange(sAsString,a()AsInteger)
DimkAsInteger,nAsInteger
Do
n=InStr(s,",")
k=k+1
ReDimPreservea(k)
Ifn<>0Then
a(k)=Val(Left(s,n-1))
Else
a(k)=Val(s)
EndIf
s=Mid(s,n+1,Len(s)-n)
LoopUntiln<0
EndSub
PrivateFunctionprime(nAsInteger)AsBoolean
DimiAsInteger
Fori=2ToSqr(n)
IfnModi=0ThenExitFor
Nexti
prime=True
EndFunction
【要求】
1.新建工程,输入上述代码,改正程序中的错误;
2.改错时,不得增加或删除语句,但可适当调整语句位置:
3.将窗体文件和工程文件分别命名为F1和P1,并保存到软盘A的根目录下。
二、编程题(26分)
【题目】编写程序,输入整型数据范围m、n,求出介于m、n之间所有的升序数,并输出到列表框中。
所谓升序数是指组成数据的各位数字从左到右依次递增的整数。
例如135就是一个升序数。
【编程要求】
1.程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见;
2.运行程序,首先在文本框1和文本框2中分别输入m与n的值,按“运行”按钮,则开始查找符合要求的数据并在列表框中显示结果:
按“清除”按钮,则将文本框与列表框清空,焦点置于文本框1;按“结束”按钮,结束程序运行;
3.程序中应定义一个函数过程,用于判断一个正整数是否为升序数。
【要求】
将窗体文件和工程文件分别命名为F2和P2,并保存到软盘A的根目录下。
江苏省高等学校非计算机专业学生
计算机基础知识和应用能力等级考试上机试卷(2007秋)
二级VisualBasic语言(试卷代号VB05)
(本试卷完成时间70分钟)
【考试须知】
1.改错题的界面不作要求,主要用来调试程序,若题目中有参考界面,则仅作参考;
2.答题完成后,文件必须存放在指定位置,否则适当扣分:
考试盘中若无指定文件,则不予评分;
3.程序代码应缩行书写(呈锯齿形)。
一、改错题(14分)
【题目】设st1和st2是两个无重复字符的且己按字典序排序的字符串。
本程序功能是,将st1中的与st2不重复的字符插入到st2的适当位置,使得st2中的字符仍保持字典序。
PrivateSubCommand1_Click()
Dimst1AsString,st2AsString
DimiAsInteger,jAsInteger,SAsString*1,opAsInteger,KAsInteger
st1=Text1
st2=Text2
op=1
Fori=1ToLen(st1)
S=Mid(st1,i,1)
K=Fun(st2,S,op)
IfK<>0Then'将字符插入到st2中
st2=st2&""
Forj=Len(st2)ToK+1
Mid(st2,j,1)=Mid(st2,j-1,1)
Nextj
Mid(st2,K,1)=S
EndIf
Nexti
Text3=st2
EndSub
PrivateFunctionFun(StAsString,SAsString*1,PAsInteger)AsInteger
DimiAsInteger
Fori=PToLen(St)
IfSExitFor
ElseIfS=Mid(St,i,1)Then
Fun=0
ExitFor
EndIf
Nexti
Fun=i
P=i+1
EndFunction
【要求】
1.新建工程,输入上述代码,改正程序中的错误;
2.改错时,不得增加或删除语句,但可适当调整语句位置;
3.将窗体文件和工程文件分别命名为F1和P1,并保存到软盘A的根目录下。
二、编程题(26分)
【题目】编写程序,求出介于正整数A、B之间所有包含4个因子的数(因子不包括1和自身)。
【编程要求】
1.程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见;
2.运行程序,在文本框1与文本框2中分别输入A与B的数值,按“运行”按钮,开始查找,并在列表框中按参考界面格式显示查找结果(要求使用循环结构输出因子);按“清除”按钮,则将所有文本框和列表框清空,焦点置于文本框1;按“结束”按钮,结束程序运行;
3.程序中应定义一个求整数的因子(因子存于数组中)的通用Sub过程。
【要求】
将窗体文件和工程文件分别命名为F2和P2,并保存到软盘A的根目录下。
江苏省高等学校非计算机专业学生
计算机基础知识和应用能力等级考试上机试卷(2007秋)
二级VisualBasic语言(试卷代号VB06)
(本试卷完成时间70分钟)
【考试须知】
1.改错题的界面不作要求,主要用来调试程序,若题目中有参考界面,则仅作参考;
2.答题完成后,文件必须存放在指定位置,否则适当扣分:
考试盘中若无指定文件,则不予评分:
3.程序代码应缩行书写(呈锯齿形)。
一、改错题(14分)
【题目】本程序的功能是,在一个由数字和其他字符组成的字符串中,将单个或连续出现的数字作为一个子串,在其前后各插入一个“#”字符,以便与其他字符区分。
OptionExplicit
PrivateSubCommand1_Click()
DimstAsString,iAsInteger
DimPAsString,sAsString*1
st=Text1
Do
s=Mid(st,i,1)
i=i+1
Ifs>="0"Ands<="9"Then
P=P&s
ElseIfP<>""Then
Callinst(s,P,i)
P=""
EndIf
LoopUntili>=Len(st)
Text2=st
EndSub
PrivateSubinst(sAsString,PAsString,iAsInteger)
DimnAsInteger,tAsString
n=Len(P)
t=Mid(s,1,i-n-1)&"#"&P&"#"
t=t&Right(s,Len(s)-i+1)
s=t
EndSub
【要求】
1.新建工程,输入上述代码,改正程序中的错误;
2.改错时,不得增加或删除语句,但可适当调整语句位置;
3.将窗体文件和工程文件分别命名为F1和P1,并保存到软盘A的根目录下。
二、编程题(26分)
【题目】编写程序,查找介于正整数A、B之间的所有只有两个数字相同的完全平方数。
所谓完全平方数是指其平方根为整数的数。
例如676、900、1521等都是介于500~2000之间符合条件的数。
【编程要求】
1.程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见;
2.运行程序,在文本框1与文本框2中输入表示查找范围的A与B的数值,按“运行”按钮,开始查找并在列表框中显示结果;按“清除”按钮,则将所有文本框和列表框清空,并将焦点置于文本框1上;按“结束”按钮,结束程序运行;
3.程序中应定义一个名为dec的通用过程,其功能是验证组成一个数的所有数字中只能有两个数字相同。
【提示】逐个比较各位数字是否相同,并连续计数。
若计数=1(仅有两个数字相同),则符合要求。
【要求】
将窗体文件和工程文件分别命名为F2和P2,并保存到软盘A的根目录下。