
《程序设计基础》单元测试三 班级: 姓名: 学号: 题 二 三 四 五 六 七 八 九 总 目 分 分 数 得分 评卷人 一、填空题。(共30分) 1.定义过程时,紧跟过程名后面的参数或者变量叫做。 2. 调用过程时,紧跟过程名后面的参数叫做 ),它们可以是 (2) (3)、- (4)或者 (⑤等。 3. 阅读下列程序,执行按钮事件后,s的值是: Private Function f(ByVal x As Integer,ByVal y As Integer)As Integer f IIf(x y,x,y) End Function Private Sub Buttonl Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Buttonl.Click Dim a,b,s As Integer a=1 b=2 s=f(a,b) End Sub 4. 阅读下列程序,执行按钮事件后,s的值是: Private Function f(ByVal x As Integer)As Integer Static m As Integer Dim i As Integer i=2 m i x +m f =m End Function Private Sub Buttonl Click(ByVal sender As System.Object, 第1页共7页
第1页 共7页 《程序设计基础》单元测试三 班级: 姓名: 学号: 题 目 一 二 三 四 五 六 七 八 九 总 分 分 数 一、填空题。(共 30 分) 1. 定义过程时,紧跟过程名后面的参数或者变量叫做 。 2. 调用过程时,紧跟过程名后面的参数叫做 (1) ,它们可以是 (2) 、 (3) 、 (4) 或者 (5) 等。 3. 阅读下列程序,执行按钮事件后,s 的值是: 。 Private Function f(ByVal x As Integer, ByVal y As Integer) As Integer f = IIf(x > y, x, y) End Function Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim a, b, s As Integer a = 1 b = 2 s = f(a, b) End Sub 4. 阅读下列程序,执行按钮事件后,s 的值是: 。 Private Function f(ByVal x As Integer) As Integer Static m As Integer Dim i As Integer i = 2 m = i + x + m f = m End Function Private Sub Button1_Click(ByVal sender As System.Object, _ 得分 评卷人

ByVal e As System.EventArgs)Handles Button1.Click Dim a,b As Integer Dim s As String S="” a=3 b=f(a) s="1:”&b b=f(a) s=s&”2:”&b End Sub 5.若过程参数按地址传递时,形参和实参是共享 (1)一,此时对应的实参只能 是(2)。 6.下面过程语句说明合法的是: a)Function f(ByVal a as integer)as Integer b)Sub f(By Val fas integer) c)Sub f(By Val a as integer)as Integer d)Sub f(By Val a()as integer) 7.要想从调用子过程f后返回两个结果,下面子过程语句说明合法的是: a)Sub f(Byval a%,ByRef b%) b)Sub f(Byval a%,By Val b%) c)Sub f(ByRefa%,ByRef b%) d Sub f(Byval a%,ByRef b%)as Integer 8. 阅读下列程序,执行按钮事件后,标签控件Labell的显示文本是: Private Sub ff(ByVal a%,ByRef b%) a=a\4 b =b Mod 6 End Sub Private Sub Buttonl_Click(ByVal sender As System.Object,_ ByVal e As System.EventArgs)Handles Button1.Click Dim a,b As Integer a=10:b=10 ff(a,b) Labell.Text ="a="a &b="&b End Sub 9. 阅读程序,函数f的功能是: Private Function f(ByVal x%,ByRef a()As Integer)As Boolean Dim i As Integer For i =0 To a.Length -1 If x a(i)Then Exit For Next If i a.Length Then f False Else f True End If End Function 第2页共7页
第2页 共7页 ByVal e As System.EventArgs) Handles Button1.Click Dim a, b As Integer Dim s As String s = "" a = 3 b = f(a) s = "1:" & b b = f(a) s = s & " 2:" & b End Sub 5. 若过程参数按地址传递时,形参和实参是共享 (1) ,此时对应的实参只能 是 (2) 。 6. 下面过程语句说明合法的是: 。 a) Function f(ByVal a as integer) as Integer b) Sub f(ByVal f as integer) c) Sub f(ByVal a as integer) as Integer d) Sub f(ByVal a() as integer) 7. 要想从调用子过程 f 后返回两个结果,下面子过程语句说明合法的是: 。 a) Sub f(Byval a%,ByRef b%) b) Sub f(Byval a%,ByVal b%) c) Sub f(ByRef a%,ByRef b%) d ) Sub f(Byval a%,ByRef b%) as Integer 8. 阅读下列程序,执行按钮事件后,标签控件 Label1 的显示文本是: 。 Private Sub ff(ByVal a%, ByRef b%) a = a \ 4 b = b Mod 6 End Sub Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim a, b As Integer a = 10 : b = 10 ff(a, b) Label1.Text = "a=" & a & " b=" & b End Sub 9. 阅读程序,函数 f 的功能是: 。 Private Function f(ByVal x%, ByRef a() As Integer) As Boolean Dim i As Integer For i = 0 To a.Length - 1 If x = a(i) Then Exit For Next If i = a.Length Then f = False Else f = True End If End Function

l0.子过程CountN用来统计字符串中0~9各个数字出现的次数,主调程序从文本框txtSTr中获 取文本,执行按钮事件后,在标签控件IblResult中显示结果,完成下列填空。 Private Sub countN((1)aa()As Integer,ByVal s$) Dim i,chAsc As Integer Dim (2)As Char For i=0 To s.length -1 ch s.Substring(i,1) If Char.IsDigit(ch)Then chAsc =(3) aa(chAsc)=aa(chAsc)+(4) End If Next End Sub Private Sub Buttonl_Click(ByVal sender As System.Object,ByVal e_ As System.EventArgs)Handles Button1.Click Dim a(9),i As Integer Dim str As String str txtStr.Text countN((⑤str) For i =0 To (6) If a(i)<>0 Then 1 blResult..Text=lblResult.Text&"数字”& 1&"的次数是”&( 1blResult.Text =(8)&Chr(10) End If Next End Sub 得分 评卷人 二、参考界面如图1所示(20分)。 第3页共7页
第3页 共7页 10. 子过程 CountN 用来统计字符串中 0~9 各个数字出现的次数,主调程序从文本框 txtSTr 中获 取文本,执行按钮事件后,在标签控件 lblResult 中显示结果,完成下列填空。 Private Sub countN( (1) aa() As Integer, ByVal s$) Dim i, chAsc As Integer Dim (2) As Char For i = 0 To s.length - 1 ch = s.Substring(i, 1) If Char.IsDigit(ch) Then chAsc = (3) aa(chAsc) = aa(chAsc) + (4) End If Next End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e _ As System.EventArgs) Handles Button1.Click Dim a(9), i As Integer Dim str As String str = txtStr.Text countN( (5) , str) For i = 0 To (6) If a(i) <> 0 Then lblResult.Text = lblResult.Text & "数字" & _ i & "的次数是" & (7) lblResult.Text = (8) & Chr(10) End If Next End Sub 二、参考界面如图 1 所示(20 分)。 得分 评卷人

日综合应用举例1 口▣☒ 文本的加密与解密 源文本: Progr ammer 密钥210之间的整数): 3 加密 Sur judpphu 解密 Progr ammer 图1 要求如下: 按下列要求自定义过程: 1)定义一个名为cipher的过程:用于根据原文和密钥加密,返回密文。假设加密规则是:将每 个字母加一个序数,这个序数就是密钥。如序数为3,那么"a"一>"d”"、"B"一>"E"、"X"一>"A"、 "y"一>"b”,如图2所示,其他字符保持原样。 Zz Aa Bb Xx Dd Ww. 配 Vv Ff Uu Gg 图2 2)定义一个名为deCipher的过程:用于根据密文和密钥解密,返回原文。 调用已定义的过程,编写代码实现: 1)单击按钮 加密 时, 根据界面上的原文和密钥,生成密文并显示在其右边的标签控件中。 2)单击按钮 解密时, 根据界面上的密文和密钥,生成原文并显示在其右边的标签控件中。 第4页共7页
第4页 共7页 图 1 要求如下: 按下列要求自定义过程: 1)定义一个名为 cipher 的过程:用于根据原文和密钥加密,返回密文。假设加密规则是:将每 个字母加一个序数,这个序数就是密钥。如序数为 3,那么"a"—>"d"、"B"—>"E"、"X"—>"A"、 "y"—>"b",如图 2 所示,其他字符保持原样。 图 2 2)定义一个名为 deCipher 的过程:用于根据密文和密钥解密,返回原文。 调用已定义的过程,编写代码实现: 1)单击按钮 时,根据界面上的原文和密钥,生成密文并显示在其右边的标签控件中。 2)单击按钮 时,根据界面上的密文和密钥,生成原文并显示在其右边的标签控件中

得分 评卷人 三、行参考界面如图3所示(20分)。 旧应用子过程举例 ▣X 应用子过程产生若千个随机字母 字母: b k w u j y w b 字母个数: 8 重新生成 应用子过程交换两变量的值 X: 38 交换 Y: 87 Y: 比较子过程和函数过程,计算 调用函数 720 调用子过程 720 图3 要求如下: 按下列要求定义过程: I)定义一个名为showLetter的子过程:用于随机产生n个小写字母并显示在名为txtLetter的文 本控件中。 2)定义一个名为swap的子过程:用于交换a和b的值。 3)定义一个名为factorl的子过程:用于计算nl 4)定义一个名为factor2的函数过程:用于计算nl 通过调用已定义过程的方法,编写代码实现以下功能: 1)当窗体加载时,在第一个文本框控件(其name属性值为:txtLetter)中随机显示l0个小写 字母。 2)当单击 重新生成按钮时,在第一个文本框控件中随机显示n个小写字母,n的值由其左边的 文本框得到。 3)单击按钮 交换 时,交换x和y的值,而x和y的值由其左边的文本框得到。 4)单击按钮 调用函数 时,调用函数过程factor2计算n,n的值由其左边的文本框得到。 5)单击按钮腿 调用子过程 时, 调用子过程factorl计算n!,n的值由其左边的文本框得到。 第5页共7页
第5页 共7页 得分 评卷人 三、行参考界面如图 3 所示(20 分)。 图 3 要求如下: 按下列要求定义过程: 1)定义一个名为 showLetter 的子过程:用于随机产生 n 个小写字母并显示在名为 txtLetter 的文 本控件中。 2)定义一个名为 swap 的子过程:用于交换 a 和 b 的值。 3)定义一个名为 factor1 的子过程:用于计算 n! 4)定义一个名为 factor2 的函数过程:用于计算 n! 通过调用已定义过程的方法,编写代码实现以下功能: 1)当窗体加载时,在第一个文本框控件(其 name 属性值为:txtLetter)中随机显示 10 个小写 字母。 2)当单击 按钮时,在第一个文本框控件中随机显示 n 个小写字母,n 的值由其左边的 文本框得到。 3)单击按钮 时,交换 x 和 y 的值,而 x 和 y 的值由其左边的文本框得到。 4)单击按钮 时,调用函数过程 factor2 计算 n!,n 的值由其左边的文本框得到。 5)单击按钮 时,调用子过程 factor1 计算 n!,n 的值由其左边的文本框得到

得分 评卷人 四、参考界面如图4所示(30分)。 调改写并调用函数举例] 口回☒ 定义函数实现累加 K: 5 1之和 15 定义函数判唯断一个整数是否是素数并加以利用 23 判断 23是素数。 显示 111317192329 20=3+17 22=3+19 拆分并显示 24=5+19 26=3+23 28=5+23 利用函数求两个整数的最大公约数 m 最大公约数: 3 15 18 许草 最小公倍数: 90 图4 要求如下: 按下列要求定义过程: 1)定义一个名为sumN函数:已知n,返回1n之和。 2)定义一个名为isPrime的函数:判断一个数p是否为素数,若是则返回True,否则返回False。 3)定义一个名为maxDivisor:返回两个数m和n的最大公约数。 通过调用已定义函数的方法,编写代码实现以下功能: 1)单击1文和按钮时,计算1k之间的所有整数之和,k的值由其左边文本框中输入,结果 显示在其右边的标签控件中。 2)当单击 判断 按钮时,判断其左边文本框输入的整数,是否是素数,结果显示在其右边 的标签控件中。 3)单击按钮 显示 时, 其右边的标签控件中显示10~30之间的所有素数。 拆分并显示 4)单击按钮 时, 将20-30之间的所有偶数,拆分成两个素数之和(对于每一个 第6页共7页
第6页 共7页 得分 评卷人 四、参考界面如图 4 所示(30 分)。 图 4 要求如下: 按下列要求定义过程: 1)定义一个名为 sumN 函数:已知 n,返回 1~n 之和。 2)定义一个名为 isPrime 的函数:判断一个数 p 是否为素数,若是则返回 True,否则返回 False。 3)定义一个名为 maxDivisor:返回两个数 m 和 n 的最大公约数。 通过调用已定义函数的方法,编写代码实现以下功能: 1)单击 按钮时,计算 1~k 之间的所有整数之和,k 的值由其左边文本框中输入,结果 显示在其右边的标签控件中。 2)当单击 按钮时,判断其左边文本框输入的整数,是否是素数,结果显示在其右边 的标签控件中。 3)单击按钮 时,其右边的标签控件中显示 10~30 之间的所有素数。 4)单击按钮 时,将 20~30 之间的所有偶数,拆分成两个素数之和(对于每一个

偶数只要有一对即可,如20=3+17),结果显示在其右边的文本控件中。 5)单击按钮计算时,求两个整数m和n的最大公约数和最小公倍数,m和n的值由相应的 文本框输入,结果显示在对应的标签控件中。 第7页共7页
第7页 共7页 偶数只要有一对即可,如 20=3+17),结果显示在其右边的文本控件中。 5)单击按钮 时,求两个整数 m 和 n 的最大公约数和最小公倍数,m 和 n 的值由相应的 文本框输入,结果显示在对应的标签控件中