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

日期: 2024-05-31 高一下学期信息技术

选择题

试题详情
某算法的部分流程图如下图所示,执行这部分流程后,输出x,y的值分别是(  )

A、 0,3
B、 3,1 
C、 3,0
D、 0,35
试题详情
某算法的部分流程图如下图所示。

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

A、 0
B、 14 
C、 20
D、 44
试题详情
有如下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
试题详情
有如下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、 4 
C、 5
D、 9
试题详情
有如下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
试题详情
有如下 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
试题详情
有如下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、
试题详情
有如下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
试题详情
计算斐波那契数列的前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、 ②、①、③
试题详情
有如下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、 2 
C、 4
D、 9

非选择题

试题详情
小明编写了一个计算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

试题详情
编写VB程序,实现如下功能:在文本框中输入一个整数,单击“计算”按钮Command1,则输出表达式 的值。程序运行界面如下图所示。

试题详情
小明编写了一个VB程序,功能如下:输入一个不超过10000的整数,若该数的各位数字之积是其各位数字之和的倍数,则输出“Yes”,否则输出“No”。

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

试题详情
编写“加法练习题生成器”程序,实现如下功能:在文本框Text1中输入题数n,单击“生成”按钮Command1,在列表框List1中显示n个两数之和小于100的加法练习题。程序运行界面如图1所示。

试题详情
哥德巴赫猜想:任意一个大于等于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

程序中加框①处应改正为

加框②处应改正为

试题详情
有趣的乘法:输入一个个位数不是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