2009年9月全国计算机等级考试二级VB真题一、选择题(每题2分,共70分)(1)下列数据结构中,属于非线性结构的是A)循环队列B)带链队列C)二叉树D)带链栈(2)下列数据结果中,能够按照“先进后出”原则存取数据的是A)循环队列B)栈C)队列D)二叉树(3)对于循环队列,下列叙述中正确的是A)队头指针是固定不变的B)队头指针一定大于队尾指针C)队头指针一定小于队尾指针D)队头指针可以大于队尾指针,也可以小于队尾指针(4)算法的空间复杂度是指A)算法在执行过程中所需要的计算机存储空间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的临时工作单元数(5)软件设计中划分模块的一个准则是A)低内聚低耦合B)高内聚低耦合C)低内聚高耦合D)高内聚高耦合(6)下列选项中不属于结构化程序设计原则的是A)可封装D)自顶向下C)模块化D)逐步求精(7)软件详细设计产生的图如下:该图是A)N-S图B)PAD图C)程序流程图D)E-R图(8)数据库管理系统是A)操作系统的一部分B)在操作系统支持下的系统软件C)一种编译系统D)一种操作系统(9)在E-R图中,用来表示实体联系的图形是A)椭圆图B)矩形C)菱形D)三角形(10)有三个关系R,S和T如下:其中关系T由关系R和S通过某种操作得到,该操作为A)选择B)投影C)交D)并(11)以下变量名中合法的是A)x2-1B)printC)str_nD)2x(12)把数学表达式图1表示为正确的VB表达式应该是A)(5x+3)/(2y-6)B)x*5+3/2*y-6C)(5*x+3)l图2(2*y-6)D)(x*5+3)/(y*2-6)(13)下面有关标准模块的叙述中,错误的是A)标准模块不完全由代码组成,还可以有窗体B)标准模块中的Private过程不能被工程中的其他模块调用C)标准模块的文件扩展名为.basD)标准模块中的全局变量可以被工程中的任何模块引用(14)下面控件中,没有Caption属性的是A)复选框B)单选按钮C)组合框D)框架(15)用来设置文字字体是否斜体的属性是A)FontUnderlineB)FontBoldC)FontSlopeD)FontItalic(16)若看到程序中有以下事件过程,则可以肯定的是,当程序运行时PrivateSubClick_MouseDown(ButtonAsInteger,_ShiftAsInteger,XAsSingle,YAsSingle)Print“VBProgram”EndSubA)用鼠标左键单击名称为“Command1”的命令按钮时,执行此过程B)用鼠标左键单击名称为“MouseDown”的命令按钮时,执行此过程C)用鼠标左键单击名称为“MouseDown”的控件时,执行此过程D)用鼠标左键或右键单击名称为“Click”的控件时,执行此过程(17)可以产生30-50(含30和50)之间的随机整数的表达式是A)Int(Rnd*21+30)B)Int(Rnd*20+30)C)Int(Rnd*50-Rnd*30)D)Int(Rnd*30+50)(18)在程序运行时,下面的叙述中正确的是A)用鼠标右键单击窗体中无控件的部分,会执行窗体的Form_Load事件过程B)用鼠标左键单击窗体的标题栏,会执行窗体的Form_Click事件过程C)只装入而不显示窗体,也会执行窗体的Form_Load事件过程D)装入窗体后,每次显示该窗体时,都会执行窗体的Form_Click事件过程(19)窗体上有名称为Command1的命令按钮和名称为Text1的文本框PrivateSubCommand1_Click()Text1.Text=”程序设计”Text1.SetFocusEndSubPrivateSubText1_GotFocus()Text1.Text=”等级考试”EndSub运行以上程序,单击命令按钮后A)文本框中显示的是“程序设计”,且焦点在文本框中B)文本框中显示的是“等级考试”,且焦点在文本框中C)文本框中显示的是“程序设计”,且焦点在命令按钮上D)文本框中显示的是“等级考试”,且焦点在命令按钮上(20)设窗体上有名称为Option1的单选按钮,且程序中有语句:IfOptions.Value=TrueThen下面语句中与该语句不等价的是A)IfOption.ValueThenB)IfOption1=TrueThenC)IfValue=TrueThenD)IfOption1Then(21)设窗体上有1个水平滚动条,已经通过属性窗口把它的Max属性设置为1,Min属性设置为100。下面叙述正确的是A)程序运行时,若使滚动块向左移动,滚动条的Value属性值就增加B)程序运行时,若使滚动块向左移动,滚动条的Value属性值就减少C)由于滚动条的Max属性值下于Min属性值,程序会出错D)由于滚动条的Max属性值下于Min属性值,程序运行时滚动条的长度会缩为一点,滚动块无法移动(22)有如下过程代码:Subvar_dim()StaticnumaAsIntegerDimnumbAsIntegernuma=numa+2numb=numb+1printnuma;numbEndSub连续3次调用var_dim过程,第3次调用时的输出是A)21B)23C)61D)63(23)在窗体上画1个命令按钮,并编写如下事件过程:PrivateSubCommand1_Click()Fori=5to1step-0.8PrintInt(i);NextiEndSub运行程序,单击命令按钮,窗体上显示的内容为A)543211B)54321C)43211D)443211(24)在窗体上画1个命令按钮,并编写如下事件过程:PrivateSubCommand1_Click()Dima(3,3)Form=1To3Forn=1To3Ifn=mOrn=4-mThena(m,n)=0EndIfPrinta(m,n);NextnPrintNextmEndSub运行程序,单击命令按钮,窗体上显示的内容为A)200040006B)204040406C)230340006D)200045056(25)设有以下函数过程Functionfun(aAsInteger,bAsInteger)DimcAsIntegerIfabThenc=a:a=b:b=cEndIfc=0Doc=c+aLoopUntilcModb=0fun=cEndfunction若调用函数fun时的实际参数都是自然数,则函数返回的是A)a、b的最大公约数B)a、b的最小公倍数C)a除以b的余数D)a除以b的商的整数部分(26)窗体上有1个名称为Text1的文本框;1个名为Timer1的计时器控件,其Interval属性值为5000,Enable属性值是True。Timer1的事件过程如下:PrivateSubTimer1_Timer()StaticflagAsIntegerIfflag=0Thenflag=1flag=-flagIfflag=1ThenText1.ForeColor=&HFF&‘&HFF&为红色ElseText1.ForeColor=&HC000&‘&HC000&为绿色EndIfEndSub以下叙述正确的是A)每次执行些事件过程时,flag的初始值为0B)flag的值只可能取0或1C)程序执行后,文本框的文字每5秒改变一次颜色D)程序有逻辑错误,Else分支总也不能被执行(27)为计算1+2+22+23+24+…+210的值,并把结果显示在文本框Text1中,若编写如下事件过程:PrivateSubCommand1_Click()Dima%,s%,k%s=1a=2Fork=2To10a=a*2s=s+aNextkText1.Text=sEndSub执行此事件过程后发现结果是错误的,为能够得到正确结果,应做的修改是A)把s=1改为s=0B)把Fork=2To10改为Fork=1To10C)交换语句s=s+a和a=a*2的顺序D)同时进行B)、C)两种修改(28)标准模块中有如下程序代码:PublicxAsInteger,yAsIntegerSubvar_pub()x=10:y=20EndSub在窗体上有1个命令按钮,并有如下事件过程:PrivateSubCommand1_Click()DimxAsIntegerCallvar_pubx=x+100y=y+100Printx;yEndSub运行程序后单击命令按钮,窗体上显示的是A)100100B)100120C)110100D)110120(29)设a、b都是自然数,为求a除以b的余数,某人编写了以下函数:Functionfun(aAsInteger,bAsInteger)Whileaba=a-bWendfun=aEndFunction在调试时发现函数是错误的。为使函数能产生正确的返回值,应做的修改是A)把a=a-b改为a=b-aB)把a=a-b改为a=a\bC)把Whileab改为WhileabD)把Whileab改为Whilea=b(30)下列关于通用对话框CommonDialog1的叙述中,错误的是A)只要在“打开”对话框中选择了文件,并单击“打开”按钮,就可以将选中的文件打开B)使用CommonDialog1.ShowColor方法,可以显示“颜色”对话框C)CancelError属性用于控制用户单击“取消”按钮关闭对话框时,是否显示出错误警告D)在显示“字体”对话框前,必须先设置CommonDialog1的flags属性,否则会出错(31)在利用菜单编辑器设计菜单时,为了把组合键“Alt+X”设置为“退出(X)”菜单项的访问键,可以将该菜单项的标题设置为A)退出(X&)B)退出(&X)C)退出(X#)D)退出(#X)(32)在窗体上画1个命令按钮和1个文本框,其名称分别为Command1和Text1,再编写如下程序:DimssAsStringPrivateSubText1_KeyPress(KeyAsciiAsinteger)Ifchr(KeyAscii)””Thenss=ss+chr(KeyAscii)EndSubPrivateSubCommand1_Click()DimmAsString,iAsIntegerFori=Len(ss)To1step-1m=m+Mid(ss,i,1)NextText1.Text=Ucase(m)EndSub程序运行后,在文本框中输入“Number100”,并单击命令按钮,则文本框中显示的是A)NUMBER100B)REBMUNC)REBMUN100D)001REBMUN(33)窗体的左右两端各有1条直线,名称分别为Line1、Line2;名称为Shape1的圆靠在左边的Line1直线上(见图);另有1个名称为Timer1的计时器控件,其Enable属性值是True。要求程序运行后,圆每秒向右移动100,当圆遇到Line2时则停止移动。为实现上述功能,某人把计时器的Interval属性设置为1000,并编写了如下程序:PrivateSubTimer1_Timer()Fork=Line1.X1ToLine2.X1Step100IfShape1.Left+Shape1.WidthLine2.X1ThenShape1.Left=Shape1.Left+100EndIfNextkEndSub运行程序时发现圆立即移动到了右边的直线处,与题目要求的移动方式不符。为得到与题目要求相符的结果,下面修改方案中正确的是A)把设计器的Interval属性设置为1B)把Fork=Line1.X1ToLine2.X1Step100和Nextk两行删除C)把Fork=Line1.X1ToLine2.X1Step100改为Fork=Line2.X1ToLine1.X1Step100D)把IfShape1.Left+Shape1.WidthLine2.X1Then改为IfShape1.LeftLine2.X1Then(34)