2009年9月全国计算机等级考试二级笔试试卷_第1页
2009年9月全国计算机等级考试二级笔试试卷_第2页
2009年9月全国计算机等级考试二级笔试试卷_第3页
2009年9月全国计算机等级考试二级笔试试卷_第4页
2009年9月全国计算机等级考试二级笔试试卷_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2009年9月全国计算机等级考试二级笔试试卷VisualBasic语言程序设计一、选择题下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。(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)可封装B)自顶向下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)有3个关系R、S和T如下。其中关系T由关系R和S通过某种操作得到,该操作为A)选择B)投影C)交D)并(11)以下变量名中合法的是A)x2-1B)printC)str_nD)2x(12)把数学表达式表示为正确的VB表达式应该是A)(5x+3)/(2y-6)B)x*5+3/2*y-6C)(5*x+3)÷(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)Fontltalic(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)用鼠标右键单击窗体中无控件的部分,会执行窗体的FormLoad事件过程B)用鼠标左键单击窗体的标题栏,会执行窗体的Form_Click事件过程C)只载入而不显示窗体,也会执行窗体的Form_Load事件过程D)载入窗体后,每次显示该窗体时,都会执行窗体的Form_Click事件过程(19)窗体上有名称为Commandl的命令按钮和名称为Text1的文本框PrivateSubCommand1_Cliek()Text1.Text="程序设计"Text1.SetFocusEndSubPrivateSubText1_GotFocus()Text1.Text="等级考试"EndSuba=a*2NextkText1.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)Whilea>ba=a-bWendfun=aEndFunction在调试时发现函数是错误的。为使函数能产生正确的返回值,应做的修改是A)把a=a-b改为a=b-aB)把a=a-b改为a=a\bC)把Whilea>b改为Whilea<bD)把Whilea>b改为Whilea>=b(30)下列关于通用对话框CommonDialog1的叙述中,错误的是A)只要在“打开”对话框中选择了文件,并单击“打开”按钮,就可以将选中的文件打开B)使用CommonDialogl.ShowColor方法,可以显示“颜色”对话框C)CancelError属性用于控制用户单击“取消”按钮关闭对话框时,是否显示出错警告D)在显示“字体”对话框前,必须先设置CommonDialogl的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的计时器控件,其Enabled属性值是True。要求程序运行后,圆每秒向右移动100,当圆遇到Line2时则停止移动。为实现上述功能,某人把计时器的Interval属性设置为1000,并编写了如下程序:PrivateSubTimer1_Timer()Fork=Line1.X1ToLine2.X1Step100IfShape1.Left+Shape1.Width<Line2.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.Width<Line2.X1Then改为IfShape1.Left<Line2.X1Then(34)下列有关文件的叙述中,正确的是A)以Output方式打开一个不存在的文件时,系统将显示出错信息B)以Append方式打开的文件,既可以进行读操作,也可以进行写操作C)在随机文件中,每个记录的长度是固定的D)无论是顺序文件还是随机文件,其打开的语句和打开方式都是完全相同的(35)窗体如图1所示。要求程序运行时,在文本框Text1中输入一个姓氏,单击“删除”按钮(名称为Command1),则可删除列表框List1中所有该姓氏的项目。若编写以下程序来实现此功能:PrivateSubCommand1_Click()Dimn%,k%n=Len(Text1.Text)Fork=0ToList1.ListCount-1IfLeft(List1.List(k),n)=Text1.TextThenList1.RemoveltemkEndlfNextkEndSub在调试时发现,如输入“陈”,可以正确删除所有姓“陈”的项目,但输入“刘”,则只删除了“刘邦”、“刘备”两项,结果如图2所示。这说明程序不能适应所有情况,需要修改。正确的修改方案是把Fork=0ToList1.ListCount-1改为A)Fork=List1.ListCount-1To0Step-1B)Fork=0ToList1.ListCountC)Fork=1ToList1.ListCount-1D)Fork=1ToList1.LstCount二、填空题请将每空的正确答案写在[1]~[15]引序号的横线上。(1)某二叉树有5个度为2的节点及3个度为1的节点,则该二叉树中共有______个节点。(2)程序流程图中的菱形框表示的是______。(3)软件开发过程主要分为需求分析、设计、编码与测试4个阶段,其中______阶段产生“软件需求规格说明书”。(4)在数据库技术中,实体集之间的联系可以是一对一或一对多或多对多的,那么“学生”和“可选课程”的联系为______。(5)人员基本信启、一般包括身份证号、姓名、性别、年龄等。其中可以作为主关键字的是______。(6)工程中有Form1、Form2两个窗体,Form1窗体外观如图1所示。程序运行时,在Form1中名称为Text1的文本框中输入______个数值(圆的半径),然后单击命令按钮“计算并显示”(其名称为Command1),则显示Form2窗体,且根据输入的圆的半径计算圆的面积,并在Form2的窗体上显示出来,如图2所示。如果单击命令按钮时,文本框中输入的不是数值,则用信息框显示“请输入数值数据!”,请填空。PrivateSubCommand1_Click()IfText1.Text=""ThenMsgBox"请输入半径!"ElseIfNotIsNumeric([6])ThenMsgBox"请输入数值数据!"Elser=Val([7])Form2.Show[8].Print"圆的面积是"&3.14*r*rEndIfEndSub(7)设有整型变量s,取值范围为0~100,表示学生的成绩。有如下程序段:Ifs>=90ThenLeve1="A"ElseIfs>=75ThenLeve1="B"ElseIfs>=60ThenLeve1="C"ElseLeve1="D"EndIf下面用SelectCase结构改写上述程序,使两段程序所实现的功能完全相同,请填空。SelectCasesCase[9]>=90Leve1="A"Case75To89Leve1="B"Case60To74Leve1="C"Case[10]Leve1="D"[11](8)窗体上有名称为Command1的命令按钮。事件过程及2个函数过程如下:PrivateSubCommand1_Click()DimxAsInteger,yA8Integer,zX=3y=5z=fy(y)Printfx(fx(x)),yEndSubFunctionfx(ByValaAsInteger)a=a+afx=aEndFunctionFunctionfy(ByRefaAsInteger)a=a+afy=aEndFunction运行程序并单击命令按钮,则窗体上显示的两个值依次是[12]和[13]。(9)窗体上有名称为Command1的命令按钮及名称为Text1、能显示多行文本的文本框。程序运行后,如果单击命令按钮,则可打开磁盘文件c:\test.txt,并将文件中的内容(多行文本)显示在文本框中。下面是实现此功能的程序,请填空。PrivateSubCommand1_Click()Text1=""Number=FreeFileOpen"c:\test.txt"ForInputAsNumberDoWhileNotEOF([14])LineInput#Number,sText1.Text=Text1.Text+[15]+Chr(13)+Chr(10)LoopCloseNumberEndSub2009年9月笔试试卷参考答案及解析一、选择题(1)C[解析]根据数据结构中各数据元素之间前后关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。线性结构表示数据元素之间为一对一的关系,非线性结构表示数据元素之间为一对多或者多对一的关系。根据各种结构的定义可知二叉树是一种非线性结构。(2)B[解析]栈是限定只在一端进行插入与删除的线性表,通常称插入、删除的这一端为“栈顶”,另一端为“栈底”。栈顶元素总是后被插入的元素,也是最先被删除的元素;栈底元素总是最先被插入的元素,也是最后才能被删除的元素。栈是按照“先进后出”或“后进先出”的原则组织数据的。(3)D[解析]循环队列是将顺序队列首尾相连形成的,随着插入元素或删除元素的进行,其队头指针及队尾指针是在不断变化的,有时可能会出现队头指针大于队尾指针的情况,也可能是队尾指针大于队头指针,故答案为D)。(4)A[解析]算法的空间复杂度是指:算法执行过程中所需的存储空间。一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间及算法执行过程中所需要的额外空间。(5)B[解析]模块划分应考虑的因素包括模块之间的耦合和内聚。一般来说,要求模块之间的耦合尽可能得低,即模块尽可能独立,要求模块的内聚程度尽可能得高,即遵循高内聚、低耦合的原则。(6)A[解析]模块化、自顶向下、逐步求精都是结构化程序设计的原则;可封装是面向对象程序设计的原则。(7)C[解析]N-S图是由若干基本框图构成的流程图,其特点是没有流程线;PAD图即问题分析图(ProblemAnalysisDiagram),它是一种由左往右展开的二维树型结构;程序流程图用于描述问题解决的过程和步骤,其中方框表示处理步骤,菱形框表示逻辑判断,箭头表示控制流向;E-R图即实体-联系图(EntityRelationshipDiagram),用来描述现实世界的概念模型,构成元素有实体、属性和联系,分别用矩形、椭圆形和菱形表示。本题答案为C)。(8)B[解析]数据库管理系统是指位于用户与操作系统之间的数据管理软件。数据库管理系统是为数据库建立、使用和维护而配置的软件。(9)C[解析]E-R图中用矩形表示实体(等同于表),用椭圆形表示实体的属性(等同于表中字段),用菱形表示实体关系(等同于外键)。(10)D[解析]两个相同结构关系的并是由属于这两个关系的元组组成的集合。(11)C[解析]变量命名应遵循以下规则:①名字只能由字母、数字和下画线组成;②名字的第一个字符必须是英文字母,最后一个字符可以是类型说明符;③名字的有效字符为255个;④不能用VisualBasic的保留字作变量名,但可以把保留字嵌入变量名中;同时,变量名也不能是末尾带有类型说明符的保留字。变量名字中不应该出现“—”符号,所以A)选项错误;print是VisualBasic中的保留字,所以B)选项也不符合变量命名规则;选项D)中2x的第一个字符不是英文字母,所以也不符合变量命名规则。(12)D[解析]VB中的数乘应用“*”来连接,浮点除法用“/”连接。选项A)中应该将5x、2y改成5*x和2*y;选项B)中5*x+3是一个整体被除数,所以应该用小括号,否则整个表达式的运算优先级顺序将改变;选项C)中两个表达式间应该用“/”连接。(13)A[解析]模块有窗体模块、标准模块和类模块3种类型,其中标准模块可以包含类型、常数、变量、外部过程和公共过程的公共的或模块级的声明,其文件扩展名为.bas。标准模块中可以引用窗体但不包含窗体,所以A)选项错误。(14)C[解析]组合框含有Name、Height、Width、Top、Left、Enabled、Visible、Index、List、ListIndex、ListCount、Selected、Sorted、Text、MultiSelect和Style等属性,但没有Caption属性。(15)D[解析]FontUnderline属性是表示正文字体是否带有下画线;FontBold属性是表示正文字体是否是粗体;没有FontSlope属性;FontItalic属性是表示正文字体是否是斜体。所以正确答案为D)。(16)D[解析]在鼠标单击事件过程中,Button属性值为1时代表按下鼠标左键,值为2时代表按下鼠标右键,题中所述代码中没有定义Button值,所以单击鼠标左键或者右键都能触发MouseDown事件;代码中控件名称为Click,所以答案为D)。(17)A[解析]生成某个范围内的随机整数,计算公式为:Int((上界-下界+1),Rnd+下界),题目中上界为30,下界为50,所HiE确答案为A)。(18)C[解析]当加载窗体时,系统白动触发该窗体的Load事件;当窗体成为一个活动窗口时,触发Activate事件;单击窗体空白处时,会触发窗体Click事件;选项A)触发的是Form_Click事件;选项B)用鼠标左键单击窗体的标题栏,不会触发Form_Click事件过程;选项D)触发的是Form_Activate事件过程。所以正确答案为C)。(19)B[解析]运行程序后单击命令按钮,首先执行命令按钮Command1_Click代码的内容,即Text1文本框获得焦点并显示内容“程序设计”;当文本框获得焦点后,程序执行文本框的Text1_GetFocus事件代码,即文本框显示内容“等级考试”,覆盖了原来文本框的内容,同时文本框获得焦点。(20)C[解析]在If语句中,如果省略其判断条件,则默认为True时,Then后面的语句成立,所以选项A)的形式与题目语句等价;Option1的默认属性为Value,所以选项B)中的Option1=True与题中语句Option1.Value=True等价;同理,选项D)省略了If语句判断条件及Option1的默认属性,也是与原语句等价的。(21)A[解析]因为Max<Min,最大值将被置于水平滚动条的最左端,所以在程序运行时水平滚动条左边为100,右边为1,滚动条向左移动,滚动条的Value属性值就增加,所以正确答案为A)。(22)C[解析]由题意可知,numa是静态变量,所以3次调用过程该变量值是累加的,而numb是动态变量,每次调用过程,该变量值都被初始化为0,所以3次调用该过程后输出的结果是6和1。(23)A[解析]题中所述程序是一个初值为5,步长为-0.8,终值为1的循环过程。第一次执行时,循环变量i=5,PrintInt(i)的输出结果为在窗体上打印数字5,其中Int()函数取不大于i的最大整数;第2次循环,i=4.2,输出结果为4;第3次、第4次输出结果分别为3和2;第5次循环,i=1.8,输出结果为1;第6次循环,i=1,输出结果为1。第6次循环后跳出循环,整个程序结束。(24)B[解析]当m=1时,如果n=1,满足条件m=n,执行Then语句a(1,1)=m+n=2;当n=2时,不满足If语句中的条件,执行Else语句a(1,2)=0;当n=3时,满足If条件n=4-m,执行Then语句a(1,3)=m+n=4。同理可得,当m=2时,得到的结果为0,4,0;当m=3时,结果为4,0,6。(25)B[解析]题中所述函数过程中,If语句用来保证数a大于数b,如果数a小于数b,则将两者的值交换。取模运算符Mod用来求余数,即结果是数c整除数b所得的余数。c等于a值的累加,其值在逐步增大,c当然能整除a;而循环结束的条件为c是否能整除b,当刚好整除时跳出循环体,所以c的值能整除a和b的最小值,因此DoLoop循环语句运行的结果为a和b的最小公倍数。(26)C[解析]flag变量为静态变量;第1次执行Timer1_Timer事件过程,flag=-1,文本框为绿色;第2次执行Timer1_Timer事件过程,flag=1,文本框为红色;第3次执行Timer1_Timer事件过程,flaq=-1,文本框为绿色;依次类推,每执行一次,文本框的颜色变换一次,时间间隔为5秒,所以正确答案为C)。(27)D[解析]根据题意,最初的算术表达式是从20累加到210,即一共有11项相加,s的初值为1(即20)因此还要循环累加10,所以应将循环变量k的值改为从1~10;另外,循环体中s的作用就是累加,以s=1为例,应该是先累加s,再累乘改变a的值,所以要将s=s+a和a=a*2的语句交换顺序。只有同时修改上述两项,即选项B)和选项C)所示时,才能得到正确结果,所以选择答案D)。(28)B[解析]按照局部变量覆盖全局变量的原则,Command1_Click中的x变量为局部变量,其初值为0;y变量为全局变量,其初值为20,x、y均加100得到答案B)。(29)D[解析]当a=b时,余数应该为0,而不是a,程序执行结果会跳出循环使fun=a,应该继续循环,正确答案为D)。(30)A[解析]“打开”对话框的功能是由用户从目录中选择一个将要打开的文件,但“打开”对话框并不能真正打开一个文件,它只提供了一个打开文件的用户界面,供用户选择所要打开的文件,所以正确答案为A)。(31)B[解析]如果在菜单标题的某个字母前加一个“&”符号,那么该字母就成了热键字母,并且在窗体上显示时,该字母有下画线;在操作时同时按“Alt"键和该字母,就可以选择这个菜单选项,所以正确答案为B)。(32)D[解析]题目中程序是将ss字符串进行反向排列,并放到m中去。其中Number空格后的100被当成字符串来处理,最后结果是将“Number100”反向排列,并通过UCase()(33)B[解析]Timer1中用了一个循环,只要圆没有到最右边的直线Line2处,这个圆就会一直向右移动。但因为Timer1中本来已经通过设置Interval属性来控制循环,Timer事件中的循环重复了,所以答案为B)。(34)C[解析]以Output模式打开文件时,如果文件名指定的文件不存在,则会自动建立一个文件,系统不会显示错误信息,所以选项A)是错误的;以Append模式打开文件时,是从文件当前结束开始写入数据,且保留原有数据,但是不能读数据,所以选项B)是错误的;随机文件是以记录为单位,有一组固定长度的记录顺序排列而成,并且给每个记录赋予了记录号以便查找,所以选项C)是正确的;随机文件和顺序文件的打开语句和打开方式是不同的,所以选项D)是错误的。(35)A[解析]错误原因:每一次删除列表框满足项,列表框的项目数目就会相应地减少,所以就出现了漏删内容。如果把循环变量k改成从List1.ListCout-1到0,从最后一个项目往第一个项目查找,满足条件就删除该项目,那么就不会出现遗漏现象,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论