算法及程序语言基础 知识点题库

在Visual Basic中表达式“6789\100”的值是(   )
A . 67.8 B . 67 C . 67.89 D . 68
有如下流程图结构,该流程图中输出的前2个值依次分别是

某算法的部分流程图如图所示,执行这部分流程后,下列分析正确的是(  )

A . 判断框中“i<=12”改成“i<=11”,计算结果会出错 B . 执行这部分流程后,i的值是14 C . "f=-1*1"r共被执行5次 D . 输出结果为表达式1-1/3+1/5-1/7+1/9-1/11的值
小明设计了如下一个查找数据的程序:在一组升序的数列当中,查找不小于k的最小数的位置,如果该值存在,则返回其第一次出现的位置,如果不存在则返回0。程序界面如下:

  1. (1) 若在Text1中输入“8”,Tex2、Text3输出的分别为
  2. (2) 请在划线处填入合适的代码。

    Dim a(1 To 10)As Integer

    Function find(L As Integer,R As Integer,key As Integer)

    As Integer

    If L>R Then

      find = 0:Exit Function

    Elself a(L)>= key Then

      find = L:Exit Function

    Else

        ① 

      If a(m)<key Then

        find = find(M + 1,R,key)

      Elself  ②  Then

        find = find(L,M - 1,key)

      Else

        find = M

      End If

    End If

    End Function

    Private Sub Command1_Click()

    Dim k As Integer

    Dim p As Integer

    k = Val(Text1.Text)

      ③ 

    Text2.Text = a(p)

    Text3.Text = Str(p)

    If p = 0 Then

      Text2.Text = "无"

    End If

    End Sub

    Private Sub Form_Load()

    a(1)= 3:a(2)= 3:a(3)= 3:a(4)= 4:a(5)= 7:a(6)

    =7:a(7)= 10:a(8)= 13:a(9)= 19:a(10)= 21

    For i= 1 To 10

      Listl.AddItem Str(a(i))

    Next i

    End Sub

现要编写一个程序,对每个班级的同学生成考试座位号,规则如下:先按成绩从高到低排序,如果成绩相同,学号在前的学生座位号在前,最后输出每个同学的座位号。小王和小李采用不同的方法实现了上述算法。请仔细比较两位同学的代码的不同之处,并完成相关代码的填空。

Dim xm (1 To n) As String,xh(1 To n) As String

Dim cj(1 to n)As Integer

Private Sub form_load()

“读取相关数据表,把姓名、学号、成绩分别存储到数组xm、xh、cj中,并在List1中显示,代码略

End Sub

Private Sub Com1__Click()    ‘小王编写的代码部分

Dim wz (1 To n) As Integer

  For i = 1 To n-1

    wz(i) = i

    For j = n To i+1 Step-1

      IfThen

        t = cj(j):cj(j) = cj(j-1):cj(j-1) = t

        t = xh(j):xh(j) = xh(j-1):xh(j-1) = t

      End If

    Next j

  Next i

 

    For i = 1 To n-1

      For j = n To i+1 Step-1

        IfThen

          t = cj(j):cj(j) = cj(j-1):cj(j-1) = t

          t = xh(j):xh(j) = xh(j-1):xh(j-1) = t

          t = wz(j):wz(j) = wz(j-1):wz(j-1) = t

        End If

      Next j

    Next i

  List2.Clear

    List2.AddItem“学号姓名成绩座位号”

    For i = 1 To n

      List2.AddItemxh(i)+“”+xm(i)+“”+Str(cj(i))+“”+Str(wz(i))

    Next i

  End Sub

Private Sub Com2_Click()      ‘小李编写的代码部分

Dim wz(1 To n) As Integer,t(1 To n) As Integer

  For i = 1 To n

    t(i)=i

  Next i

  For i = 1 To n

    For j = n To i+1 Step-1

      IfThen

        temp=t(j):t(j)=t(j-1):t(j-1)=temp

      End If

    Next j

   

  Next i

List2.Clear

List2.AddItem“学号 姓名 成绩 座位号”

  For i = 1 To n

    List2.AddItemxh(i)+“”+xm(i)+“”+Str(cj(i))+“”+Str(wz(i))

  Next i

End Sub

顺序结构是一种的基本结构,按照的先后顺序依次执行程序语句。
在数组d中使用下图所示的算法查找Key,对于该算法以下表述正确的是(    )。

A . 该算法的作用是从头至尾在数组中找同输入key相同的一个数,并输出该数的值 B . 该算法的作用是在数组中找到所有同输入的key相同的数,并输出它们的个数 C . 当key为15时,输出k的值为2 D . 无论输入数据是否在数组中,循环结束i的值均等于6
关于计算机的指令、程序和软件,以下表述错误的是(   )。
A . 为解决某问题组织起来的有序的指令集合称为程序 B . 计算机软件包括程序和与该程序相关的文档资料 C . 计算机执行一步运算或判断的命令称为指令 D . 计算机指令包含程序,程序包含软件
有如下VB程序段:

Text1.Text = "0"

For i = 2 To 9

  k = 0

  For j = 1 To i -1

    If a(j) < a(i) Then k = k +1

  Next j

  Text1.Text = Text1.Text + "," + Str(k)

Next i

已知数组a的数据序列为2,10,3,4,5,7,0,9,12,则该程序段运行后,文本框Text1中显示的内容是 (     )

A .  1,1,2,3,4,0,6,8 B . 0,1,1,2,3,4,0,6,8 C . 1,7,2,3,4,5,0,6,8 D . 2,9,3,4,5,7,1,8,10
关于伪代码,以下说法正确的是(   )
A . 伪代码是通过图形符号描述算法的 B . 伪代码抽象,书写不方便 C . 伪代码易于转化为计算机程序设计语言 D . 伪代码格式紧凑,但不易于理解
运行下列 Python程序,结果正确是(     )

a=32

b=14

c=a//b

print(c)

A . 2.2 B . 2 C . “2” D . 4
已知s的初值为0,下列程序段执行后,s的值为(  )

s=0

For i=1 To 2

    For j=6 To 1 Step-2.

      s=s+1

    Nextj

Next i

A . 12 B . 8 C . 6 D . 4
找数对。已知一数组a中有9个元素,在文本框Text1中输入一个正整数key,单击“找数对”Command1按钮,则在数组a中搜索是否有一对数的和等于key,若有,在标签Label2中输出最先找到的两个数,若无则输出“没有找出数对”。运行界面如图所示:

  1. (1) 根据程序,若文本框Text1中输入内容为17,则标签Label2中输出的内容是
  2. (2) 请划线处填入合适的代码。

    Const n = 9

    Dim a(1 To n) As Integer,i As Integer, j As Integer

    Private Sub Form_Load()

      Dim s As String, k As Integer

      a(1) = 9: a(2) = 13: a(3) = 11: a(4) = 3: a(5) = 20

      a(6) = 6: a(7) = 18: a(8) = 15: a(9) = 8

      For i = n To 2 Step -1

        k = i

        For j =  

          If a(j) < a(k) Then t = a(j): a(j) = a(k): a(k) = t

        Next j

                '③改错

      Next i

      Label1.Caption = s End Sub

    Private Sub Command1_Click()

    Dim L As Integer, R As Integer, m As Integer, key As Integer

      key = Val(Text1.Text)

      For i = 1 To n - 1

        L = 1: R = n

        Do While L <= R

          m = (L + R) \ 2

          If a(i) + a(m) = key Then

            Label2.Caption = Str(a(i)) & Str(a(m))

            Exit For

          ElseIf   Then

            L = m + 1

          Else

            R = m - 1

          End If

        Loop

      Next i

      If L > R Then Label2.Caption = "没有找到数对"

    End Sub

  3. (3) 请改正加框处语句的错误。
下列VB程序段的功能为:生成n个不重复的随机整数,保存在数组a中,并升序排序。

Const n = 6

Dim a(1 To n) As Integer, f(1 To 10) As Boolean

Dim tmp As Integer, i As Integer, j As Integer, t As Integer

‘f数组各元素的初值置为False,代码略

For i = 1 To   ⑴ 

    t = Int(1 + Rnd * 10)

    If Not f(t) Then

        a(i) = t : f(t) = True

        For j =   ⑵ 

            If a(j) < a(j - 1) Then

                tmp = a(j): a(j) = a(j - 1): a(j - 1) = tmp

            End If

        Next j

    Else

      ⑶ 

    End If

Next i

上述程序段3个方框处的表达式分别为(   )

A . (1)n - 1 (2)2 to i(3)i = i - 1 B . (1)n(2)i to 2 Step -1(3)i = i - 1 C . (1)n - 1(2)2 to i(3)t = Int(1 + Rnd * 10) D . (1)n(2)i to 2 Step -1(3)t = Int(1 + Rnd * 10)
某种编码为4位二进制码,前2位表示方向,后2位表示距离。编写一个程序,将编码翻译成方向和距离。距离值为每组编码后两位二进制码转换为十进制数的值。

例如,输入“0110”,前两位的01代表方向为“西”,后两位的10转化为十进制,代表距离为2。请回答以下问题。

 

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

    a=input("请输入四位二进制码")

               #获取方向码

    fx_dict={"00":"东","01":"西","10":"南","11":"北"}

    s=+int(a[3])         #根据后两位计算距离

    print("方向为:",fx_dict[fx])

    print("距离为:",s)

  2. (2) 分析上述代码后可知,输入“0011”,则方向为,距离为
在Python语言中,下列可作为程序源文件后缀名的是(   )。
A . pdf B . docx C . png D . Py
  Python 表达式5%2的值为
死循环违背了算法的(   )
A . 确定性特征 B . 有穷性特征 C . 可行性特征 D . 输入输出特征
目前我国18位身份证号码的倒数第二位代表性别,单数为男性,双数为女性。若字符串变量s代表身份证号码,则下面判断语句表达正确的是(     )

A

B

C

D

if (s[16])%2==0:

print(“女性”)

else:

    print(“男性”)

If int(s[16])%2==0:

print(“女性”)

else:

    print(“男性”)

if int(s[16])//2==0:

print(“女性”)

else:

    print(“男性”)

if (s[16])//2==0:

print(“女性”)

else:

    print(“男性”)

A . A B . B C . C D . D
在Python中,运行以下程序得到的结果是(    )

m=19

if m>=30 or m<20:

print(m)

A . 20 B . 19 C . 30 D . 0
最近更新