77范文网 - 专业文章范例文档资料分享平台

算法和程序设计分析及试题附答案 - 08-算法和程序设计(4)

来源:网络收集 时间:2018-12-27 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

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)在线全文阅读。

算法和程序设计分析及试题附答案 - 08-算法和程序设计(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/391588.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: