《浙江信息技术高考题分类第四单元算法综合应用.doc》由会员分享,可在线阅读,更多相关《浙江信息技术高考题分类第四单元算法综合应用.doc(7页珍藏版)》请在金锄头文库上搜索。
1、18. (2008年10月浙江省高考)编写VB程序,在如第18题-1图所示11的正方形区域内产生一定数量、位置随机的点坐标,统计位于0.50.5的黑色区域内(包括边界)点的数量。程序运行时界面如第18题-2图所示。 第18题-1图 第18题-2图(1)设计应用程序界面时,为添加“开始”按钮,应使用第18题-3图所示的“控件工具箱”中的_(填写相应编号),并在第18题-4图所示的“属性窗口”中,将_属性值设置为“开始”。第18题-3图 第18题-4图(2)自上而下两个文本框的名称分别是Text1和Text2,“开始”按钮的名称是Command1。在Text1中输入数据,单击“开始”按钮,在Tex
2、t2中显示统计结果。“开始”按钮单击事件处理过程的流程图如第18题-5图所示。请根据流程图将下列程序补充完整。Private Sub Command1_Click( ) Dim n As Integer, m As Integer, i As IntegerDim x As Single, y As Single n = m=0 Randomize初始化Rnd函数 For i = 1 To n x = Rnd随机产生x坐标,0x1 y = Rnd随机产生y坐标,0y1 Next i Text2.Text = Str(m)End Sub 第18题-5图17(2009年9月浙江省高考)某电视台的直
3、播节目结束后,主持人从参与短信投票的观众中抽取若干名幸运观众。假设共有500名观众参与短信投票,抽奖程序的部分VB代码如下,程序运行时界面如第17题图所示。主持人在文本框Text1中输入幸运观众数量后,单击“开始”按钮Command1,在列表框List1中显示幸运观众的手机号码。请在划线处填入合适的代码。第17题图Dim a(1 To 500) As String 参与短信投票观众的手机号码Form_load过程用于将参与短信投票观众的手机号码存放到数组a中Private Sub Form_Load () 该过程代码略End SubPrivate Sub Command1_Click() Di
4、m n As Integer 幸运观众的数量 Dim t As Integer 幸运观众的序号 Dim i As Integer Randomize (1) List1.Clear For i=1 To n t = Int(Rnd*500)+1 DO While (2) =True t = Int(Rnd*500)+1 Loop List1.Addltem Mid(a(t),1,3)+“*+Mid(a(t),8,4) Next iEnd Subcheck函数用于判断随机产生的幸运观众的序号是否重复Private Function check(t As Integer)As Boolean 函数
5、值为True表示序号重复 该函数代码略End Function17、(2010年9月浙江省高考)小施想编写一个VB程序帮助弟弟练习最大公约数的计算,程序运行界面如下图所示。单击“生成题目”按钮Command1生成两个两位随机正整数,分别显示在左边的文本框Text1和中间的文本框Text2中。在右边的文本框Text3中输入结果并按回车键后,如果结果正确,将在该文本框右边的标签Label3中显示“”,否则显示“”。请在画线处填入合适的代码。Dim r As Integer 用于存放最大公约数Private Sub Command1_Click ( )Dim i As IntegerDim m As
6、 IntegerDim n As IntegerRandomizem = Int ( Rnd * 90) + 10n = Int ( Rnd * 90) + 10Text1Text = Str ( m ) : Text2Text = Str ( n ) Text3Text = : Label3Caption = If m n Then r = n Else r = mFor i = r To 1 Step -1 If m Mod i = 0 n Mod i = 0 Then r = i Exit For End If Next iEnd SubPrivate Sub Text3_KeyPres
7、s ( KeyAscii As Integer)If KeyAscii = 13 Then If r = Then Label3Caption = Else Label3Caption = End IfEnd Sub18、(2010年9月浙江省高考)某中学2009年下半年和2010年上半年各有300名和100名学生参加信息技术高考,下列VB程序用于统计参加过这两次考试的学生信息,其中Command1_Click过程的算法流程图如下所示,请回答下列问题:(1)流程图中虚线框部分所采用的查找算法名称是 。(2)程序加框处的代码有错,请改正。Dim a (1 To 300 ) As String 用
8、于存放参加2009年下半年考试学生的身份证号码Dim b (1 To 300 ) As String 用于存放参加2010年上半年考试学生的身份证号码Form_Load 过程用于进行一些初始化准备工作Private Sub Form_Load( ) 将参加2009年下半年考试学生的身份证号码存放在数组a中 将参加2010年上半年考试学生的身份证号码存放在数组b中将数组a中的数据升序排序将数组a和数组b中的数据分别显示在列表框List1和List2中代码略End Sub Command1_Click过程用于统计参加过这两次考试的学生信息Private Sub Command1_Click ( )
9、 Dim i As Integer , bot As Integer , top As Integer , m As Integer For i =1 To 300 bot = 1 top =300 Do While bot b ( i ) Then m = bot 1 Else bot = m + 1 End If Loop Next iEnd Suba(m) b(i)?100?开始i 1 i 100?确实初始查找范围(bot,top)bottop?100?计算查找范围的中点位置ma(m)=b(i)?100?在列表框List3中添加a(m)将m-1作为新的查找范围终点将m+1作为新的查找范围起点i i+1是结束否否是否是是否