您现在的位置: NCRE100 -> 历年真题 -> 二级真题 -> Visual Basic

2010年3月全国计算机等级考试二级VB笔试试卷与答案

来源:NCRE100 作者:NCRE100 发布时间:2014-06-17 21:13:02
2010年3月全国计算机等级考试二级笔试试卷
Visual Basic语言程序设计
(考试时间90 分钟,满分100分)
 
一、选择题(每题2分,共70分)
(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如下:
< xmlnamespace prefix ="v" ns ="urn:schemas-microsoft-com:vml" /> < xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />
 
  则由关系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)<a(j+1)Then
  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<count(k)Then
  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。请填空。
 
 
2010年3月全国计算机等级考试二级VB笔试试卷答案
 
选择题
1-5ADBAC
6-10BADBA
11(D)12(B)13(C)14(A)15(D)
16(C)17(B)18(A)19(B)20(A)
21(A)22(D)23(A)24(D)25(C)
26(C)27(A)28(C)29(C)30(B)
31(C)32(B)33(A)34(B)35(D)
 
 
填空题
(1)A,B,C,D,E,F,5,4,3,2,1
(2)15
(3)EDBGHFCA
(4)程序
(5)课号
(6)【6】2
(7)[7]500
(8)[8]Notlabel1.visible
(9)[9]Timer1.Enabled=Ture
(10)[10]28
(11)[11]a()或a
(12)[12]n=n-1
(13)[13]EOF(1)
(14)[14]Close#1
(15)[15]Text1.Text或text1
关于我们付款方式广告联系合作联系教师合作网站地图网站声明友情链接考试论坛帮助中心
全国计算机等级考试NCRE100门户网站 www.ncre100.com 客服QQ:279206599
NCRE100是一家公益网站,为广大考试提供考试信息服务 NCRE100版权所有 ? 2004-2014 Ncre100.com 京ICP备13021823-3号
扫描关注微信