#p3jiqh007. Python3级考前强化练习7—算法基础

Python3级考前强化练习7—算法基础

一、选择题(共12题,每题10分,共120分)

1.关于算法描述的三种基本结构,下列哪项正确?( )

{{ select(1) }}

  • 顺序结构、选择结构、循环结构。
  • if选择结构、for循环、while循环。
  • 处理框、判断框、流程线。
  • 自然语言、流程图、程序设计语言。

2.以下关于算法以及算法的描述,错误的是?( )

{{ select(2) }}

  • 算法必须要在有限的步骤内完成
  • 算法每个步骤的含义必须是确切的
  • 算法必须有输入,但可以没有输出
  • 算法可以没有输入,但必须要有输出

3.“韩信点兵”是一个古老的数学问题,可以应用中国剩余定理进行求解。以下是使用计算机解决“韩信点兵”问题的几个步骤:

①编写Python程序,用计算机进行处理。
②设计“韩信点兵”求解算法。
③验证算法的功能和性能。
④分析问题,确定解题任务。

使用计算机解决“韩信点兵”问题,正确的步骤是下列哪一项?( )

{{ select(3) }}

  • ②④①③
  • ④①②③
  • ④②③①
  • ④②①③

4.用冒泡排序算法对6个数进行排序,进行比较的次数为?( )

{{ select(4) }}

  • 4
  • 5
  • 10
  • 15

5.有如下列表l=[10,1,9,6,3,4],采用冒泡排序进行升序排序,请问第一趟排序之后的结果是?( )

{{ select(5) }}

  • [1,3,9,6,10,4]
  • [1,9,6,3,4,10]
  • [1,6,3,4,9,10]
  • [1,3,4,6,9,10]

6.现在一组初始记录无序的数据'8,9,5,2,1',使用冒泡算法,按从小到大的顺序排列,则第三轮排序的结果为?( )

{{ select(6) }}

  • [8,5,2,1,9]
  • [2,1,5,8,9]
  • [5,2,1,8,9]
  • [1,2,8,9,5]

7.有如下列表a=[3,5,35,74,1,28,7],采用选择排序算法进行升序排序,请问第三轮排序之后的结果是?( )

{{ select(7) }}

  • [1,3,5,35,74,28,7]
  • [1,3,5,7,28,35,74]
  • [1,3,5,74,35,28,7]
  • [1,3,5,7,35,74,28]

8.猜一个2022以内的随机数,用计算机解决该问题,比较合适的算法?( )

{{ select(8) }}

  • 二分查找算法
  • 解析算法
  • 枚举算法
  • 冒泡排序算法

9.小明使用Python编程模拟绘制了物体在自由落体运动过程中产生的抛物线轨迹。小明设计的这一算法属于下列哪一种?( )

{{ select(9) }}

  • 枚举算法
  • 解析算法
  • 排序算法
  • 对分查找算法

10.求既是3的倍数且各个位上的数的和是8的倍数的三位数,适合的算法是?( )

{{ select(10) }}

  • 解析算法
  • 枚举算法
  • 排序算法
  • 对分查找法

11.关于查找的说法,下列说法正确的是?( )

{{ select(11) }}

  • 顺序查找属于无序查找
  • 对分查找一定能找到数据
  • 对分查找是一种低效的查找方法
  • 顺序查找次数一定比对分查找次数多

12.小明想对列表arr = [5, 33, 21, 67, 39, 73, 7, 43 ]中的数值进行升序排序,于是他编写了“选择排序”程序,在调试程序的过程,他故意将循环的次数改成了固定值,如下图所示。

请问,现在这个程序执行之后print(arr)打印出的结果应该是?( )

{{ select(12) }}

  • [5, 7, 21, 33, 39, 43, 67, 73]
  • [5, 7, 21, 33, 39, 73, 43, 67]
  • [5, 7, 21, 67, 39, 73, 33, 43]
  • [5, 7, 21, 33, 39, 73, 67, 43]