4.1 程序设计语言的基础知识 知识点题库

【加试题】为分析数组a中各元素依次变化的情况,进行如下定义:

●变化段:数组中相邻两个元素构成一个变化段。变化段有上升段(a(i)>a(i-1))、下降段(a(i)<a(i-1))和持平段(a(i)=a(i-1))。数组a中的n个元素可构成n-1个依次排列的变化段。

●波峰:从上升段转到下降段形成一个波峰。波峰的起点是峰顶前所有连续上升段中的第1个,终点是峰顶后所有连续下降段中的最后1个。

●对称波峰:上升段与下降段个数相同的波峰称为对称波峰。

  下图为一组数据的变化段及波峰示意图。

现要求统计数组a各元素依次变化过程中“对称波峰”的个数。小李依据上述描述设计了如下VB程序。请回答下列问题:

  1. (1) 数组元素“1,4,3,3,2,6,8,7,9,3,4,7,9,6,3,1”依次变化过程中“对称波峰”的个数为

  2. (2) 请在画线处填入合适的代码。

    Const n=20

    Dim a(1 To n)As Integer

    Private Sub FormLoad()

        ‘读取数据,并存储到数组a中。代码略

    End Sub

    Private Sub Command1_Click()

        Dim flag As Integer   ‘存储变化段的状态:1表示升;-1表示降;0表示平

        Dim count As Integer    ‘存储对称波峰的个数

        Dim steps As Integer

        Dim i As Integer

        flag=0:steps=0:count=0

        For i=    ①   To n

          If a(i)>a(i-1)Then

            If IsSymPeak(flag,steps)Then count count+1

          If flag=0 Or flag=-1 Then

        ②  

          Else

             steps=steps+1

          End If

          flag=1

        EIself a(i)=a(i-1)Then

          If IsSymPeak(flag,steps)Then count=count+1

          steps=0

          flag=0

        Else

          steps=steps-1

          flag=-1

        End If

      Next i

      If IsSymPeak(flag,steps)Then count=count+1

      Text1.Text=Str(count)

    End Sub

    Function IsSymPeak(flag As Integer,steps As Integer)As Boolean

        If    ③    Then

           IsSymPeak=True

        Else

           IsSymPeak=False

        End If

    End Function

     ② ③ 

有VB程序段如下:

s = "2019appreciate": sum = 0

For i = 1 To Len(s)

  ch = Mid(s, i, 1)

  If ch >= "a" And ch <= "z" Then

    m = Asc(ch) - Asc("a") + 1

    a(m) = a(m) + 1

  End If

 Next i

 For i = 1 To 10

  If a(i) > 0 Then sum = sum + 1

 Next i

数组a各元素的初始值都为0,执行该程序段后,变量sum的值为(  )

A . 10 B . 7 C . 4 D . 3
有如下VB程序段:

For i= 1 To 10

    b(i)=0

Next i

For i= 1 To 5

    For j= 1 To 10

        If b(i) <a(j) Then

          b(i)=a(j)

          t=j

        End If

    Next j

    a(t)=0

    List 1.Additem Str(b(i) )

Next i

其中数组元素a(1)到a(10)的值依次为“25,42,53,66,77,83,98,14,38,99”,执行程序后,在列表框List 1中依次输出的数据是(  )

A . 25 42 53 66 77 B . 14 25 38 42 53 C . 99 98 83 77 66 D . 83 98 14 38 99
下列程序,当单击窗体时s的值是(  )。

Private Sub Form_Click()

 s = 11 \ 3 + 11 Mod 3

 Print s

End Sub

A . 3 B . 4 C . 5 D . 6
小明基于插入排序思想设计了一个改进的排序算法。输入n个两位正整数到数组a,判断数组a中每个元素的奇偶性,若为奇数则将其放前插入适当位置,若为偶数则将其放后插入适当位置。排序完后数组a中所有奇数在前升序排序,偶数在后降序排序。程序代码如下:

Dim a(1 To 100) As Integer, n As Integer

Function moving( start As Integer, finish As Integer, st As Integer)

'将元素 a(finish)插入到元素 a(start)和元素 a(start+st)之间

Dim i As Integer, k As Integer k = a(finish)

For i = finish - st To start Step -st a(i + st) = a(i)

Next i a(start) = k

End Function

Private Sub Command1_Click()

Dim head As Integer, end1 As Integer, i As Integer, ans As String

' 将待排序的数存储在数组 a 的 a(1)至 a(n)中,并输入元素个数 n,代码略

head = 1: end1 = n + 1

Do While head < end1

If    ①    Then

For i = 1 To head - 1

If a(i) > a(head) Then Exit For

Next i

Call moving(i, head, 1)

head =     ②    

Else

For i = end1 To n

If a(i) < a(head) Then Exit For

Next i

Call moving(    ③    )

End1 = end1 - 1

End If

Loop

For i = 1 To n

ans = ans + Str(a(i))

Next i

Text2.Text = ans End Sub 请回答下列问题:

  1. (1) 若输入 n=5,元素 a(1)至 a(5)的初值为:11,12,13,14,15,运行程序后,输出的结果为
  2. (2) 实现上述功能的 VB 程序如下,请在划线处填入合适的代码。

     ② ③ 

  3. (3) 如果输入的 n 个数中有非正整数(数保证能在 Integer 型存储),运行程序后的输出(选填: 能 / 不能)保证仍是奇数在前升序排序,偶数在后降序排序。
某对分查找算法的VB程序段如下:

Key = Int(Rnd * 30) * 2 + 41

s = 0: i = 1: j = 10

Do While i <= j

m = (i + j) \ 2

If Key > a(m) Then

i = m + 1: s = 3 * s + 2

Else

j = m - 1: s = 3 * s

End If

Loop

Text1.Text = s

数组a(1)到a(10)的值依次为“2,13,24,31,35,44,45,47,61,101”,执行该程序段后,s的值不可能为(  )

A . 8 B . 18 C . 60 D . 78
a=[5,2,8,7,3]  #创建列表,各元素用逗号隔开,放在方括号内

a[0]=8  #修改列表第一个元素的值为8,注意列表的索引号从0开始

del a[1 ]    #删除列表第二个元素

a.append(9)  #在列表尾部添加一个数据元素9

print (a)  #打印列表

运行结果:

阅读如下一段程序,回答以下问题。

h = float (input(“请输入身高(单位:米);”))

w = float (input(“请输入体重值(单位:千克):”))

bmi = w/(h*h)

print(“BMI值为:”,中bmi)

  1. (1) 用来接收键盘输入的函数是        
    A . float B . input C . bmi D . print
  2. (2) 用于在屏幕上输出一个或者多个输出项的值的函数是        
    A . float B . input C . bmi D . print
  3. (3) 将数据类型进行转换的函数是        
    A . float B . input C . bmi D . print
某算法流程图如下图所示,执行该算法,下列说法正确的是(  )

A . 变量i的值是21 B . 语句i=i+1执行了5次 C . 变量s的值为10 D . 语句i<=20被执行了5次
关于Python的内存管理,下列说法错误的是(     )
A . 变量不必事先声明 B . 变量无需先创建和赋值就可直接使用  C . 变量无须制定类型 D . 可以使用del释放资源
下列Python表达式的值为5的是(    )
A . int('10',5) B . max(5,10,15) C . len([1,5]) D . ord('5)
有如下Python程序段:

import jieba

str="热烈庆祝建党100周年"

fc=jieba.lcut(str)

print(fc)

for i in fc[::1]:

    print(i)

已知分词之后的文本输出fc为:['热烈庆祝', '建党', '100', '周年'],则程序运行结束后的结果是(        )

A . 周年100建党热烈庆祝 B . 热烈庆祝

建党

100

周年

C . 热烈庆祝建党100周年 D . 年周001党建祝庆烈热
已知变量a=5,a - =2,运算后变量a的值为(    )
A . 0 B . 1 C . 3 D . 7
下列不是常量的是(   )
A . 0.25 B . abc C . False D . “abb”
如下程序段执行后,变量a,b的值分别是(    )。

a=10

b=20

c=a+b

a=c-a

b=c-b

A . 10,20 B . 10,30 C . 20,10 D . 30,0
回文素数:

⑴素数:指整数在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。例如11,它只能被1和11整数,所以11是素数。

⑵回文数:正读和反读都是一样的数字,例如12321,它的正反都是一样,是回文数字。

编写Python程序,实现如下功能,找出100~n中的所有的回文素数(n为>=100的正整数)。

程序代码如下,请回答下面问题:

  1. (1) 如果n=1000在最后添加print(151 in L),该语句的输出的结果是
  2. (2) 请在横线处填入合适的代码。

    import math

    def prime(n):        # 判断 n 是否是素数

      i=2

      k=int(math.sqrt(n))

      while i<=k:

        if :

          break

        i=i+1

      return i>k

    def rev(n):# 倒转数字

      t=0

      while :

        t=t*10+n%10

        n=n//10

      return t

    n=int(input('请输入整数 n:'))

    L=[]

    for i in range(100,n+1):

      if :

        if prime(i)==True:

          L=L+[i]

    print('100 到 n 中的回文素数:',L)

以下不符合VB语法的常量是(    )
A . 20-10 B . ”电脑” C . true D . 2.6E+01
下列可以作为Visual Basic的变量名的是(   )
A . FileName B . a(A+b) C . 23D D . Print
如下Python程序段

x = 5 < 3

print( x)

程序的运行后,显示的结果是(       )

A . False B . True C . 0 D . -1
下列程序的输出结果是(  )

x=54

y=5

z=x%y

print(“z=”,z)

A . 10 B . z=10 C . 4 D . z=4
最近更新