全国计算机等级考试二级VB笔试真题.docx
《全国计算机等级考试二级VB笔试真题.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级VB笔试真题.docx(21页珍藏版)》请在冰豆网上搜索。
全国计算机等级考试二级VB笔试真题
2010年3月计算机等级考试二级VB试试题
一、选择题(每小题2分,共70分)
下列各题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得到关系T的操作是
A)选择
B)投影
C)交
D)并
(11)在VB集成环境中要结束一个正在运行的工程,可单击工具栏上的一个按钮,这个按钮是
(12)设x是整型变量,与函数Ⅱf(x>0,-x,x)有相同结果的代数式是
A)|x|
B)-|x|
C)x
D)-x
(13)设窗体文件中有下面的事件过程:
PrivateSubCommand1_Click()
Dims
a%=100
Printa
EndSub
其中变量a和s的数据类型分别是
A)整型,整型
B)变体型,变体型
C)整型,变体型
D)变体型,整型
(14)下面哪个属性肯定不是框架控件的属性
A)Text
B)Caption
C)Left
D)Enabled
(15)下面不能在信息框中输出“VB”的是
A)MsgBox"VB"
B)x=MsgBox("VB")
C)MsgBox("VB")
D)CallMsgBox"VB"
(16)窗体上有一个名称为Option1的单选按钮数组,程序运行时,当单击某个单选按钮时,会调用下面的事件过程
PrivateSubOption1_C1ick(IndexAsInteger)
…
EndSub
下面关于此过程的参数Index的叙述中正确的是
A)Index为1表示单选按钮被选中,为O表示未选中
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)Form1_MouseDown
B)Win_MouseDown
C)Form_MouseDown
D)MouseDown_Form1
(21)下面正确使用动态数组的是
A)Dimarr()AsInteger
…
ReDimarr(3,5)
B)Dimarr()AsInteger
…
ReDimarr(50)AsString
C)Dimarr()
…
ReDimarr(50)AsInteger
D)Dimarr(50)AsInteger
…
ReDimarr(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=1To5
Forj=1To3
Printa(j,i);
Next
Print
Next
B)Fori=1To3
Forj=1To5
Printa(j,i);
Next
Print
Next
C)Forj=1To5
Fori=1To3
Printa(j,i);
Next
Print
Next
D)Fori=1To5
Forj=1To3
Printa(i,j);
Next
Print
Next
24)窗体上有一个Text1文本框,一个Command1命令按钮,并有以下程序
PrivateSubCommandl_Click()
Dimn
IfText1.Text<>"23456"Then
n=n+1
Print"口令输入错误"&n&"次"
EndIf
EndSub
希望程序运行时得到左图所示的效果,即:
输入口令,单击“确认口令”命令按钮,若输入的口令不是“123456”,则在窗体上显示输入错误口令的次数。
但上面的程序实际显示的是右图所示的效果,程序需要修改。
下面修改方案中正确的是
A)在Dimn语句的下面添加一句:
n=O
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)计算二的近似值的一个公式是
。
某人编写下面的程序用此公式计算并输出π的近似值:
PrivateSubComand1_Click()
PI=1
Sign=1
n=20000
Fork=3Ton
Sign=-Sign/k
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)下面程序计算并输出的是
PrivateSubComand1_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
Dimarr(5)Asrec
则下面的输出语句中正确的是
A)Printarr.Code
(2),arr.Caption
(2)
B)Printarr.Code,arr.Caption
C)Printarr
(2).Code,arr
(2).Caption
D)PrintCode
(2),Caption
(2)
(29)设窗体上有一个通用对话框控件CD1,希望在执行下面程序时,打开如图所示的文件对话框
PrivateSubComand1_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,则输出结果是
PrivateSubComand1_Click()
Dimx%
x=InputBox("请输入一个3位整数")
PrintxMod10,x\100,(xMod100)\10
EndSub
A)395
B)539
C)593
D)359
(31)窗体上有List1、List2两个列表框,List1中有若干列表项(见图),并有下面的程序:
PrivateSubComand1_Click()
Fork=List1.ListCount-1To0Step-1
IfList1.Selected(k)Then
List2.AddItemList1.List(k)
List1.RemoveItemk
EndIf
Nextk
EndSub
程序运行时,按照图示在List1中选中2个列表项,然后单击Commandl命令按钮,则产生的结果是
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
程序运行时发现刚输入口令时就隐藏了Form1,显示了Form2,程序需要修改。
下面修改方案中正确的是
A)把Form1中Text1文本框及相关程序放到Form2窗体中
B)把Form1.Hide、Form2.Show两行移到2个EndIf之间
C)把IfKeyAscii=13Then改为IfKeyAscii="Teaeher"Then
D)把2个Form2.input.Visible中的“Form2”删去
(33)某人编写了下面的程序,希望能把Text1文本框中的内容写到out.txt文件中
PrivateSubComand1_Click()
Open"out.txt"ForOutputAs#2
Print"Text1"
Close#2
EndSub
调试时发现没有达到目的,为实现上述目的,应做的修改是
A)把Print"Text1"改为Print#2,Text1
B)把Print"Text1"改为PrintText1
C)把Print"Text1"改为Write"Text1"
D)把所有#2改为#1
(34)窗体上有一个名为Command1的命令按钮,并有下面的程序:
PrivateSubComand1_Click()
Dimarr(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)
t=a(j):
a(j)=a(j+1):
a(j+1)=t
EndIf
Nextj
Nexti
EndSub
程序运行时,单击命令按钮后显示的是
A)12345
B)54321
C)01234
D)43210
(35)下面程序运行时,若输入“VisualBasicProgramming”,则在窗体上输出的是
PrivateSubComand1_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
m=count(k)
EndIf
Nextk
Printm
EndSub
A)0
B)1
C)2
D)3
二、填空题
(1)一个队列的初始状态为空。
现将元素A,B,C,D,E,F,5,4,3,2,1依次入队,然后再依次退队,则元素退队的顺序为【1】。
(2)设某循环队列的容量为50,如果头指针front=45(指向队头元素的前一位置),尾指针rear=10(指向队尾元素),则该循环队列中共有【2】个元素。
(3)设二叉树如下:
对该二叉树进行后序遍历的结果为【3】。
(4)软件是【4】、数据和文档的集合。
(5)有一个学生选课的关系,其中学生的关系模式为:
学生(学号,姓名,班级,年龄),课程的关系模式为:
课程(课号,课程名,学时),其中两个关系模式的键分别是学号和课号,则关系模式选课可定义为:
选课(学号,【5】,成绩)。
(6)为了使复选框禁用(即呈现灰色),应把它的Value属性设置为【6】。
(7)在窗体上画一个标签、一个计时器和一个命令按钮,其名称分别为Labl1、Timer1和Command1,如图1所示。
程序运行后,如果单击命令按钮,则标签开始闪烁,每秒钟“欢迎”二字显示、消失各一次,如图2所示。
以下是实现上述功能的程序,请填空。
PrivateSubForm_Load()
Label1.Caption="欢迎"
Timer1.Enabled=False
Timer1.Interval=【7】
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)=i
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。
请填空。