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

下载本文档

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

文档简介

1、1某数组有20个元素,其值为随机产生的两位整数。现要求将前10个元素与后10个元素对换。即第1个元素与第20个元素互换,第2个数与第19个元素互换,第10个元素与第11个元素互换。在窗体上输出数组原来各元素的值与对换后各元素的值。Option ExplicitDim a(1 To 20) As Integer, i As Integer, j As Integer, t As IntegerPrivate Sub Form_Load()me.ShowPrint 原始数组是:RandomizeFor i = 1 To 20 a(i) = Int(Rnd * 90+10) 10 to 99 Pri

2、nt 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)如果数组中存在多个与该数相同的元素,每一个都能删除;

3、2)能实现多次删除Dim a() As IntegerPrivate Sub Command1_Click()Dim i As Integer, j As Integer, n As Integer, k As Integer, m As Integer, flag As Booleann = 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) -

4、 1) i = i - 1 End If i = i + 1Loop While (i a(j) Then t = a(i): a(i) = a(j): a(j) = t End If Next j Print a(i); Next i Print a(n) End Sub Private Sub Command2_Click()n = n + 1ReDim Preserve a(n)m = InputBox(输入一个正整数)PrintPrint 插入; m; 后的数组为 If a(1) m Then For i = 2 To n - 2 If a(i) = m Then j = i: Exi

5、t ForNexta(j + 1) = mFor i = 1 To nPrint a(i);NextEnd IfIf m = a(10) Then a(n) = m For i = 1 To n Print a(i); Next End If End Sub 3数组a中存放着升序排列的数据,使用array赋值,将inputbox输入的新数插入到数组中,插入后数组仍有序。注意:要求利用动态数组,能够实现多次插入Option ExplicitOption Base 1Dim a() As Integer, i As Integer, k As Integer, m As Integer, n As

6、 Integer, j As Integer, t As IntegerPrivate Sub Command1_Click()n = n + 1ReDim Preserve a(n)m = Val(InputBox(请输入要插入的数据)For i = 1 To n - 1If m a(j) Then t = a(i): a(i) = a(j): a(j) = t End If Next j Print a(i); Next i Print a(n) PrintEnd SubPrivate Sub Form_Load()Shown = 8ReDim a(n)a(1) = 5: a(2) = 1

7、0: a(3) = 15: a(4) = 20: a(5) = 30: a(6) = 90: a(7) = 108: a(8) = 1025For i = 1 To nPrint a(i);NextPrintEnd Sub46个评委为4位歌手打分,分数介于1-100之间。去掉一个最高分,一个最低分,求出每位选手的最后得分。将4位歌手得分从高到低排列输出,同时输出该选手的编号。如: 歌手3 95分 歌手 1 87分 歌手 4 80分 歌手 2 70分Option ExplicitOption Base 1Private Type cj 自定义类型 na As String * 3fs As In

8、tegerEnd TypeDim a(4, 6) As SinglePrivate Sub Command1_Click()Dim i As Integer, j As IntegerFor i = 1 To 4 For j = 1 To 6 a(i, j) = InputBox(请第 & j & 位评委给第 & i & 位选手打分) NextNext End SubPrivate Sub Command2_Click()Dim i As Integer, j As Integer, b(4) As cjDim max As Single, sum As Single, min As Sing

9、le, ave As Single, t As cjFor i = 1 To 4 max = a(i, 1): sum = 0 min = a(i, 1): ave = 0 For j = 1 To 6 If a(i, j) max Then max = a(i, j) If a(i, j) min Then min = a(i, j) sum = sum + a(i, j) Next ave = (sum - max - min) / 4b(i).na = 歌手 & i: b(i).fs = aveNextFor i = 1 To 3 For j = i + 1 To 4 If b(i).f

10、s 0 Then X1 = (-1) * b + (b 2 - 4 * a * c) 0.5) / (2 * a) X2 = (-1) * b - (b 2 - 4 * a * c) 0.5) / (2 * a) getresult = x1= & CStr(X1) & Chr(9) & x2= & cstr(X2)Else X = (-1) * b / (2 * a) If b 2 = 4 * a * c Then getresult = x= & CStr(X) Else y = (4 * a * c - b 2) 0.5 getresult = x1= & CStr(X) & + & C

11、Str(y) & i & Chr(9) & x2= & CStr(X) & - & CStr(y) & i End IfEnd IfEnd Function6. 任意输入一组字符,统计出大写字母多少个,小写字母多少个,数字多少个?要求用过程实现。Private Sub Command1_Click()Dim a As Integer, b As Integer, c As Integera = 0: b = 0: c = 0S = Len(Text1)For i = 1 To S If Mid(Text1, i, 1) 32 Then 没空格 If Asc(a) Asc(Mid(Text1,

12、i, 1) And Asc(Mid(Text1, i, 1) Asc(z) Then a = a + 1 小写字母 If Asc(A) Asc(Mid(Text1, i, 1) And Asc(Mid(Text1, i, 1) Asc(Z) Then b = b + 1 大写的 If 48 Asc(Mid(Text1, i, 1) And Asc(Mid(Text1, i, 1) 57 Then c = c + 1 数字 End IfNext i Print 小写字母共有 & a & 个 Print 大写字母共有 & b & 个 Print 数字共有 & c & 个 Print 其它(包括空格

13、)共有 & S - a - b - c & 个 Print 字符个数: & SPrintEnd Sub7随机产生一个5*5的矩阵,将主对角线和次对角线元素都置为1,并求出矩阵的四周元素之和,显示在列表框中。Private Sub Form_Click()Dim i%, j%, s1%, s2%, s3%, s4%, s%Dim mat(1 To 5, 1 To 5) 定义矩阵For i = 1 To 5 For j = 1 To 5 If i = j Or i + j = 6 Then 主对角线和次对角线 mat(i, j) = 1 Else mat(i, j) = Int(Rnd * 8 +

14、 2) 其他位置产生随机的大于2的一位数 End If NextNextFor i = 1 To 5 For j = 1 To 5 Print mat(i, j); 一定不能忘记分号; Next PrintNext i 以下为求和For i = 1 To 5 s1 = s1 + mat(i, 1) 计算第一纵行的和 s2 = s2 + mat(i, 5) 计算第五纵行的和NextFor j = 1 To 5s3 = s3 + mat(1, j)s4 = s4 + mat(5, j)NextPrint s1, s2, s3, s4End Sub8编写一个函数,能将字母按下列规律译成密码:AZ a

15、zBY by即第1个字母与第26个字母互换,第i个字母与第(26-i+1)个字母互换。在文本框中任意输入一个字符串,调用该函数将密码显示在另一个文本框中。Option ExplicitDim str1 As String, str2 As String, a As String, ss As StringDim i As Integer, n As IntegerPrivate Sub Command1_Click()Text1.Text = : Text2.Text = End SubPrivate Sub Text1_Change()str1 = Text1.Textn = Len(str

16、1)For i = 1 To n a = Mid(str1, i, 1) 从字符串str1中的第i个字符开始向后截取1个字符 If Asc(a) = 97 And Asc(a) = 65 And Asc(a) = B, A, B)Y = IIf(A = B, A, B)Dor = X Mod YIf r = 0 Then Exit DoX = Y: Y = rLoopMaxg = YEnd FunctionRem 求最小公倍数Private Function Ming(A As Integer, B As Integer)Ming = A * B / Maxg(A, B) 使用函数套用End

17、Function10. 编写计算阶乘的Function过程,利用ex的下列公式计算e(直到最后一项小于10-6为止)的近似值。ex1 x/1! x2/2! x3/3! xn/n! Private Sub Form_Load()ShowDim x As Integer, n As Integer, s As Doublex = InputBox(请输入一个数n:)n = 1: s = 1Do s = s + (x n) / (jc(n) 调用函数来计算阶乘 n = n + 1 Loop Until x n / (jc(n) i Then a(i, j) = 0 Else If i = j The

18、n 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 如果ji,则退出这一行的书写,开始写下一行 Exit For Else Picture1.Print Tab(g); a(i, j); g = g + 10 End If Next j Picture1.Print 一行一行输出Next iEnd SubPrivate Sub Picture1_Click()End Sub12编写一个过程,输出以下菱形图形: A BBB CCCCC DDD

19、DDDD CCCCC BBB A主程序输入一个奇数(3),调用过程在窗体上输入图形。Option ExplicitPrivate Sub Command1_Click()Dim n As Integer, a As Integern = InputBox(请输入行数n)If n Mod 2 = 0 Or n 2 Then 如果输入的不是奇数就报错 a = MsgBox(请输入奇数)Else Call tp(n)End IfEnd SubPrivate Sub tp(x As Integer)Dim i As Integer, m As Integerm = 26 先将m放在中间位置,使图像展开

20、For i = 1 To (x + 1) / 2 直到最多的那行 m = m - 1 每多一个字母,向前写一位 Print Tab(m); String(2 * i - 1, Chr(64 + i) 确定每行写几个,后面的按字母顺序输出Next i String(N,S)是重复输出N个S字符 大写A是65 小写a是97For i = (x + 1) / 2 + 1 To x 从最多的那行下一行开始写 m = m + 1 Print Tab(m); String(2 * (x + 1 - i) - 1, Chr(64 + x + 1 - i)Next iEnd Sub13编写一个将十进制转换为二

21、进制字符串输出的函数。调用函数计算用户输入一个十进制数,在文本框中输出二进制值。注意:输入数据为负数,应该将符号位输出如 -13 结果 -1101Dim n As IntegerPrivate Sub Form_Load()Dim x%n = InputBox(请输入一个十进制数)If n = 1 ss = Str(r) & ss Str函数把数值转换为字符型 m = m 2 注意此处为整除运算符,一定不能写为/ r = m Mod 2LoopIf n 0 Then Text1.Text = - & ss Else Text1.Text = ssEnd Function14输入一个整数N,产生

22、N个随机数(范围110*N),然后采用任何2种算法实现由小到大的排序。将排序前后的数据显示出来。Dim a() As Integer, n As IntegerPrivate Sub Form_Load()Shown = InputBox(请输入正整数n)ReDim a(n)Print 排序前For i = 1 To n a(i) = Int(Rnd * (10 * n) + 1)Print a(i);Next iEnd SubPrivate Sub Command1_Click()Dim i As Integer, j As Integer, t As IntegerPrintPrint 用

23、比较交换法排序:For i = 1 To n - 1 For j = i + 1 To n If a(j) a(j + 1) Then t = a(j): a(j) = a(j + 1): a(j + 1) = t 依次从第一个开始同最后一个比较,把越大的放在越后面 End If Next 一轮比较从1到n-1Next 开始下一轮比较,从1到n-2For i = 1 To n Print a(i);NextEnd SubPrivate Sub Command3_Click()Dim i As Integer, j As Integer, t As IntegerPrintPrint 用选择法排

24、序:For i = 1 To n - 1 k = i For j = i + 1 To n If a(k) a(j) Then k = j Next t = a(i): a(i) = a(k): a(k) = t Print a(i); NextPrint a(n)End Sub15 编写程序,在窗体上输出3100之间的所有素数。要求每行显示4个数。Private Sub Command1_Click()Print 3-100之间的所有素数为Dim n As IntegerFor n = 3 To 100 If isprime(n) Then Call prtprime(n) 调用 函数和过程

25、Next nEnd SubFunction isprime(a As Integer) As BooleanDim i As Integerisprime = TrueFor i = 2 To Int(Sqr(a) 平方根 If a Mod i = 0 Then isprime = False Exit For End IfoNext iEnd FunctionSub prtprime(b As Integer)Static cnt As Integer 静态变量cnt用来计数Print b;cnt = cnt + 1If cnt Mod 4 = 0 Then PrintEnd Sub16把文

26、本框1、文本框2指定的范围内的所有素数添加到列表框中,并选中列表框数据中最后一位是9的所有数据(设定selected属性),把它们的和值写入到C:DATA.TXT中。Private Sub Command1_Click()Dim count, x, y, n, i As IntegerList1.Clearx = Val(Text1.Text): y = Val(Text2.Text)count = 0For n = x To y For i = 2 To n / 2 If n Mod i = 0 Then Exit For Next i If i n / 2 Then List1.AddItem nNextEnd SubPrivate Sub Command2_Click()Dim i As Integ

温馨提示

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

评论

0/150

提交评论