为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

2011春vb上机试卷

2011-09-17 14页 doc 256KB 49阅读

用户头像

is_355320

暂无简介

举报
2011春vb上机试卷江苏省高等学校非计算机专业学生 江苏省高等学校非计算机专业学生 计算机基础知识和应用能力等级考试上机试卷(2011春) 二级Visual Basic语言(试卷代号VB01) (本试卷完成时间 70分钟) 一、改错题(14分) 【题目】本程序的功能是,找出100~999之间的10进制数为升序数,且其对应的8进制数也是升序数的整数。所谓升序数是指该数的十位数字值大于个位数字值,百位数字值大于十位数字值。 Option Explicit Private Sub CmdFind_Click() Dim n As Integer, s8...
2011春vb上机试卷
江苏省高等学校非计算机专业学生 江苏省高等学校非计算机专业学生 计算机基础知识和应用能力等级考试上机试卷(2011春) 二级Visual Basic语言(试卷代号VB01) (本试卷完成时间 70分钟) 一、改错题(14分) 【题目】本程序的功能是,找出100~999之间的10进制数为升序数,且其对应的8进制数也是升序数的整数。所谓升序数是指该数的十位数字值大于个位数字值,百位数字值大于十位数字值。 Option Explicit Private Sub CmdFind_Click() Dim n As Integer, s8 As String For n = 100 To 999 s8 = d2Q(n) If sx(n) And sx(Val(s8)) Then List1.AddItem n & "D==>" & s8 & "Q" End If Next n End Sub Private Function d2Q(n As Integer) As String Dim p As Integer Do p = n Mod 8 d2Q = d2Q & CStr(p) n = n \ 8 Loop Until n = 0 End Function Private Function sx(ByVal n As Integer) As Boolean Dim num() As Integer, k As Integer, t As Integer Dim i As Integer t = Len(CStr(n)) ReDim num(t) For k = 1 To t num(k) = Val(Mid(CStr(n), k, 1)) Next k For i = 1 To UBound(num) - 1 If num(i) >= num(i + 1) Then Exit For Next i sx = True End Function 【要求】 1.新建工程,输入上述代码,改正程序中的错误; 2.改错时,不得增加或删除语句,但可适当调整语句位置; 3.将窗体文件和工程文件分别命名为F1和P1,并保存到T盘的根目录下。 二、编程题(26分) 【题目】编写程序,对实验数据进行分组均化处理。处理的方法是:先将实验数据从小到大排序,然后按排序后的顺序每3个数作为一组,再用每组3个数的平均值作为这3个数的现值。 【编程要求】 1.​ 程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见; 2.​ 运行程序,按“处理”按钮,出现如图的InputBox函数窗口,输入数据个数(或使用缺省值)后按“确定”,则生成10~40之间的随机整数数组并显示在实验数据文本框中,然后对实验数据进行排序并显示在排序结果文本框中,再进行分组均化并在文本框中输出数据均化结果;按“清除”按钮,将三个文本框清空,焦点置于“处理”按钮上;按“结束”按钮,结束程序运行; 3.​ 程序中应定义一个名为sort的通用过程,用于对一维数组按从小到大排序。 【要求】 将窗体文件和工程文件分别命名为F2和P2,并保存到T盘的根目录下。 江苏省高等学校非计算机专业学生 计算机基础知识和应用能力等级考试上机试卷(2011春) 二级Visual Basic语言(试卷代号VB02) (本试卷完成时间 70分钟) 一、改错题(14分) 【题目】本程序的功能是,找出使用 (m=1~100)生成的一个数据序列中的所有非素数,分别输出这些非素数的全部真因子。所谓数n的真因子是指除1和n之外的因子。 Option Explicit Private Sub Command1_Click() Dim m As Integer, p As Long Dim st1 As String st1 = "" For m = 1 To 100 p = m * m - m + 41 If Not prime(p) Then Call fac(p, st1) List1.AddItem "第" & m & "项 " & p & ":" & st1 End If Next m End Sub Private Function prime(n As Long) As Boolean Dim k As Integer For k = 2 To Sqr(n) If n Mod k = 0 Then Exit For Next k prime = True End Function Private Sub fac(n As Long, st As String) Dim i As Integer For i = 2 To n \ 2 If n Mod i = 0 Then st = st & i & "," End If Next i st = Right(st, Len(st) - 1) End Sub 【要求】 1.​ 新建工程,输入上述代码,改正程序中的错误; 2.​ 改错时,不得增加或删除语句,但可适当调整语句位置; 3.​ 将窗体文件和工程文件分别命名为F1和P1,并保存到T盘的根目录下。 二、编程题(26分) 【题目】编写程序,在一个数组中找出比第一个数组元素的值大的所有数组元素中值最小的元素。如果第一个数组元素值本身为最大数,则输出“无”。 【编程要求】 1.​ 程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见; 2.​ 运行程序,按“处理”按钮,则生成由10个两位随机数组成的数组并显示在文本框Text1中,找出比第一个数组元素a(1)大的最小元素输出在文本框Text2中,若没有比a(1)大的数组元素,则在Text2中输出“无”;按“清除”按钮,将所有文本框清空,焦点置于“处理”按钮上;按“结束”按钮,结束程序运行; 3.​ 程序中应定义一个通用过程,用于求一维数组中比a(1)大的最小元素。 【算法提示】先找出所有比数组原第一个元素大的元素存入一新数组,再找出其中的最小元素即可。 【要求】 将窗体文件和工程文件分别命名为F2和P2,并保存到T盘的根目录下。 江苏省高等学校非计算机专业学生 计算机基础知识和应用能力等级考试上机试卷(2011春) 二级Visual Basic语言(试卷代号VB03) (本试卷完成时间 70分钟) 一、改错题(14分) 【题目】本程序的功能是,输入整数n,在小于等于n的素数序列中,找出所有接连3个素数之和也是素数的子序列。 Private Sub Command1_Click() Dim n As Integer, pn() As Integer, k As Integer Dim i As Integer, sum As Integer, st As String n = Text1 k = 2 Do If prime(k) Then i = i + 1 ReDim pn(i) pn(i) = k End If k = k + 1 Loop Until k > n For i = 1 To UBound(pn) sum = 0 For k = i To i + 2 sum = sum + pn(k) st = st & pn(k) & "+" Next k If prime(sum) Then List1.AddItem Left(st, Len(st) - 1) & "=" & sum End If st = "" Next i End Sub Private Function prime(n As Integer) As Boolean Dim i As Integer For i = 2 To Sqr(n) If n Mod i = 0 Then Exit For Next i prime = True End Function 【要求】 1.​ 新建工程,输入上述代码,改正程序中的错误; 2.​ 改错时,不得增加或删除语句,但可适当调整语句位置; 3.​ 将窗体文件和工程文件分别命名为F1和P1,并保存到T盘的根目录下。 二、编程题(26分) 【题目】编写程序,找出数组中的最大元素值,把最大元素与数组首元素位置对调;然后再找出数组中的最小元素值,把最小元素与数组末尾元素位置对调。(若存在多个相等的最大元素,只对调其中一个即可,最小元素亦然) 【编程要求】 1.​ 程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见; 2.​ 运行程序,按“生成数组”按钮,出现如图的InputBox函数窗口,输入数据个数(或使用缺省值)后按“确定”,则生成两位数的随机整数数组并显示在文本框Text1中;按“运行”按钮,找出数组最大元素和最小元素后,分别与数组首元素位置对调和与末尾元素位置对调,并将位置对调后的数组元素显示在文本框Text2中;按“清除”按钮,将两个文本框清空,焦点置于“生成数组”按钮上; 3.​ 程序中应定义一个通用过程,用于求一维数组的最大元素及最小元素。 【算法提示】先找出所有比数组原第一个元素大的元素存入一新数组,再找出其中的最小元素即可。 【要求】 将窗体文件和工程文件分别命名为F2和P2,并保存到T盘的根目录下。 江苏省高等学校非计算机专业学生 计算机基础知识和应用能力等级考试上机试卷(2011春) 二级Visual Basic语言(试卷代号VB04) (本试卷完成时间 70分钟) 一、改错题(14分) 【题目】本程序的功能是:在0~255之间的整数中,找出其对应的8位二进制代码正序与反序相同的数。 Option Explicit Private Sub Command1_Click() Dim n As Integer, sb As String For n = 0 To 255 If hw(n, sb) Then List1.AddItem n & "=>" & sb End If Next n If List1.ListCount = 0 Then List1.AddItem "无符合要求数据" End Sub Private Function hw(n As Integer, st As String) As Boolean Dim i As Integer st = d2b(n) For i = 1 To Len(st) / 2 If Mid(st, i, 1) <> Mid(st, Len(st) - i + 1, 1) Then Exit For Next i hw = True End Function Private Function d2b(n As Integer) As String Dim p As Integer Do p = n Mod 2 d2b = Str(p) & d2b n = n \ 2 Loop Until n = 0 d2b = Right("0000000" & d2b, 8) End Function 【要求】 1.​ 新建工程,输入上述代码,改正程序中的错误; 2.​ 改错时,不得增加或删除语句,但可适当调整语句位置; 3.​ 将窗体文件和工程文件分别命名为F1和P1,并保存到T盘的根目录下。 二、编程题(26分) 【题目】编写程序,在一个数组中找出只出现一次的那些数,并将其存入一个新的数组。 【编程要求】 1.​ 程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见; 2.​ 运行程序,按“处理”按钮,出现如图的InputBox函数窗口,输入数组元素个数(或使用缺省值)后按“确定”,则生成10~40之间的随机整数数组并显示在文本框Text1中,找出数组中只出现一次的元素存入新的数组,并输出到列表框List1;按“清除”按钮,将文本框和列表框清空,焦点置于“处理”按钮;按“结束”按钮,结束程序运行; 3.​ 程序中应定义一个通用过程,用于求一维数组中只出现一次的数据,并存入新的数组。 【要求】 将窗体文件和工程文件分别命名为F2和P2,并保存到T盘的根目录下。 江苏省高等学校非计算机专业学生 计算机基础知识和应用能力等级考试上机试卷(2011春) 二级Visual Basic语言(试卷代号VB05) (本试卷完成时间 70分钟) 一、改错题(14分) 【题目】本程序的功能是:找出100~300之间的素数,且这些素数的平方数由不同数字组成。 Option Explicit Private Sub Command1_Click() Dim k As Long, n As Integer For n = 100 To 300 k = 1& * n * n If prime(n) And np(k) Then List1.AddItem n & "==>" & k End If Next n End Sub Private Function prime(n As Integer) As Boolean Dim i As Integer For i = 2 To Sqr(n) If n Mod i = 0 Then Exit Function Next i prime = True End Function Private Function np(n As Long) As Boolean Dim num() As Integer, k As Integer Dim i As Integer, j As Integer Do k = k + 1 ReDim Preserve num(k) num(k) = n Mod 10 n = n \ 10 Loop Until n < 0 For i = 1 To UBound(num) For j = i + 1 To UBound(num) If num(i) = num(j) Then Exit For Next j Next i np = True End Function 【要求】 1.​ 新建工程,输入上述代码,改正程序中的错误; 2.​ 改错时,不得增加或删除语句,但可适当调整语句位置; 3.​ 将窗体文件和工程文件分别命名为F1和P1,并保存到T盘的根目录下。 二、编程题(26分) 【题目】编写程序,运用分数运算求级数前n项之和,要求结果以最简分数形式表示。计算公式是: 【编程要求】 1.​ 程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见; 2.​ 运行程序,首先在项数文本框内输入需要求和的项数后,按“计算”按钮,则在数列前n项之和的文本框内以分数形式显示结果;按“清除”按钮,将所有文本框清空,焦点置于项数文本框上;按“结束”按钮,结束程序运行; 3.​ 程序中应定义两个通用过程,一个用于求数列的第n项的分子与分母值,一个用于求两个数的最大公约数。 【算法提示】两个分数相加的计算公式是 ,求出分数和之后,再求分子与分母的最大公约数,用分数和的分子与分母分别除以最大公约数,则得到分数和的最简分数。 【要求】 将窗体文件和工程文件分别命名为F2和P2,并保存到T盘的根目录下。 江苏省高等学校非计算机专业学生 计算机基础知识和应用能力等级考试上机试卷(2011春) 二级Visual Basic语言(试卷代号VB06) (本试卷完成时间 70分钟) 一、改错题(14分) 【题目】本程序的功能是:找出100~99999之间所有本身是平方数,将其最高一位数与最低一位数对调之后,得到的新数仍为平方数的整数。例如1764(42的平方)是平方数,数字对调得到的4761(69的平方)仍是平方数。 Option Explicit Private Sub Command1_Click() Dim n As Long, k As Long, fg As Boolean fg = False For n = 100 To 99999 If Sqr(n) = Int(Sqr(n)) Then Call validate(n, k, fg) If fg And k > n Then List1.AddItem k & "==>" & n End If End If Next n End Sub Private Sub validate(n As Long, k As Long, flag As Boolean) Dim st As String, p As Integer p = n Mod 10 If p = 0 Then Exit Sub n = n \ 10 st = Str(n) k = p & Mid(st, 2, Len(st) - 1) & Left(st, 1) If Sqr(k) = Int(Sqr(k)) Then flag = True End If End Sub 【要求】 1.​ 新建工程,输入上述代码,改正程序中的错误; 2.​ 改错时,不得增加或删除语句,但可适当调整语句位置; 3.​ 将窗体文件和工程文件分别命名为F1和P1,并保存到T盘的根目录下。 二、编程题(26分) 【题目】编写程序,求矩阵的范数。这里的矩阵范数是指矩阵(二维数组)每一列元素绝对值的和数中最大的一个数。 【编程要求】 1.​ 程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见; 2.​ 运行程序,按“处理”按钮,出现如图的InputBox函数窗口,分别输入矩阵行、列数(或使用缺省值)后按“确定”,则生成-20~20之间的随机整数数组并显示在图片框Pic1中,再求出矩阵范数并输出到文本框Text1中;按“清除”按钮,将文本框和图片框清空,焦点置于“处理”按钮上;按“结束”按钮,结束程序运行; 3.​ 程序中应定义两个通用过程,一个用于求二维数组每列元素绝对值之和,另一个用于求一维数组最大元素。 【要求】 将窗体文件和工程文件分别命名为F2和P2,并保存到T盘的根目录下。 江苏省高等学校非计算机专业学生 计算机基础知识和应用能力等级考试上机试卷(2011春) 二级Visual Basic语言(试卷代号VB07) (本试卷完成时间 70分钟) 一、改错题(14分) 【题目】本程序的功能是:生成一个n行4列的整数数组,该数组的每一行第一列的元素是随机生成的一个不含数字0的三位整数,其余三列元素的值分别是前一列同行元素各位数字的连乘积。n使用InputBox函数输入。 Private Sub Command1_Click() Dim n As Integer, ra() As Integer Dim k As Integer, i As Integer, j As Integer n = InputBox("数据个数:", , 4) ReDim ra(n, 4) i = 1 Do k = Int(Rnd * 899) + 100 If InStr(CStr(k), "0") = 0 Then ra(i, 1) = k Pic1.Print Right(" " & ra(i, 1), 4); For j = 2 To 4 ra(i, j) = fun(ra(i, j - 1)) Pic1.Print Right(" " & ra(i, j), 4); Next j Pic1.Print End If i = i + 1 Loop Until i > n End Sub Private Function fun(ByVal n As Integer) As Integer fun = 1 Do fun = fun * n Mod 10 n = n \ 10 Loop While n >= 0 End Function 【要求】 1.​ 新建工程,输入上述代码,改正程序中的错误; 2.​ 改错时,不得增加或删除语句,但可适当调整语句位置; 3.​ 将窗体文件和工程文件分别命名为F1和P1,并保存到T盘的根目录下。 二、编程题(26分) 【题目】编写程序,把一个汉字的二进制形式机内码,转换成相应的区位码。转换的算法是:每个汉字机内码的第1字节与第2字节分别转换为10进制数再各减去10进制数160,即为汉字的区号与位号。 【编程要求】 1.​ 程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见; 2.​ 运行程序,在“机内码”文本框中输入一个汉字的机内码,按“转换”按钮,在“区位码”文本框中显示该汉字的区位码;按“清除”按钮,将所有文本框清空,并将焦点设置在“机内码”文本框上;按“结束”按钮,结束程序运行; 3.​ 程序中定义一个Function过程,其功能是将二进制数转换成十进制数。 【要求】 将窗体文件和工程文件分别命名为F2和P2,并保存到T盘的根目录下。
/
本文档为【2011春vb上机试卷】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索