中国海洋大学 VB上机试题.doc_第1页
中国海洋大学 VB上机试题.doc_第2页
中国海洋大学 VB上机试题.doc_第3页
中国海洋大学 VB上机试题.doc_第4页
中国海洋大学 VB上机试题.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1某数组有20个元素,其值为随机产生的两位整数。现要求将前10个元素与后10个元素对换。即第1个元素与第20个元素互换,第2个数与第19个元素互换,第10个元素与第11个元素互换。在窗体上输出数组原来各元素的值与对换后各元素的值。Form LoadOption ExplicitDim a(1 To 20) As Integer, i As Integer, j As Integer, t As IntegerPrivate Sub Form_Load()ShowPrint 原始数组是:RandomizeFor i = 1 To 20 a(i) = Int(Rnd * 90) + 10 Print a(i); If i Mod 10 = 0 Then PrintNext iPrintPrint 现在数组是:For i = 1 To 10 j = 21 - i t = a(i): a(i) = a(j): a(j) = tNext i For i = 1 To 20 Print a(i); If i Mod 10 = 0 Then Print Next iEnd Sub2从数组中删除一个数。先定义一个一维数组,大小、数组的值自定。从键盘上输入一个数,若这个数在数组当中,就把它删除;若这个数不在数组中,提示“该数不在数组中”注意:1)如果数组中存在多个与该数相同的元素,每一个都能删除;2)能实现多次删除Option ExplicitDim a() As Integer, i As Integer, j As Integer, n As Integer, k As Integer, m As IntegerDim flag As BooleanPrivate Sub Form_Load()ShowReDim a(9) As Integerm = 1Print 原来数组为:For i = 0 To 9 a(i) = InputBox(请输入第 & m & 个数:) Print a(i); m = m + 1Next iPrintn = InputBox(查找的数是:)i = 0: flag = FalseDo If a(i) = n Then j = i: flag = True For k = j To UBound(a) - 1 a(k) = a(k + 1) Next k ReDim Preserve a(UBound(a) - 1) i = i - 1End If i = i + 1Loop While (i = UBound(a)If flag = False Then MsgBox n & 不在该数组中ElsePrint 删除 & n & 后的数组是: For i = 0 To UBound(a) Print a(i); Next iEnd IfEnd Sub3数组a中存放着升序排列的数据,使用array赋值,将inputbox输入的新数插入到数组中,插入后数组仍有序。注意:要求利用动态数组,能够实现多次插入Option Explicit: Option Base 1Dim a(), n As Integer, i As Integer, m As Integer, k As IntegerPrivate Sub Form_Load()Shown = 8: ReDim a(n)a = Array(5, 15, 23, 52, 68, 88, 90, 99)n = n + 1: ReDim Preserve a(n)m = InputBox(请输入要插入的数据:)For i = 1 To n - 1 If m max Then max = a(i, j) If a(i, j) min Then min = a(i, j) sum = sum + a(i, j) Next j ave = (sum - max - min) / (n - 2) b(i) = aveNext iFor i = 1 To n - 1 For j = i + 1 To n If b(i) = Asc(A) And Asc(Mid(ss, i, 1) = Asc(a) And Asc(Mid(ss, i, 1) = 48 And Asc(Mid(ss, i, 1) = 57 Then num = num + 1 End If End If End IfNext iPrint 大写字母: & largePrint 小写字母: & smallPrint 数字: & numEnd SubPrivate Sub Form_Load()Call tongjiEnd Sub7随机产生一个5*5的矩阵,将主对角线和次对角线元素都置为1,并求出矩阵的四周元素之和,显示在列表框中。8编写一个函数,能将字母按下列规律译成密码:AZ azBY by即第1个字母与第26个字母互换,第i个字母与第(26-i+1)个字母互换。在文本框中任意输入一个字符串,调用该函数将密码显示在另一个文本框中。Option ExplicitDim str1 As String, str2 As String, array1(100) As StringDim i As Integer, n As IntegerPrivate Sub Form_Load()End SubPrivate Sub Label1_Click()End SubPrivate Sub Text1_Change() str1 = Text1.Text n = Len(str1) For i = 1 To n array1(i) = Mid(str1, i, 1) If Asc(array1(i) = 97 And Asc(array1(i) = 65 And Asc(array1(i) = 90 Then array1(i) = Chr(155 - Asc(array1(i) End If Next i str2 = Join(array1, ) Text2.Text = str2 End Sub9编写2个函数,分别求两个正整数的最大公约数和最小公倍数,用户任意输入两个数,采用函数嵌套调用,该函数将它们在窗体显示。Private Sub Form_Load()Text1 = : Text2 = End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Text2.SetFocusEnd SubPrivate Sub Text2_KeyPress(KeyAscii As Integer)Dim m As Integer, n As Integer, r As Integer, t As Integer, xClsIf KeyAscii = 13 Then m = Text1.Text n = Text2.Text If m n Then t = m: m = n: n = t End If r = m Mod n While r 0 m = n: n = r: r = m Mod n Wend Print If m 0 Or n 0 Then x = MsgBox(请输入正数, vbCritical + vbOKCancel) If x = vbCancel Then End Else Text1 = : Text2 = Text1.SetFocus End If Else Print Text1.Text & 和 & Text2.Text & 的最大公约数是:; n End IfEnd IfEnd Sub10. 编写计算阶乘的Function过程,利用ex的下列公式计算e(直到最后一项小于10-6为止)的近似值。ex1+x/1!+x2/2!+x3/3!+xn/n!Option ExplicitPrivate Sub Form_Load()ShowDim x As Integer, n As Integer, s As Doublex = InputBox(请输入一个数:)n = 1: s = 1Do s = s + x n / (jiecheng(n) n = n + 1Loop Until x n / (jiecheng(n) i Then a(i, j) = 0 Else If i = j Then a(i, j) = 1 Else a(i, j) = a(i - 1, j) + a(i - 1, j - 1) End If End If If a(i, j) = 0 Then Exit For Else Picture1.Print Tab(g); a(i, j); g = g + 10 End If Next j Picture1.PrintNext iEnd SubPrivate Sub Picture1_Click()End Sub12编写一个过程,输出以下菱形图形: A BBB CCCCC DDDDDDD CCCCC BBB A主程序输入一个奇数(3),调用过程在窗体上输入图形。Option ExplicitPrivate Sub Form_Load()ShowDim n As Integern = InputBox(请输入一个数:)Call tuxing(n)End SubPublic Sub tuxing(n As Integer)Dim i As Integer, j As IntegerFor i = 1 To n Print Tab(21 - i); For j = 1 To 2 * i - 1 Print Chr(Asc(A) - 1 + i); Next j PrintNext iEnd Sub13编写一个将十进制转换为二进制字符串输出的函数。调用函数计算用户输入一个十进制数,在文本框中输出二进制值。注意:输入数据为负数,应该将符号位输出如 -13 结果 -1101Option ExplicitPrivate Sub Form_Load()Dim x As Integerx = InputBox(请输入一个十进制数:)erjinzhi (x)End SubPublic Function erjinzhi(m As Integer) As IntegerDim r As Integer, ss As Stringr = m Mod 2Do While m = 1 ss = Str(r) & ss m = m 2 r = m Mod 2LoopText1.Text = ssEnd Function14输入一个整数N,产生N个随机数(范围110*N),然后采用任何2种算法实现由小到大的排序。将排序前后的数据显示出来。Option ExplicitDim a(), n As Integer, i As Integer, j As Integer, t As IntegerPrivate Sub Form_Load()ShowPrint 原数组为:n = InputBox(请输入数组的项数:)ReDim a(n - 1)RandomizeFor i = 0 To n - 1 a(i) = Int(Rnd * (10 * n) + 1) Print a(i);Next iPrintPrint 新数组为:For i = 0 To n - 2 For j = 0 To n - 2 - i If a(j) a(j + 1) Then t = a(j): a(j) = a(j + 1): a(j + 1) = t End If Next jNext iFor i = 0 To n - 1 Print a(i);Next iEnd Sub15编写程序,在窗体上输出3100之间的所有素数。要求每行显示4个数16把文本框1、文本框2指定的范围内的所有素数添加到列表框中,并选中列表框数据中最后一位是9的所有数据(设定selected属性),把它们的和值输出。17. 编写2个函数,分别采用递归法和递推法求斐波纳契数列的第n个月的兔子数,n使用inputbox输入,调用函数的结果在窗体上显示。18. 有一个数列:1,1,2,3,5,8,13,21,按规律计算出前40项的和,结果写入到顺序文件(out.txt)中。界面设计见图1,写入结果的数据文件out.txt用“记事本”打开如图2。 图1 运行界面 图2 outt.txt文件内容Option ExplicitDim a(0 To 39) As DoubleDim sum As Double, i As IntegerPrivate Sub Command1_Click()a(0) = 1: a(1) = 1: sum = 2For i = 2 To 39 a(i) = a(i - 1) + a(i - 2) sum = sum + a(i)Next iEnd Sub19. 单击读数按钮从文件in.txt中读入一个整数(先用记事本创建一个in.txt文件,其中输入任意一个素数,如图3中输入的是101),单击计算按钮则计算出大于该数的第1个素数,单击存盘将结果保存到文件out.txt中,Option ExplicitDim m As IntegerPrivate Sub Command1_Click()Open d:20道上机题19myworkout.txt For Input As #1Input #1, mClose #1End SubPrivate Sub Command2_Click()Do m = m + 2 If jisuan(m) = True Then Exit DoLoop End SubPrivate Sub Command3_Click()Open d:20道上机题19myworkout.txt For Append As #1Print #1, mClose #1End SubPublic Function jisuan(m As Integer) As BooleanDim i As IntegerFor i = 2 To Sqr(m) If m Mod i = 0 Then jisuan = False End IfNext iIf i = Sqr(m) Then jisuan = True End IfEnd FunctionPrivate Sub Form_Load()End Sub20.如图6所示。当选中某一个单选按钮并单击“计算”按钮时,则计算出该单选按钮标题所指明的所有素数之和,并在文本框中显示出来;单击“存盘”按钮将计算所得的素数之和以out.txt文件名存入“c:exam”目录中。判断一个数是否为素数的过程自己编写,存盘过程已经给出。编写两个命令按钮的Click事件过程。Option ExplicitPrivate Sub Command1_Click()Dim i As Integer, sum As IntegerIf Option1 = True Then For i = 99

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论