二级VISUAL+BASIC真题.docx
《二级VISUAL+BASIC真题.docx》由会员分享,可在线阅读,更多相关《二级VISUAL+BASIC真题.docx(25页珍藏版)》请在冰豆网上搜索。
二级VISUAL+BASIC真题
2010年3月全国计算机等级考试二级笔试试卷
VisualBasic语言程序设计
一、选择题
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。
(1)下列叙述中正确的是
A)对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n
B)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)
C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)
D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)
(2)算法的时间复杂度是指
A)算法的执行时间B)算法所处理的数据量
C)算法程序中的语句或指令条数D)算法在执行过程中所需要的基本运算次数
(3)软件按功能可以分为:
应用软件、系统软件和支撑软件(或工具软件)。
下面属于系统软件的是
A)编辑软件B)操作系统C)教务管理系统D)浏览器
(4)软件(程序)调试的任务是
A)诊断和改正程序中的错误B)尽可能多地发现程序中的错误
C)发现并改正程序中的所有错误D)确定程序中错误的性质
(5)数据流程图(DFD图)是
A)软件概要设计的工具B)软件详细设计的工具
C)结构化方法的需求分析工具D)面向对象方法的需求分析工具
(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。
详细设计属于
A)定义阶段B)开发阶段C)维护阶段D)上述三个阶段
(7)数据库管理系统中负责数据模式定义的语言是
A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言
(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是
A)文件B)数据库C)字段D)记录
(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的
A)需求分析阶段B)逻辑设计阶段C)概念设计阶段D)物理设计阶段
(10)有两个关系R和T如下:
R
A
B
C
a
1
2
b
2
2
c
3
2
d
3
2
T
A
B
C
c
3
2
d
3
2
则由关系R得到关系T的操作是
A)选择B)投影C)交D)并
(11)在VB集成环境中要结束一个正在运行的工程,可单击工具栏上的一个按钮,这个按钮是
(12)设x是整型变量,与函数IIf(x>0,-x,x)有相同结果的代数式是
A)|x|B)-|x|C)xD)-x
(13)设窗体文件中有下面的事件过程:
PrivateSubCommand1_Click()
Dims
a%=100
Printa
EndSub
其中变量a和s的数据类型分别是
A)整型,整型B)变体型,变体型
C)整型,变体型D)变体型,整型
(14)下面哪个属性肯定不是框架控件的属性
A)TextB)Caption
C)LeftD)Enabled
(15)下面不能在信息框中输出“VB”的是
A)MsgBox"VB"B)x=MsgBox("VB")
C)MsgBox("VB")D)CallMsgBox"VB"
(16)窗体上有一个名称为Option1的单选按钮数组,程序运行时,当单击某个单选按钮时,会调用下面的事件过程
PrivateSuboption1_Click(IndexAsInteger)
…
EndSub
下面关于此过程的参数Index的叙述中正确的是
A)Index为1表示单选按钮被选中,为0表示未选中
B)Index的值可正可负
C)Index的值用来区分哪个单选按钮被选中
D)Index表示数组中单选按钮的数量
(17)设窗体中有一个文本框Text1,若在程序中执行了Text1.SetFocus,则触发
A)Text1的SetFocus事件B)Text1的GotFocus事件
C)Text1的LostFocus事件D)窗体的GotFocus事件
(18)VB中有3个键盘事件:
KeyPress、KeyDown、KeyUp,若光标在Text1文本框中,则每输入一个字母
A)这3个事件都会触发B)只触发KeyPress事件
C)只触发KeyDown、KeyUp事件D)不触发其中任何一个事件
(19)下面关于标准模块的叙述中错误的是
A)标准模块中可以声明全局变量
B)标准模块中可以包含一个SubMain过程,但此过程不能被设置为启动过程
C)标准模块中可以包含一些Public过程
D)一个工程中可以含有多个标准模块
(20)设窗体的名称为Form1,标题为Win,则窗体的MouseDown事件过程的过程名是
A)Form1MouseDownB)Win_MouseDown
C)Form_MouseDownD)MouseDown_Form1
(21)下面正确使用动态数组的是
A)Dimart()AsIntegerB)Dimarr()AsInteger
……
ReDimarr(3,5)ReDimarr(50)AsString
C)Dimarr()D)Dimarr(50)AsInteger
……
ReDimarr(50)AsIntegerReDimarr(20)
(22)下面是求最大公约数的函数的首部
Functiongcd(ByValxAsInteger,ByValyAsInteger)AsInteger
若要输出8、12、16这3个数的最大公约数,下面正确的语句是
A)Printgcd(8,12),gcd(12,16),gcd(16,8)
B)Printgcd(8,12,16)
C)Printgcd(8),gcd(12),gcd(16)
D)Printgcd(8,gcd(12,16))
(23)有下面的程序段,其功能是按图1所示的规律输出数据
Dima(3,5)AsInteger
Fori=1To3
Forj=1To5
a(i,j)=i+j
Printa(i,j);
Next
Print
Next
若要按图2所示的规律继续输出数据,则接在上述程序段后面的程序段应该是
A)Fori=iTo5B)Fori=1To3
Fori=1To3Forj=1To5
Printa(j,i);Printa(j,i);
NextNext
PrintPrint
NextNext
C)Forj=1To5D)Fori=1To5
Fori=1To3Forj=1To3
Printa(j,1);Printa(i,j);
NextNext
PrintPrint
NextNext
(24)窗体上有一个Text1文本框,一个Command1命令按钮,并有以下程序
PrivateSubCommand1_click()
Dimn
IfText1.Text<>"123456"Then
n=n+1
print"口令输入错误"&n&"次"
EndIf
EndSub
希望程序运行时得到左图所示的效果,即:
输入口令,单击“确认口令”命令按钮,若输入的口令不是“123456”,则在窗体上显示输入错误口令的次数。
但上面的程序实际显示的是右图所示的效果,程序需要修改。
下面修改方案中正确的是
A)在Dimn语句的下面添加一句:
n=0
B)把Print"口令输入错误"&n&"次"改为Print"口令输入错误"+n+"次"
C)把Print"口令输入错误"&n&"次"改为Print"口令输入错误"&Str(n)&"次"
D)把Dimn改为Staticn
(25)要求当鼠标在图片框P1中移动时,立即在图片框中显示鼠标的位置坐标。
下面能正确实现上述功能的事件过程是
A)PrivateSubP1_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
PrintX,Y
EndSub
B)PrivateSubP1_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
Picture.PrintX,Y
EndSub
C)PrivateSubP1_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
P1.PrintX,Y
EndSub
D)PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,xAsSingle,YAsSingle)
P1.PrintX,Y
EndSub
(26)计算霄的近似值的一个公式是
。
某人编写下面的程序用此公式计算并输出π的近似值:
PrivateSubCommand1_Click()
PI=1
Sign=1
n=20000
Fork=3Ton
sign=-sign
PI=PI+sign/k
Nextk
PrintPI*4
Endsub
运行后发现结果为3.22751,显然,程序需要修改。
下面修改方案中正确的是
A)把Fork=3Ton改为Fork=1Ton
B)把n=20000改为n=20000000
C)把Fork=3Ton改为Fork=3TonStep2
D)把PI=1改为PI=0
(27)下面程序计算并输出的是
PrivateSubCommand1_Click()
a=10
s=0
Do
s=s+a*a*a
a=a-1
Loopuntila<=0
Prints
Endsub
A)13+23+33+…103的值B)10!
+…+3!
+2!
+1!
的值
C)(1+2+3+…+10)3的值D)10个103的和
(28)若在窗体模块的声明部分声明了如下自定义类型和数组
PrivateTyperec
CodeAsInteger
CaptionAsString
EndType
Dimart(5)Asrec
则下面的输出语句中正确的是
A)Printarr.Code
(2),arr.Caption
(2)B)Printarr.Code,arr.Caption
C)Printarr
(2).Code,arr
(2).CaptionD)PrintCode
(2),Caption
(2)
(29)设窗体上有一个通用对话框控件CD1,希望在执行下面程序时,打开如图所示的文件对话框
PrivateSubCommand1_Click()
CD1.DialogTitle="打开文件"
CD1.InitDir="C:
\"
CD1.Filter="所有文件|*.*||Word文档|*.doc|文本文件|*.txt"
CD1.FileName=""
CD1.Action=1
IfCD1.FileName=""Then
Print"未打开文件"
Else
Print"要打开文件"&CD1.FileName
EndIf
EndSub
但实际显示的对话框中列出了C:
\下的所有文件和文件夹,“文件类型”一栏中显示的是“所有文件”。
下面的修改方案中正确的是
A)把CD1.Action=1改为CD1.Action=2
B)把"CD1.Filter="后面字符串中的“所有文件”改为“文本文件”
C)在语句CD1.Action=1的前面添加:
CD1.FilterIndex=3
D)把CD1.FileName=""改为CD1.FileName="文本文件"
(30)下面程序运行时,若输入395,则输出结果是
Privatesubcommand1_Click()
Dimx%
x=InputBox("请输入一个3位整数")
PrintxMod10,x\100,(xMod100)\10
EndSub
A)395B)539C)593D)359
(31)窗体上有List1、List2两个列表框,List1中有若干列表项(见图),并有下面的程序:
PrivatesubCommand1_Click()
Fork=List1.ListCoum-1To0step-1
IfList1.Selected(k)Then
List2.AddItemList1.List(k)
List1.RemoveItemk
EndIf
Nextk
EndSub
程序运行时,按照图示在List1中选中2个列表项,然后单击Command1命令按钮,则产生的结果是
A)在List2中插入了“外语”、“物理”两项
B)在List1中删除了“外语”、“物理”两项
C)同时产生A)和B)的结果
D)把List1中最后1个列表项删除并插入到List2中
(32)设工程中有2个窗体:
Form1、Form2,Form1为启动窗体。
Form2中有菜单,其结构如表。
要求在程序运行时,在Form1的文本框Text1中输入口令并按回车键(回车键的ASCII码为13)后,隐藏Form1,显示Form2。
若口令为"Teacher",所有菜单项都可见;否则看不到"成绩录入"菜单项。
为此,某人在Form1窗体文件中编写如下程序:
PrivateSubText1_KeyPress(KeyAsciiAsInteger)
IfKeyAscii=13Then
IfText1.Text="Teacher"Then
Form2.input.Visible=True
Else
Form2.input.Visible=False
EndIf
EndIf
Form1.Hide
Form2.Show
EndSub
菜单结构
标题
名称
级别
成绩管理
mark
1
成绩查询
query
2
成绩录入
input
2
程序运行时发现刚输入口令时就隐藏了Form1,显示了Form2,程序需要修改。
下面修改方案中正确的是
A)把Form1中Text1文本框及相关程序放到Form2窗体中
B)把Form1.Hide、Form2.Show两行移到2个EndIf之间
C)把IfKeyAscii=13Then改为IfKeyAscii="Teacher"Then
D)把2个Form2.input.Visible中的"Form2."删去
(33)某人编写了下面的程序,希望能把Text1文本框中的内容写到out.txt文件中
PrivateSubCommand1_Click()
Open"out.txt"ForOutputAs
Print"Text1"
Close#2
Endsub
调试时发现没有达到目的,为实现上述目的,应做的修改是
A)把Print"Text1"改为Print#2,Text1B)把Print"Text1"改为PrintText1
C)把Print"Text1"改为Write"Text1"D)把所有#2改为#1
(34)窗体上有一个名为Command1的命令按钮,并有下面的程序:
PrivateSubCommand1_Click()
Dimart(5)AsInteger
Fork=1To5
arr(k)=k
Nextk
progarr()
Fork=1To5
Printarr(k);
Nextk
Endsub
Subprog(a()AsInteger)
n=UBound(a)
Fori=nTo2step-1
Forj=1Ton-1
ifa(j)<a(j+1)Then
t=a(j):
a(j)=a(j+1):
a(j+1)=t
EndIf
Nextj
Nexti
Endsub
程序运行时,单击命令按钮后显示的是
A)12345B)54321C)01234D)43210
(35)下面程序运行时,若输入“VisualBasicProgramming”,则在窗体上输出的是
PrivateSubCommand1_Click()
Dimcount(25)AsInteger,chAsString
ch=UCase(InputBox("请输入字母字符串"))
Fork=1ToLen(ch)
n=Asc(Mid(ch,k,1))-Asc("A")
Ifn>=0Then
count(n)=count(n)+1
EndIf
Nextk
m=count(0)
Fork=1To25
Ifm<count(k)Then
m=count(k)
EndIf
Nextk
Printm
Endsub
A)0B)1C)2D)3
二、填空题
(1)一个队列的初始状态为空。
现将元素A,B,C,D,E,F,5,4,3,2,1依次入队,然后再依次退队,则元素退队的顺序为______。
(2)设某循环队列的容量为50,如果头指针front=45(指向队头元素的前一位置),尾指针rear=10(指向队尾元素),则该循环队列中共有______个元素。
(3)设二叉树如下:
对该二叉树进行后序遍历的结果为______。
(4)软件是______、数据和文档的集合。
(5)有一个学生选课的关系,其中学生的关系模式为:
学生(学号,姓名,班级,年龄),课程的关系模式为:
课程(课号,课程名,学时),其中两个关系模式的键分别是学号和课号,则关系模式选课可定义为:
选课(学号,______,成绩)。
(6)为了使复选框禁用(即呈现灰色),应把它的Value属性设置为______。
(7)在窗体上画一个标签、一个计时器和一个命令按钮,其名称分别为Label1、Timer1和Command1,如图1所示。
程序运行后,如果单击命令按钮,则标签开始闪烁,每秒钟“欢迎”二字显示、消失各一次,如图2所示。
以下是实现上述功能的程序,请填空。
PrivateSubForm_Load()
Label1.Caption="欢迎"
Timer1.Enabled=False
Timer1.Interval:
__[7]___
Command1.Caption="开始闪烁"
Endsub
PrivateSubTimer1_Timer()
Label1.visible=[8]
Endsub
PrivateSubCommand1_Click()
[9]
Endsub
(8)有如下程序:
PrivateSubForm_Click()
n=10
i=0
Do
i=i+n
n=n-2
Loopwhilen>2
Printi
Endsub
程序运行后,单击窗体,输出结果为[10]。
(9)在窗体上画一个名称为Command1的命令按钮。
然后编写如下程序:
OptionBase1
PrivateSubCommand1_click()
Dima(10)AsInteger
Fori=1To10
a(i)=1
Next
callswap([11])
Fori=1To10
Printa(i);
Next
Endsub
Subswap(b()AsInteger)
n=UBound(b)
Fori=1Ton/2
t=b(i)
b(i)=b(n)
b(n)=t
[12]
Next
Endsub
上述程序的功能是,通过调用过程swap,调换数组中数值的存放位置,即a
(1)与a(10)的值互换,a
(2)与a(9)的值互换,……。
请填空。
(10)在窗体上画一个文本框,其名称为Text1,在属性窗口中把该文本框的MultiLine属性设置为True,然后
编写如下的事件过程:
PrivatesubForm_Click()
Open"d:
\test\smtext1.txt"ForInputAs#1
DoWhileNot[13]
LineInput#1,aspect$
whole$=whole$+aspect$+Chr$(13)+Chr$(10)
Loop
Text1.Text=whole$
[14]
Open"d:
\test\smtext2.txt"ForOutputAs#1
Print#1,[15]
Close#1
Endsub
运行程序,单击窗体,将把磁盘文件smtext1.txt的内容读到内存并在文本框中显示出来,然后把该文本框中的内容存入磁盘文件smtext2.txt。
请填空。
2010年3月笔试试卷
一、选择题
(1)A)[解析]对长度为n的有序链表进行查找,最坏情况是从最小值开始查找最大值(或从最大值开始查找最小值),这个过程需要比较的次数为n,故选项A)正确。
对分查找只能针对随机存取的有序表进行,而有序链表只能进行顺序存取,不能进行随机存取,在有序链表上不能进行对分查找,故B)、C)、D)选项都错误。
(2)D)[解析]算法的时间复杂度是指算法需要消耗的时间资源,是独立于机器的,选项D)正确;相同的算法在不同的机器上运行时间可能不同,选项A)错误;算法所处理的数据量与算法无关,选项B)错误;程序的长短与程序执行时需要消耗的时间资源没有必然的关系,比如一个条件语句可以很长,但只需判断一次,而一个循环语句可能只有几行,但可以执行很多次,故选项c)错误。
(3)B)[解析]编辑软件、教务管理软件属于应用软件,操作系统属于系统软件,浏览器属于支撑软件,故本题答案选B。
(4)A)[解析]软件调试的任务是诊断和改正程序中的错误,本题正确答案为A)。
其他三项描述不正确,选项B)描述不全面,选项C)描述太绝对,选项D)描述不符合定义。
(5)C)[解析]数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程。
软件结构图是软件概要设计的工具,而详细设计是对概要设计的每个模块进行细化,UML是面向对象的需求分析的工具。