第6章 习题讨论 单选题 多选题(无) 填空题 编程题 退出
一、单选题(补充) 1.下列程序段运行后,假设依次输入1、3、5,则运行结果是______。 Dim a(3) As Integer, b(3) As Integer For k = 0 To 2 a(k + 1) = Val(InputBox("请输入数据:")) b(3 - k) = a(k) Next k Print b(3) + a(3) A. 7 B. 6 C. 5 D. 8 C
2. 下列程序段的运行结果是______。 C Dim a a = Array(1, 3, 5, 7, 9, 11) For k = 0 To 2 Print a(5 - k) - a(k); Next k A. 10 7 4 B. 10 6 2 C. 9 5 3 D. 10 6 3
填空题 7. 产生n个10~100随机整数并存入数组,再从键盘上接收一数据,将该数据插入数组中,插入位置也从键盘接收。补充完整下列程序代码 (先分析) Dim a() As Integer '模块级变量 Private Sub Form_Load() n = Val(InputBox("数据个数:")) ____(1)_____ Randomize Show Print "原始数据:" For k = 1 To n '产生n个随机数 a(k) = Int(91 * Rnd + 10) Print a(k); Next k
Print "处理结果:" Print: Print d = Val(InputBox("插入的数据:")) p = Val(InputBox("插入的位置:")) For K = n To p Step -1 _____(2)_____ Next K _____(3)_____ Print "处理结果:" For K = 1 To n + 1 Print a(K); End Sub 假设 个数n=8 插入的数据 d=89 插入的位置p=5 空出一个位置 从最后一个开始 右移 存入新数据
填空题 7. 产生n个10~100随机整数并存入数组,再从键盘上接收一数据,将该数据插入数组中,插入位置也从键盘接收。补充完整下列程序代码(填空) Dim a() As Integer '模块级变量 Private Sub Form_Load() n = Val(InputBox("数据个数:")) ____(1)_____ Randomize Show Print "原始数据:" For k = 1 To n '产生n个随机数 a(k) = Int(91 * Rnd + 10) Print a(k); Next k 填空第7题 'ReDim a(1 To n + 1)
Print "处理结果:" Print: Print d = Val(InputBox("插入的数据:")) p = Val(InputBox("插入的位置:")) For K = n To p Step -1 _____(2)_____ Next K _____(3)_____ Print "处理结果:" For K = 1 To n + 1 Print a(K); End Sub a(K + 1) = a(K) 假设 个数n=8 插入的数据 d=89 插入的位置p=5 a(p) = d 空出一个位置 从最后一个开始 右移 存入新数据
编程题 补充题1: 将10个人(分别用A,B,C,… J表示)随机分配在4排3列的座位中,分配后的空位用“Empty”表示。在窗体上设置一个文本框控件数组,来显示座位分配情况 1. 用户界面 编程补充题1
Private Sub Form_Load() Dim t(12) As String Randomize For k = 1 To 12 t(k) = "Empty" '初始安排12个位置均为"Empty" Next k For h = 65 To 74 '代表"A"至"J",每次随机安排一个字母 Do While True '随机查找一个空位 p = Int(1 + 12 * Rnd) '产生1~12随机数 If t(p) = "Empty" Then t(p) = Chr(h) Exit Do End If Loop Next h Text1(k - 1).Text = t(k) '显示座位分配情况 End Sub
编程补充题2: 从字符串中抽取数字字符串 输入一个含有数字字符和非数字字符的字符串,如 t345+abc12spc276www8t56? 将其中的数字串(1至多个连续数字字符)存放到列表框中,例如将345放在第一行,12放在第二行,276放在第三行,8放在第四行,56放在第五行。统计共有多少个数字串 (1)创建应用程序的用户界面和设置对象属性 编程补充题2
(2)编写程序代码 功能要求:用户在文本框(Text1)中输入要处理的字符串内容,单击“处理”按钮(Command1)后,则按要求取出各个数字串并显示在列表框List1中,统计出数字串的个数并显示在标签Label3中
Private Sub Command1_Click() k = 0 : n = -1 : s = Text1.Text '取字符串 For i = 1 To Len(s) '按顺序逐个字符判断 t = Mid(s, i, 1) '取i位置的一个字符 If t < "0" Or t > "9" Then '判是否数字 k = 0 '非数字,置k=0 Else If k = 0 Then n = n + 1 '指向列表框的下一行 List1.List(n) = t '存入列表框 k = 1 '表示刚存过数字 Else '把数字加入到列表框当前行的末尾 List1.List(n) = List1.List(n) + t End If Next i Label3.Caption = Str(n + 1) + "个数字串" End Sub
本程序采用按顺序逐个字符判断方式,大致处理过程如下: (1)取出字符串中的第一个字符,若该字符不是数字,则k=0;若是数字,则k=1,并将该数字存入列表框的第一行中 (2)取出下一个字符,判断是不是数字,若不是数字,则k=0;若是数字,则再判断k是否为0,若k非0(说明上一个字符也是数字),则将该数字加入到列表框的当前行末尾,若k为0(说明这是新数字串的开头),则把该数字存入列表框的下一个新行中,并使k=1 (3)重复(2)的处理过程,直到把字符串中所有字符都判断完为止