第1讲 可视数组控件、结构数组和综合应用

5.3 列表框和组合框随堂测验

1、列表框中选中某一项内容的表示,错误的是___________。
    A、ListBox1.Items(ListBox1.SelectedIndex)
    B、ListBox1.Text
    C、ListBox1. SelectedItem
    D、ListBox1.Items(SelectedIndex)

2、列表框和组合框的Items属性是集合,即列表框和组合框中的各选项,实质是一维字符串数组。

3、对数值数据排序,可以利用排序算法按递增或递减次序排序;也可以将数据存放到组合框或列表框,直接利用Sorted属性按递增或递减次序排序。

4、组合框DropDownStyle的属性设置为非DropDownList 值,实质是文本框和列表框的组合,所以可以直接在文本框输入内容,通过ADD方法添加到列表框。

5、Add和Insert方法都是将内容添加到列表框指定的位置。

5.4 结构类型随堂测验

1、自定义结构类型的关键字为_____________。
    A、Class
    B、Type
    C、Structure
    D、Define

2、有如下结构类型定义和变量声明: Structure Stru Dim No As Integer Dim Sex As Char End Structure 下列选项不正确的是___________。
    A、Sex是结构成员
    B、s是结构变量
    C、Stru是结构类型
    D、Stru是结构变量

3、定义结构类型并声明变量如下: Structure Person Dim Name As String Dim Age As Integer End Structure Dim p As Person 若要给结构变量p赋值,下列选项正确的是___________。
    A、p=("王小明",18)
    B、Name = "王小明" : Age =18
    C、p.Name = "王小明" : p.Age =18
    D、Person.Name = "王小明" : Person.Age =18

4、若有如下定义,则选项中不正确的语句是_________。 Structure student Dim Name As String Dim score As Integer End Structure Dim s1,s2 as Student
    A、s2.Name="zhang"
    B、s1 = s2
    C、s1.score = s2.score
    D、Student.Name = s2.Name

5、若有如下定义: Structure student Dim Name As String Dim Score As Integer End Structure Dim t,s(9) As Student Dim x As String.y As Integer 若要交换结构数组中第一个元素与最后一个元素的值,则如下语句: t=s(0) : s(0) = s(9) : s(9) = t 是正确的。

5.5 综合应用随堂测验

1、利用文本框可以输入大量数据,当然必须要有数据间的分隔符便于将各数据项分离;若要将输入的数据存入数组中,在VB.NET中可以通过 函数方便地实现。
    A、Join
    B、Mid
    C、Split
    D、InStr

2、若要将数组中的数据一并放入文本框,可利用 函数方便地实现。
    A、Join
    B、Mid
    C、Split
    D、Replace

3、已声明数组:Dim a%(25),用以存放统计字符串中出现的26个字母出现的个数;已知字符变量C中存放的是一个大写字母,要进行相应的统计,在循环体内相应的程序段是 。
    A、j=Asc(c)-65 : a(j)=a(j)+1
    B、j=Asc(c) : a(j)=a(j)+1
    C、j=Asc(c)-“a” : a(j)=a(j)+1
    D、j=Asc(c)-65 : a(j)= 1

4、关于奇数n阶魔方阵,已知当前元素布局位置为i,j;下一个元素布局位置为当前数的右上角即 ,当然还要考虑三种特殊情况。
    A、i-1,j-1
    B、i+1,j-1
    C、i-1,j+1
    D、i+1,j+1

第1讲可视数组结构数组单元测验

1、删除列表框中第2项的项目,应使用的方法为______。
    A、Items.RemoveAt
    B、Items.Move
    C、Items.Remove
    D、Items.Clear
    E、Items.Delete

2、下面对列表框(Listbox1)的操作中,正确的语句是______。
    A、ListBox1.Items.Remove("计算机")
    B、Listbox1.Items.Cls
    C、ListBox1.Items.Remove(4)
    D、ListBox1.Items.Add(1, "打印机")
    E、ListBox1.Items.RemoveAt("计算机")

3、引用列表框 ListBox1 最后一个数据项应使用代码_________。
    A、ListBox1.Items(Listbox1.Items.Count - 1)
    B、ListBox1.Items(Listbox1.Items.Count)
    C、ListBox1.Items(Count - 1)
    D、ListBox1.Items.Count

4、若有如下定义,选项中不正确的语句是_________。 Structure MyStru Dim No as integer Dim Gender As Char End Structure Dim s(100) AS MyStru
    A、MyStru是结构变量
    B、s是结构数组
    C、s(0).No=1234是正确的赋值语句
    D、Gender是结构中的一个成员
    E、s(1)是数组中的一个元素

5、若有如下定义,选项中正确的语句是_________。 Structure Student Dim No As Integer Dim Name As String End Structure Dim My As Student
    A、My.No=101
    B、Name="Zhong"
    C、No=101
    D、My=(101,"Zhong")
    E、Student=(101,"Zhong")

6、在下面对列表框(Listbox1)的操作中,错误的语句是______。
    A、ListBox1.Items.RemoveAt(SelectedIndex)
    B、ListBox1.Items.RemoveAt(0)
    C、ListBox1.Items.Remove(ListBox1.Text)
    D、ListBox1.Items.Add("0")

7、若有如下定义,选项中正确的语句是_________。 Sructure student Dim Name As String Dim Score As Integer End Structure Dim s as Student
    A、s.Name="zhang"
    B、s="zhang"
    C、student.Name="zhang"
    D、s=student
    E、student.s="zhang"

8、如果要修改组合框(ComboBox)的下拉样式,应设置________属性。
    A、DropDownStyle
    B、DrawMode
    C、FormBoderStyle
    D、List
    E、Enabeled

9、关于列表框(ListBox)和组合框(ComboBox)的Items属性的说法,正确的是________。
    A、该属性实质是一个一维字符串数组,数组的长度根据数据项决定,所以是可变的。
    B、该属性是一个一维字符串类型的数组,数组的长度是256。
    C、该属性是一个一维数组,数据类型可以自己定义。
    D、该属性是一个二维数组,数据类型是字符串类型。
    E、该属性是一个一维数组,可以用ReDim语句重新定义。

10、关于列表框(ListBox)的SelectedIndex属性默认值是________。
    A、-1
    B、0
    C、1
    D、0~Count-1中的一个随机值
    E、Count-1

11、利用Items.Add方法,可以向列表框或组合框里添加一项数据。

12、利用Items.Clear方法,可以将列表框或组合框里删除一项数据。

第1讲可视数组结构数组实验作业

1、输入整数n,显示出具有n行的杨辉三角形,如下图所示。 以“昵称-1-1”为项目名保存。项目完成后,将整个项目文件夹压缩成:“昵称-1-1.rar”,以附件形式提交。 提示: ① 定义一个二维数组,数组大小与文本框中输入的n有关; ② 对下三角各元素进行设置:第一列及对角线上的元素均为1;其余每一个元素正好等于它上面一行的同一列和前一列的两个元素之和。即a(i , j)=a(i-1 , j-1)+a(i-1 , j)。 ③ 利用Space(4-Len(Trim(a(I,j))))函数定每列输出宽度为4,使得列对齐。

2、设计一个选课程序,界面如下图所示。它包含2个列表框,左边为已开设的课程名称,通过Form1_Load事件加入,并且设置了排序;当单击某课程名称后,该课程加入到右边列表框,并从左边列表框中删除。当右边课程数超过5门时不允许再加入。 以“昵称-1-2”为项目名保存。项目完成后,将整个项目文件夹压缩成:昵称-1-2.rar,以附件形式提交。

3、窗体上建立一个简单组合框,在组合框的文本框输入数字字符,按回车键后加入到组合框的列表框内,见左下图;单击”交换”命令按钮,将列表框中最小值项目和第0个项目交换;最大值项目与最后项目交换, 见右下图。 以“昵称-1-3”为项目名保存。项目完成后,将整个项目文件夹压缩成:昵称-1-3.rar,以附件形式提交。

第2讲 函数过程和子过程

6.1 函数过程随堂测验

1、编写求两个数的最大公约数的函数过程,一般形式参数应该有 个。
    A、3
    B、2
    C、1
    D、0

2、对过程的描述,不正确的是 。
    A、使功能相同的操作不重复编写,写一次可多次被调用
    B、把一项复杂的工作分成简单的功能模块
    C、在VB.NET中定义的一个过程,可供其他事件过程调用
    D、一个过程就是一个完整的程序

3、函数过程体内可以不对函数名赋值。

4、定义Sub子过程与Function函数过程的主要区别之一:子过程名无值,函数名有值。

5、函数过程的定义是用Sub关键字开头。

6.2 子过程随堂测验

1、如下对子过程的描述, 是错误的。
    A、子过程若要返回值,只能通过参数来传递。
    B、子过程可以返回多个值。
    C、子过程名有值,所以有类型
    D、子过程可以没有返回值

2、子过程调用只能用Call语句调用

3、子过程体内,可以对子过程名赋值。

4、一般若过程有一个返回值时,定义为函数过程直观;当无返回值或有多个返回值时,习惯定义为子过程。

6.3 参数传递随堂测验

1、下列程序单击按钮后标签上的文字为________。 Private Sub Button1_Click(…) Dim s$=”VB.NET程序设计” Call ProcString(s) Label1.Text=s End Sub Sub ProcString(ByVal m$) m=Mid(m,7,2) End Sub
    A、VB
    B、程序
    C、设计
    D、VB.NET程序设计

2、下列程序单击按钮后标签上的文字为________。 Private Sub Button1_Click(…) Dim s$=”VB.NET程序设计” Call ProcString(s) Label1.Text=s End Sub Sub ProcString(ByRef m$) m=Mid(m,7,2) End Sub
    A、VB
    B、程序
    C、设计
    D、VB.NET程序设计

3、在VB.NET中,希望调用MyProc子过程后2个形参m、n均有返回值, 则形参声明正确的为__________。
    A、Sub MyProc(ByVal m%, ByRef n%)
    B、Sub MyProc(ByRef m%, ByRef n%)
    C、Sub MyProc(ByRef m%, ByVal n%)
    D、Sub ByRef MyProc(m%, n%)

4、对参数传递, 描述是错误的。
    A、形参没有具体的值,只代表了参数的个数、位置、类型。
    B、在参数传递中,一般是按位置传送,按实参的位置次序与形参的位置次序对应传送,与参数名没有关系。
    C、参数传递的作用是主调程序和被调过程数据交互的接口
    D、在参数传递时根据实参名与形参名相同才能实现传递

第2讲函数过程和子过程单元测验

1、下面过程运行后显示的结果是________。 Public Sub p1(ByRef x%, ByVal y%) x = 2 * x: y = y + 2 End Sub Sub Button1_Click(…) Handles Button1.Click Dim a%,b% a = 2: b = 4 Call p1(a, b) MsgBox( "a=" & a & " b=" & b ) End Sub
    A、a=4 b=4
    B、a=2 b=4
    C、a=4 b=2
    D、a=6 b=8
    E、a=8 b=6

2、在过程定义中,形参有传值、传地址两种方式,_____________关键字表示传值方式。
    A、ByVal
    B、ByRef
    C、Value
    D、Val
    E、Ref

3、从子过程退出,并返回到主调过程,可使用语句______ 。
    A、Exit Sub
    B、Exit Function
    C、Return Sub
    D、Return Function
    E、Stop Sub

4、下面过程运行后显示的结果是________。 Sub Button1_Click(…) Handles Button1.Click Dim x%, y% x = 12: y = 34 Call F1(x, y) MsgBox( x & “ “ & y) End Sub Public Sub F1(ByRef n%, ByVal m%) n = n Mod 10 m = m \ 10 End Sub
    A、2 34
    B、12 34
    C、2 4
    D、1 3
    E、12 3

5、子过程定义如下: Public Sub F1(ByRef n%) … n=3*n+4 … End Sub Sub Button1_Click(……) Handles Button1.Click Dim n%, m% n=3 m=4 … ' 调用F1语句 … End Sub 则在Button1_Click事件中有效的调用语句是____________。
    A、F1( m)
    B、F1(n+m)
    C、F1( 4)
    D、F1(3+4)
    E、F1( m,n)

6、下面过程定义正确的是_____________。
    A、Function f1%(ByVal n%)
    B、Sub f1(ByRef n() As Integer)
    C、Sub f1(ByVal n(6) as Integer)
    D、Function f1%(ByRef f1%)
    E、Sub f1(ByRef n%) As Integer

7、要将两个整数参数传递给子过程MySub,并返回一个整数结果,下列子过程定义中符合要求的是_________。
    A、Sub MySub(ByVal m%, ByRef n%)
    B、Sub MySub(ByVal m!, ByVal n!)
    C、Sub MySub(ByVal m%, ByVal n%) as Integer
    D、Sub MySub(ByVal m!, ByRef n!) as Integer
    E、Sub MySub(ByVal m%, ByVal n%() )

8、数组作为参数,形参无论是ByRef还是ByVal,其效果都是ByVal方式。

9、子过程和函数过程的区别之一是子过程名没有值,而函数名有值。

第2讲函数过程和子过程实验作业

1、参考教材例6.2,编一求两数m,n最大公约数的函数过程gcd(m,n);主调程序在两个文本框输入数据,单击 “显示”按钮,调用gcd (m,n),在右边标签显示结果,如下图。 以“昵称-2-1”为项目名保存。 项目完成后,将整个项目文件夹压缩成:昵称-2-1.rar,以附件形式提交。

2、编一子过程ProcMin(ByRef a%(), ByRef amin%),求一维数组a中的最小值amin。 主调程序随机产生10个-300~-400之间的整数,并保存在数组中。显示产生的数组各元素;调用ProcMin子过程,显示出数组中的最小值。 界面自行设置,以“昵称-2-2”为项目名保存。 项目完成后,将整个项目文件夹压缩成:昵称-2-2.rar,以附件形式提交。

3、编一个函数过程MySin(x),求 当第n项的精度小于0.000001时结束,x为弧度;主调程序同时调用Mysin和内部函数sin,进行验证。 提示:关键是找部分级数和的通项,如下表示: Ti+2= -1*Ti*x*x/((i+1)*(i+2)) i=1,3,5,7… 界面自行设置,以“昵称-2-3”为项目名保存。 项目完成后,将整个项目文件夹压缩成:昵称-2-3.rar,以附件形式提交。

4、编一函数过程IsH(n),对于已知正整数n,判断该数是否是回文数,函数的返回值类型为布尔型。主调程序每输入一个数,调用IsH函数过程,然后在右边的Label3显示输入的数,对于是回文数显示一个”★”,如下图。 提示 ① 所谓回文数是指顺读与倒读数字相同,即指最高位与最低位相同,次高位与次低位相同,依次类推。当只有一位数时,也认为是回文数。 ② 回文数的求法,只要对输入的数(按字符串类型处理),利用Mid函数从两边往中间比较,若不相同,就不是回文数。 以“昵称-2-4”为项目名保存。 项目完成后,将整个项目文件夹压缩成:昵称-2-4.rar,以附件形式提交。

第3讲 过程(续) 和 常用算法(3)

6.4 变量的作用域和静态变量随堂测验

1、在VB.NET中,变量声明位置不同,被访问范围不同,分为四种,最常用的是 。
    A、块变量
    B、模块级变量
    C、过程级变量
    D、全局变量

2、如下程序段,要计算s=1+(1+2)+(1+2+3),已知主调程序为: Private Sub Button1_Click(…) Handles Button1.Click Dim s% = 0,i% For i = 1 To 3 s = s + sum(i) Next MsgBox(“s=” & s) End Sub 关于sum函数过程及变量声明,下列选项不能实现的是 。
    A、Function sum(ByVal n%) Dim c% c = c + n sum = c End Function
    B、Function sum(ByVal n%) Static c% c = c + n sum = c End Function
    C、Public c% Function sum(ByVal n%) c = c + n sum = c End Function
    D、Dim c% Function sum(ByVal n%) c = c + n sum = c End Function

3、要在多个过程中共享变量中的数据,该变量应该声明为 变量。
    A、过程级
    B、模块级
    C、块
    D、静态

6.5 综合应用-常用算法(3)随堂测验

1、已知十进制正整数 m,要转换成 r 进制字符串 s,完成此功能,如下过程头(子过程或函数过程)定义,不正确的是 。
    A、Sub tran(ByVal m%, ByVal r%, ByRef s$)
    B、Sub tran(ByVal m%, ByVal r%, ByVal s$)
    C、Function s$(ByVal m%, ByVal r%)
    D、Function s$(ByVal r%, ByVal m%)

2、查找是在数组中根据指定的关键值,找出与其值相同的元素。常用的查找方法是顺序查找和二分法查找,如下描述正确的是 。
    A、顺序查找速度快于二分法查找
    B、当数组中的数据很大时,二分法查找与顺序查找相比没有优势。
    C、顺序查找时数组中的数据必须是有序的
    D、二分法查找时数组中的数据必须是有序的

第3讲 过程(续) 和 常用算法(3)单元测验

1、欲利用计算机程序实现快速检索词典中单词时,平均查找次数最少的是_______。
    A、二分法查找法
    B、顺序查找法
    C、随机查找法
    D、选择查找法

2、假设窗体Form1中用如下方式定义了二个模块级变量: Public x% Dim y% 则下面叙述正确的是___________。
    A、Form2窗体要访问x变量时,一定要在变量x前加窗体名Form1,即:Form1.x
    B、Form2窗体可以直接访问x、y变量
    C、Form2窗体不可以直接访问x、y变量
    D、Form2窗体要访问x变量时,一定要在变量x前加Me,即:Me.x
    E、Form2窗体要访问y变量时,一定要在变量y前加窗体名Form1,即:Form1.y

3、假设要对字符串s 加密,秘钥为key,加密后的字符串存放在code中,该功能的子过程头定义如下: Sub pCode(ByVal s$, ByVal key%, ByRef code$) 则调用该子过程,将文本框TextBox1中的字符串加上秘钥5, 加密后的字符串存放在scode中,正确的调用语句是__________。
    A、Call proCode(TextBox1.Text, 5, scode)
    B、Call proCode(TextBox1.Text, scode, 5)
    C、scode = proCode(TextBox1.Text, 5)
    D、Call proCode(TextBox1, 5, scode)

4、过程级的静态变量,其作用范围可以延伸到过程外。

5、过程级的变量,其作用范围只能在过程内。

第3讲 过程(续) 和 常用算法(3)实验作业

1、如果一个整数的所有因子(包括1,但不包括本身)之和与该数相等,则称这个数为完数。例如6=1+2+3,所以6是一个完数。编写一个函数IsWs(m)判断m是否为完数,函数的返回值是逻辑型。主调程序在窗体上显示1000以内的完数,见下图所示。 以“昵称-11-1”为项目名保存。 项目完成后,将整个项目文件夹压缩成:昵称-11-1.rar,以附件形式提交。 【提示】判断一个数m是否是完数,算法思想是:将m依次除以1~m/2,对于能整除,就是m的一个因子,进行累加;循环结束,若m与累加因子和相等m就是完数。

2、编一个子过程DeleStr(s1,s2),将字符串s1中出现s2子字符串删去,结果还是存放在s1中。 例如:s1=" 12345678AAABBDFG12345 " s2="234" 结果:s1=" 15678AAABBDFG15 " 界面自行设置,以“昵称-11-2”为项目名保存。 项目完成后,将整个项目文件夹压缩成:昵称-11-2.rar,以附件形式提交。 【提示】为了删除子串,首先利用InStr函数查找子串;找到则通过Mid函数实现子字符串的删除;同时要利用循环考虑到删除多个子字符串的情况。

3、编一子过程MaxLength(s,MaxWord),在已知的字符串s中,找出最长的单词MaxWord。假定字符串s内只含有字母和空格,空格分隔不同的单词。程序运行界面如下图所示。以“昵称-11-3”为项目名保存。 项目完成后,将整个项目文件夹压缩成:昵称-11-3.rar,以附件形式提交。 【提示】 ① 首先利用InStr函数从S中从左开始找第一个出现的空格,利用Mid函数分离出空格左边的单词,与MaxWord最长单词比较(MaxWord初态为空); i=InStr(S,” “) ‘ 找第一个出现的空格 Word=Mid(S,1,i-1) ‘ 分离出空格左边的单词 Word与MaxWord 比较决定是否替换为MaxWord ② 取S中剩余字符串,重复①,直到S为空。 S=Mid(S,i+1) ‘ 取S中剩余字符串

第4讲 界面设计

7.1 菜单随堂测验

1、假定窗体上有一个文本框,对它定义了一个弹出式菜单ContextMenuStrip1,则应在________的ContextMenuStrip属性中建立与ContextMenuStrip1的关联。
    A、窗体
    B、文本框
    C、ContextMenuStrip
    D、ContextMenuStrip1

2、定义弹出式菜单应使用________。
    A、ContextMenuStrip
    B、MenuStrip
    C、MainStrip
    D、ContextMenu

3、若菜单项是分隔线,则应输入________。
    A、&
    B、-
    C、*
    D、_(下划线)

7.2 对话框随堂测验

1、应使用________属性获取打开文件对话框中用户选定文件的文件名(包括路径)
    A、Title
    B、Path
    C、FileName
    D、Name

2、以下正确的语句是____。
    A、OpenFileDialog1.Filter=All Files|*.*|Pictures(*.Bmp)|*.Bmp
    B、OpenFileDialog1.Filter="All Files"|"*.*"|"Pictures(*.Bmp)"|"*.Bmp"
    C、OpenFileDialog1.Filter="All Files|*.*|Pictures(*.Bmp)|*.Bmp"
    D、OpenFileDialog1.Filter={All Files|*.*|Pictures(*.Bmp)|*.Bmp}

3、在下列说法中,错误的是________。
    A、通用对话框本身能够实现文件打开、文件保存、颜色设置、字体设置等操作,不需要再编程了。
    B、各种通用对话框均使用ShowDialog方法打开。
    C、自定义对话框是具有特殊属性的窗体。
    D、对话框分为模式对话框和无模式对话框。

4、用Show方法打开的对话框是模式对话框。

5、为了与对话框的数据传递,可以通过公共变量来实现。

7.3 工具栏随堂测验

1、设计工具栏所有的控件是________。
    A、ToolStrip
    B、ToolStripButton
    C、ToolStripLabel
    D、Image

2、工具栏上的按钮一般不需要编程,只需与菜单项共享事件过程即可。

3、ToolStrip控件是一个容器,可以放置ToolStripButton、ToolStripLabel等对象。

7.4 综合应用随堂测验

1、定义了一个窗体Form2,正确的打开方式是________。
    A、Form2.Show()
    B、Form2.ShowDialog()
    C、Form2.Load()
    D、Dim f as New Form2 f.Show()

2、假定有一个模块,在其中定义一个公共变量,正确的是________。
    A、Dim x as Integer
    B、Public Dim x as Integer
    C、Dim Public x as Integer
    D、Public x as Integer

第4讲 界面设计单元测验

1、在下列关于通用对话框的说法中,错误的是_________。
    A、可以用Show方法打开
    B、可以用ShowDialog方法打开
    C、当选择了"取消"按钮后,返回值是DialogResult.Cancel
    D、通用对话框不是用户设计的控件
    E、当选择了"确定"按钮后,返回值是DialogResult.Ok

2、菜单项常用的事件是__________。
    A、Click
    B、DoubleClick
    C、Load
    D、Selected

3、在下列关于菜单项的说法中,错误的是________。
    A、有些菜单项的前面有一个钩,是因为在设计时输入了“√ ”。
    B、每个菜单项都是一个对象,也有自己的属性、事件和方法
    C、菜单中的分隔符也是一个对象
    D、在程序执行时,如果菜单项的Enabled属性为False,则该菜单项变成灰色,不能被用户选择。

4、若在程序中要显示自定义的窗体Form2,下列方法正确的是____________。
    A、Dim fm2 As New Form2 fm2.Show()
    B、me.Form2.show()
    C、Show(Form2)
    D、Form2.ShowDialog()
    E、Dim fm2 As New Form2 ShowDialog()

5、在用通用对话框控件建立打开文件对话框时,在文件列表框只允许显示文本文件类型的文件,则Filter属性的正确设置是_________。
    A、Text(.txt)|*.txt
    B、Text(.txt)||*.txt
    C、Text(.txt)(*.txt)
    D、文本文件|(.txt)
    E、文本文件(*.txt)

6、弹出式菜单是通过__________控件设计的。
    A、ContextMenuStrip
    B、PopUpMenu
    C、MenuStrip
    D、Menu

7、在创建菜单时,建立热键的方法是在热键字符前插入“@”符号。

8、通过设置菜单项的Visible属性,可以控制该菜单项可见或不可见。

第4讲 界面设计实验作业

1、设计一个如下图所示的应用程序。当选择“设置标签颜色”按钮后,弹出颜色对话框,为上面标签中文字选择一个颜色;当选择“设置标签字体”按钮后,弹出字体对话框,为上面标签中文字选择一个字体。 以“昵称-12-1”为项目名保存。项目完成后,将整个项目文件夹压缩成:昵称-12-1.rar,以附件形式提交。

2、设计一个如下图所示的菜单系统,并为菜单项编写相应的程序代码。 以“昵称-12-2”为项目名保存。项目完成后,将整个项目文件夹压缩成:昵称-12-2.rar,以附件形式提交。 提示:Font属性值是一个字体对象,Font.Size是只读的。因此,若要设置控件的字体大小,则应首先创建一个Font对象,然后赋予给控件的Font属性。例如,若要设置文本框TextBox1的字体大小为8,则应使用下列语句: TextBox1.Font = New Font(TextBox1.Font.Name , 8)

第5讲 数据文件

8.1 数据文件概述随堂测验

1、文件打开后,就可以通过________访问文件了。
    A、含有路径的文件名
    B、文件类型
    C、文件号
    D、文件名

2、按存储信息的形式分类,文件可以分为________。
    A、顺序文件和随机文件
    B、ASCII文件和二进制文件
    C、程序文件和数据文件
    D、磁盘文件和打印文件

3、按访问模式进行分类,文件可以分为________、随机文件和二进制文件。
    A、数据文件
    B、ASCII文件
    C、程序文件
    D、顺序文件

4、读写文件结束后要关闭文件,否则有可能导致文件数据丢失的现象出现。

8.2 文件访问随堂测验

1、在顺序文件的末尾追加数据,打开文件时应使用________模式。
    A、OpenMode.Output
    B、OpenMode.Inpu
    C、OpenMode.Append
    D、OpenMode.Binary

2、在下面关于顺序文件的说法中,错误的是________。
    A、顺序文件从本质上来说是ASCII文件
    B、顺序文件只可以读和写,不可以追加数据
    C、顺序文件就是要求按顺序从头到尾进行读写,不能直接读写文件中间的数据。
    D、读顺序文件时中的数据时,可以按原来的数据类型读

3、从1号顺序文件中把所有数据读出来送入文本框TextBox1,正确的程序段是________。
    A、Do While Not EOF(1) str = LineInput(1) TextBox1.Text = TextBox1.Text + str + vbCrLf Loop
    B、Do While EOF(1) str = LineInput(1) TextBox1.Text = TextBox1.Text + str + vbCrLf Loop
    C、Do While Not EOF(1) str = LineInput(1) TextBox1.Text = TextBox1.Text + str Loop
    D、Do While Not EOF(1) str = LineInput(1) TextBox1.Text = str + vbCrLf Loop

4、若要从磁盘上读一个文件名为“C:\T1.txt”的顺序文件,则应使用下列________程序段打开文件
    A、Dim F As String F = "C:\T1.txt" FileOpen(1, F, OpenMode.Input)
    B、Dim F As String F = "C:\T1.txt" FileOpen(1, "F", OpenMode.Input)
    C、FileOpen(1, "C:\T1.txt", OpenMode.Output)
    D、FileOpen(1, C:\T1.txt, OpenMode.Input)

5、将用语句WriteLine(1, "091023", "王海涛", 66)写入的数据按原来的数据读出,应用使用语句_________。
    A、Dim Str As String str= InputString (文件号, 3)
    B、Dim No As String, Name As String, Score As Integer No=LineInput(1) Name=LineInput(1) Score=LineInput(1)
    C、Dim No As String, Name As String, Score As Integer Input (1, No, Name, Score)
    D、Dim No As String, Name As String, Score As Integer Input (1, No) Input (1, Name) Input (1, Score)

第5讲 数据文件单元测验

1、下面关于顺序文件的描述中,正确的是___________。
    A、顺序文件中的数据是以ASCII码的形式存放的
    B、每条记录的长度相同
    C、可通过编程方式随机地修改文件中的某条记录
    D、文件的组织结构复杂
    E、不能用Windows的记事本程序编辑

2、若要在磁盘上新建一个文件名为"C:\T1.txt"顺序文件,则应用下列________程序段。
    A、FileOpen(1,"C:\T1.txt",OpenMode.Output)
    B、Dim strFileName As String strFileName = "C:\T1.txt" FileOpen(1,"strFileName",OpenMode.Input)
    C、FileOpen(1,C:\T1.txt,OpenMode.Input)
    D、Dim strFileName As String strFileName = "C:\T1.txt" FileOpen(1,"strFileName",OpenMode.Output)
    E、FileOpen(1,C:\T1.txt,OpenMode.Output)

3、文件按照访问模式可以分有________三类。
    A、顺序文件、随机文件和二进制文件
    B、程序文件、ASCII文件和二进制文件
    C、磁盘文件、程序文件和数据文件
    D、数据文件、磁盘文件和打印文件
    E、数据文件、磁盘文件和程序文件

4、若要从磁盘上读一个文件名为"C:\T1.txt"的顺序文件,则应使用下列__________程序段打开文件。
    A、Dim strFileName As String strFileName = "C:\T1.txt" FileOpen(1,strFileName,OpenMode.Input)
    B、Dim strFileName As String strFileName = "C:\T1.txt" FileOpen(1,"strFileName",OpenMode.Input)
    C、FileOpen(1,C:\T1.txt,OpenMode.Input)
    D、FileOpen(1,C:\T1.txt,OpenMode.Output)
    E、FileOpen(1,"C:\T1.txt",OpenMode.Output)

5、在执行语句: FileOpen(1, "aa.dat", OpenMode.Output)后,对文件aa.dat中的数据能够执行的操作是____________。
    A、不可以读,可以写
    B、不可以读,也不可以写
    C、可以读出,也可以写入
    D、可以读出,不可以写入

6、顺序文件只能用顺序访问模式进行读写,不能用二进制访问模式。

7、二进制访问模式可以读写任何类型的文件。

第5讲 数据文件单元作业

1、1.编写如图1所示的应用程序,区分PrintLine和WriteLine的异同。要求: (1)选择“建立文件”,则分别用PrintLine和WriteLine函数将三个同学的学号、姓名和成绩写入文件ScoreP.txt(见图2)和ScoreW.txt(见图3); (2)选择“读取文件”,则用LineInput函数按行将ScoreP.txt文件中的数据送放文本框1;调用三次Input函数按字段将ScoreW.txt文件中的数据送放文本框2,之间加逗号分隔。 注意:学号和姓名是字符串类型,成绩是整型。 以“昵称-5-1”为项目名保存。 项目完成后,将整个项目文件夹压缩成:昵称-5-1.rar,以附件形式提交。

2、2.将斐波那契数列的前10项写入到文件Fb.dat,然后从该文件将读出在列表框显示,最后显示数列的平均值。 要求:文件数据格式如图4所示,列表框中项目格式如图5所示。 以“昵称-5-2”为项目名保存。 项目完成后,将整个项目文件夹压缩成:昵称-5-2.rar,以附件形式提交。 提示: ①对于扩展名为”dat”的数据文件,Windows系统不能识别,因是顺序文件,可通过记事本打开查看。打开的方式中选择单选“从已安装程序列表中选择程序”,然后选择记事本程序,如图6所示。 ② 对于列表框每行显示的内容形式由两部分构成:从数据文件读取的两项数据、字符串常量,通过“&”连接起来。

3、3.编写一个顺序文件处理的程序。要求: (1)建立一个具有5个同学的学号、姓名和成绩的顺序文件stud.dat(在记事本中显示如下图所示); (2)读出stud1.dat顺序文件中的内容,在窗体文本框显示总人数和平均分。 以“昵称-5-3”为项目名保存。 项目完成后,将整个项目文件夹压缩成:昵称-5-3.rar,以附件形式提交。

第6讲 数据库应用程序开发

9.1 应用案例和相关概念随堂测验

1、数据库系统是由数据库、数据库管理系统、应用程序、___________、用户等构成的人-机系统。
    A、数据库管理员
    B、程序员
    C、高级程序员
    D、软件开发商

2、在下面关于数据库的说法中,错误的是___________。
    A、数据库有较高的安全性
    B、数据库有较高的数据独立性
    C、数据库中的数据可为不同的用户共享
    D、数据库没有数据冗余

9.2 ADO.NET基础随堂测验

1、在程序中,要建立与数据源的连接,需要下列_______对象。
    A、Command
    B、Connection
    C、DataAdapter
    D、DataReader

2、关于DataSet对象的说法中,正确的是_______。
    A、DataSet对象用于执行数据库的命令操作,包括检索、插入、删除、更新等。
    B、DataSet对象可以存储数据库中的记录或查询结果。
    C、DataSet对象为应用程序提供可靠的数据库连接。
    D、DataSet对象用来设计数据库的结构以及数据记录的输入。

9.3 数据库查询随堂测验

1、在SQL命令中,子句“WHERE 性别 = "女" and 工资额 > 2000”的作用是筛选____________。
    A、性别为“女”并且工资额大于2000的记录
    B、性别为“女”或者工资额大于2000的记录
    C、性别为“女”同时工资额不能大于2000的记录
    D、性别为“女”或者工资额大于2000,且二者择一的记录

2、在SQL的SELECT查询命令中,用_______子句进行分类汇总。
    A、FROM
    B、WHERE
    C、GROUP BY
    D、ORDER BY

3、无论是离线式查询还是在线式查询,在查询之前都需要通过连接对象连接数据库。

第6讲 单元测验

1、在SQL的SELECT查询命令中,用_______设置查询条件。
    A、FROM
    B、WHERE
    C、GROUP BY
    D、ORDER BY

2、在ADO.NET模型,用来连接后台数据库的对象是____________。
    A、OleDbDataAdapter
    B、OleDbConnection
    C、OleDbCommand
    D、DataGridView
    E、DataSet

3、下列哪一类对象不属于DataProvider(数据提供程序)?
    A、DataSet
    B、OleDbDataAdapter
    C、OleDbConnection
    D、OleDbCommand

4、在ADO.NET模型中,如果要将数据从数据库读入到内存,下列对象的方法中,能实现的是___________。
    A、OleDbConnection的Close方法
    B、OleDbCommand的SetTxt方法
    C、DataSet的Read方法
    D、OleDbDataAdapter的Fill方法

5、利用OleDbDataAdapter对象,将查询结果填充到数据集DataSet对象,正确的方法是___________。
    A、Fill(OleDbDataAdapter对象,DataSet对象)
    B、Fill(DataSet对象, OleDbDataAdapter对象)
    C、OleDbDataAdapter对象.Fill(DataSet对象, "数据集表名称")
    D、DataSet对象.Fill(OleDbDataAdapter对象, "数据集表名称")

6、将数据集DataSet对象中的“信息”表数据显示在网格控件DataGridView1上,正确的方法是___________。
    A、DataGridView1.Show = DataSet对象.Tables("信息")
    B、DataSet对象.Show = DataGridView1.Tables("信息")
    C、DataGridView1.DataSource = DataSet对象.Tables("信息")
    D、DataSet对象.DataSource = DataGridView1.Tables("信息")

7、命令对象的 CommandText属性值是个字符串,内容就是一条SQL语句。

8、数据集对象可以包含多张表,每张表都有唯一的表名。

第6讲 单元作业

1、本实验需要的素材是Access2003数据库PersonalIncome.mdb。它包含两个表:员工信息表Personal表,员工收入表Income表。具体的表结构请下载素材查看。后面的实验皆使用该数据库。 通过拖放的方式添加数据源,将Personal表的各字段拖放到界面,形成一个可实现数据浏览、插入、删除和更新数据的简单应用程序。效果如下图所示。 以“昵称-6-1”为项目名保存,项目完成后,将整个项目文件夹压缩成:昵称-6-1.rar,以附件形式提交。

2、实验所需的素材,参考上一题。编写数据库应用程序,实现如下几个功能: (1)“员工情况”显示Personal表的全部信息,如下图所示。 (2)“收入信息”显示Income表的全部信息,如下图所示。 以“昵称-6-2”为项目名保存,项目完成后,将整个项目文件夹压缩成:昵称-6-2.rar,以附件形式提交。

第7讲 数据库应用程序开发(续)

9.4 数据库交互查询随堂测验

1、假如学生的姓名通过文本框TextBox1输入,则查询该学生所在专业,正确的SQL语句是____________。
    A、sqlstr = "Select 姓名,专业 From Students Where 姓名 = TextBox1"
    B、sqlstr = "Select 姓名,专业 From Students Where 姓名 = TextBox1.Text"
    C、sqlstr = "Select 姓名,专业 From Students Where 姓名 = '" & TextBox1.Text & "'"
    D、sqlstr = "Select 姓名,专业 From Students Where 姓名 = 'TextBox1.Text' "

2、在交互查询中,需要将用户输入的内容作为命令的一部分连接到命令字符串中。

9.5 数据库维护随堂测验

1、当设置命令对象的 CommandText属性为Delete语句后,要执行该语句,需要调用_________________方法。
    A、ExecuteReader
    B、ExecuteNonQuery
    C、Delete
    D、ExecuteScalar

2、命令Command对象不需要依赖连接Connection对象,可以直接执行数据库的相应命令。

第7讲 单元测验

1、假如成绩表有三个字段(学号String,课程号String,成绩Integer),查询某一分数线以下的学生人数,该分数线通过文本框TextBox1输入,则正确的SQL语句是____________。
    A、sqlstr = "Select Sum(成绩) As 学生人数 From 成绩表 Where 成绩 <= TextBox1.Text"
    B、sqlstr = "Select Count(*) As 学生人数 From 成绩表 Where 成绩 <= Val(TextBox1.Text)"
    C、sqlstr = "Select Sum(成绩) As 学生人数 From 成绩表 Where 成绩 <= " & Val(TextBox1.Text)
    D、sqlstr = "Select Count(*) As 学生人数 From 成绩表 Where 成绩 <= " & Val(TextBox1.Text)

2、假如工资表有4个字段(工号String,月份String,基本工资Single,津贴Single),查询某个月份下所有员工的收入(基本工资+津贴),月份通过组合框ComboBox1输入,则正确的SQL语句是____________。
    A、sqlstr = "Select 工号,基本工资 + 津贴 As 收入 From 工资表 Where 月份 = ComboBox1.Text "
    B、sqlstr = "Select 工号,基本工资 + 津贴 As 收入 From 工资表 Where 月份 = '" & ComboBox1.Text & "'"
    C、sqlstr = "Select 工号, Sum(基本工资,津贴) As 收入 From 工资表 Where 月份 = ComboBox1.Text "
    D、sqlstr = "Select 工号, Sum(基本工资,津贴) As 收入 From 工资表 Where 月份 = '" & ComboBox1.Text & "'"

3、学生表有三个字段(学号String,姓名String,专业String),成绩表有三个字段(学号String,课程String,成绩Integer),查询某课程(通过文本框TextBox1输入)下各个专业的最高分,则正确的SQL语句是____________。
    A、sqlstr = "Select 专业,Max(成绩) As 最高分 From 学生表,成绩表 Where 学生表.学号=成绩表.学号 and 课程='" & TextBox1.Text & "'"
    B、sqlstr = "Select 专业,Max(成绩) As 最高分 From 学生表,成绩表 Where 学生表.学号=成绩表.学号 and 课程='" & TextBox1.Text & "' Group by 专业"
    C、sqlstr = "Select 专业,Max(成绩) As 最高分 From 学生表,成绩表 Where 课程='" & TextBox1.Text & "'"
    D、sqlstr = "Select 专业,Max(成绩) As 最高分 From 学生表,成绩表 Where 课程='" & TextBox1.Text & "' Group by 专业"

4、销售表有三个字段(商品名String,日期Date,销售量Integer),添加一条记录,商品名来自TextBox1,日期来自TextBox2,销售量来自TextBox3。则正确的SQL语句是____________。
    A、sqlstr = "Insert Into 销售表 Values(TextBox1.Text,TextBox2.Text,TextBox3.Text)"
    B、sqlstr = "Insert Into 销售表 Values('TextBox1.Text',#TextBox2.Text#,TextBox3.Text)"
    C、sqlstr = "Insert Into 销售表 Values('" & TextBox1.Text & "',#" & TextBox2.Text & "#," & TextBox3.Text & ")"
    D、sqlstr = "Insert Into 销售表(销售量,商品名,日期) Values('" & TextBox1.Text & "',#" & TextBox2.Text & "#," & TextBox3.Text & ")"

5、库存表有三个字段(货物名String,仓库号Integer,库存量Integer),将某仓库号(文本框TextBox1输入)和某货物(文本框TextBox2输入)的库存记录删除,正确的SQL语句是____________。
    A、sqlstr = "Delete 仓库号,货物名 From 库存表 Where 仓库号=" & TextBox1.Text & " And 货物名='" & TextBox2.Text & "'"
    B、sqlstr = "Delete From 库存表 Where 仓库号=" & TextBox1.Text & " And 货物名='" & TextBox2.Text & "'"
    C、sqlstr = "Delete 仓库号,货物名 From 库存表 Where 仓库号= TextBox1.Text And 货物名=TextBox2.Text "
    D、sqlstr = "Delete From 库存表 Where 仓库号= TextBox1.Text And 货物名= TextBox2.Text "

6、销售表有三个字段(商品名String,类别String,销售价格Single), 将某一类别(文本框TextBox1输入)的所有商品销售价格上调10%。正确的SQL语句是____________。
    A、sqlstr = "Update 销售表 Set 销售价格=销售价格*1.1 Where 类别='" & TextBox1.Text & "'"
    B、sqlstr = "Set 销售价格=销售价格*1.1 From 销售表 Where 类别='" & TextBox1.Text & "'"
    C、sqlstr = "Update 销售价格=销售价格*1.1 From 销售表 Where 类别='" & TextBox1.Text & "'"
    D、sqlstr = "Update 销售价格=销售价格*1.1 From 销售表 Where 类别= 'TextBox1.Text '"

7、在Student表中,将学生姓名为“王蒙”的学生改名为“王金山”,正确的SQL语句是___________。
    A、UPDATE SET 姓名="王金山" IF 姓名="王蒙"
    B、UPDATE Student SET 姓名="王蒙"WHERE 姓名="王金山"
    C、UPDATE Student SET 姓名="王金山" WHERE 姓名="王蒙"
    D、UPDATE Student SET 姓名="王蒙" IF 姓名="王金山"

8、命令对象在执行命令前,关联的连接对象必须打开。

第7讲 单元作业

1、本实验需要的素材是Access2003数据库PersonalIncome.mdb。它包含两个表:员工信息表Personal表,员工收入表Income表。具体的表结构请下载素材查看。后面的实验皆使用该数据库。 数据库的交互查询:使用代码编写数据库的交互查询。实现如下几个功能: (1)查询1:根据文本框中输入的部门名称,查询该部门下所有员工的基本信息;如下图所示 (2)查询2:根据文本框中输入的员工姓名,查询该员工的每月实际收入(基本收入与津贴的总和);如下图所示 (3)查询3:根据单选按钮,查询所选性别的员工的基本信息;如下图所示 以“昵称-7-1”为项目名保存,项目完成后,将整个项目文件夹压缩成:昵称-7-1.rar,以附件形式提交。

2、实验所需的素材,参考上一题。编写数据库应用程序,实现如下几个功能: (1)初始界面在DataGridView控件显示Personal表的全部信息,如下图所示。 (2)添加:弹出新的窗体,输入添加员工的信息,如下图所示。 (3)修改:弹出新的窗体,显示DataGridView中当前所选择员工的具体信息,以待修改。如下图所示。 (4)删除:删除当前选择的员工,弹出窗体以确认是否删除,如下图所示。 以“昵称-7-2”为项目名保存,项目完成后,将整个项目文件夹压缩成:昵称-7-2.rar,以附件形式提交。

第8讲 图形应用程序开发

11.1 引例简单图形绘制-GDI+绘图基础随堂测验

1、下列定义画布对象正确的是__________。
    A、Dim g As Graphics = Me.CretateGraphics()
    B、Dim g As Me.CretateGraphics()
    C、Dim g As CretateGraphics
    D、Dim g As Graphics.Me.CretateGraphics

2、在画布对象中,画直线段的方法是DrawLine。

11.2 绘图对象和方法随堂测验

1、关于Refresh方法,正确的说法是__________。
    A、重新绘制绘图控件的图形
    B、清除绘图控件的内容,并设置默认颜色
    C、刷新当前的绘图控件
    D、设置绘图控件的默认字体

2、矩形的结构是Rectangle(x,y,w,h),这里的x,y 表示的是__________。
    A、矩形中心点坐标
    B、矩形右上角的坐标
    C、矩形左下角的坐标
    D、矩形左上角的坐标

11.3 绘制艺术图和函数图随堂测验

1、画布对象g.DrawLine(p1,0,0,1,2),描述正确的是__________。
    A、将绘制从点(0,0)到(1,2)的线段,单位是像素。
    B、将绘制从点(0,1)到(0,2)的线段,单位是像素。
    C、将绘制从点(0,0)到(1,2)的线段,单位是厘米。
    D、将绘制从点(0,1)到(0,2)的线段,单位是厘米。

2、关于画布对象绘制圆弧的方法g.DrawArc(p1,r,startangle,swepangle),描述错误的是__________。
    A、p1表示圆弧大小参数
    B、r表示圆弧所在矩形参数
    C、startangle表示起始角度,正表示顺时针,负表示逆时针。
    D、swepangle表示划过的角度,正表示顺时针,负表示逆时针。

第8讲 单元测验

1、下列定义画笔对象p的语句中,正确的是___________。
    A、Dim p As new Pen = Color.Red
    B、Dim p As Pen = New Pen(Color.Red, 3)
    C、Dim p As new Pen = Pen(Color.Red,1)
    D、Dim p As Pen(Color.Black)
    E、Dim p = Pen(Color.Black,2)

2、在画布对象中,画圆的方法是:___________。
    A、FillArc
    B、DrawArc
    C、DrawLine
    D、DrawEllipse
    E、DrawRectangle

3、在GDI+的坐标系中,默认的坐标原点(0,0)在对象的___________。
    A、左上角
    B、右上角
    C、左下角
    D、正中间
    E、右下角

4、如果有画布对象g建立在Label1上,不能将画布清除的是___________。
    A、Label1.clear(Label1.BackColor)
    B、Label1.Refresh(Color.Black)
    C、Label1.Refresh()
    D、g.Clear(Color.Black)
    E、g.Clear(Label1.BackColor)

5、将画布的坐标原点平移到屏幕的中间,可以用画布的___________方法。
    A、SetClip
    B、TranslateTransform
    C、RotateTransform
    D、ResetTransform
    E、MoveTo

6、将画布对象g释放的正确方法是___________。
    A、g.Dispose()
    B、Me.Clear(g)
    C、g.Hide()
    D、g.Close()
    E、g.Release()

7、下列定义字体对象ft的语句中,正确的是___________。
    A、Dim ft As New Font("隶书", 18)
    B、Dim ft As Font = New Font("隶书", 18)
    C、Dim ft As Font = ("隶书", 18)
    D、Dim ft("隶书", 18) As Font
    E、Dim ft = Font ("隶书", 18)

第8讲 单元作业

1、设计一个如下图所示的应用程序,通过输入数据n,将圆周分为n等分,并将所有等分点用直线两两互相连接,形成如图所示的金刚钻图案。单击“单色”按钮时采用单一蓝色绘制直线,而单击“彩色”按钮时采用随机颜色绘制直线。 提示: ①根据图片框大小计算金刚钻图案的中心及圆的半径。 ②读取文本框数据n,所有n个等分点的间隔弧度为2π/n。 ③计算每个等分点的坐标(x,y)。 ④两两连接所有n个等分点,注意在彩色方案下,随机生成颜色的R、G、B分量以构造随机颜色绘制直线。 以“昵称-8-1”为项目名保存。 项目完成后,将整个项目文件夹压缩成:昵称-8-1.rar,以附件形式提交。

2、利用DrawEllipse方法在窗体上绘制艺术图案,如图所示。构造图案的算法为:把一个半径为r的圆周等分为n份,以这n个等分点为圓心,r1为半径绘制n个圓。 提示: 在半径为r的圆周上第i个等分点的坐标为: xi = r * Cos(i * t) + x0,yi = r * Sin(i * t) + y0。 其中,t为等分角,(x0,y0)为圆心坐标,r为圆半径。 以“昵称-8-2”为项目名保存。 项目完成后,将整个项目文件夹压缩成:昵称-8-2.rar,以附件形式提交。

3、在Label控件上绘制-之间的正弦曲线,并显示坐标、刻度和文字,如图所示。 以“昵称-8-3”为项目名保存。 项目完成后,将整个项目文件夹压缩成:昵称-8-3.rar,以附件形式提交。

4、在Label控件上绘制方程式的函数曲线,如图所示,X为0到50。 以“昵称-8-4”为项目名保存。 项目完成后,将整个项目文件夹压缩成:昵称-8-4.rar,以附件形式提交。

第9讲 递归及应用

12.1 引例和递归概念随堂测验

1、递归类型有多种,下列不属于递归类型的是__________。
    A、问题的定义是递归的
    B、问题的解法是递归的
    C、数据结构是递归的
    D、数据的保存是递归的

2、递归是指在过程中,调用自身,有直接递归和间接递归两种。

12.2 递归设计过程随堂测验

1、关于递归和迭代的说法,正确的是__________。
    A、递归比迭代效率高
    B、递归比迭代占用内存更少
    C、递归符合人的思维方式
    D、递归符合计算机的方式

2、递归必须有递归表达式,但可以没有边界条件。

12.3 典型案例随堂测验

1、将十进制正整数d转换成r(2~9)进制的字符串,下列递归函数正确的是__________。
    A、Function Trans$(ByVal d%, ByVal r%) If d = 0 Then Trans = "" Else Trans = Trans(d \ r, r) & (d Mod r) End If End Function
    B、Function Trans$(ByVal d%, ByVal r%) If d = 0 Then Trans = "" Else Trans = (d Mod r) & Trans(d \ r, r) End If End Function
    C、Function Trans$(ByVal d%, ByVal r%) If d = 0 Then Trans = Trans(d \ r, r) & (d Mod r) Else Trans = "" End If End Function
    D、Function Trans$(ByVal d%, ByVal r%) If d = 0 Then Trans = (d Mod r) & Trans(d \ r, r) Else Trans = "" End If End Function

2、在字符串s1中查找子串s2出现了几次,下列递归函数正确的是__________。
    A、Function find%(ByVal s1$, ByVal s2$) If s1 = "" Then find = 0 Else find = 1 + find(s1, s2) End If End Function
    B、Function find%(ByVal s1$, ByVal s2$) Dim n% n = InStr(s1, s2) If n > 0 Then find = 1 Else find = find(Mid(s1, n + Len(s2)), s2) End If End Function
    C、Function find%(ByVal s1$, ByVal s2$) Dim n% n = InStr(s1, s2) If n > 0 Then find = 0 Else find = 1 + find(Mid(s1, n + Len(s2)), s2) End If End Function
    D、Function find%(ByVal s1$, ByVal s2$) Dim n% n = InStr(s1, s2) If n <= 0 Then find = 0 Else find = 1 + find(Mid(s1, n + Len(s2)), s2) End If End Function

12.4 递归应用-分形图随堂测验

1、利用递归的方法,可以方便的绘制分形图。

第9讲 单元测验

1、关于递归过程的说法,正确的是__________。
    A、递归过程必须有返回值。
    B、递归过程必须有出口,即边界条件。
    C、递归过程中只能调用自身,不能调用其他过程。
    D、递归过程的参数传递方式必须是传地址,即ByRef。

2、关于递归过程的优点,描述正确的是__________。
    A、执行效率高
    B、代码简洁
    C、占用内存少
    D、符合计算机的方式

3、递归过程设计的基本思想是___________。
    A、选择,选择容易的方法解决问题。
    B、判断,直接判断出问题的结果。
    C、分解,将大问题分解为本质相同的小问题。
    D、调用,调用函数或子过程解决问题。

4、下列计算最大公约数的递归过程,正确的是___________。
    A、Sub gcd(ByVal m%, ByVal n%) Dim r% r = m \ n If r = 0 Then gcd = n Else gcd = gcd(n, r) End If End Sub
    B、Sub gcd(ByVal m%, ByVal n%) Dim r% r = m Mod n If r = 0 Then gcd = n Else gcd = gcd(n, r) End If End Sub
    C、Function gcd%(ByVal m%, ByVal n%) Dim r% r = m \ n If r = 0 Then gcd = n Else gcd = gcd(n, r) End If End Function
    D、Function gcd%(ByVal m%, ByVal n%) Dim r% r = m Mod n If r = 0 Then gcd = n Else gcd = gcd(n, r) End If End Function

5、对于下列递归函数,fa(4)的结果为: Function fa%(ByVal n%) If n = 1 Then Return 1 Else Return n + 2 * fa(n - 1) End If End Function
    A、10
    B、11
    C、22
    D、26

6、递归算法在运行时需要消耗大量的内存,因此运行更快。

7、递归过程就是在过程中调用自身,因此可以无限次地调用。

第9讲 单元作业

1、编写递归函数过程,将十进制正整数d转换成r(2~16)进制的字符串Trans$(d,r)。在命令按钮事件中调用该方法加以验证。 程序界面自行设置,以“昵称-9-1”为项目名保存。 项目完成后,将整个项目文件夹压缩成:昵称-9-1.rar,以附件形式提交。

2、编写递归过程,绘制递归三角形图。从1个大的三角形开始,将其三条边的中点进行连线,分成相同的4个三角形,除中间外的3个三角形重复上述过程,直到满足给定的条件底层为止,如图所示。 程序界面自行设置,以“昵称-9-2”为项目名保存。 项目完成后,将整个项目文件夹压缩成:昵称-9-2.rar,以附件形式提交。 提示: ①分形三角形的生成原理是:先作一个大三角形,然后取各边中点连成一个小三角形,挖去这个小三角形后,在剩下的三个小三角形里重复这个步骤。随着迭代次数不断增加而重复进行前述步骤。 ②设置初始三角形的顶点位置(x1,y1),(x2,y2),(x3,y3),读取迭代次数n。 ③调用递归函数Sier3(int x1, int y1, int x2, int y2, int x3, int y3, int n):若n=1,绘制由三个顶点组成的三角形;若n>1,挖去由三角形各边中点连成的小三角形,且n减小1,再在剩下的三个小三角形中分别调用递归函数。

期末 考试

客观题部分

1、窗体的单击事件过程如下,当单击窗体3次后,在标签 Label1中输出的结果是__________。 Private Sub Form1_Click(......) Handles Me.Click Static k% = 2 k = k +3 Label1.Text = k End Sub
    A、11
    B、2
    C、5
    D、8
    E、14

2、要使Timer1控件每隔1秒触发Tick事件,应将Interval属性设为_________。
    A、1000
    B、1
    C、2
    D、10
    E、100

3、打开磁盘上的文件"C:\T1.txt",清除原内容,写入新内容,应使用语句__________打开文件。
    A、FileOpen(1,"C:\T1.txt",OpenMode.Output)
    B、FileOpen(1,C:\T1.txt,OpenMode.Input)
    C、FileOpen(1,C:\T1.txt,OpenMode.New)
    D、FileOpen(1,"C:\T1.txt",OpenMode.New)
    E、FileOpen(1,"C:\T1.txt",OpenMode.Input)

4、子过程MyProc定义如下,a,b都是整型变量,则错误的调用是________。 Sub MyProc(ByVal x%, ByRef y%) y = x x = y + 2 End Sub
    A、Call MyProc(a,b+4)
    B、b = MyProc(4,a)
    C、MyProc(a,b)
    D、MyProc(4,a)
    E、Call MyProc(4,b)
    F、Call MyProc(a+b,b)

5、Button1单击事件过程和ProcString子过程定义如下,当单击Button1后,标签 Label1中输出的结果是__________。 Private Sub Button1_Click() Handles Button1.Click Dim s$ = "中国大学MOOC" Call ProcString(s) Label1.Text = s End Sub Sub ProcString(ByVal m$) m = Mid(m, 4, 2) End Sub
    A、中国大学MOOC
    B、大学
    C、MOOC
    D、OC
    E、中国大学

6、编写多窗体应用程序时,关于启动窗体的设置,正确的是________。
    A、可在“项目”|“项目属性”菜单中设置启动对象
    B、只能是Form1
    C、只能是第一个建立的窗体
    D、应在Form_Load()事件中指定

7、引用组合框ComboBox1 最后一个数据项应使用代码_________。
    A、ComboBox1.Items(ComboBox1.Items.Count - 1)
    B、ComboBox1.Items(ComboBox1.Items.Count)
    C、ComboBox1.Items(Count)
    D、ComboBox1.Items(Count - 1)
    E、ComboBox1.Items(ComboBox1.Items.Count.Last)

8、假定有一个菜单项,名为MenuItem1,为了在运行时使该菜单项失效(变灰),应使用的语句为___________。
    A、MenuItem1.Enabled = False
    B、MenuItem1.Enabled = True
    C、MenuItem1.Visible = True
    D、MenuItem1.Visible = False
    E、MenuItem1.Checked = False

9、VB.NET程序设计中,打开文件和保存文件的通用对话框分别是_________。
    A、OpenFileDialog和SaveFileDialog控件
    B、都是OpenFileDialog控件
    C、都是SaveFileDialog控件
    D、FileOpen和FileSave控件

10、以下程序输出的结果是___________ 。 Dim a(5), i As Integer For i = 0 To 5 a(i) = 2 * i + 1 Next i MsgBox(a(i))
    A、程序出错
    B、1 3 5 7 9 11
    C、11
    D、9
    E、不确定

11、下面的语句中,_________是正确的函数过程头定义。
    A、Dim F1 As Function
    B、Dim F1 As Function(ByVal n%)
    C、Function F1(ByVal n%) As Integer
    D、Function F1 As Integer
    E、Function F1(ByVa F1!) As Integer

12、在过程定义中,参数有传值、传地址两种方式,_____________关键字表示传地址方式。
    A、Value
    B、ByRef
    C、ByVal
    D、Adress
    E、Link

13、下列设置打开文件对话框OpenFileDialog1的Filter属性正确的是_________。
    A、OpenFileDialog1.Filter=Pictures(*.Bmp)|*.Bmp
    B、OpenFileDialog1.Filter=["Pictures(*.Bmp)"|"*.Bmp"]
    C、OpenFileDialog1.Filter="Pictures(*.Bmp)|*.Bmp"
    D、OpenFileDialog1.Filter={Pictures(*.Bmp)|*.Bmp}
    E、OpenFileDialog1.Filter=(Pictures(*.Bmp)|*.Bmp)

14、弹出式菜单是通过__________控件设计的。
    A、DropDownMenu
    B、PopUpMenu
    C、ContextMenuStrip
    D、MenuStrip
    E、Menu

15、假设在模块Module1中用如下方式定义了两个变量,则下面叙述正确的是___________。 Public a% Dim b%
    A、在Form1窗体中可以直接访问a、b变量
    B、在Form1窗体中可以直接访问a变量,但不能访问b变量
    C、在Form1窗体中可以直接访问b变量,但不能访问a变量
    D、在Form1窗体中都不可以访问a、b变量

16、下列选项中,不属于文件访问模式的是___________。
    A、OpenMode.Output
    B、OpenMode.Input
    C、OpenMode.Append
    D、OpenMode.Create
    E、OpenMode.Insert
    F、OpenMode.Add

17、要建立一个文件名为"a.txt"的顺序文件,正确的语句是_________。
    A、FileOpen(1, "a.txt", OpenMode.Output)
    B、FileOpen(1, "a.txt", OpenMode.Input)
    C、FileOpen("a.txt", OpenMode.Output)
    D、FileOpen("a.txt", OpenMode.Input)

18、文件号为1的文件操作结束后,要关闭,下列语句正确的是_________。
    A、1.Close()
    B、Close(1)
    C、FileClose(1)
    D、CloseFile(1)
    E、me.Close(1)

19、函数过程和子过程的区别是,函数过程没有返回值,而子过程有一个返回值。

20、菜单项相当于控件,因此最常用的是Click事件。

21、想要在菜单项前显示选中“√”符号,可以设置该菜单项的Visible属性为True。

22、在多重窗体程序中,假设Form1为启动窗体,若要显示Form2窗体,应使用语句Form2.Show()。

23、随机文件中,每条记录的长度是固定的。

24、顺序文件中,记录按进入的先后顺序存放的,读出也是按原写入的先后顺序读出。

程序补全题

1、下列程序功能是在文本框输入一个字符串,清除列表框,然后将每个字符保存到列表框中。找出最大的字符,对最大的字符进行标记(加*)显示。程序运行效果如下图。 Private Sub Button1_Click(…) Handles Button1.Click Dim cMax$, s$, c$, n%, i% s = TextBox1.Text n = ______(1)______(s) cMax = Mid(s, 1, 1) ListBox1.Items.______(2)______() ListBox1.Items.Add(cMax) For i = 2 To n ______(3)______ = Mid(s, i, 1) ListBox1.Items.Add(c) If c > cMax Then ______(4)______ = c End If Next For i = 0 To ______(5)______ If ListBox1.Items(i) = cMax Then ListBox1.Items(i) &= "*" End If Next End Sub 补全程序,在答题时,务必在答题框中写好题号和答案,如下: (1): _________ (2): _________ (3): _________ (4): _________ (5): _________

2、程序功能是在文本框输入一个整数n,按回车后,判断是否数字,如果是数字则输出新构造的回文数。构造回文数的方法是,首先将n倒过来,设为m,n与m如果相等,则为回文数;如果不等,则n=n+m,得到一个新数,重复以上步聚,最终可得到一个回文数。函数Reverse()的功能是将一个整数倒过来。程序运行效果如下图。 Private Sub TextBox1_KeyPress(…) Handles TextBox1.KeyPress Dim m, n As Integer If Asc(e.KeyChar) = ______(1)______ Then If Not ______(2)______ (TextBox1.Text) Then TextBox1.Text = "" MsgBox("请输入整数") Exit Sub End If n = Val(TextBox1.Text) m =______(3)______ Do While n <> m n = n + m m = Reverse(n) Loop MsgBox("形成新回文数字" & n) End If End Sub Function Reverse(ByVal n As Integer) As ______(4)______ Dim c As Integer Do While n > 0 c = c * 10 + n Mod 10 n =______(5)______ Loop Return ______(6)______ End Function 补全程序,在答题时,务必在答题框中写好题号和答案,如下: (1): _________ (2): _________ (3): _________ (4): _________ (5): _________ (6): _________

3、程序运行时,选择一个文本文件,读取该文件中的内容,对数字字符进行加密,结果在文本框显示。加密方法如下:0->3,1->4……7->0,8->1,9->2。 Private Sub Button1_Click() Handles Button1.Click Dim i, n, t As Integer Dim s1, s2, c As String If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then FileOpen(1, OpenFileDialog1.FileName, _____(1)_____) Do While _____(2)_____ s1 = _____(3)_____ s2 &= s1 & vbCrLf Loop FileClose() n = Len(s2) TextBox1.Text = "" For i = 1 To n c = Mid(s2, i, 1) If _____(4)_____ Then t = Val(c) t = t + 3 If t >_____(5)_____ Then t = t - 10 End If TextBox1.Text &= t Else TextBox1.Text &= c End If Next End If End Sub 补全程序,在答题时,务必在答题框中写好题号和答案,如下: (1): _________ (2): _________ (3): _________ (4): _________ (5): _________

4、程序功能是删除字符,在文本框1输入一个字符串,在文本框2输入一个字符,将文本框1里包含的文本框2字符全部删除。如果文本框1或文本框2没有输入字符,程序用消息框提示。子过程DeleteStr(s1,s2)的功能是将s1里包含的s2全部删除,结果仍然保留在s1。例如文本框1输入“this is my programe!”,文本框2输入“i”,结果为“ths s my programe!”,程序运行效果如下图。 Private Sub Button1_Click(…) Handles Button1.Click If TextBox1.Text = "" ______(1)______ TextBox2.Text = "" Then MsgBox("请输入字符") Exit Sub End If DeleteStr(TextBox1.Text, TextBox2.Text) End Sub Sub DeleteStr(______(2)______ s1$, ByVal s2$) Dim i%, n%, s$, s4$ n = Len(s1) s = "" For i = 1 To n s4 = Mid(s1, i, 1) If s4 <>______(3)______ Then s &= s4 End If Next s1 = ______(4)______ End Sub 补全程序,在答题时,务必在答题框中写好题号和答案,如下: (1): _________ (2): _________ (3): _________ (4): _________

5、同学你好! 经过3个月的持之以恒不懈的努力,终于到了收获的时候,祝贺你们,也请大家对课程的学习总结一下,以便进一步改进和提高。可从两个方面总结: 一、从课程的学习方面,谈谈自己学习该课程的体会、收获和和感想; 二、从课程建设的方面,针对本课程的教学内容与资源、教学设计与方法、教学效果与影响等方面肯定做得好的、指出做的不够和改进的建议。 将总结写在在文本框内。谢谢您的积极参与,为大家学习提供优质的服务是我们的责任。祝同学们学习进步!