2024年3月全国计算机等级考试二级笔试试卷与答案.docx
2024年3月全国计算机等级考试二级笔试试卷VisualBasic语言程序设计(考试时间90分钟,满分100分)一、选择题(每题2分,共70分)(1)下列叙述中正确的是()A)对长度为n的有序链表进行查找,最坏状况下须要比较次数为nB)对长度为n的有序链表进行对分查找,最坏状况下须要比较次数为(n2)。对长度为n的有序链表进行对分查找,最坏状况下须要的比较次数(Iog2n)D)对长度为n的有序链表进行对分查找,最坏状况下须要的比较次数(nk>g2n)(2)算法的时间困难是指()A)算法的执行时间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所须要的基本运算次数(3)软件按功能可以分为:应用软件、系统软件和支持软件(或工具软件),下面属于系统软件的是()A)编辑软件B)操作系统C)教务管理系统D)阅读器(4)软件(程序)调试的任务是()A)诊断和改正程序中的错误B)进肯能多的发觉程序中的错误。发觉并改正程序中的全部错误D)确定程序中错误的性质(5)数据流程图(DFD图)是()A)软件概要设计的工具B)软件具体设计的工具C)机构化方法的需求分析工具D)面对对象方法的需求分析工具(6)软件生命周期可以分为定义阶段,开发阶段和维护阶段。具体设计属于()A)定义阶段B)开发阶段。维护阶段D)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是A)数据定义语言B)数据管理语言O数据操纵语言D)数据限制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是A)文件B)数据库C)字段D)记录(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的A)需求分析阶段B)逻辑设计阶段O概念设计阶段D)物理设计阶段(10)有两个关系R和T如下:<XmlnameSDaCeDrefiX=Vns="urn:SChemaS-microsoft-com:VmI"><XmInan心DaCCDrefiX="o"ns="umchemas-microsoft-com:OffiCe:office">则由关系R得到关系T的操作是A)选择B)投影C)交D)并(11)在VB集成环境中要结束一个正在运行的工程,可单击工具栏上的一个按钮,这个按钮是(12)设X是整型变量,与函数IIf(X>O,-x,x)有相同结果的代数式是A)冈B) -IxIC) XD) -X(13)设窗体文件中有下面的事务过程:PrivateSubCommandl_Click()DimSa%=100PrintaEndSub其中变量a和s的数据类型分别是A)整型,整型B)变体型,变体型C)整型,变体型D)变体型,整型(14)下面哪个属性确定不是框架控件的属性A) TextB) CaptionC) 1.eftD) Enabled(15)下面不能在信息框中输出“VB”的是A) MsgBox'VB"B) X=MsgBoxCVB")C) MsgBox('rVB")D) CallMsgBox'B"(16)窗体上有一个名称为OPIiOnl的单选按钮数组,程序运行时,当单击某个单选按钮时,会调用下面的事务过程PrivateSubOptionI_C1ick(IndexAsInteger)EndSub下面关于此过程的参数Index的叙述中正确的是A)IndeX为1表示单选按钮被选中,为0表示未选中B)IndeX的值可正可负C) Index的值用来区分哪个单选按钮被选中D) IndeX表示数组中单选按钮的数量(17)设窗体中有一个文本框Texil,若在程序中执行了TeXtLSelFOCus,则触发A)Textl的SetFocus事务B)Texil的GotFocus事务C) Textl的LoStFoCUS事务D)窗体的GotFocus事务(18) VB中有3个键盘事务:KeyPressKeyDoWn、KeyUp,若光标在TeXll文本框中,则每输入一个字母A)这3个事务都会触发B)只触发KeyPress事务C)只触发KeyDoWn、KeyUP事务D)不触发其中任何一个事务(19)下面关于标准模块的叙述中错误的是A)标准模块中可以声明全局变量B)标准模块中可以包含一个SUbMain过程,但此过程不能被设置为启动过程O标准模块中可以包含一些PUbIiC过程D) 一个工程中可以含有多个标准模块(20)设窗体的名称为FOrmL标题为Win,则窗体的MOUSeDOWn事务过程的过程名是A) FonnLMoUSeDOWnB) Win_MouseDownC) Form_MouseDownD) MouseDown_Form1(21)下面正确运用动态数组的是A) Dimarr()AsIntegerReDimarr(3,5)B)Dimarr()AsIntegerReDimarr(50)AsStringC)Dimarr()ReDimarr(50)AsIntegerD)Dimarr(50)AsIntegerReDimarr(20)(22)下面是求最大公约数的函数的首部Functiongcd(ByValXAsInteger,ByValyAsInteger)AsInteger若要输出8、12、16这3个数的最大公约数,下面正确的语句是A)Printgcd(8J2),gcd(12,16),gcd(16,8)B) Printgcd(8,l2,16)C) Printgcd(8),gcd(12),gcd(16)D) Printgcd(8,gcd(12,16)(23)有下面的程序段,其功能是按图1所示的规律输出数据Dima(3,5)AsIntegerFori=lTo3Forj=ITo5A(i,j)=i+jPrinta(i,j);NextPrintNext若要按图2所示的规律接着输出数据,则接在上述程序段后面的程序段应当是A) Fori=1To5Forj=ITo3Printa(j,i);NextPrintNextB) Fori=lTo3Forj=ITo5Printa(j,i);NextPrintNextC) Forj=ITo5Fori=ITo3Printa(j,i);NextPrintNextD) Fori=lTo5Forj=ITo3Printa(ij);NextPrintNext(24)窗体上有一个TeXtl文本框,一个Commandl吩咐按钮,并有以下程序PrivateSubCommandLClick()DimnIfTextLTexto23456”Thenn=n÷lPrinl”口令输入错误"&n&"次"EndIfEndSub希望程序运行时得到左图所示的效果,即:输入口令,单击“确认口令”吩咐按钮,若输入的口令不是“123456”,则在窗体上显示输入错误口令的次数。但上面的程序实际显示的是右图所示的效果,程序须要修改。下面修改方案中正确的是A)在Dimn语句的下面添加一句:n=0B)把Prinl”口令输入错误"&n&"次"改为Print”口令输入错误"+n+"次”C)把Prinl"口令输入错误"&n&"次侦为Prinl”口令输入错误"&Slr(n)&"次"D)把Dimn改为StatiCn(25)要求当鼠标在图片框PI中移动时,马上在图片框中显示鼠标的位置坐标。下面能正的确现上述功能的事务过程是A) PrivateSubPLMoUSeMOVe(ButtonASIntegerfShiftAsInteger,XAsSingle,YAsSingle)PrintX,YEndSubB) PrivateSubPLMoUSeDoWn(ButtonASInteger,ShiftAsInteger,XAsSingle,YAsSingle)PicturePrintX,YEndSubC) PrivateSubPl.MouseMove(ButtonASInteger,ShiftAsInteger,XAsSingle,YAsSingle)PLPrintX,YEndSubD) PrivateSubForm_MouseMove(ButtonASInteger,ShiftAsInteger,XAsSingle,YAsSingle)PLPrintX,YEndSub(26)计算二的近似值的一个公式是。某人编写下面的程序用此公式计算并输出的近似值:PrivateSubComand1_Click()PI=ISign=In=20000Fork=3TonSign=-SignZkPI=PI+SignkNextkPrintPI*4EndSub运行后发觉结果为3.22751,明显,程序须要修改。下面修改方案中正确的是A)把FOrk=3Ton改为Fork=lTonB)把n=20000改为n=20000000C)把Fork=3Ton改为Fork=3TonStep2D)把Pl=I改为PI=O(27)下面程序计算并输出的是PrivateSubComand1_Click()a=10s=0Dos=s+a*a*aa=a-l1.oopUntila<=0PrintsEndSubA)l3+23+33+IO3的值B) 10!+3!+2!+l!的值C) (1+2+3+-+10)3的值D)Io个103的和(28)若在窗体模块的声明部分声明白如下自定义类型和数组PrivateTyperecCodeAsIntegerCaptionAsStringEndTypeDimarr(5)Asrec则下面的输出语句中正确的是A) Printarr.Code(2),arr.Caption(2)B) Printarr.Code,arr.CaptionC) Printarr(2).Code,arr(2).CaptionD) PrintCode(2),Caption(2)(29)设窗体上有一个通用对话框控件CDl,希望在执行下面程序时,打开如图所示的文件对话框PrivateSubComand1_Click()CDI.DialogTiUe="打开文件”CDLInitDir=TA"CDLFilter="全部文件*.*WOrd文档*doc文本文件*.Txt”CDl.FileName=,f,CDLAction=IIfCDl.FileName=",ThenPrinI”未打开文件”ElsePriIH”要打开文件"&CDLFiIeNameEndIfEndSub但实际显示的对话框中列出了C:下的全部文件和文件夹,“文件类型”一栏中显示的是“全部文件”。下面的修改方案中正确的是A)把CDLACIion=I改为CDl.Action=2B)把"CDLFilter="后面字符串中的“全部文件”改为“文本文件”C)在语句CDLACliOn=I的前面添加:CDl.FilterIndex=3D)把CDLFileName=""改为CDLFileNameH文本文件”(30)下面程序运行时,若输入395,则输出结果是PrivateSubComand1_Click()Dimx%X=InPUlBox("请输入一个3位整数。PrintXMod10,x100,(xMod100)IOEndSubA) 395B) 539C) 593D) 359(31)窗体上有Lis"、Lis2两个列表框,Listl中有若干列表项(见图),并有下面的程序:PrivateSubComand1_Click()Fork=List1.ListCount-1To0Step-1IfListLSelected(k)Then1.ist2.AddItenListLList(k)1.istLRemoveItemkEndIfNextkEndSub程序运行时,根据图示在LiSll中选中2个列表项,然后单击COmmandl吩咐按钮,则产生的结果是A)在List2中插入了“外语”、“物理”两项B)SListl中删除了“外语”、“物理”两项C)同时产生A)和B)的结果D)把Listl中最终1个列表项删除并插入到List2中(32)设工程中有2个窗体:Forml.Fornl2,Forml为启动窗体。Foml2中有菜单。其结构如表。要求在程序运行时,在FOrml的文本框TeXIl中输入口令并按回车键(回车键的ASCn码为13)后,隐藏Forml,显示FOrm2。若口令为“Teacher”,全部菜单项都可见;否则看不到“成果录入”菜单项。为此,某人在FOrnll窗体文件中编写如下程序:PrivateSubTextl_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13ThenIfTextLText=rTeacher"ThenForm2.input.Visible=TrueElseFon2.input.Visible=FalseEndIfEndIfFormLHideForm2.ShowEndSub程序运行时发觉刚输入口令时就隐藏了FOrm1,显示了FOrm2,程序须要修改。下面修改方案中正确的是A)把Forml中TeXIl文本框及相关程序放到FOrm2窗体中B)把FOmlLHide、FOml2.Show两行移到2个EndIf之间C)把IfKeyAscii=ISThen改为IfKeyAscii='Teaeher"ThenD)把2个中的“Form2”删去(33)某人编写了下面的程序,希望能把TeXlI文本框中的内容写到OUUXt文件中PrivateSubComand1_Click()Open,out.txt,rForOutputAs#2Print,Textl,Close#2EndSub调试时发觉没有达到目的,为实现上述目的,应做的修改是A)把Prinl'Texll”改为Print#2,TeXllB)把Prinl'Texil”改为PrintTextlC)把PrinLTeXll"改为Write'Textl"D)把全部#2改为#1(34)窗体上有一个名为Commandl的吩咐按钮,并有下面的程序:PrivateSubComandCClick()Dimarr(5)AsIntegerFork=lTo5arr(k)=kNextkprogarr()Fork=1To5Printarr(k)NextkEndSubSubprog(aOAsInteger)n=Ubound(a)Fori=nTo2step-IForj=ITon-1ifa(j)<a(j+1)Thent=a(j):a(j)=a(j+i):a(j+l)=tEndIfNextjNextiEndSub程序运行时,单击吩咐按钮后显示的是A) 12345B) 54321C)01234D)43210(35)下面程序运行时,若输入"VisualBasicProgramming",则在窗体上输出的是PrivateSubComand1_Click()Dimcount(25)AsInteger,chAsStringCh=Ucase(InputBox("请输入字母字符串")Fork=lToLen(ch)n=Asc(Mid(ch,kJ)-Asc("A")Ifn>=0ThenCount(n)=Count(n)+1EndIfNextkm=coun(O)Fork=lTo25Ifm<count(k)Thenm=count(k)EndIfNextkPrintmEndSubA)OB)1C)2D)3二、填空题(1)一个队列的初始状态为空。现将元素A,B,C,D,E,F,5,4,3,2,1依次入队,然后再依次退队,则元素退队的依次为【1】O(2)设某循环队列的容量为50,假如头指针froni=45(指向队头元素的前一位置.),尾指针rear=10(指向队尾元素),则该循环队列中共有12】个元素。(3)设二叉树如下:对该二叉树进行后序遍历的结果为【3】。(4)软件是4、数据和文档的集合。(5)有一个学生选课的关系,其中学生的关系模式为:学生(学号,姓名,班级,年龄),课程的关系模式为:课程(课号,课程名,学时),其中两个关系模式的键分别是学号和课号,则关系模式选课可定义为:选课(学号,5,成果)。(6)为了使复选框禁用(即呈现灰色),应把它的属性设置为【6】。(7)在窗体上画一个标签、一个计时器和一个吩咐按钮,其名称分别为Labl1、Timerl和COmmand1,如图1所示。程序运行后,假如单击吩咐按钮,则标签起先闪耀,每秒钟“欢迎”二字显示、消逝各一次,如图2所示。以下是实现上述功能的程序,请填空。PrivateSubFon-Load()LabdLCaPtiOn="欢迎”TimerLEnabled=FalseTimerLInterval=7EndSubPrivateSubTimerl_Timer()LabelLVisible=EndSubPrivateSubcommand1_Click()9EndSub(8)有如下程序:PrivateSubFon-Click()n=10i=0Doi=i+nn=n-21.oopWhilen>2PrintiEndSub程序运行后,单击窗体,输出结果为【10】0(9)在窗体上画一个名称为COmmandl的吩咐按钮。然后编写如下程序:OptionBase1PrivateSubCommandlClick()Dima(10)AsIntegerFori=1ToIOa(i)=iNextCallSW叩(【11】)Fori=1ToIOPrinta(i);NextEndSubSubswap(b()AsInteger)n=Ubound(b)Fori=lTon/2t=b(i)b(i)=b(n)b(n)=12NextEndSub上述程序的功能是,通过调用过程SWap,调换数组中数值的存放位置,即a(l)与a(10)的值互换,a(2)与a(9)的值互换,,请填空。(10)在窗体上画一个文本框,其名称为Texth在属性窗口中把该文本框的MuItiLine属性设置为True,然后编写如下的事务过程:PrivateSubFonn_Click()Open,Utestsmtext1.Txt,'ForInputAs#1DoWhileNot131.ineInput#1,aspect$Whole$=whole$+aspect$+Chr$(13)+Chr$(10)1.oopTextl.Text=wholeS14Open"d:testsmtext2.Txt,'ForOutputAs#1Print#1,15Close#1EndSub运行程序,单击窗体,将把磁盘文件SmleXu.ixt的内容读到内存并在文本框中显示出来,然后把该文本框中的内容存入磁盘文件SmleXl2.txt。请填空。2024年3月全国计算机等级考试二级VB量试试卷答案选择题1-5ADBAC6-10BADBA11(D)12(B)13(C)14(八)15(D)16(C)17(B)18(八)19(B)20(八)21(八)22(D)23(八)24(D)25(C)26(C)27(八)28(C)29(C)30(B)31(C)32(B)33(八)34(B)35(D)填空题(1) ABC,D,E,F,5,4,321(2) 15(3) Edbghfca(4)程序(5)课号(6) 62(7) 7500(8) 8NotIabelLvisible(9)(9Timerl.Enabled=Ture(10)1028(II)UIa()或a(12) 12n=n-1(13) 13EOF(I)(14) 14Close#1(15) 15TextLText或textl