二级VISUAL+BASIC笔试154.docx
- 文档编号:9897046
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:26
- 大小:27.34KB
二级VISUAL+BASIC笔试154.docx
《二级VISUAL+BASIC笔试154.docx》由会员分享,可在线阅读,更多相关《二级VISUAL+BASIC笔试154.docx(26页珍藏版)》请在冰豆网上搜索。
二级VISUAL+BASIC笔试154
二级VISUALBASIC笔试-154
(总分:
100.00,做题时间:
90分钟)
一、选择题(总题数:
35,分数:
70.00)
1.窗体上有两个水平滚动条HV、HT,还有一个文本框Text1和一个标题为“计算”的命令按钮Command1,如图2所示,编写以下程序:
PrivateSubCommand1_Click()
Callcale(HV.Value,HT.Value)
EndSub
PublicSubtale(xAsInteger,yAsInteger)
Text1.Text=x*y
EndSub
运行程序,单击“计算”按钮,可根据速度与时间计算出距离,并显示计算结果。
对以上程序,下列叙述中正确的是
(分数:
2.00)
A.
B.
C. √
D.
解析:
[解析]Value属性是水平滚动条的默认属性,选项A的改法与本题程序没有区别;题目中传递参数时,传递的是水平滚动条的Value属性值,不是传递的控件,所以选项B的说法错误;将当前滚动条的Value值传递给cale过程,能正确计算出值。
所以本题的答案为C。
2.以下不能输出“Program”的语句是
(分数:
2.00)
A.PrintMid("VBProgram",3,7)
B.PrintRight("VBProgram",7)
C.PrintMid("VBProgram",3)
D.PrintLeft("VBProgram",7) √
解析:
[解析]函数Left(字符串,n)的功能是从字串左边第一个字符开始取n个字符,Left("VB-Program",7)输出结果是VBProgr,所以本题的答案为D。
3.在窗体上画一个命令按钮,名称为Command1,然后编写如下程序:
DimFlagAsBoolean
PrivateSubCommand1_Click()
DimintNumAsInteger
intNum=InputBox("请输入:
")
IfFlagThen
Printf(intNum)
EndIf
EndSub
Functionf(XAsInteger)AsInteger
IfX<10Then
Y=X
Else
Y=X+10
EndIf
f=Y
EndFunction
PrivateSubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
Flag=True
EndSub
运行程序,首先单击窗体,然后单击命令按钮,在输入对话框中输入5,则程序的输出结果为
(分数:
2.00)
A.0
B.5 √
C.15
D.无任何输出
解析:
[解析]单击窗体,引发窗体的MouseUp事件,Flag的值变为True。
单击命令按钮时,接收输入5,由于Flag为True,执行Printf(intNum)语句,f()函数内执行第一个分支将X赋值给Y,并且函数的返回值为Y,所以输出的值是5。
4.设在窗体中有一个名称为List1的列表框,其中有若干项目(如图1所示)。
要求选中某一项后单击Command1按钮,就删除选中的项,则正确的事件过程是
(分数:
2.00)
A.
B.
C. √
D.
解析:
[解析]删除列表框的选项需要使用RemoveItem方法,其语法为:
列表框名.RemoveItem列表项索引号
所以C为正确答案。
Clear方法为清空列表框中所有选项,不需要参数。
5.在窗体上先后画两个图片框,名称分别为Picture1和banana,banana中添加了香蕉图片(见图3),且将banana.DragMode属性设置为1。
要求程序运行时,可以用鼠标把banana拖拽到Picture1中(见图4)。
能实现此功能的事件过程是
(分数:
2.00)
A.
B.
C. √
D.
解析:
[解析]题中用鼠标把banana图片框拖放到Picture1图片框中,此时将触发DragDrop事件,其事件过程为:
PrivateSubPicture1_DragDrop(SourceAsControl,XAsSingle,YAsSingle)
Source.MovePicture1.Left+X.Picture1.Top+Y
EndSub
其中,Source为对象变量,标识正在被拖动对象的属性,所以本题的答案为C。
6.设有如下通用过程:
PublicFunctionFun(xStrAsString)AsString
DimtStrAsString,strLAsInteger
tStr=""
strL=Len(xStr)
i=1
DoWhilei<=strL/2
tStr=tStr&Mid(xStr,i,1)&Mid(xStr,strL-i+1,1)
i=i+1
Loop
Fun=tStr
EndFunction
在窗体上画一个名为Text1的文本框和一个名为Command1的命令按钮,并编写如下事件过程:
PrivateSubCommand1_Click()
DimS1AsString
S1="abcdef"
Text1.Text=UCase(Fun(S1))
EndSub
程序运行后,单击命令按钮,则Text1中显示的是
(分数:
2.00)
A.ABCDEF
B.abcdef
C.AFBECD √
D.DEFABC
解析:
[解析]在Fun()函数中,因输入的字符串S1的长度为6,所以循环的次数为3;第1次循环后形参tStr的值为"af",第2次循环后形参tStr的值为"afbe",第3次循环后形参tStr的值为"afbecd";UCase()函数将小写字母转换为大写字母,所以本题的答案为C。
7.设有表示学生选课的三张表,“学生”表S(学号,姓名,性别,年龄,身份证号),“课程”表C(课号,课名),“选课”表SC(学号,课号,成绩),则表SC的关键字(键或码)为
(分数:
2.00)
A.“课号”,“成绩”
B.“学号”,“成绩”
C.“学号”,“课号” √
D.“学号”,“姓名”,“成绩”
解析:
[解析]“选课表”SC是“学生表”S和“课程表”C的映射表,主键是两个表主键的组合。
8.设窗体上有一个图片框Picture1,要在程序运行期间装入当前文件夹下的图形文件File1.jpg,能实现此功能的语句是
(分数:
2.00)
A.Picture1.Picture="File1.jpg"
B.Picture1.Pieture=LoadPicture("File1.jpg") √
C.LoadPicture("File1.jpg")
D.CallLoadPicture("File1.jpg")
解析:
[解析]在运行期间可以用LoadPicture函数把图形文件装入窗体、图片框或图像框中,其一般格式为:
[对象名.]Picture=LoadPicture("文件名")
故能实现此功能的语句是Picture1.Picture=LoadPicture("File1.jpg"),即答案为B。
9.软件设计中模块划分应遵循的准则是
(分数:
2.00)
A.低内聚低耦合
B.高内聚低耦合 √
C.低内聚高耦合
D.高内聚高耦合
解析:
[解析]模块划分应遵循的准则包括模块之间的耦合和内聚。
一般来说,要求模块之间的耦合尽可能地低,即模块尽可能独立,模块的内聚程度尽可能地高,即高内聚、低耦合的原则。
10.下列叙述中错误的是
(分数:
2.00)
A.在工程资源管理器窗口中只能包含一个工程文件及属于该工程的其他文件 √
B.以bas为扩展名的文件是标准模块文件
C.窗体文件包含窗体及其控件的属性
D.一个工程中可以含有多个标准模块文件
解析:
[解析]在简单的情况下,一个程序就是一个工程;对于复杂的程序,一个程序可以含有两个以上的工程,而每个工程可以含有多个窗体文件、标准模块文件等。
所以选项A的叙述是错误的。
11.在窗体上画两个命令按钮,名称分别为Command1、Command2,并编写如下程序:
Constn=5,m=4
Dima(m,n)
PrivateSubCommand1_Click()
K=1
Fori=1Tom
Forj=1Ton
a(i,j)=k
k=k+1
Nextj
Nexti
EndSub
PrivateSubCommand2_Click()
Summ=0
Fori=1Tom
Forj=1Ton
Ifi=1Ori=mThen
Summ=summ+a(i,j)
Else
Ifj=iOrj=nThen
Summ=summ+a(i,j)
EndIf
EndIf
Nextj
Nexti
Printsumm
EndSub
过程Command1_Click()的作用是在二维数组a中存放一个m行n列的矩阵,过程Command2_Click()的作用是
(分数:
2.00)
A.计算矩阵外围一圈元素的累加和 √
B.计算矩阵除外一圈以外的所有元素的累加和
C.计算矩阵第一列和最后一列元素的累加和
D.计算矩阵第一行和最后一行元素的累加和
解析:
[解析]Command2_Click()的程序代码中,逐个判定数组中的每个元素,对符合i=1或i=m或j=1或j=n条件的元素进行累加,summ=a11+a12+a13+a14+a21+a24+a31+a34+a41+a44+a51+a52+a53+a54即矩阵外围一圈元素的累加和。
12.有三个关系R、S和T,如下:
由关系R和S通过运算得到关系T,则所使用的运算为
(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]在关系运算中,交的定义如下:
设R1和R2为参加运算的两个关系,它们具有相同的度n,且相对应的属性值取自同一个域,则R1∩R2为交运算,结果仍为度等于n的关系,其中,交运算的结果既属于R1又属于R2。
13.程序流程图中带有箭头的线段表示的是
(分数:
2.00)
A.图元关系
B.数据流
C.控制流 √
D.调用关系
解析:
[解析]在程序流程图中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。
带箭头的线段在数据流程图中表示数据流。
带箭头的线段在程序流程图中表示控制流。
在题中给出的选项中,在图元之间用带有箭头的线段表示图元关系。
在模块之间用带有箭头的线段表示调用关系。
14.对长度为n的线性表排序,在最坏的情况下,比较次数不是n(n-1)/2的排序方法是
(分数:
2.00)
A.快速排序
B.冒泡排序
C.直接插入排序
D.堆排序 √
解析:
[解析]在最坏的情况下,快速排序、冒泡排序和直接插入排序需要的比较次数都是n(n-1)/2,堆排序需要比较的次数为nlog2n。
15.以下合法的VisualBasic标识符是
(分数:
2.00)
A.ForLoop √
B.Const
C.9abc
D.a#k
解析:
[解析]选项B中的Const是VisualBasic中用于定义符号常量的关键字,因此,不能作为其他标识符;选项C以数字9开头,选项D中含有特殊符号“#”都不符合VisualBasic有关标识符的定义和要求。
16.在窗体上画一个名为Command1的命令按钮,然后编写如下代码:
OptionBase1
PrivateSubCommand1_Click()
Dima
a=Array(1,2,3,4)
j=1
Forj=4To1Step-1
s=s+a(i)*j
j=j*10
Nexti
Prints
EndSub
运行上面的程序,其输出结果是
(分数:
2.00)
A.1234 √
B.12
C.34
D.4321
解析:
[解析]本题首先对数组A进行初始化并赋值,a
(1)=1,a
(2)=2,a(3)=3,a(4)=4;在随后进行的4次循环中,由于j保持10倍增长,然后分别乘以数组的4个元素,即产生一个由4个元素构成的个位、十位、百位和千位的4位数,相当于4*1+3*10+2*100+1*1000,所以本题的答案为A。
17.窗体上有Command1、Command2两个命令按钮。
现编写以下程序:
OptionBase0
Dima()AsInteger,inAsInteger
PrivateSubCommand1_Click()
m=InputBox("请输入一个正整数")
ReDima(m)
EndSub
PrivateSubCommand2_Click()
In=InputBox("请输入一个正整数")
ReDima(m)
EndSub
运行程序,单击Command1后输入整数10,再单击Command2后输入整数5,则数组a中元素的个数是
(分数:
2.00)
A.5
B.6 √
C.10
D.11
解析:
[解析]ReDim语句用于重新设置数组上下界,数组元素个数的多少由最近一次ReDim语句决定。
本题先单击Command1,再单击Command2,所以最后数组元素个数由Command2事件过程中的ReDima(m)语句来决定。
通过InputBox函数接收到的整数5赋给变量m(此处VB自动将输入内容转换为变量m的类型),然后将m设置为数组上界,由于默认下界设置为0,所以数组元素个数为6,本题的答案为B。
18.在ViusalBasic中,表达式3*2/5Mod3的值是
(分数:
2.00)
A.1 √
B.0
C.3
D.出现错误提示
解析:
[解析]一个表达式可能含有多个运算,计算机按一定的顺序对表达式求值,顺序为:
括号→函数运算→算术运算→字符串运算→关系运算→布尔运算。
其中算术运算的运算次序细分为:
幂(^)→取负(-)→乘、浮点除(*、/)→整除(/)→取模(Mod)→加、减(+、-);逻辑运算的运算顺序细分为:
Not、And、Or。
本题中先进行乘法运算,再进行整除运算,最后执行mod取模运算,如果为1,答案为A。
19.下列叙述中错误的是
(分数:
2.00)
A.在通用过程中,多个形式参数之间可以用逗号作为分隔符
B.在Print方法中,多个输出项之间可以用逗号作为分隔符
C.在Dim语句中,所定义的多个变量可以用逗号作为分隔符
D.当一行中有多个语句时,可以用逗号作为分隔符 √
解析:
[解析]当一行中有多个语句时,用冒号“:
”作为分隔符,不可以用逗号。
20.设有如下用户定义数据类型:
TypeStudent
NumberAsString
NameAsString
AgeAsInteger
EndType
则下列代码中能正确引用该类型成员的是
(分数:
2.00)
A.Student.name="李明"
B.DimsAsStudent
s.name="李明" √
C.DimsAsTypeStudent
s.name="李明"
D.DimsAsType
s.name="李明"
解析:
[解析]在使用用户白定义数据类型前,必须先声明用户自定义类型的变量,声明方法为:
Dim变量名As自定义类型名
选项A没有进行变量定义,直接引用自定义类型名是错误的;选项C、选项D在定义变量时,格式不正确。
B选项用Student类型定义了一个变量s,然后为name成员赋值为“李明”,语法正确,为本题答案。
21.设有命令按钮Command1的单击事件过程,代码如下:
PrivateSubCommand1_Click()
Dima(30)AsInteger
Fori=1To30
a(i)=Int(Rnd*100)
Next
ForEacharrItemIna
IfarrItemMod7=0ThenPrintarrItem;
IfarrItem>90ThenExitFor
Next
EndSub
对于该事件过程,下列叙述中错误的是
(分数:
2.00)
A.a数组中的数据是30个100以内的整数 √
B.语句ForEacharrItemIna有语法错误
C.IfarrItemMod7=0…语句的功能是输出数组中能够被7整除的数
D.IfarrItem>90…语句的作用是当数组元素的值大于90时退出For循环
解析:
[解析]ForEach…Next语句专门用于数组或对象“集合”,其一般格式为:
[*]
用ForEach…Next语句可以对数组元素进行处理,包括查询、显示、读取。
它所重复执行的次数由数组中元素的个数确定。
本题程序中首先定义了一个包含31个元素的数组,然后通过循环语句赋给下标为1~30的元素各一个100以内的非负整数,最后通过ForEach…Next语句输出数组中能够被7整除的数,当数组元素的值大于90时退出For循环。
故选项A不正确。
22.工程中有两个窗体,名称分别为Form1、Form2,Form1为启动窗体,该窗体上有命令按翎Command1.要求程序运行后单击该命令按钮时显示Form2,则按钮的Click事件过程应该是
(分数:
2.00)
A.PrivateSubCommand1_Click()
Form2.Show
EndSub √
B.PrivateSubCommand1_Click()
Form2.Visible
EndSub
C.PrivateSubCommand1_Click()
LoadForm2
EndSub
D.PrivateSubCommand1_Click()
Form2.Load
EndSub
解析:
[解析]Show方法用于显示窗体,所以本题答案为A。
23.在软件开发中,需求分析阶段产生的主要文档是
(分数:
2.00)
A.可行性分析报告
B.软件需求规格说明书 √
C.概要设计说明书
D.集成测试计划
解析:
[解析]需求分析阶段的工作主要包括需求获取、需求分析、编写需求规格说明书和需求评审等4个方面。
产生的主要文档为软件需求规格说明书。
24.设有语句:
Open"d:
/Test.txt"ForOutputAs#1,下列叙述中错误的是
(分数:
2.00)
A.若d盘根目录下无Text.txt文件,则该语句创建此文件
B.用该语句建立的文件的文件号为1
C.该语句打开d盘根目录下一个已存在的文件Text.txt,之后就可以从文件中读取信息 √
D.执行该语句后,就可以通过Print#语句向文件Test.txt中写入信息
解析:
[解析]在该Open语句中以Output方式打开文件,表示向文件写入信息。
25.算法的有穷性是指
(分数:
2.00)
A.算法程序的运行时间是有限的 √
B.算法程序所处理的数据量是有限的
C.算法程序的长度是有限的
D.算法只能被有限的用户使用
解析:
[解析]算法具有①有穷性:
一个算法必须总是(对任何合法的输入值)在执行有穷步之后结束,且每一步都可在有限时间内完成,即运行时间是有限的;②确定性:
算法中每一条指令必须有确切的含义,读者理解时不会产生歧义;③可行性:
一个算法是可行的,即算法中描述的操作都可以通过已经实现的基本运算执行有限次来实现;④输入:
一个算法有0个或多个输入,这些输入取自于某个特定的对象的集合;⑤输出:
一个算法有一个或多个输出。
26.要使两个单选按钮属于同一个框架,正确的操作是
(分数:
2.00)
A.先画一个框架,再在框架中画两个单选按钮 √
B.先画一个框架,再在框架外画两个单选按钮,然后把单选按钮拖到框架中
C.先画两个单选按钮,再用框架将单选按钮框起来
D.以上三种方法都正确
解析:
[解析]为了实现两个单选按钮属于同一个框架组,应该先画一个框架,再在框架中画两个单选按钮。
27.下列关于栈的叙述中正确的是
(分数:
2.00)
A.栈按“先进先出”的原则组织数据
B.栈按“先进后出”的原则组织数据 √
C.只能在栈底插入数据
D.不能删除数据
解析:
[解析]在栈中,允许插入与删除的一端称为栈顶。
栈顶元素总是最后被插入的元素,从而也是最先被删除的元素;即栈是按照“先进后出”或“后进先出”的原则组织数据的。
28.结构化程序设计的基本原则不包括
(分数:
2.00)
A.多态性 √
B.自顶向下
C.模块化
D.逐步求精
解析:
[解析]结构化程序设计的原则包括“自顶而下,逐步求精,模块化”。
多态性是面向对象程序语言的特征。
29.为计算1+3+5+…+99的值,某人编程如下
k=1
s=0
Whilek<=99
k=k+2:
s=s+k
Wend
Prints
在调试时发现运行结果有错误,需要修改。
下列错误原因和修改方案中正确的是
(分数:
2.00)
A.While…Wend循环语句错误,应改为Fork=1To99…Nextk
B.循环条件错误,应改为Whliek<99
C.循环前的赋值语句k=1错误,应改为k=0
D.循环中两条赋值语句的顺序错误,应改为s=s+k:
k=k+2 √
解析:
[解析]程序进行第一次循环时,k=3,s=s+k,这样s的值就少加了一个1。
按选项A修改的程序与原程序等效,其结果为s=3+5+…+99+111;按选项B修改后程序运行的结果为s=3+5+…+97+99;按选项C修改后程序运行的结果为s=2+4+…+100;选项D正确。
30.设窗体上有一个标签Label1和一个计时器Timer1,Timer1的Interval属性被设置为1000,Enabled属性被设置为True。
要求程序运行时每秒在标签中显示一次系统当前时间。
以下可以实现上述要求的事件过程是
(分数:
2.00)
A.PrivateSubTimer1_Timer()
Label1.Caption=True
EndSub
B.PrivateSubTimer1_Timer()
Label1.Caption=Time$
EndSub √
C.PrivateSubTimer1_Timer()
Label1.Interval=1
EndSub
D.PrivateSubTimer1_Timer()
Fork=1ToTimer1.Interval
Label1.Caption=Timer
Nextk
EndSub
解析:
[解析]在Timer事件过程中是需要周期
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 VISUAL BASIC 笔试 154