试卷代号:2231 中央广播电视大学2012一2013学年度第一学期“开放专科”期末考试 Visual Basic程序设计试题 2013年1月 注意事项 一、将你的学号、姓名及分校(工作站)名称填写在答题纸的规定栏内。考试 结束后,把试卷和答题纸放在桌上。试卷和答题纸均不得带出考场。监考人收完 考卷和答题纸后才可离开考场。 二、仔细读懂题目的说明,并按题目要求答题。答案一定要写在答题纸的指 定位置上,写在试卷上的答案无效。 三、用蓝、黑圆珠笔或钢笔(含签字笔)答题,使用铅笔答题无效。 一、单项选择题(每小题2分,共30分)】 1.与传统的程序设计语言相比,Visual Basic最突出的特点是()。 A.结构化程序设计 B.程序开发环境 C.事件驱动的编程机制 D.程序调试技术 2.在VB6.0集成开发环境中有三种工作模式,下列不属于三种工作模式之一的是 () A.设计模式 B.中断模式 C.执行模式 D.编写代码模式 3.下列关于窗体的说法不正确的是()。 A.窗体的标题由Caption属性确定 B.窗体的Name属性与Caption属性相同 C.窗体的背景图片由其Picture属性设定 D.通过设置Icon属性可使窗体获得最小化时的图标 4.工程文件的后缀是()。 A..frm B..vbp C..bas D..cls 1158
试卷代号 2 2 3 中央广播电视大学 3学年度第一学期"开放专科"期末考试 Visual Basic 2013 注意事项 一、将你的学号、姓名及分校{工作站)名称填写在答题纸的规定栏内。考试 结束后,把试卷和答题纸放在桌上。试卷和答题纸均不得带出考场。监考人收完 考卷和答题纸后才可离开考场。 二、仔细读懂题目的说明,并按题目要求答题。答案一定要写在答题纸的指 定位置上,写在试卷上的答案无效。 三、用蓝、黑圆珠笔或钢笔{含签字笔}答题,使用铅笔答题无效。 一、单项选择题{每小题 2分,共 0分} 1.与传统的程序设计语言相比, Visual Basic )。 A.结构化程序设计 .程序开发环境 C. 编程 D. 序调 技术 2. 在VB6.0 集成 发环境 种工作模式 下列 三种工 模式 ( ) A. 式B. 断模式 c.执行模式 .编写代码模式 3. 下列 于窗 法不 )。 A.窗体的标题由 n属性确定 B. 的Name 与Caption c.窗体的背景图片由其 e属性设定 D.通过设置 n属性可使窗体获得最小化时的图标 4. 程文 后缀 )。 A. . frm B. . vbp C. . bas D. . cls 1158
5.要在窗体的标题内显示“myfrm”,使用的语句是()。 A.Forml.Print"myfrm" B.Form.Print"myfrm" C.Form.caption="myfrm" D.Forml.caption="myfrm" 6.在设计动画时,用时钟控件来控制动画速度的属性是()。 A.Enabled B.Interval C.Timer D.Move 7.关于语句行,下列说法正确的是( )。 A.一行只能写一条语句 B.长度不能超过255个字符 C.每行的首字符必须大写 D.一条语句可以分多行书写 8。假定已在窗体上画了多个控件,并有一个控件是活动的,为了在属性窗口中设置窗体 的属性,预先应执行的操作是()。 A.单击窗体上没有控件的地方 B.单击任一个控件 C.不执行任何操作 D.双击窗体的标题栏 9.下列关于变量的说法不正确的是( )。 A.局部变量是指那些在过程中用Dim语句或Static语句声明的变量 B.局部变量的作用域仅限于声明它的过程 C.静态局部变量是在过程中用Static语句声明的 D.局部变量在声明它的过程执行完毕后就被释放了 l0.使用ADO数据模型时,建立Recordset和Connection对象连接的属性是(). A.Execute B.Open C.ActiveConnection D.CommandType 11.DimA(1To6,6)As String定义的数组包含的元素个数是()。 A.36 B.49 C.42 D.50 12.VB程序中逐语句调试的按键是( )。 A.F1键 B.F8键 C.F9键 D.Ctrl+F9键 13.不属于VB数据库引擎的是( )。 A.ODBC B.Jet引擎 C.BDE D.OLE DB 14.一旦数据到达,将首先触发Winsock控件的()。 A.DataGet事件 B.ConnectonRequest事件 C.DataSend事件 D.DataArrival事件 15.VB程序中通常不会产生错误提示的( )。 A.编译错误 B.实时错误 C.逻辑错误 D.运行时错误 1159
5. 在窗 示"myfrm" ,使用的语句是( )。 A. Form!. Print"myfrm" C. Form. caption= "myfrm" B. Form. Print"myfrm" D. Form!. caption= "myfrm" 6. 设计 控件来 制动 速度 性是 )。 A. Enabled C. Timer B. Interval D. Move B. F8 D. Ctrl+F9 B. 单击 一个 D. 7. 下列 )。 A. 能写 条语句B. 长度不能 过255 C. 首字 须大写D. 条语句可 8. 假定 个控 有一个控 设置 的属性,预先应执行的操作是( )。 A. 单击 上没 C. 不执 9. 于变 法不正 )。 A.局部变量是指那些在过程中用 m语句或 c语句声明的变量 B. 域仅 C. 态局部变 过程 用Static D. 部变量 完毕后就被释放 10. 用ADO 立Recordset 和Connection 对象连接 )。 A. Execute B. Open C. ActiveConnection D. CommandType 11. Dim A(l To String 数组 数是 )。 A. 36 B. 49 C. 42 D. 50 12. VB )。 A. F1 C. F9 13. 属 于 )。 A. ODBC B. Jet C. BDE D. OLE DB 14. 据到 将首 发Winsock )。 A. DataGet 件B.ConnectonRequest 事件 C. DataSend 件D.DataArrival 15. VB 错误 )。 A. 译错误B.实时错误 C. 误D. 错误 1159
二、填空题(每小题2分,共20分)】 16.控件数组的名字由 属性指定,而数组中的每个元素由 属性决定。 17.全局变量在整个应用程序中有效,一般在标准模块中使用 语句声明。 l8.在Visual Basic语言中有三种形式的循环结构。其中,若循环的次数可以适先确定, 可使用 循环;若要求先判断循环进行的条件,可使用 循环或Do循环。 l9.要使标签框的大小随Caption属性做自动调整,应将AutoSize属性设置为 20.表达式14/2一237MOD6的值是 21.Winsock控件主要用来编制TCP/IP或 协议的通话程序。 22.若窗体Form1左上角坐标为(0,600),右下角的坐标为(800,一400)。则X轴的正向 向 ,Y轴的正向向 23.列表框控件中最后一项的序号等于ListCount属性减 24.VB中,Access数据库属于 。(说明是哪种数据库类型) 25.VB应用程序与数据库进行通信的主要机制称为 三、阅读程序题(共25分) 阅读下列程序并写出程序运行结果。 26.(6分) Private Sub Form_Click() Dim x As Integer Static y As Integer x=x十3 y=x十y Forml.Print "x=";x,"y=";y End Sub 程序运行后三次单击窗体,写出Form1上的输出结果: 27.(6分) Sub Change(By Val x As Integer,ByVal y As Integer) Dim t As Integer. t x x-y y=t Print x,y End Sub 1160
二、填空题{每小题 2分,共 0分} 16. 一一 性决定 17. 局变量在整 有效 18. 在Visual Basic 三种形式 可使用循环F若要求先判断循环进行的条件,可使用一一一循环或 o循环。 19. 随Caption 动调 将AutoSize 20. 表达式14/2 一2·3 祷7 MOD6 21. Winsock 制TCP/IP 一一 22. 体Form1 为(0 ,600) 右下角 的 为(800 -400) 则X 向,Y轴的正向向 23. 控件 最后 于ListCount 性减 24. VB ,Access 据库 25. VB 程序 据库进行通信 三、阅读程序题{共 5分} 阅读下列程序井写出程序运行结果。 26. (6 Private Sub Form_ClickO Dim x As It1teger Static y As Integer x=x+3 y=x 十y Form1. Print"立=";x , "y = " ; y End Sub 程序运行后三次单击窗体,写出 1上的输出结果 27. (6 Sub Change(ByVal x As Integer, ByVal y As Integer) Dim t As Integer t = x x=y y = t Print x , y End Sub 1160
Private Sub Form_Click() Dim a As Integer,b As Integer a=5:b=10 Change a,b Print a,b End Sub 写出程序运行时单击窗体后,Forml上的输出结果。 28.(6分) Private Sub Form_Click() Dim i As Integer,k As Integer,c As Integer For i=1 To 7 If i Mod 2 =0 Then k=k+3 Else c=c+4 End If Next i Print k,c End Sub 写出程序运行时单击窗体后,窗体Form1上的结果。 29.(7分) Private Sub Form_Click() Dim A(1 To 3)As String Dim c As Integer Dim j As Integer A(1)="20” A(2)="40" A(3)="60" c=2 Forj=1 To 3 c=c+Val(A(j)) Next j Print c End Sub 写出程序运行时单击窗体后,窗体Forml上的结果。 1161
Private Sub Form_ClickO Dim a As Integer, b As Integer a = 5: b = 10 Change a , b Print a , b End Sub 写出程序运行时单击窗体后, 1上的输出结果。 28. (6 Private Sub Form_ClickO Dim i As Integer, k As Integer, c As Integer For i = 1 To 7 If i Mod 2 = 0 Then k=k+3 Else c = c End If Next i Print k , c End Sub 写出程序运行时单击窗体后,窗体 1上的结果。 29. (7 Private Sub Form_ClickO Dim A (l To 3) As String Dim c As Integer Dim j As Integer (l A(2) = "40" A(3) = "60" c=2 For j = 1 To 3. c = c + Val(A(j» Next j Print c End Sub 写出程序运行时单击窗体后,窗体 1上的结果。 1161
四、完善程序题(共10分) 30.假设在C盘根目录中存在一个名为“学生.MDB”的Access数据库,其中包含一张名 为“学生成绩表”的数据表,表中存放了学生的基本信息,如图1所示。 现在要求利用VB编写一个数据库记录增加程序,程序的运行界面如图2所示,基本逻辑 是:在“学号”中选择学号,则在Text1中自动显示姓名,在“课程号“中选择课程号,则在Text2 中自动显示课程名称,在Txt3中输人成绩,然后点击“确认”按钮,若数据库中不存在该记 录,则将该记录添加到数据库中,否则,如果数据库中已经存在该学号、该课程的成绩,则程序 应提示用户“该记录已经存在,不能继续增加”。当点击“返回”按钮(Command:2)时关闭本 窗体。 学生成績表:表 学号 课程号 成 002 80 001 00L 0 003 001 记录:00「 1C们0闲共有记录数:: 图1 好籍纪灵 学号00的 课程号01 姓名 课程名 95 图2 增加新记录窗体程序代码如下,请补充完整。 Private Sub Form_Load() Dim ADOrs As New Recordset [1] ADOrs.[2] "Select学号From学生情况表Order By学号" 1162
四、完善程序题{共 0分} 30. 设在C 存在一个名 为 MDB" 的Access 据库 包含一 为"学生成绩表"的数据表,表中存放了学生的基本信息,如图 1所示。 现在要求利用 B编写一个数据库记录增加程序,程序的运行界面如图 2所示,基本逻辑 是:在"学号"中选择学号,则在 tl中自动显示姓名,在"课程号"中选择课程号,则在 中自动显示课程名称,在 3中输入成绩,然后点击"确认"按钮,若数据库中不存在该记 录,则将该记录添加到数据库中,否则,如果数据库中已经存在该学号、该课程的成绩,则程序 应提示用户"该记录已经存在,不能继续增加"。当点击"返回"按钮 nd )时关闭本 窗体。 增加新记录窗体程序代码如下,请补充完整。 Private Sub Form_LoadO Dim ADOrs As New Recordset 1162 [lJ ADOrs. [2J "Select 号From 学生情况表Order By 学号
Combol.Clear Do While [3] ADOrs.EOF Combol..AddItem Trim(ADOrs.Fields("学号") ADOrs.MoveNext Loop ADOrs.Close ADOrs.Open"Select课程号From课程情况表Order By课程号" Combo2.Clear Do While Not ADOrs.EOF Combo2.AddItem Trim(ADOrs..Fields("课程号") ADOrs.MoveNext Loop ADOrs.Close Textl.Text =" Text2.Text ="M Text3.Text ="0" End Sub Private Sub Command2_Click() [4幻 End Sub Private Sub Combol_Click() Dim ADOrs As New Recordset ADOrs.ActiveConnection ADOcn ADOrs..Open"select姓名from学生情况表where学号="+Combol.Text+m" If Not ADOrs.EOF Then [5] =ADOrs("姓名") End If 1163
Combolo Clear Do While [3J ADOrs. EOF Combolo AddItem Trim(ADOrs. Fields(" ADOrs. MoveNext Loop ADOrs. Close ADOrs. Open "Select 号From 表Order By 程号 ComboZ. Clear Do While Not ADOrs. EOF ComboZ. AddItem Trim(ADOrs. Fields(" " » ADOrs. MoveNext Loop ADOrs. Close Textlo Text = "" TextZ. Text = "" Text3. Text = "0" End Sub Private Sub CommandZ_ClickO [4J End Sub Private Sub ComboLClickO Dim ADOrs As New Recordset ADOrs. ActiveConnection = ADOcn ADOrs. Open "select 名from 学生情况表where '" 十Combo!' Text ", If Not ADOrs. EOF Then [5J = ADOrs(" End If 1163
End Sub Private Sub Combo2_Click() Dim ADOrs As New Recordset ADOrs.ActiveConnection =ADOcn ADOrs.Open"select课程名from课程情况表where课程号="+Combo2.Text十mm If Not ADOrs.EOF Then Text2.Text=ADOrs("课程名") End If End Sub Private Sub Command1_Click() Dim strSQL As String Dim ADOrs As New Recordset ADOrs.ActiveConnection ADOcn strSQL="Select*from学生成绩表" strSQL=strSQL+"Where学号="+Combo1.Text十m strSQL=strSQL十"And课程号="+Combo2.Text十m ADOrs.Open strSQL If Not ADOrs.EOF Then MsgBox"该记录已经存在,不能继续增加",vbCritical+vbOKOnly Exit Sub End If strSQL="Insert Into学生成绩表(学号,课程号,成绩)" strSQL strSQL+"Values(+Combol.Text+, strSQL strSQL+Combo2.Text+,"+Str(Val(Text3.Text))+")" ADOcn.Execute strSQL MsgBox"已成功添加新记录",vbQuestion十vbOKOnly End Sub 1164
End Sub Private Sub Combo2_C1iekO Dim ADOrs As New Reeordset ADOrs. AetiveConneetion = ADOen ADOrs.句 "set 程情况表 程号 Iff + Co bo xt +'仰 If Not ADOrs. EOF Then Text2. Text = ADOrs(" " ) End If End Sub Private Sub CommandLC1iekO Dim strSQL As String Dim ADOrs As New Reeordset ADOrs. AetiveConneetion = ADOen strSQL = "Select 祷from 学生成绩 strSQL = strSQL + " Where Combo!. Text +1/'" strSQL = strSQL + " And Iff + Combo2. Text + "'" ADOrs. Open strSQL If Not ADors. EOF Then MsgBox" 存在 继续 vbCritical + vbOKOnly Exit Sub End If strSQL = "Insert Into 学号 程号 成绩 strSQL = strSQL + " Values Combo!. Text 十脚, strSQL = strSQL + Combo2. Text +气" + Str(Va1(Text3. Text» + ")" ADOcn. Execute strSQL MsgBox" 功添加 vbQuestion + vbOKOnly End Sub 1164
五、编写程序题(共15分) 31.请根据下列描述编写购物优惠程序。某商场为了加速促成商品流通,采用购物打折 的优惠办法,每位顾客一次购物(1)在700元以上者,按九折优惠;(3)1000元以上者,按八折 优惠:(4)2000元以上者按七折优惠。在窗体上添加两个文本框和一个命令按钮,要求在 Text1中输人购物商品总金额,单击命令按钮,在Text2中输出优惠价。程序运行结果如图3 所示。 物优惠程吊 物总金服 优高价为 3000 2100 图3 1165
五、编写程序题{共 1. 根据 描述编写购物 某商 促成 流通 用 购 物 的优惠办法,每位顾客一次购物(1)在 0元以上者,按丸折优惠; (3 )1000 优惠 000元以上者按七折优惠。在窗体上添加两个文本框和一个命令按钮,要求在 Textl 输入 金额 单击 令按 在Text2 行结 图3 所示。 1165
试卷代号:2231 座位[ 中央广播电视大学2012一2013学年度第一学期“开放专科”期末考试 Visual Basic程序设计 试题答题纸 2013年1月 题 号 二 三 四 五 总 分 分 数 得分 评卷人 一、单项选择题(每小题2分,共30分) 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 得 分 评卷人 二、填空题(每小题2分,共20分) 16. 17. 18. 1 20. 21. 22. 23. 2 25. 1166
试卷代号 2 2 座位号rn 中央广播电视大学 3学年度第一学期"开放专科"期末考试 Visual Basic 试题答题 2013 年1 |题号|一|二|三|四!五|总分| |分数 I I I I I I |得分|评卷入| 题{每小题 2分,共 0分} I I I 二、填空题{每小题 2分,共 0分} 1. 2. 6. 7. 11. 12. 巴国16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 1166 3. 8. 13. 4. 9. 14. 5. 10. 15
得分 评卷人 三、阅读程序题(共25分)】 26. 27. 28. 29. 得分 评卷人 四、完善程序题(共10分) 30.增加新记录窗体程序代码如下,请补充完整。 Private Sub Form_Load() Dim ADOrs As New Recordset [] ADOrs.[2] "Select学号From学生情况表Order By学号" Combol.Clear Do While [3] ADOrs.EOF Combol.AddItem Trim(ADOrs..Fields("学号")) ADOrs.MoveNext Loop ADOrs.Close ADOrs.Open"Select课程号From课程情况表Order By课程号" Combo2.Clear Do While Not ADOrs.EOF Combo2.AddItem Trim(ADOrs.Fields("课程号") ADOrs.MoveNext Loop ADOrs.Close 1167
|得分|评卷人| I I I 26. 27. 28. 29. |得分|评卷人| I I I 三、阅读程序题{共 2 5 四、完善程序题{共 "Select 号From 表Order By 学号 30. 增加 体程序代 如下 补充完整 Private Sub Form_LoadO Dim ADOrs As New Recordset [lJ ADOrs. [2J Combo!. Clear Do While [3J ADOrs. EOF Combo!. AddItem Trim(ADOrs. Fields(" ) ) ADOrs. MoveNext Loop ADOrs. Close ADOrs. Open 咆elect 号From 程情况表Order By 程号 Combo2. Clear Do While Not ADOrs. EOF Combo2. AddItem Trim(ADOrs. Fields(" " ) ) ADOrs. MoveNext Loop ADOrs. Close 1167