当前位置: 高中信息技术 /备考专区
试卷结构: 课后作业 日常测验 标准考试
| 显示答案解析 | 全部加入试题篮 | 平行组卷 试卷细目表 发布测评 在线自测 试卷分析 收藏试卷 试卷分享
下载试卷 下载答题卡

高中信息技术算法与程序设计 专项测试二 算法基础

更新时间:2022-03-31 浏览次数:62 类型:复习试卷
一、选择题
  • 1. 某算法的部分流程图如下图所示,执行这部分流程后,输出x,y的值分别是(  )

    A . 0,3 B . 3,1  C . 3,0 D . 0,35
  • 2. 某算法的部分流程图如下图所示。

    输入x的值为1,执行完这部分流程后,变量s的值是(  )

    A . 0 B . 14  C . 20 D . 44
  • 3. 有如下VB程序段:

    Dim x As String, y As String, z As Boolean

    x = Text1.Text

    y = Text2.Text

    z = x + y > y + x

    Text3.Text = z

    程序运行时,在文本框Text1中输入12121,在文本框Text2中输入121,则在文本框Text3中显示的内容为(  )

    A . 12121121 B . 12112121 C . True D . False
  • 4. 有如下VB程序段:

    s = 0: i = 1

    Do While i <= 10

        If i Mod 3 = 0 Then a(i) = a(i) + 1 Else a(i) = i

        List1.AddItem Str(a(i))

        i = i + 1

    Loop

    i = 10

    Do While i >= 1

        If a(i) = 1 Then s = s + 1

        i = i - 1

    Loop

    该程序段运行后,变量s值是(  )

    A . 3 B . C . 5 D . 9
  • 5. 有如下VB程序段:

    Dim d As Integer, p As Integer

    p = 2

    d = 10

    Do While d > 1

        p = 2 * p

        d = d - 1

    Loop

    Label1.Caption = Str(p)

    该程序段运行后,在标签Label1中显示的内容是(  )

    A . 2 B . 512  C . 1024 D . 2048
  • 6. 有如下 VB 程序段:

    a(1) = 10

    For i = 2 To 10

        a(i) = 0

        If i Mod 2 = 1 Then

            a(i) = a(i \ 2) + a(i - 1)

        Else

            a(i) = a(i) + 1

        End If

    Next i

    该程序段执行后,数组元素a(7)的值是(  )

    A . 2 B . 10  C . 11 D . 12
  • 7. 有如下VB程序段:

    Dim i As Integer, j As Integer, st As String

    n = 5

    For i = 1 To 5

        st = “ ”

        If i < 4 Then

            For j = 1 To i

                st = st + “*”

            Next j

        Else

            For j = i To n

                st = st + “*”

            Next j

        End If

        List1.AddItem st

    Next i

    该程序段运行后,在列表框List1中显示的内容是(  )

    A . B . C . D .
  • 8. 有如下VB程序段:

    Dim a(1 To 6) As Long, i As Integer, x As Long, y As Long

    x = 654321

    For i = 1 To 6

        a(i) = x Mod 10

        x = x \ 10

        y = y + a(i) * 10 ^ (6 - i + 1)

    Next i

    执行该程序段后,变量y的值为(  )

    A . 123456 B . 1234560 C . 6543210 D . 654321
  • 9. 计算斐波那契数列的前n项。该数列从第 3 项开始,每一项都等于前两项之和,其中第1项为1,第2项也为1。计算前第 n项的 VB程序段如下所示:

    Private Sub Command1_Click()

        Dim n As Integer,i As Integer,a As Long,b As Long,c As Long

        a = 1

        b = 1

        n = Val(Text1.Text)

        List1.AddItem Str(a)

        List1.AddItem Str(b)

        For i = 3 To n

           

           

           

            List1.AddItem Str(c)

        Next i

    End Sub

    上述程序中方框处可选语句为(  )

    ①a=b ②c=a+b ③b=c

    A . ①、②、③ B . ①、③、② C . ③、①、② D . ②、①、③
  • 10. 有如下VB程序段:

    n = 0

    For i = 1 To Len(Text1.Text)

        c = Mid(Text1.Text, i, 1)

        If c >= “0” And c <= “9” Then m = 1 Else m = 2

        a(m) = a(m) + 1

        If a(m) = 1 Then n = n + 1

    Next i

    数组a各元素的初始值都为0,文本框Text1的内容为“Happy2018”。执行程序后,变量n的值为(  )

    A . 1 B . C . 4 D . 9
二、非选择题
  • 11. 小明编写了一个计算BMI指数的VB程序。BMI指数(即身体质量指数,称简体质指数又称体重,英文为Body Mass Index,简称BMI),是用体重(公斤)除以身高(米)平方得出的数字,是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个标准,BMI指数的判断标准如下表所示:

    BMI指数

    <18.522.9

    18.5~23~

    25~24.9

    29.9

    ≥30

    ≥40.0

    结果

    偏瘦

    正常

    偏胖

    肥胖

    重度肥胖

    极重度肥胖

    程序运行时,在文本框Text1中输入体重,在文本框Text2中输入身高,单击”测试”按钮Command1,在标签Label4中显示对应的结果。程序运行界面如下图所示。

    实现上述功能的VB程序如下,请回答下列问题:

    Private Sub Command1_Click()

        Dim h As Single, w As Single, ans As Single, s As String

        w = Val(Text1.Text)

        h = Val(Text2.Text)

           ①  

        If ans< 18.5 Then

            s = “偏瘦”

        ElseIf ans< 22.9 Then

            s = “正常”

        ElseIf ans<= 24.9 Then

            s = “偏胖”

        ElseIf ans<= 29.9 Then

            s = “肥胖”

        ElseIf ans< 40 Then

            s = “重度肥胖”

            ②   

            s = “极重度肥胖”

        End If

        Label4.Caption = s

    End Sub

    1. (1) 程序代码“Private Sub Command1_Click()”中Command1_Click()是指(选填:对象 / 属性 / 过程 / 事件 / 方法)。
    2. (2) 请在程序划线处填入合适代码。

       ② 

    3. (3) 程序运行时,输入体重70,身高1.65,则测试结果为
  • 12. 编写VB程序,实现如下功能:在文本框中输入一个整数,单击“计算”按钮Command1,则输出表达式 的值。程序运行界面如下图所示。

    1. (1) 该VB窗体上共包含类对象。
    2. (2) 实现上述功能的VB程序如下,请在划线处填入合适的代码。

      Private Sub Command1_Click()

          Dim n As Integer, p As Long, s As Double, i As Integer, t As Integer

          s = 0

       t = 1

       p = 0

       n = Val(Text1.Text)

       For i = 1 To n

       

         s = s + t * 1 / p

       

       Next i

       Label1.Caption = Str(s)

      End Sub

    3. (3) 运行该程序,在文本框Text1中输入5,单击“计算”按钮,则表达式的值是
  • 13. 小明编写了一个VB程序,功能如下:输入一个不超过10000的整数,若该数的各位数字之积是其各位数字之和的倍数,则输出“Yes”,否则输出“No”。

    程序运行时,在文本框Text1中输入一个整数,单击“判断”按钮Command1后,在标签Label3中显示判断结果。程序运行界面如下图所示。

    1. (1) 在设计程序界面时,要清空标签Label3中的显示内容,应修改该标签的属性。
    2. (2) 实现上述功能的VB程序如下,请在划线处填入合适代码。

      Private Sub Command1_Click()

          Dim x As Integer, h As Integer, k As Integer

          x = Val(Text1.Text)

          h = 0

          k=1

          Do While x > 0

              h = h + x Mod 10

              k=

              x = x \ 10

          Loop

          IfThen

              Label3.Caption = “Yes”

          Else

              Label3.Caption = “No”

          End If

      End Sub

    3. (3) 运行该程序,在文本框Text1中输入1234,单击“判断”按钮,显示的判断结果为
  • 14. 编写“加法练习题生成器”程序,实现如下功能:在文本框Text1中输入题数n,单击“生成”按钮Command1,在列表框List1中显示n个两数之和小于100的加法练习题。程序运行界面如图1所示。

    1. (1) 在设计程序界面时,应使用图2所示“控件工具箱”中的(填写相应编号)添加“生成”按钮。
    2. (2) 实现上述功能的VB程序如下,请在划线处填入合适的代码。

      Private Sub Command1_Click( )

          Dim n As Integer,i As Integer,a As Integer,b As Integer

          Randomize

          n=Val(Text1.Text)

          i=

          Do While i<=n

              a=Int(Rnd*100)

              b=Int(Rnd*100)

              IfThen

                  List1.AddItem“(“+Str(i)+”)“+Str(a)+”+“+Str(b)+”=”

                  i=i+1

              End If

          Loop

      End Sub

    3. (3) 运行该程序,在文本框中输入5,单击“生成”按钮后,对语句“a=Int(Rnd*100)”执行次数的描述,最合理的是(单选,填字母:A .执行次数等于5 / B .执行次数大于等于5 / C .执行次数小于等于5)。
  • 15. 哥德巴赫猜想:任意一个大于等于4的偶数,都可以用两个素数之和表示。如:4=2+2,6=3+3,8=3+5,10=5+5,12=5+7,98=17+79。

    编写一个验证哥德巴赫猜想的VB程序:程序运行时,在文本框Text1中输入一个大于等于4的偶数,单击“验证”按钮Command1后,如果哥德巴赫猜想验证成功,则在文本框Text2中显示“Yes”,并在列表框List1中显示用两个素数表示该偶数的等式,否则显示“No”。程序运行结果如图所示。

    实现上述功能的VB代码如下,但加框处代码有错,请改正。

    ′函数pp(x)的功能是判断整数x是否为素数,若是素数则返回True,否则返回False

    Function pp(x As Integer) As Boolean

        Dim j As Integer

        pp = True

        j = 2

        Do While j <= Int(Sqr(x)) And pp=True

            If x Mod j = 0 Then pp = False Else

                 '①

        Loop

    End Function

    Private Sub Command1_Click()

        Dim n As Integer, p As Integer, q As Integer, pd As Boolean

        n = Val(Text1.Text)

        p = 1              

        pd = False

        Do While Not pd And p < n

            p = p + 1

                        '②

            If pp(p) And pp(q) Then

                Text2.Text = “Yes”

                pd = True

                List1.AddItem Str(n) + “=” + Str(p) + “+” + Str(q)

            End If

        Loop

        If pd = False Then Text2.Text = “No”

    End Sub

    程序中加框①处应改正为

    加框②处应改正为

  • 16. 有趣的乘法:输入一个个位数不是5的奇数p,寻找一个整数s,使得p×s = 1111...1(每位数字均为1),要求输出整数s及它们乘积中1的个数(即乘积有几个1构成)。例如,当p=13时,13*8547=111111,因此整数s为8547,乘积由6个1构成;当p=23时,整数s为48309178743961352657,乘积由22个1构成。

    算法思想:

    首先生成一个比p大的全1数a,如果a能整除p,则算法结束,否则继续扩大a的位数,如此继续,直至a整除p。

    程序运行界面如下图所示,在文本框Text1中输入整数p,单击“计算”按钮,在文本框Text2中输出整数s,在文本框Text3中输出乘积中1的个数。

    小明依据上述描述设计如下VB程序。请回答下列问题:

    1. (1) 当p=3时,整数s为
    2. (2) 请在划线处填入合适的语句。

      Private Sub Command1_Click()

          Dim p As Long, a As Long, b As Long, c As Long, n As Long

          Dim s As String  '存放整数s,因为该数较大,因此采用字符串存储

          Do While True   '判断输入的整数p是否为个位不是5的奇数

              p = Val(Text1.Text)

              If p Mod 2 < > 0 And p Mod 5 < > 0 Then Exit Do

          Loop

          a = 0

          n = 0

          Do While a < p

              

              n = n + 1

          Loop

          c = a Mod p

          s = Str(a \ p)

          Do While c < > 0

              a = c * 10 + 1

              

              s = s & b

              n = n + 1

              

          Loop

          Text2.Text = s

          Text3.Text = Str(n)

      End Sub

微信扫码预览、分享更方便

试卷信息