国家二级(VB)机试模拟试卷243
选择题
1.算法的有穷性是指( )。(A)
A. 算法程序的运行时间是有限的
B. 算法程序所处理的数据量是有限的
C. 算法程序的长度是有限的
D. 算法只能被有限的用户使用
解析:算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。有穷性是指算法程序的运行时间是有限的。
2.设有关键码序列(Q,G,M,Z,A,N,B,P,X,H,Y,S,T,L,K,E),采用堆排序法进行排序,经过初始建堆后关键码值B在序列中的序号是( )。(B)
A. 1
B. 3
C. 7
D. 9
解析:建堆的算法:首先将要排序的所有关键码放到一棵完全二叉树的各个结点中(这时的二叉树不具备堆的特性),然后,从i=[n/2](n为结点的个数)的结点Ki开始,逐步把以K[n/2],K[n/2]-1,K[n/2]-2,…为根的子树排成堆,直到以Kl为根的树排成堆,就完成了建堆过程。此题中,n=16,i=[16/2]=8,即从第8个结点开始,建堆完成后如下图:所以经过初始建堆后关键码值B在序列中的序号是3。
3.在E-R图中,用来表示实体联系的图形是( )。(C)
A. 椭圆形
B. 矩形
C. 菱形
D. 三角形
解析:在E-R图中实体集用矩形,属性用椭圆,联系用菱形。
4.窗体上有名称为Commandl的命令按钮,名称分别为Listl、List2的列表框,其中Listl的MuhiSelect属性设置为1(Simple),并有如-F事件过程:
Private Sub Command l_Click( )
For i=0 To Listl.ListCount_l
If Listl.Selected(i)=True Then
List2.Addhem Text End If
Next
End Sub
上述事件过程的功能是将Listl中被选中的列表项添加到List2中。运行程序时,发现不能达到预期目的,应做修改,下列修改中正确的是( )。(C)
A. 将For循环的终值改为Listl.ListCount
B. 将Listl.Selected(i)=True改为Listl.List(i).Selected=True
C. 将List2.Addltem Text改为List2.Addltem Listl.List(i)
D. 将List2.Addltem Text改为List2.Addltem Listl.Listlndex
解析:题目程序不能将Listl中的选中项添加到List2中,List2.Addltem Text一行有误,应该改为List2.Addhem Listl.List(i)才能使Listl中每个选中的行添加到List2中。列表框控件的List属性保存了列表框中所有值的数组,可以通过下标访问数组中的值。
5.表达式Int(8*Sqr(36)*10^(.2)*10+0.5)/10的值是( )。(C)
A. 0.48
B. 0.048
C. 0.5
D. 0.05
解析:本题考查运算符的优先级。首先计算函数调用,算术运算符优先级从高到低为:( )^-、*/、+-,因此首先计算sqr(36),然后计算0括号内部的负号和平方运算符,接着计算?和+,然后计算Int取整,最后计算/运算符。
6.以下叙述中正确的是( )。(C)
A. 任何时候都可以使用标准工具栏的“菜单编辑器”按钮打开菜单编辑器
B. 只有当代码窗口为当前活动窗口时,才能打开菜单编辑器
C. 只有当窗体设计窗口为当前活动窗体时,才能打开菜单编辑器
D. 任何时候都可以使用“工具”菜单下的“菜单编辑器”命令,打开菜单编辑器
解析:本题考查菜单编辑器。在窗体设计界而中,可以使用“工具”菜单下的“菜单编辑器”命令,或使用工具栏上的菜单编辑器命令,来打开菜单编辑器。在代码窗口中,菜单编辑器命令为灰色的,不可以使用。
7.待排序的关键码序列为(15,20,9,30,67,65,45,90),要按关键码值递增的顺序排序,采取简单选择排序法,第一趟排序后关键码15被放到第( )个位置。(B)
A. 2
B. 3
C. 4
D. 5
解析:选择排序的基本思想是扫描整个线性表,从中选出最小的元素,将它交换到表的最前面,然后对剩下的子表采用同样的方法,直到子表为空。所以第一趟排序后,将选出最小的元素9放在第一个位置,元素15则放在第3个位置。
8.单击命令按钮执行以下程序,则输出结果为( )。
Private Sub Command1_Click()
Dim x As Integer,y As Integer
x=14:y=48:CallProc(x,y)
Print x;y
End Sub
Public Sub Proc(n As Integer,ByVal m As Integer)
n=n Mod10:m=m Mod10
End Sub(D)
A. 4 8
B. 14 8
C. 14 48
D. 4 48
解析:本题考查参数传递。在VB的过程调用时,参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参川ByVal声明,说明此参数为传值调用;若用ByRef声明,说明此参数为传址调用;如果没有说明传递类型,则默认为传址传递。由此可知题目中的实参x为传址调用,y为传值调用,因此n的变化影响x,而m变化不会影响y。
9.已知在4行3列的全局数组score(4,3)r}1存放了4个学生3门课程的考试成绩(均为整数)。现需要计算每个学生的总分,某人编写程序如下:
Option Base 1
Private Sub Command I_Click()
Dim Sllnl As Integer
Sum=0 For i=l To 4
For j=l To 3
sum=sum+score(i,j)
Print“第”&i&“个学生的总分是:”;sum
Next j
Next i
End Sub
运行此程序时发现,除第1个人的总分计算正确外,其他人的总分都是错误的,程序需要修改。以下修改方案中正确的是( )。(B)
A. 把外层循环语句For i=1 To 4改为For i=1 To 3内层循环语句For j=l To 3改为For j=1 To 4
B. 把sum=0移到For i=1 To 4和For j=1 To 3之间
C. 把sum=sum+score(i,j)改为sum=sum+score(j,i)
D. 把sum=sum+score(i,j)改为sum=score(i,j)
解析:程序变量Sum的值在
本文档预览:3600字符,共20274字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载