试题

试题 试卷

logo

题型:综合题 题类:模拟题 难易度:普通

浙江省2019年信息技术选考模拟试卷五

两个整数的平方差称为好数,如 ,,按从小到大的次序,则第一个好数是3。编写VB程序代码,求出第n个好数是多少。实现如下功能:在文本框Text1中输入要求的第几个好数n,点击“计算”按钮Command1,则在Label2上显示结果,程序运行界面如下图所示:

(1)、若要在Text1中填写序数为100,则应修改Text1对象的 属性
(2)、为了实现以上程序功能,使程序正常运行,请完善以下两处代码。

Private Sub Command1_Click()

 Dim n, k, i ,sAs Integer

 s = Val(Text1.Text)  :  k = 2

 Do While n < s

    For i = 1 To k \ 2

        If k Mod i = 0 Then

           

            If (m + i) Mod 2 = 0 And (m - i) Mod 2 = 0 Then

                n = n + 1

                Exit For

            End If

        End If

    Next i

    k = k + 1

 Loop

 Label2.Caption = "第" + Text1.Text + "个好数是" +

End Sub

(3)、由上述算法可知,数字21是第个好数。
举一反三
现有n根棍子,第i根棍子的长度为a<sub>1</sub>,现设计了以下VB程序段,想要从中选出三根棍子组成周长尽可能长的三角形,输出最大的周长;若无法组成三角形,则输出0。如当n=5,a={2,3,4,5,10}时,输出12,即选择了3、4、5。当n=4,a={4,5,10,20}时,无法组成三角形,输出0。实现上述功能的VB程序代码如下,但加框处代码有误,请改正。

Dim a(1 To 1000) As Integer

Dim n As Integer

Private Sub Form_Load()

'确定n的值和数组a的各个元素值,即每根棍子的长度值,代码略

End Sub

Function max (x As Integer, y As Integer) As Integer

    If x>y Then

        max=x

    Else

        max=y

    End If

End Function

Private Sub Command1_Click()

    Dim i As Integer, J As Integer, K As Integer

    Dim ans As Integer, c As Integer, longest As Integer,

    rest As Integer

    ans=0

    '让i<j<k,保证棍子不会被重复选中

    For i=1 To n

        For j=i+1 To n

            For k=j+1 To n

                c=a(i)+a(j)+a(k)

                longest=      '①

                rest=c-longest        'rest 保存最短的两条边的和

                If Then      '②

                    ans=max(ans, c)

                End If

            Next k

        Next j

    Next i

    Print ans

End Sub

返回首页

试题篮