【VB开源代码栏目提醒】:网学会员为广大网友收集整理了,暨南大学2012vb程序设计笔试期末考试带参考答案-共享 - 中考高考,希望对大家有所帮助!
得分 评阅人 一、填空题(共 10 个空,每空 2 分,共 20 分)1. 以下程序的功能是:判断一个数是不是素数,将 21000 间的素数求和。
请 完善程序。
Private Sub Form_Click Public Function isprimea As Boolean Dim msum isprime True For m2 to 1000 Dim i If isprimem then For i 2 To a2 或 inta1/2 或 a-1 等 sumsumm If a mod i 0 Then prime False End if Next i Next m End Function Print sum End Sub2. 弹出名称为“Main”的菜单的语句为 PopUpMenu MainPopu 。
3. 在 Visual Basic 中,所有控件都应具有的属性是__Name________________。
4. 执行下面程序,第二行输出的结果分别是_64 41 6_。
Private Sub Form_Click Public Function testm ByVal n Dim i j Static sta i5 : j6 Print testi j ij nn3 : mmn Print testi j ij sta sta m : test sta End Sub End Function5. 以下程序的功能是:利用过程将 20 个三位随机正整数存于数组 A,请完善 程序。
Private Sub Form_Click Public Sub Input_a1 _b_ Dim i Dim a(1 to 20) For i LBOUNDb To UBOUNDb Input_a1 a B i intrnd900100 Next i End Sub End Sub 得分 评阅人 二、简答题(共 4 题,每题 5 分,共 20 分)1. 根据控件对象属性值的设置方式分别描述设计属性、运行属性、常规属性、 只读属性。
设计属性值只能在
设计阶段通过属性窗口设置,如控件的 Name 属性; 运行属性值只能在
代码中通过赋值语句设置,如窗体的 CurrentX 属性; 常规属性值既可在设计阶段通过属性窗口设置,也可在
代码中通过赋值语句 设置,如文本框的 Text 属性; 只读属性值用户不能直接在设计阶段设置,也不能在
代码中通过赋值语句设 置,其值只能根据对象的当前状态自动改变。
2. 赋值语句 ai iifxyz xy z xzyz xyz 中有三对括号,解释 每对括号的作用。
(xy) z 中的圆括号对用来改变算术运算的优先顺序。
ai出现在语句的左端,可判定 ai是一个数组元素,圆括号对中内容指定数 组元素的下标。
iif 是系统提供的一个函数。
其后跟的圆括号对表示,圆括号对中内容是该函 数的实参
列表。
3. 阅读表格中程序,回答下列
问题。
Private Sub Form_Click Public Function minByRef x ByVal y Dim mnz If x y then m30 :n20 x xy :y x –y :x x-y zminmn end if print mnz min x End Sub End Function ①上述程序中,哪些是形参、哪些是实参? ②上述
程序中,关键字 ByRef 和 ByVal 的作用? ③上述程序中,min x 的作用? ④执行 Form_Click事件过程,窗体上显示的内容是什么? ①上述程序中,x,y 是形参、m,n 是实参。
②上述程序中,关键字 ByRef 说明实参 m 和形参 x 之间采用传址的方式进行 参数传递;关键字 ByVal 说明实参 n 和形参 y 之间采用传值的方式进行参数 传递。
③上述程序中,min x 的作用是给函数赋返回值。
④执行 Form_Click事件过程,窗体上显示的内容是 20 20 20。
4. 简述
VB 中 GotFocus、LostFocus、SetFocus 三者的区别? a GotFocus、LostFocus 均为某个对象所响应的事件,SetFocus 是
系统为 某个对象所设置的一种方法; b GotFocus 事 件 是 一 个 对象 获 得 焦 点 时发 生 , 而 LostFocus 事件与 GotFocus 事件相反,是一个对象失去焦点时发生,如移动制表键(Tab) 或单击另外一个对象都会发生 LostFocus 事件; c SetFocus 方法是把光标移到制定的对象上,如文本框最有用的方法就是 Setfocus,该方法是把光标移到指定的文本框中。
得分 评阅人 三、程序分析题(共 1 题,每题 15 分,共 15 分)1. 表格中的 Form1_Click 事件过程的功能是随机生成 30 个 30 以内的正整数存 入数组 a 中,对数组 a 中数值相同的元素只保留下标最小的那一个,其余的 (
代码中左侧有 符号的为注释) 全部删除,同时要求改变数组的上界。
Private Sub Form_Click Dim a i j found As Boolean ReDim a1 To 30 For i 1 To 30 ai 1 Int30 Rnd Next i For i 30 To 2 Step -1 found False ji-1 查找在 i-1 之前是否存在等于 ai 的元素。
若有,则 found true Do If aj ai Then found True jj-1 Loop Until j 1 Or found 若 found true则删除 ai元素 If found Then For j i 1 To UBounda aj - 1 aj Next j ReDim Preserve a1 To UBounda - 1 End If Next i End Sub1 数组 a 可以定义为静态数组吗?为什么 不可以。
根据题意,需要删除 a 中重复元素,并改变数组 a 的上界,只 能将 a 定义为动态数组。
2 循环语句 For i 30 To 2 Step -1 改为 For i 1 To 29 可以吗?为 什么? 不可以。
根据题意,删除 a 中重复元素的同时,要保留其它元素的值。
这样,只能改变数组 a 的上界。
若循环语句改为 For i 1 To 29 ,除 了需要修改其循环体的控制过程以外,程序还可能出错。
例如,删除两 个重复元素之后,数组 a 中已经没有了 a29这个元素,会出现下标越 界错误。
3 表格中有两段删除 ai元素的
代码段,解释其算法过程,从执行速度和 数据排列两个方面分析两种算法的差异。
第一段 第二段 For j i 1 To UBounda ai aubounda aj - 1 aj ReDim Preserve a1 To UBounda - 1 Next j ReDim Preserve a1 To UBounda - 1 第一段:将 ai1的值赋给 ai, ai2的值赋给 ai1,依次类推, 直到 aubounda的值赋给 aubounda-1为止。
这时 ai中的原值已经不存在,aubounda元素已经没用,使用 redim 语句改变 a 的上界,删除 aubounda元素。
第二段:将 aubounda的值赋给 ai。
这时 ai中的原值已经不存在,aubounda元素已经没用,使用 redim 语句改变 a 的上界,删除aubounda元素。
对比两段
代码:从速度而言,第一段
代码可能需要移动多项数据,而第二段
代码只需移动一项数据,所以第二段
代码执行速度快;从数据排列而言,第一段
代码的实现方式不改变原有的数据排列序,而第而段
代码的实现方式改变原有的数据排列。
得分 评阅人 四、单选题(共 30 小题,每小题 1.5 分,共 45 分)1.
VB 是一种面向对象的可视化程序设计语言, 它采用了 A 的编程机制。
A 事件驱动 B 从主程序开始执行 C 按过程顺序执行 D 按模块顺序执行2. 数学表达式 20≤x