全国计算机等级考试二级VISUAL+BASIC真题2009年9月
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
全国计算机等级考试二级VISUAL BASIC真题2009年9月
(总分:100.00,做题时间:90分钟)
一、{{B}}选择题{{/B}}(总题数:35,分数:70.00)
1.下列数据结构中,属于非线性结构的是
(分数:2.00)
A.循环队列
B.带链队列
C.二叉树√
D.带链栈
解析:[解析] 根据数据结构中各数据元素之间前后关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。
线性结构表示数据元素之间为一对一的关系,非线性结构表示数据元素之间为一对多或者多对一的关系。
根据各种结构的定义可知二叉树是一种非线性结构。
2.下列数据结构中,能够按照“先进后出”原则存取数据的是
(分数:2.00)
A.循环队列
B.栈√
C.队列
D.二叉树
解析:[解析] 栈是限定只在一端进行插入与删除的线性表,通常称插入、删除的这一端为“栈顶”,另一端为“栈底”。
栈顶元素总是后被插入的元素,也是最先被删除的元素;栈底元素总是最先被插入的元素,也是最后才能被删除的元素。
栈是按照“先进后出”或“后进先出”的原则组织数据的。
3.对于循环队列,下列叙述中正确的是
(分数:2.00)
A.队头指针是固定不变的
B.队头指针一定大于队尾指针
C.队头指针一定小于队尾指针
D.队头指针可以大于队尾指针,也可以小于队尾指针√
解析:[解析] 循环队列是将顺序队列首尾相连形成的,随着插入元素或删除元素的进行,其队头指针及队尾指针是在不断变化的,有时可能会出现队头指针大于队尾指针的情况,也可能是队尾指针大于队头指针,故答案为D)。
4.算法的空间复杂度是指
(分数:2.00)
A.算法在执行过程中所需要的计算机存储空间√
B.算法所处理的数据量
C.算法程序中的语句或指令条数
D.算法在执行过程中所需要的临时工作单元数
解析:[解析] 算法的空间复杂度是指:算法执行过程中所需的存储空间。
一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间及算法执行过程中所需要的额外空间。
5.软件设计中划分模块的一个准则是
(分数:2.00)
A.低内聚低耦合
B.高内聚低耦合√
C.低内聚高耦合
D.高内聚高耦合
解析:[解析] 模块划分应考虑的因素包括模块之间的耦合和内聚。
一般来说,要求模块之间的耦合尽可能得低,即模块尽可能独立,要求模块的内聚程度尽可能得高,即遵循高内聚、低耦合的原则。
6.下列选项中不属于结构化程序设计原则的是
(分数:2.00)
A.可封装√
B.自顶向下
C.模块化
D.逐步求精
解析:[解析] 模块化、自顶向下、逐步求精都是结构化程序设计的原则;可封装是面向对象程序设计的原则。
7.软件详细设计产生的图如下。
(分数:2.00)
A.N-S图
B.PAD图
C.程序流程图√
D.E-R图
解析:[解析] N-S图是由若干基本框图构成的流程图,其特点是没有流程线;PAD图即问题分析图(Problem Analysis Diagram),它是一种由左往右展开的二维树型结构;程序流程图用于描述问题解决的过程和步骤,其中方框表示处理步骤,菱形框表示逻辑判断,箭头表示控制流向;E-R图即实体-联系图(Entity Relationship Diagram),用来描述现实世界的概念模型,构成元素有实体、属性和联系,分别用矩形、椭圆形和菱形表示。
本题答案为C) 。
8.数据库管理系统是
(分数:2.00)
A.操作系统的一部分
B.在操作系统支持下的系统软件√
C.一种编译系统
D.一种操作系统
解析:[解析] 数据库管理系统是指位于用户与操作系统之间的数据管理软件。
数据库管理系统是为数据库建立、使用和维护而配置的软件。
9.在E-R中,用来表示实体联系的图形是
(分数:2.00)
A.椭圆形
B.矩形
C.菱形√
D.三角形
解析:[解析] E-R图中用矩形表示实体(等同于表),用椭圆形表示实体的属性(等同于表中字段),用菱形表示实体关系(等同于外键)。
10.有3个关系R、S和T如下。
T由关系R和S通过某种操作得到,该操作为
(分数:2.00)
A.选择
B.投影
C.交
D.并√
解析:[解析] 两个相同结构关系的并是由属于这两个关系的元组组成的集合。
11.以下变量名中合法的是
(分数:2.00)
A.x2-1
B.print
C.str_n √
解析:[解析] 变量命名应遵循以下规则:①名字只能由字母、数字和下画线组成;②名字的第一个字符必须是英文字母,最后一个字符可以是类型说明符;③名字的有效字符为255个;④不能用Visual Basic的保留字作变量名,但可以把保留字嵌入变量名中;同时,变量名也不能是末尾带有类型说明符的保留字。
变量名字中不应该出现“—”符号,所以A)选项错误; print是Visual Basic中的保留字,所以B)选项也不符合变量命名规则;选项D)中2x的第一个字符不是英文字母,所以也不符合变量命名规则。
12.VB表达式应该是
(分数:2.00)
A.(5x+3)/(2y-6)
B.x*5+3/2*y-6
C.(5*x+3)÷(2*y-6)
D.(x*5+3)/(y*2-6) √
解析:[解析] VB中的数乘应用“*”来连接,浮点除法用“/”连接。
选项A)中应该将5x、2y改成5*x和2*y;选项B)中5*x+3是一个整体被除数,所以应该用小括号,否则整个表达式的运算优先级顺序将改变;选项C) 中两个表达式间应该用“/”连接。
13.下面有关标准模块的叙述中,错误的是
(分数:2.00)
A.标准模块不完全由代码组成,还可以有窗体√
B.标准模块中的Private过程不能被工程中的其他模块调用
C.标准模块的文件扩展名为.bas
D.标准模块中的全局变量可以被工程中的任何模块引用
解析:[解析] 模块有窗体模块、标准模块和类模块3种类型,其中标准模块可以包含类型、常数、变量、外部过程和公共过程的公共的或模块级的声明,其文件扩展名为.bas。
标准模块中可以引用窗体但不包含窗体,所以A)选项错误。
14.下面控件中,没有Caption属性的是
(分数:2.00)
A.复选框
B.单选按钮
C.组合框√
D.框架
解析:[解析] 组合框含有Name、Height、Width、Top、Left、Enabled、Visible、Index、List、ListIndex、ListCount、Selected、Sorted、 Text、MultiSelect和Style等属性,但没有Caption属性。
15.用来设置文字字体是否斜体的属性是
(分数:2.00)
A.FontUnderline
B.FontBold
C.FontSlope
D.Fontltalic √
解析:[解析] FontUnderline属性是表示正文字体是否带有下画线;FontBold属性是表示正文字体是否是粗体;没有 FontSlope属性;FontItalic属性是表示正文字体是否是斜体。
所以正确答案为D) 。
16.若看到程序中有以下事件过程,则可以肯定的是,当程序运行时Private SubClick_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single) Print "VB Program" End Sub A) 用鼠标左键单击名称为"Command1"的命令按钮时,执行此过程B) 用鼠标左键单击名称为"MouseDown"的命令按钮时,执行此过程C) 用鼠标右键单击名称为"MouseDown"的控件时,执行此过程D) 用鼠标左键或右键单击名称为"Click"的控件时,执行此过程
(分数:2.00)
A.
B.
D. √
解析:[解析] 在鼠标单击事件过程中,Button属性值为1时代表按下鼠标左键,值为2时代表按下鼠标右键,题中所述代码中没有定义Button值,所以单击鼠标左键或者右键都能触发MouseDown事件;代码中控件名称为Click,所以答案为D) 。
17.可以产生30~50(含30和50) 之间的随机整数的表达式是
(分数:2.00)
A.Int(Rnd*21+30) √
B.Int(Rnd*20+30)
C.Int(Rnd*50-Rnd*30)
D.Int(Rnd*30+50)
解析:[解析] 生成某个范围内的随机整数,计算公式为:Int((上界-下界+1) ,Rnd+下界),题目中上界为 30,下界为50,所HiE确答案为A)。
18.在程序运行时,下面的叙述中正确的是
(分数:2.00)
A.用鼠标右键单击窗体中无控件的部分,会执行窗体的FormLoad事件过程
B.用鼠标左键单击窗体的标题栏,会执行窗体的Form_Click事件过程
C.只载入而不显示窗体,也会执行窗体的Form_Load事件过程√
D.载入窗体后,每次显示该窗体时,都会执行窗体的Form_Click事件过程
解析:[解析] 当加载窗体时,系统白动触发该窗体的Load事件;当窗体成为一个活动窗口时,触发Activate 事件;单击窗体空白处时,会触发窗体Click事件;选项A)触发的是Form_Click事件;选项B) 用鼠标左键单击窗体的标题栏,不会触发Form_Click事件过程;选项D) 触发的是Form_Activate事件过程。
所以正确答案为C) 。
19.窗体上有名称为Commandl的命令按钮和名称为Text1的文本框 Private Sub Command1_Cliek()
Text1.Text="程序设计" Text1.SetFocus End Sub Private Sub Text1_GotFocus() Text1.Text="等级考试" End Sub 运行以上程序,单击命令按钮后A) 文本框中显示的是“程序设计”,且焦点在文本框中B) 文本框中显示的是“等级考试”,且焦点在文本框中C) 文本框中显示的是“程序设计”,且焦点在命令按钮上D) 文本框中显示的是“等级考试”,且焦点在命令按钮上
(分数:2.00)
A.
B. √
C.
D.
解析:[解析] 运行程序后单击命令按钮,首先执行命令按钮Command1_Click代码的内容,即Text1文本框获得焦点并显示内容“程序设计”;当文本框获得焦点后,程序执行文本框的Text1_GetFocus事件代码,即文本框显示内容“等级考试”,覆盖了原来文本框的内容,同时文本框获得焦点。
20.设窗体上有名称为Option1的单选按钮,且程序中有语句: If Option1.Value=True Then 下面语句中与该语句不等价的是A) If Option1.Value Then B) If Option1=True Then C) If Value=True Then D) If Option1 Then
(分数:2.00)
A.
B.
C. √
D.
解析:[解析] 在If语句中,如果省略其判断条件,则默认为True时,Then后面的语句成立,所以选项A)的形式与题目语句等价;Option1的默认属性为Value,所以选项B)中的Option1=True与题中语句Option1.Value=True等价;同理,选项 D) 省略了If语句判断条件及Option1的默认属性,也是与原语句等价的。
21.设窗体上有1个水平滚动条,已经通过属性窗口把它的Max属性设置为1,Min属性设置为100。
下面叙述中正确的是
(分数:2.00)
A.程序运行时,若使滚动块向左移动,滚动条的Value属性值就增加√
B.程序运行时,若使滚动块向左移动,滚动条的Value属性值就减少
C.由于滚动条的Max属性值小于Min属性值,程序会出错
D.由于滚动条的Max属性值小于Min属性值,程序运行时滚动条的长度会缩为一点,滚动块无法移动
解析:[解析] 因为Max<Min,最大值将被置于水平滚动条的最左端,所以在程序运行时水平滚动条左边为100,右边为1,滚动条向左移动,滚动条的Value属性值就增加,所以正确答案为A) 。
22.有如下过程代码: Sub var_dim() Static numa As Integer Dim numb As Integer numa=numa+2 numb=numb+1 print numa;mumb End Sub 连续3次调用var_dim.过程,第3次调用时输出的是A) 2 1 B) 2 3 C) 6 1 D) 6 3
(分数:2.00)
A.
B.
C. √
D.
解析:[解析] 由题意可知,numa是静态变量,所以3次调用过程该变量值是累加的,而numb是动态变量,每次调用过程,该变量值都被初始化为0,所以3次调用该过程后输出的结果是6和1。
23.在窗体上画1个命令按钮,并编写如下事件过程:Private Sub Command1_Click() For i=5 To 1 Step-0.8 Print Int(i); Next i End Sub 运行程序,单击命令按钮,窗体上显示的内容为A) 5 4 3 2 1 1 B) 4 4 3 2 1 C) 4 3 2 1 1 D) 4 4 3 2 1 1
(分数:2.00)
A. √
B.
C.
D.
解析:[解析] 题中所述程序是一个初值为5,步长为-0.8,终值为1的循环过程。
第一次执行时,循环变量i=5,Print Int(i)的输出结果为在窗体上打印数字5,其中Int()函数取不大于i的最大整数;第2次循环,i=4.2,输出结果为4;第3次、第4次输出结果分别为3和2;第5次循环,i=1.8,输出结果为1;第6次循环,i=1,输出结果为1。
第6次循环后跳出循环,整个程序结束。
24.在窗体上画1个命令按钮,并编写如下事件过程:Private Sub Command1_Click() Dima(3,3) For m=1 To 3 For n=1 To 3 If n=m Or n=4-m Then a(m,n)=m+n Else a(m,n)=0 End If Print a(m,n);Next n Print Next m End Sub 运行程序,单击命令按钮,窗体上显示的内容为A) 2 0 0 B) 2 0 4 C) 2 3 0 D) 2 0 0 0 4 0 0 4 0 3 4 0 0 4 5 0 0 6 4 0 6 0 0 6 0 5 6
(分数:2.00)
A.
B. √
C.
D.
解析:[解析] 当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.设有以下函数过程: Function fun(a As Integer,b As Integer) Dim c As Integer If a<b Then c=a:a=b:b=c End If c=0 Do Loop Until c Mod b=0 fun=c End Function 若调用函数fun时的实际参数都是自然数,则函数返回的是A) a、b的最大公约数B) a、b的最小公倍数C) a除以b的余数D) a 除以b的商的整数部分
(分数:2.00)
A.
B. √
C.
D.
解析:[解析] 题中所述函数过程中,If语句用来保证数a大于数b,如果数a小于数b,则将两者的值交换。
取模运算符Mod用来求余数,即结果是数c整除数b所得的余数。
c等于a值的累加,其值在逐步增大,c当然能整除a;而循环结束的条件为c是否能整除b,当刚好整除时跳出循环体,所以c的值能整除a和b的最小值,因此Do Loop循环语句运行的结果为a和b的最小公倍数。
26.窗体上有1个名称为Text1的文本框;1个名称为Timer的计时器控件,其Interval属性值为5000,Enabled属性值是True。
Timer1的事件过程如下:Private Sub Timer1_Timer() Static flag As Integer If flag=0 Then flag=1 flag=-flag If flag=1 Then Text1.ForeColor=&HPP& '&HFF&为红色 Else
Text1.ForeColor=&HC000& '&HC000&为绿色 End If End Sub 以下叙述中正确的是A) 每次执行此事件过程时,flag的初始值均为0 B) flag的值只可能取0或1 C) 程序执行后,文本框中的文字每5秒改变一次颜色D) 程序有逻辑错误,Else分支总也不能被执行
(分数:2.00)
A.
B.
C. √
D.
解析:[解析] flag变量为静态变量;第1次执行Timer1_Timer事件过程,flag=-1,文本框为绿色;第2次执行Timer1_ Timer事件过程,flag=1,文本框为红色;第3次执行Timer1_Timer事件过程,flaq=-1,文本框为绿色;依次类推,每执行一次,文本框的颜色变换一次,时间间隔为5秒,所以正确答案为C)。
27.为计算10+21+22+23+24+…+210的值,并把结果显示在文本框Text1中,若编写如下事件过程:
Private Sub Command1_Click()
Dim a%,s%,k%
s=1
a=2
For k=2 To 10
a=a*2
Next k
Text1.Text=s
End Sub
执行此事件过程后发现结果是错误的,为能够得到正确结果,应做的修改是
A) 把s=1改为s=0 B) 把For k=2 To 10改为For k=1 To 10
C) 交换语句s=s+a和a=a*2的顺序D) 同时进行B)、C)两种修改
(分数:2.00)
A.
B.
C.
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.标准模块中有如下程序代码: Public x As Integer,y As Integer Sub var_pub() x=10:y=20 End Sub 在窗体上有1个命令按钮,并有如下事件过程: Private Sub Command1_Click() Dim x As Integer Call var_pub x=x+100 y=y+100 Print x;y End Sub 运行程序后单击命令按钮,窗体上显示的是A) 100 100 B) 100 120 C) 110 100 D) 110 120
(分数:2.00)
A.
B. √
C.
D.
解析:[解析] 按照局部变量覆盖全局变量的原则,Command1_Click中的x变量为局部变量,其初值为0;y变量为全局变量,其初值为20,x、y均加100得到答案B)。
29.设a、b都是自然数,为求a除以b的余数,某人编写了以下函数:Function fun(a As Integer,b As Integer) While a>b a=a-b Wend fun=a End Function 在调试时发现函数是错误的。
为使函数能产生正确的返回值,应做的修改是A) 把a=a-b改为a=b-a B) 把a=a-b改为a=a/b C) 把While a>b改为While a<b D) 把While a>b改为While a>=b
(分数:2.00)
A.
B.
C.
D. √
解析:[解析] 当a=b时,余数应该为0,而不是a,程序执行结果会跳出循环使fun=a,应该继续循环,
正确答案为D)。
30.下列关于通用对话框CommonDialog1的叙述中,错误的是
(分数:2.00)
A.只要在“打开”对话框中选择了文件,并单击“打开”按钮,就可以将选中的文件打开√
B.使用CommonDialogShowColor方法,可以显示“颜色”对话框
C.CancelError属性用于控制用户单击“取消”按钮关闭对话框时,是否显示出错警告
D.在显示“字体”对话框前,必须先设置CommonDialogl的Flags属性,否则会出错
解析:[解析] “打开”对话框的功能是由用户从目录中选择一个将要打开的文件,但“打开”对话框并不能真正打开一个文件,它只提供了一个打开文件的用户界面,供用户选择所要打开的文件,所以正确答案
为A) 。
31.在利用菜单编辑器设计菜单时,为了把组合键“Alt+X”设置为“退出(X)”菜单项的访问键,可以将该菜单项的标题设置为
(分数:2.00)
A.退出(X&)
B.退出(& √
C.退出(X#)
D.退出(#
解析:[解析] 如果在菜单标题的某个字母前加一个“&”符号,那么该字母就成了热键字母,并且在窗体上显示时,该字母有下画线;在操作时同时按“Alt"键和该字母,就可以选择这个菜单选项,所以正确答
案为B)。
32.在窗体上画1个命令按钮和1个文本框,其名称分别为Command1和Text1,再编写如下程序: Dim ss As String Private Sub Text1_KeyPress(KeyAscii As Integer) If Chr(KeyAscii) <>"" Then
ss=ss+Chr(KeyAscii) End Sub Private Sub Command1_Click() Dim m As String,i As Integer For i=Len(ss) To 1 Step-1 m=m+Mid(ss,i,1) Next Text1.Text=UCase(m) End Sub 运行程序后,在文本框中输入“Number100”,并单击命令按钮,则文本框中显示的是A) NUMBER 100 B) REBMUN C) REBMUN 100 D) 001 REBMUN
(分数:2.00)
A.
B.
C.
D. √
解析:[解析] 题目中程序是将ss字符串进行反向排列,并放到m中去。
其中Number空格后的100被当成字符串来处理,最后结果是将“Number100”反向排列,并通过UCase()函数将所有字母转换成大写,得到001 REBMUN。
33.窗体的左右两端各有1条直线,名称分别为Line1、Line2;名称为Shape1的圆靠在左边的Line1直线上(见图);另有1个名称为Timer1的计时器控件,其Enabled属性值是True。
要求程序运行后,圆每秒
向右移动100,当圆遇到 Line2时则停止移动。
为实现上述功能,某人把计时器的Interval属性设置为1000,并编写了如下程序: Private SubTimer1_Timer() For k=Line1.X1 To Line2.X1 Step 100 If Shape1.Left+Shape1.Width<Line2.X1 Then Shape1.Left=Shape1.Left+100 End If Next k End Sub 运行程序时发现圆立即移动到了右边的直线处,与题目要求的移动方式不符。
为得到与题目要求相符的结果,下面修改方案中正确的是A) 把计时器的Interval属性设置为1 B) 把For k=Line1.X1 To Line2.X1 Step 100和Next k两行删除C) 把For k=Line1.X1 To Line2.X1 Step 100改为For k=Line2.X1 To Line1.X1 Step 100 D) 把If Shape1.Left+Shape1.Width<Line2.X1 Then改为If Shape1.Left<Line2.X1 Then (分数:2.00)
A.
B. √
C.
D.
解析:[解析] Timer1中用了一个循环,只要圆没有到最右边的直线Line2处,这个圆就会一直向右移动。
但因为Timer1中本来已经通过设置Interval属性来控制循环,Timer事件中的循环重复了,所以答案为
B) 。
34.下列有关文件的叙述中,正确的是
(分数:2.00)
A.以Output方式打开一个不存在的文件时,系统将显示出错信息
B.以Append方式打开的文件,既可以进行读操作,也可以进行写操作
C.在随机文件中,每个记录的长度是固定的√
D.无论是顺序文件还是随机文件,其打开的语句和打开方式都是完全相同的
解析:[解析] 以Output模式打开文件时,如果文件名指定的文件不存在,则会自动建立一个文件,系统不会显示错误信息,所以选项A)是错误的;以Append模式打开文件时,是从文件当前结束开始写入数据,且保留原有数据,但是不能读数据,所以选项B)是错误的;随机文件是以记录为单位,有一组固定长度的记录顺序排列而成,并且给每个记录赋予了记录号以便查找,所以选项C)是正确的;随机文件和顺序文件的打开语句和打开方式是不同的,所以选项D)是错误的。
35.窗体如图1所示。
要求程序运行时,在文本框Text1中输入一个姓氏,单击“删除”按钮(名称为
Command1),则可删除列表框List1中所有该姓氏的项目。
若编写以下程序来实现此功能:Private Sub Command1_Click() Dim n%,k% n=Len(Text1.Text) For k=0 To List1.ListCount-1 If
Left(List1.List(k),n) =Text1.TextThen List1.Removeltem k End lf Next k End Sub 在调试时发现,如输入“陈”,可以正确删除所有姓“陈”的项目,但输入“刘”,则只删除了“刘邦”、“刘备”两项,结果如图 2所示。
这说明程序不能适应所有情况,需要修改。
正确的修改方案是把For k=0 To
List1.ListCount-1改为A) For k=List1.ListCount-1 To 0 Step-1 B) For k=0 To List1.ListCount C) For k=1 To List1.ListCount-1 D) For k=1 To List1.LstCount
(分数:2.00)
A. √
B.
C.
D.
解析:[解析] 错误原因:每一次删除列表框满足项,列表框的项目数目就会相应地减少,所以就出现了漏删内容。
如果把循环变量k改成从List1.ListCout-1到0,从最后一个项目往第一个项目查找,满足条件就删除该项目,那么就不会出现遗漏现象,所以正确答案为A)。
二、{{B}}填空题{{/B}}(总题数:9,分数:30.00)
36.某二叉树有5个度为2的节点及3个度为1的节点,则该二叉树中共有 1个节点。
(分数:2.00)
填空项1:__________________ (正确答案:14)
解析:[解析] 在二叉树中,度为0的节点数是度为2的节点数加1,故二叉树中节点数的总和为度为0的节点数、度为1的节点数及度为2的节点数三者相加,得出结果为14个节点。
37.程序流程图中的菱形框表示的是 1。
(分数:2.00)
填空项1:__________________ (正确答案:逻辑判断)
解析:[解析] 绘制流程图时事实描述用椭圆形表示、行动方案用矩形表示、问题用菱形表示、箭头代表流动方向。
38.软件开发过程主要分为需求分析、设计、编码与测试4个阶段,其中 1阶段产生“软件需求规格说明书”。
(分数:2.00)
填空项1:__________________ (正确答案:需求分析)
解析:[解析] 需求分析阶段的工作主要包括需求获取、需求分析、编写需求规格说明书和需求评审等4方面,产生的主要文档为软件需求规格说明书,它可以为用户、分析人员和设计人员之间的交流提供方便,
直接支持目标软件系统的确认,也可以作为控制软件开发进程的依据。
39.在数据库技术中,实体集之间的联系可以是一对一或一对多或多对多的,那么“学生”和“可选课程”的联系为 1。
(分数:2.00)
填空项1:__________________ (正确答案:多对多)
解析:[解析] 一名学生可以选择多门课程,一门课程也可以由多名学生选择,因此是多对多的联系。
40.人员基本信启、一般包括身份证号、姓名、性别、年龄等。
其中可以作为主关键字的是 1。
(分数:2.00)
填空项1:__________________ (正确答案:身份证号)
解析:[解析] 主关键字是表中区别不同的记录的标识,在该表中只有身份证号能具有这个作用,所以用其作为主关键字。
41.工程中有Form1、Form2两个窗体,Form1窗体外观如图1所示。
程序运行时,在Form1中名称为Text1的文本框中输入______个数值(圆的半径),然后单击命令按钮“计算并显示”(其名称为Command1),则显示Form2窗体,且根据输入的圆的半径计算圆的面积,并在Form2的窗体上显示出来,如图2所示。
如果
单击命令按钮时,文本框中输入的不是数值,则用信息框显示“请输入数值数据!”,请填空。
Private Sub Command1_Click() If Text1.Text="" Then MsgBox "请输入半径!" ElseIf Not IsNumeric({{U}} [6] {{/U}}) Then MsgBox "请输入数值数据!" Else r=Val({{U}} [7] {{/U}}) Form2.Show {{U}} [8] {{/U}}.Print "圆的面积是" & 3.14*r*r End If End Sub
(分数:6.00)
填空项1:__________________ (正确答案:[6] Text1.Text)
解析:[7] Text1.Text [8] Form2 [解析] IsNumeric是一个字符串函数,其参数是一个字符串或者数字,返回值是一个布尔值,如果这个参数是纯数字组成,将会返回True,否则将返回False,在这里作用是为
了检验文本框中输入的是否为纯数据即数值数据,所以第6个空应该填Text1.Text;在判断完成以后要将Text1中的文本内容转化为数字,因此第7个空也应填Text1.Text;最后输入的结果要在 Form2中显示出来,所以第8个空应该填Form2,表示利用的是Form2的Print方法。
42.设有整型变量s,取值范围为0~100,表示学生的成绩。
有如下程序段:If s>=90 Then Leve1="A" Else If s>=75 Then Leve1="B" Else If s>=60 Then Leve1="C" Else Leve1="D" End If 下面用Select Case 结构改写上述程序,使两段程序所实现的功能完全相同,请填空。
Select Case s Case {{U}}[9] {{/U}}>=90 Leve1="A" Case 75 To 89 Leve1="B" Case 60 To 74 Leve1="C" Case {{U}}[10] {{/U}} Leve1="D" {{U}} [11] {{/U}}
(分数:6.00)
填空项1:__________________ (正确答案:[9] Is)
解析:[10] Else [11] EndSelect [解析] 在Select判断语句中,如果是判断区间变量值,可以用“表达式 To 表达式”的形式;如果不是判断区间变量值,则关系运算表达式前面要加上Is,所以第9个空应该为Is;Select判断其余的情况应该用Case Else来表示,所以第10个空为Else;情况语句以Select Case 开头,以End Select结束,所以第11个空应该填End Select。
43.窗体上有名称为Command1的命令按钮。
事件过程及2个函数过程如下:Private Sub Command1_Click() Dim x As Integer,y A8 Integer,z X=3 y=5 z=fy(y) Print fx(fx(x)),y End Sub Function fx(ByVal a As Integer) a=a+a fx=a End Function Function fy(ByRef a As Integer) a=a+a fy=a End Function 运行程序并单击命令按钮,则窗体上显示的两个值依次是{{U}} [12] {{/U}}和{{U}} [13] {{/U}}。
(分数:4.00)
填空项1:__________________ (正确答案:[12] 12)
解析:[13] 10 [解析] 函数fy中的参数a是按地址传递,函数fx中的参数a是按值传递,所以执行z=fy(y)后,y的值为10,z的值为 10,x的值为3;而执行fx(fx(x))后,fx(fx(x))的值为12。
44.窗体上有名称为Command1的命令按钮及名称为Text1、能显示多行文本的文本框。
程序运行后,如果单击命令按钮,则可打开磁盘文件c:/test.txt,并将文件中的内容(多行文本) 显示在文本框中。
下面是实现此功能的程序,请填空。
Private Sub Command1_Click() Text1="" Number=FreeFile Open
"c:/test.txt" For Input As Number Do While NotEOF({{U}} [14] {{/U}}) Line Input #Number,s Text1.Text=Text1.Text+{{U}} [15] {{/U}}+Chr(13)+Chr(10) Loop Close Number End Sub
(分数:4.00)
填空项1:__________________ (正确答案:[14] Number)
解析:[15] s [解析] EOF函数的格式为EOF(文件号),用于测试文件指针是否到达文件末尾,因此第14个空应填文件号Number; Line函数返回文件中一行的数据,要将文件中的内容在文本框中显示,就要用Text1.Text连接上。
再接回车键换行,所以第15个空应该填文件中的内容s。