A)TrueB)1
C)-1D)0
(17)以下可以作为VisualBasic变量名的是。
A)A#AB)counstA
C)3AD)?
AA
(18)设x=4,y=6,则以下不能在窗体上显示出“A=10”的语句是。
A)PrintA=x+yB)Print"A=";x+y
C)Print "A="+Str(x+y) D)Print"A="&x+y
(19)假定有如下的命令按钮(名称为Command1)事件过程:
PrivateSubCommand1_Click()
x=InputBox("输入:
","输入整数")
MsgBox"输入的数据是:
”,,”输入数据:
"+x
EndSub
程序运行后,单击命令按钮,如果从键盘上输入整数10,则以下叙述中错误的是。
A)x的值是数值10
B)输入对话框的标题是“输入整数”
C)信息框的标题是“输入数据:
10”
D)信息框中显示的是“输入的数据是:
”
(20)在窗体上画1个命令按钮(名称为Command1)和1个文本框(名称为Text1),然
后编写如下事件过程:
PrivateSubCommand1_Click()
x=Val(Text1.Text)
SelectCasex
Case1,3
y=x*x
CaseIs>=10,Is<=-10
y=x
Case-10To10
y=-x
EndSelect
EndSub
程序运行后,在文本框中输入3,然后单击命令按钮,则以下叙述中正确的是。
A)执行y=x*xB)执行y=-x
C)先执行y=x*x,再执行y=-xD)程序出错
(21)设有命令按钮Command1的单击事件过程,代码如下:
PrivateSubCommand1_Click()
Dima(30)AsInteger
Fori=1To30
a(i)=Int(Rnd*100)
Next
ForEacharrItemIna
IfarrItemMod7=0ThenPrintarrItem;
IfarrItem>90ThenExitFor
Next
EndSub
对于该事件过程,以下叙述中错误的是。
A)a数组中的数据是30个100以内的整数
B)语句ForEacharrItemIna有语法错误
C)IfarrItemMod7=0……语句的功能是输出数组中能够被7整除的数
D)IfarrItem>90……语句的作用是当数组元素的值大于90时退出For循环
2006年4月笔试试卷第3页(共12页)2006年4月笔试试卷第4页(共12页)(22)设有命令按钮Command1的单击事件过程,代码如下:
PrivateSubCommand1_Click()
Dima(3,3)AsInteger
Fori=1To3
Forj=1To3
a(i,j)=i*j+i
Nextj
Nexti
Sum=0
Fori=1To3
Sum=Sum+a(i,4-i)
Nexti
PrintSum
EndSub
运行程序,单击命令按钮,输出结果是。
A)20B)7
C)16D)17
(23)在窗体上画1个名称为Command1的命令按钮,然后编写如下事件过程:
PrivateSubCommand1_Click()
a=0
Fori=1To2
Forj=1To4
IfjMod2<>0Then
a=a-1
EndIf
a=a+1
Nextj
Nexti
Printa
EndSub
程序运行后,单击命令按钮,输出结果是。
A)0B)2
C)3D)4
(24)窗体上有名称分别为Text1、Text2的2个文本框,有一个由3个单选按钮构成的控件数组Option1,如图1所示。
程序运行后,如果单击某个单选按钮,则执行Text1中的数值与该单选按钮所对应的运算(乘以1、10或100),并将结果显示在Text2中,如图2所示。
为了实现上述功能,在程序中的问号(?
)处应填入的内容是。
图1图2 PrivateSubOption1_Click(IndexAsInteger)
IfText1.Text<>""Then
SelectCase ?
Case0
Text2.Text=Val(Text1.Text)
Case1
Text2.Text=Val(Text1.Text)*10
Case2
Text2.Text=Val(Text1.Text)*100
EndSelect
EndIf
EndSub
A)IndexB)Option1.Index
C)Option1(Index) D)Option1(Index).Value
(25)在窗体上画1个命令按钮,其名称为Command1,然后编写如下程序:
PrivateSubCommand1_Click()
Dima(10)AsInteger
DimxAsInteger
Fori=1To10
a(i)=8+i
Next
x=2
Printa(f(x)+x)
EndSub
Functionf(xAsInteger)
x=x+3
f=x
EndFunction
程序运行后,单击命令按钮,输出结果为。
A)12B)15
C)17D)18
2006年4月笔试试卷第5页(共12页)2006年4月笔试试卷第6页(共12页)(26)以下关于过程的叙述中,错误的是。
A)事件过程是由某个事件触发而执行的过程
B)函数过程的返回值可以有多个
C)可以在事件过程中调用通用过程
D)不能在事件过程中定义函数过程
(27)在窗体上画3个标签、3个文本框(名称分别为Text1、Text2和Text3)和1个命令按钮(名称为Command1),外观如图所示。
编写如下程序:
PrivateSubForm_Load()
Text1.Text=""
Text2.Text=""
Text3.Text=""
EndSub
PrivateSubCommand1_Click()
x=Val(Text1.Text)
y=Val(Text2.Text)
Text3.Text=f(x,y)
EndSub
Functionf(ByValxAsInteger,ByValyAsInteger)
DoWhiley<>0
tmp=xMody
x=y
y=tmp
Loop
f=x
EndFunction
运行程序,在Text1文本框中输入36,在Text2文本框中输入24,然后单击命令按钮,则在Text3文本框中显示的内容是。
A)4B)6
C)8D)12
(28)窗体上有名称分别为Text1、Text2的2个文本框,要求文本框Text1中输入的数据小于500,文本框Text2中输入的数据小于1000,否则重新输入。
为了实现上述功能,在以下程序中问号(?
)处应填入的内容是。
PrivateSubText1_LostFocus()
CallCheckInput(Text1,500)
EndSub
PrivateSubText2_LostFocus()
CallCheckInput(Text2,1000)
EndSub
SubCheckInput(tAs?
,xAsInteger)
IfVal(t.Text)>xThen
MsgBox"请重新输入!
"
EndIf
EndSub
A)TextB)SelText
C)ControlD)Form
(29)在窗体上画1个文本框,其名称为Text1,然后编写如下过程:
PrivateSubText1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
PrintChr(KeyCode)
EndSub
PrivateSubText1_KeyUp(KeyCodeAsInteger,ShiftAsInteger)
PrintChr(KeyCode+2)
EndSub
程序运行后,把焦点移到文本框中,此时如果敲击“A”键,则输出结果为。
A)A
AB)A
BC)A
CD)A
D
(30)为了使列表框中的项目呈多列显示,需要设置的属性为。
A)ColumnsB)Style
C)ListD)MultiSelect
(31)在窗体上画1个命令按钮,名称为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,则程序的输出结果为。
A)0B)5
C)15D)无任何输出
(32)在菜单编辑器中建立1个名称为Menu0的菜单项,将其“可见”属性设置为False,并建立其若干子菜单,然后编写如下过程:
PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
IfButton=1Then
PopupMenuMenu0
EndIf
EndSub
则以下叙述中错误的是。
A)该过程的作用是弹出一个菜单
B)单击鼠标右键时弹出菜单
C)Menu0是在菜单编辑器中定义的弹出菜单的名称
D)参数X、Y指明鼠标当前位置的坐标
(33)窗体上有1个名称为CD1的通用对话框,1个名称为Command1的命令按钮。
命令按钮的单击事件过程如下:
PrivateSubCommand1_Click()
CD1.FileName=""
CD1.Filter="AllFiles|*.*|(*.DoC)|*.Doc|(*.Txt)|*.txt"
CD1.FilterIndex=2
CD1.Action=1
EndSub
关于以上代码,错误的叙述是。
A)执行以上事件过程,通用对话框被设置为“打开”文件对话框
B)通用对话框的初始路径为当前路径
C)通用对话框的默认文件类型为*.Txt
D)以上代码不对文件执行读写操作
(34)以下叙述中错误的是。
A)用Shell函数可以执行扩展名为.exe的应用程序
B)若用Static定义通用过程,则该过程中的局部变量都被默认为Static类型
C)Static类型的变量可以在标准模块的声明部分定义
D)全局变量必须在标准模块中用Public或Global声明
(35)以下关于文件的叙述中,错误的是。
A)使用Append方式打开文件时,文件指针被定位于文件尾
B)当以输入方式(Input)打开文件时,如果文件不存在,则建立一个新文件
C)顺序文件各记录的长度可以不同
D)随机文件打开后,既可以进行读操作,也可以进行写操作
二、填空题(每空2分,共30分)
请将每空的正确答案写在答题卡【1】~【15】序号的横线上,答在试卷上不得分。
(1)对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为【1】。
(2)在面向对象方法中,【2】描述的是具有相似属性与操作的一组对象。
(3)在关系模型中,把数据看成是二维表,每一个二维表称为一个【3】。
(4)程序测试分为静态分析和动态测试。
其中【4】是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。
(5)数据独立性分为逻辑独立性与物理独立性。
当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为【5】。
(6)下列语句的输出结果是【6】。
PrintFormat(Int(12345.6789*100+0.5)/100,"0000,0.00")
(7)在窗体上画1个命令按钮,其名称为Command1,然后编写如下事件过程:
PrivateSubCommand1_Click()
Dimarr(1To100)AsInteger
Fori=1To100
arr(i)=Int(Rnd*1000)
Nexti
Max=arr
(1)
Min=arr
(1)
Fori=1To100
If【7】Then
Max=arr(i)
EndIf
If【8】Then
Min=arr(i)
EndIf
Nexti
Print"Max=";Max,"Min=";Min
EndSub
程序运行后,单击命令按钮,将产生100个1000以内的随机整数,放入数组arr中,然后查找并输出这100个数中的最大值Max和最小值Min,请填空。
2006年4月笔试试卷第9页(共12页)2006年4月笔试试卷第10页(共12页)(8)在窗体上画1个名称为Command1的命令按钮和2个名称分别为Text1、Text2的文本框,如图所示,然后编写如下程序:
FunctionFun(xAsInteger,ByValyAsInteger)AsInteger
x=x+y
Ifx<0Then
Fun=x
Else
Fun=y
EndIf
EndFunction
PrivateSubCommand1_Click()
DimaAsInteger,bAsInteger
a=-10:
b=5
Text1.Text=Fun(a,b)
Text2.Text=Fun(a,b)
EndSub
程序运行后,单击命令按钮,Text1和Text2文本框显示的内容分别是【9】和【10】。
(9)在窗体上画1个命令按钮和1个文本框,其名称分别为Command1和Text1,然后编
写如下代码:
DimSaveAllAsString
PrivateSubCommand1_Click()
Text1.Text=Left(UCase(SaveAll),4)
EndSub
PrivateSubText1_KeyPress(KeyAsciiAsInteger)
SaveAll=SaveAll+Chr(KeyAscii)
EndSub
程序运行后,在文本框中输入abcdefg,单击命令按钮,则文本框中显示的内容是【11】。
2006年4月笔试试卷第11页(共12页)2006年4月笔试试卷第12页(共12页)(10)在窗体上画1个命令按钮和1个通用对话框,其名称分别为Command1和CommonDialog1,然后编写如下事件过程:
PrivateSubCommand1_Click()
CommonDialog1.【12】="打开文件"
CommonDialog1.Filter="AllFiles(*.*)|*.*"
CommonDialog1.InitDir="C:
\"
CommonDialog1.ShowOpen
EndSub
该程序的功能是,程序运行后,单击命令按钮,将显示“打开”文件对话框,其标题是“打开文件”,在“文件类型”栏内显示“AIlFiles(*.*)”,并显示C盘根目录下
的所有文件,请填空。
(11)在窗体上画1个文本框,名称为Text1,然后编写如下程序:
PrivateSubForm_Load()
Open"d:
\temp\dat.txt"ForOutputAs#1
Text1.Text=""
EndSub
PrivateSubText1_KeyPress(KeyAsciiAsInteger)
lf【13】=13Then
IfUCase(Text1.Text)=【14】Then
Close1
End
Else
Write#1,【15】
Text1.Text=""
EndIf
EndIf
EndSub
以上程序的功能是,在D盘temp目录下建立1个名为dat.txt的文件,在文本框中输入字符,每次按回车键(回车符的ASCII码是13)都把当前文本框中的内容写入文件dat.txt,并清除文本框中的内容;如果输入“END”,则结束程序。
请填空。
2006年4月笔试试卷参考答案及详解第1页(共4页)2006年4月笔试试卷参考答案及详解第2页(共4页)2006年4月笔试试卷参考答案及详解
一、选择题
(1)【答案】D)
【解析】结构化程序设计方法的主要原则是:
自顶向下、逐步求精、模块化及限制使用goto语句。
可复用性是指软件元素不加修改和稍加修改可在不同的软件开发过程中重复使用的性质。
软件可复用性是软件工程追求的目标之一,是提高软件生产效率的最主要方法。
面向对象的程序设计具有可复用性的优点。
(2)【答案】A)
【解析】模块的独立程度可以由两个定性标准度量:
内聚性和耦合性。
耦合性衡量不同模块彼此间互相依赖(连接)的紧密程度;内聚性衡量一个模块内部各个元素彼此结合的紧密程度。
一般来说,要求模块之间的耦合尽可能地弱,而模块的内聚程度要尽可能地高。
(3)【答案】D)
【解析】因为测试的目的在于发现错误,由程序的编写者自己进行测试是不合适的,为了达到好的测试效果,应该由独立的第三方进行测试工作,所以选项A)错误;程序调试,修改一个错误的同时可能引入了新的错误,解决的办法是在修改了错误之后,必须进行回归测试,所以选项B)错误;所谓软件维护,就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程,可见选项C)也是错误的。
(4)【答案】B)
【解析】栈的特点是栈顶元素总是最后被插入的元素,也是最早被删除的元素;栈底元素总是最早被插入的元素,也是最晚才能被删除的元素,即栈的修改原则是“后进先出”(LastInFirstOut,简称LIFO)或“先进后出”(FirstInLastOut,简称FILO)。
(5)【答案】A)
【解析】所谓线性链表,就是指线性表的链式存储结构,简称链表。
线性表链式存储结构的基本单位称为存储结点,每个存储结点包括数据域和指针域两个组成部分。
栈、队列和双向链表是线性结构,二叉树是非线性结构。
线性结构和非线性结构是从数据的逻辑结构角度来讲的,与该数据结构中有多少个元素没有关系,即使是空的二叉树也是非线性结构。
(6)【答案】D)
【解析】后序遍历可以描述为:
若二叉树为空,则空操作;否则:
①后序遍历左子树;
②后序遍历右子树;
③访问根结点。
对于后序遍历,第一个访问的结点一定是最左下的结点,最后一个访问的结点一定是根结点,如果知道这个小技巧,可以迅速确定本题的答案为选项D)。
(7)【答案】C)
【解析】满二叉树是指除最后一层外,每一层上的所有结点都有两个子结点的二叉树。
满二叉树在其第i层上有2i-1个结点,即每一层上的结点数都是最大结点数。
对于深度为7的满二叉树,叶子结点所在的是