13.如下程序段的功能是:随机产生8个1-100之间的正整数,按升序将10个数据排序输出。
为了实现这一目标,在划线处,填入合适的语句或表达式是 (1) (2) (3)
Const n=8
Dim a(1 to n) As Integer Dim I , j , t , k as integer For i = 1 To n (1) Next i
For i = 1 To n-1
For j =(2) To n If (3) Then
t = d(i): d(i) = d(k): d(k) = t End If Next j Next I
参考答案:(1) a(i) = Int(100 * Rnd + 1)或a(I) = Int(100 * Rnd() + 1)
(2)I+1
(3)a(i) > a(j)或a(i) > = a(j)
本题是程序填空题,属于稍难题,主要考核冒泡排序的程序实现,同时也考核函数Rnd和Int的正确使用。
14. 下列程序的功能是:在一个有序的序列中查找数值50,同时统计查找的次数并显示查找次数。
为了实现这一目标,在划线处,填入合适的语句或表达式是 (1) (2) (3)
Dim a(1 to 8) As Integer(定义在通用里,数组元素通过另一事件产生)
Private Sub Command1_Click()
Dim m As Integer, I As Integer, j As Integer, x As Integer, total As Integer Dim f As Boolean
f = False: x = 30: i = 1: j = 8: total = 0 Do While (1) And (f = False) total = total + 1 m = (2))
If a(m) = x hen f = True Else
If x < a(m) Then j = m - 1 Else
i = m + 1 End If End If Loop
- 132 -
If f = True Then
Label1.Caption = (3) Else
Label1.Caption = \找不到该数值\ End If End Sub
参考答案:(1) i<=j
(2)Fix(I+j)/2+1
(3)a(i) > a(j)或a(i) > = a(j)
本题是程序填空题,属于稍难题,主要考核对分查找的程序实现。
15.下列程序的功能是:某班级45名学生,每位学生中文姓名均不相同,并且都有一个英文名。下面程序的功能是根据学生的中文姓名查找相应的英文名,其中学号存储在数组sno中,英文名存储在数组sname中,中文姓名存储在数组ch中。在文本框text1中输入要查找的中文姓名,单击\开始查找\按钮,如果查找成功,则在文本框Text2中输出该学生的学号、中文姓名和英文名,否则在文本框Text2中输出\查无此人!\。
为了实现这一目标,在划线处,填入合适的语句或表达式是 (1) (2) (3)
Private Sub Command1_Click() Dim key As String, i As Integer Dim n As Integer, found As Boolean found = False n = 0 : i = 1 (1)
Do While i <= 45 And Not found
If ch(i) = key Then n = i: (2)
i = i + 1 Loop
If (3) Then Text2.Text = \查无此人!\Else
Text2.Text = Str(sno(n)) + \号:\的英文名是\End If End Sub
参考答案:(1) key=text1.text
(2)found=true (3)not found
本题是程序填空题,属于稍难题,主要考核顺序查找的程序实现。
16.下列程序的功能是:求两个正整数的最大公约数。求两个正整数的最大公约数可以采用辗转相除法求解。在文本框text1、text2中获取两个数据m、n,将结果显示在文本框text3上。
以下是辗转相除法的算法:分别用m , n , r表示被除数、除数、余数 ①求m/n的余数
②若r=0。则n为最大公约数。若r<>0,执行第3步 ③将n的值放在m中,将r的值放在n中。 ④返回重新执行第①步
为了实现这一目标,在划线处,填入合适的语句或表达式是
- 133 -
(1) (2) (3)
Private Sub Command1_Click() Dim m , n , i As Integer m=Val(text1.text) n=Val(text2.text) (1) Do While r<>0 m=n
(2)
r=m mod n Loop
Text3.text= (3) End Sub
参考答案:(1) r=m mod n
(2)n=r (3)str(r)
本题是程序填空题,属于稍难题,主要考核实现给出算法的相关程序的能力。
17.已知四位数3025有一个特殊的性质:她的前两位数字30和后两位数字25的和是55,而55的平方和刚好等于该数(552=3025)。下面程序求具有这种性质的所有四位数。
其中,上述界面中“开始处理”按钮的名称是“Command1”,布尔型函数special(x)作用判断x是否具有这种性质的四位数,若x是具有这种性质的四位数,其值为True,否则为False。
请在下列程序代码的基础上按照要求设计该程序。 Dim n As Integer, a As Integer
Function special(x as integer) As Boolean
End Function
Private Sub Command1_Click() For a = 1000 To 9999
If special(a) Then List1.AddItem (Str(a)) Next a End Sub 操作要求:
(1)完善程序中的Function special (x)部分
(2)在子程序Private Sub Command1_Click()中,主要采用的算法是:__________。 参考答案:(1) Dim a, b As Integer
a = x Mod 100 b = x \\ 100 a = a + b
If a ^ 2 = x Then special = True Else specail = flase
(2)枚举
本题是补充一段程序,属于难题,主要考核自定义函数的能力。
18.下面程序求2到1000之间的平方数对,在文本框text1中输入的自然数N,找出所有小于N且
- 134 -
满足下述条件的数对(X,Y):X+Y和X-Y都是完全平方数。例如:当X=10,Y=6时,有10+6=16=42 10-6 =4=22
其中,上述界面中“开始处理”按钮的名称是“Command1”,布尔型函数numbert(x,y)作用判断x,y是否为平方数对,若x,y是平方数对,其值为True,否则为False。
请在下列程序代码的基础上按照要求设计该程序。 Dim n As Integer, x, y As Integer
Function number(x, y As Integer) As Boolean
End Function
Private Sub Command1_Click() For x = 2 To 1000
For y = x + 1 To 1000
If number(x, y) Then List1.AddItem (Str(x) + \与\+ Str(y))
Next y Next x End Sub 操作要求:
(1)完善程序中的Function number(x,y)部分
(2)在子程序Private Sub Command1_Click()中,主要采用的算法是:__________。 参考答案:(1)Dim a, b As Integer a = x + y b = y - x
If Sqr(a) = Int(Sqr(a)) And Sqr(b) = Int(Sqr(b)) Then number = True Else number
= False
(2)枚举
本题是补充一段程序,属于难题,主要考核自定义函数的能力。
19.下面程序求2到1000之间的亲密数对,找出所有小于1000且满足下述条件的数对(A,B):如果A的约数之和等于B,B的约数之和等于A,A和B称为亲密数对。如220的所有约数(即能被它整除)为:1、2、4、5、10、11、20、22、44、55、110,而1+2+4+5+10+11+20+22+44+55+110=284; 284的所有约数为:1、2、4、71、142,而1+2+4+71+142=220。所以220和284就是亲密数对
其中,上述界面中“开始处理”按钮的名称是“Command1”,布尔型函数numbert(x,y)作用判断x,y是否为亲密数对,若x,y是亲密数对,其值为True,否则为False。
请在下列程序代码的基础上按照要求设计该程序。 Dim n As Integer, x, y As Integer
Function number(x, y As Integer) As Boolean
End Function
- 135 -
Private Sub Command1_Click() For x = 2 To 1000
For y = x + 1 To 1000
If number(x, y) Then List1.AddItem (Str(x) + \Next y Next x
End Sub操作要求:
(1)完善程序中的Function numbertwo(x,y)部分
(2)在子程序Private Sub Command1_Click()中,主要采用的算法是:__________。 参考答案:(1) Dim a, b, i As Integer
a = 1: b = 1
For i = 2 To x \\ 2
If x Mod i = 0 Then a = a + i Next i
For i = 2 To y \\ 2
If y Mod i = 0 Then b = b + i Next i
If a = y And b = x Then number = True Else number = False
(2)枚举
本题是补充一段程序,属于难题,主要考核自定义函数的能力。
20.数学黑洞数6174。已知:一个任意的四位正整数(四位数字完全相同的除外)。将数字重新组合成一个最大的数和最小的数相减,重复这个过程,最多七步,必得6174。即7614-1467=6174。从文本框text1中输入一个任意的数字不完全相同的四位正整数,在文本框text2中输出掉进黑洞的步数。
Private Sub Command1_Click() Dim a(1 To 4) As Integer Dim x, y, i, j As Integer x = Val(Text1.Text) st = 0
Do While x <> 6174 For i = 1 To 4
a(i) = x Mod 10 x = x \\ 10 Next i
x = a(1) * 1000 + a(2) * 100 + a(3) * 10 + a(4) y = a(1) + a(2) * 10 + a(3) * 100 + a(4) * 1000 x = x - y st = st + 1 Loop
- 136 -
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库算法和程序设计分析及试题附答案 - 08-算法和程序设计(4)在线全文阅读。
相关推荐: