4.1 算法及其特征 知识点题库

用计算机程序解决数学问题“求一元二次方程实数解”的步骤通常是(   )
A . 设计算法→编写程序 B . 编写程序→调试程序→检测结果 C . 分析问题→设计算法→编写程序→调试运行→检测结果 D . 编写程序→调试运行
水仙花数是指一个三位数,它的各位数的立方和正好等于该数本身。如:

153=1×1×1+5×5×5+3×3×3

小张设计了一个算法来输出所有的水仙花数,具体程序如下。

  1. (1) 在程序中常见用于解决问题的方法有解析法、穷举法、递归法等,本题中使用了哪种方法?
  2. (2) 程序中定义了几个变量?
  3. (3) 将程序中①的代码补充完整。
  4. (4) 将程序中②的代码补充完整。
  5. (5) 在for循环结构中,循环体执行的次数是多少?
  6. (6) 在本题中变量c主要用来存放这个三位数中的百位、十位还是个位上的数?
在VB中,有如下事件处理过程代码:

Private Sub Command1_Click()

  Dim s As Double

  s = 0

  Do While s <> 5

    s = s + 2

  Loop

  Label1.Caption = Str(s)

End Sub

该事件处理过程代码违背了算法特征中的(   )

A . 确定性 B . 有穷性 C . 有输出 D . 有0个或多个输入
某单位招考公务员,2010年和2011年分别有4 020名和2 000名考生报名,下列VB程序用于统计两次考试都参加的考生信息。程序界面设计如图所示,2010年和2011年的考生信息分别显示在List1和List2中,点击“统计”按钮,在List3中显示两次考试都参加的考生信息和总人数。

  1. (1) 实现上述功能的VB程序如下,请在横线处填入合适代码。

    Dim a (1 To 4020 ) As String

    Dim b (1 To 2000 ) As String

    Private Sub Form_Load( )

    Dim conn As New ADODB.Connection

    Dim rs As New ADODB.Recordset

    Dim constr As string

    constr=“Provider=Microsoft.ace.OLEDB.12.0;”

    constr=constr &“Data Source=” & App.Path+“\data\KaoSheng.accdb”

    conn.ConnectionString=constr

    conn.open()

    Dim sql As String

    ‘将参加2010年下半年考试的考生的身份证号码按升序存放在a数组中

    sql=“select * from kaoshengInfo where year=‘2010’order by sfzh asc”

    rs.Open sql,conn

    i=0

    Do While Not rs.EOF

     i=i+1

     a(i)=rs(“sfzh”)

     List1.additem(a(i))

     rs.MoveNext

    Loop

    ‘将参加2011年下半年考试的考生的身份证号码按升序存放在b数组中

    sql=“select * from kaoshengInfo where year=‘2011’order by sfzh asc”

    rs.Open sql,conn

    i=0

    Do While Not rs.EOF

     i=i+1

     b(i)=rs(“sfzh”)

     List2.additem(b(i))

     rs.MoveNext

    Loop

    rs.Close

    End Sub

    Private Sub Command1_Click ()

    Dim bot As Integer, top As Integer, m As Integer

    Dim i As Integer, ans As Integer

    ans=0

      For i=1 To 2000

        bot=1

        

       Do While  bot <=top

         m=Fix ( ( bot+top ) / 2 )

         If a ( m )=b ( i ) Then

          List3.AddItem  a ( m )

           

          Exit Do

         ElseIf  Then

          top=m-1

         Else

          bot=m+1

         End If

       Loop

     Next i

     List3.AddItem“总计”+str(ans)+“人次”

    End Sub

  2. (2) 分析上述代码,在数据库中用于存放考试信息的数据表名称是
编程解决问题的一般过程包括(  )。
A . 分析问题、设计算法、编写程序、调试运行 B . 提出问题、编写程序、运行程序、得到答案 C . 设计算法、编写程序、调试程序、得到答案 D . 提出问题、设计算法、编写程序、得到答案
关于算法的描述,下列选项中正确的是(    )
A . 算法本身就是一种程序设计语言 B . 算法必须有输入 C . 算法的步骤可以是无穷的 D . 算法的每一步骤必须有确切的含义
算法中执行的任何计算步骤都可以被分解为基本的可执行的操作步骤。
下列关于算法特征的叙述,正确的是(    )
A . 算法所包含的步骤可以是无穷的 B . 算法每一步骤必须确切地定义 C . 一个算法可以没有输出 D . 算法只能用Visual Basic来实现
有关算法描述,不正确的选项是(   )
A . 算法是解决问题的步骤集合 B . 算法就是解题的算式 C . 解题的步骤是有限的 D . 算法是可以被描述和实现的
一个十进制整数的二进制表示中,如果数字“1”的个数多于数字“0”的个数,则称该整数为A类数。如十进制整数26的二进制表示为11010,26是一个A类数。下列VB程序的功能是:统计前1000个自然数中A类数的个数,并在文本框中输出。请在划线处填入合适代码。

Private Sub Command1_Click()

    Dim i As Integer, n As Integer

    Dim s As Integer, t As Integer, k As Integer

    s = 0

    For i = 1 To 1000

        n = i

        t = 0

        k = 0

        Do While n > 0

            If n Mod 2 = 1 Then t = t + 1 Else k = k + 1

           

        Loop

        If Then s = s + 1

    Next i

    Text1.Text = Str(s)

End Sub

现有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

  1. (1) ①处应改为
  2. (2) ②处应改为
下面关于算法的描述,不正确的是(   )。
A . 有穷性:算法必须在有限步之内结束 B . 确定性:算法的每一步必须有确切的含义 C . 输入:算法必须至少有一个输入 D . 输出:算法必须至少有一个输出
在VB中,下列程序段执行后,变量a,b,c的值分别是(   )

a=1: b=1:c=1

do while a+b+c<=10

    a=a+1

    b=b*2

    c=b/2

loop

A . 2,2,1 B . 3,4,2 C . 4,8,4 D . 4,4,2
学校开展“奇妙的数字”研究性学习活动。张轩小组4人决定把课题定为《探秘水仙花数》。
  1. (1) 张轩使用百度搜索引擎搜索到“水仙花数”是这样定义的: “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153 = 13+53+33 , 那么这个数就是一个“水仙花数”。百度属于搜索引擎(全文,分类)
  2. (2) 为了求解100-999这些数字中,哪些数字是“水仙花数”?张轩小组进行了算法设计,并使用python编写了一段程序来求解所有的“水仙花数”,程序和运行结果下图:

    k是可以重新赋值的,k是变量还是常量?

    程序中①处有空缺,请补充完整①处的代码。

    程序中逐一验证了100到999之间所有的三位数是否符合“水仙花数”的定义条件,这种算法叫做(解析法,枚举法,递归法,二分法)。

  3. (3) 在研究成果展示环节,张轩小组可以使用什么软件制作《探秘水仙花数》的研究成果报告?
下列适合使用枚举算法解决的是(   )。
A . 判断2021年是否为闰年 B . 计算两个电阻的并联值 C . 计算本次数学考试班级平均分 D . 找出100以内所有的素数
    我国古代数学家刘徽发现“割圆术”是求圈周率的一种算法。即当圆内接正多边形的边

数无限增加时,其面积可无限逼近圆面积,它的边长之和逐渐過近圆周。根据“圆周率即圆周长与该圆直径的比率”,即“圆周长/圆直径=圆周率”,当正多边形边数无限大时,圓周率的近似值也更加精确。

    刘徽用这种方式首先从圆内接正六边形开始割國,算到正192边形时,得到π的近似值为3.14,又算到正3072边形时,得到π的近似值为3.1416。南北朝数学家祖冲之继承并发展了刘徽的“割圆术”,得到π的近似值为3.1415926<π<3.1415927。据此完成小题。

  1. (1) “192边形”、“3.14”、“3072边形”、“3.1415926”、“3.1415927”是(     )
    A . 数据 B . 信息 C . 知识 D . 智慧
  2. (2) “192”在计算机中以“11000000”的形式存储、加工,这体现了数据的(    )
    A . 多样性与感知性特征 B . 语义性特征 C . 分散性特征 D . 二进制特征
  3. (3) 南北朝数学家祖冲之继承并发展了刘徽的“割圆术”,这体现出信息具有(    )
    A . 传递性 B . 依附性 C . 二义性 D . 真伪性
  4. (4) “圆周长/圆直径=圆周率”,是关于圆周率的(    )
    A . 数据 B . 信息 C . 知识 D . 智慧
  5. (5) “割圆术”的发现,体现了知识发现的路径是①做实验②获取观察数据③推理建立数学模型④实验验证模型⑤形成知识⑥分析处理数据。正确的排序是(    )
    A . ①②③④⑤⑥ B . ①②⑥③④⑤ C . ①②⑤③④⑥ D . ①②④③⑤⑥
  6. (6) 刘徽和祖冲之分别运用“割圆术”,计算出圆周率的近似值,这是运用知识原理与法则解决现实世界的问题,实现了(    )
    A . 从数据到知识的转化 B . 从数据到信息的转化 C . 从信息到知识的转化 D . 从知识到智慧的转化
  7. (7) 关于数据、信息和知识相互关系的理解,不正确的是(    )
    A . 数据是原始事物现象的符号记录 B . 信息等同于知识 C . 信息是经过加工处理的、具有意义的数据 D . 知识是对信息进行系统化地提炼、研究和分析的结果
  8. (8) 通过百度、知乎等获得圆周率的相关信息。下列信息来源中可信度最低的是(    )
    A . 新闻联播 B . 光明日报 C . 百度文库 D . 朋友圈
  9. (9) “割圆术”是求圆周率的一种算法。以下关于算法的描述,正确的是(    )
    A . 算法就是约定在算术运算中各运算符的优先顺序 B . 算法必须使用程序设计语言进行描述 C . 算法是对特定问题求解步骤或方法的描述 D . 算法的步骤不需要确切的定义,合适就行
下列问题适合用枚举法求解的是(    )
A . 一元二次方程求解 B . 一个篮球从10米处做自由落体运动,求落地时的速度 C . 求一个圆柱体的表面积和体积 D . 求解百钱买百鸡问题
利用枚举算法解决问题时,确定枚举范围可使用下列语句中的(    )。
A . elif B . if C . import D . while
下列哪项不是算法的特征(    )。
A . 有穷性 B . 不确定性 C . 可行性 D . 输入、输出
最近更新