算法与程序设计 知识点题库

【加试题】某Visual Basic程序段如下:

   s = ""

   For i = 1 To 5

      a(i) = 0

   Next i

   For i = 2 To 5

      For j = i To 5

         If j Mod i = 0 Then a(j) = 1 - a(j)

      Next j

   Next i

   For i = 1 To 5

      If a(i) = 1 Then s = s + Str(i)

   Next i

   Text1.Text = s

运行该程序段后,Text1中显示的内容为(   )

A . 14 B . 235 C . 25 D . 234
关系表达式的值为(   )
A . 逻辑值 B . 字符串 C . 数值 D . 逻辑表达式
若变量a,b的值分别是3、6,则a+b/a-b的值是(   )
A . 2 B . -3 C . 24 D . -1
【加试题】某排序算法思想如下:每一趟将一个待排序的记录,按其关键字的大小插入到已经排好序的一组记录的适当位置上,直到所有待排序记录全部插入为止。例如(9,3,1,4)升序排序;第一步 3 插入到有序记录(9),得到(3,9);第二步 1 插入到有序记录(3,9),得到(1,3,9);第三步 4 插入到有序记录(1,3,9),得到最终有序记录为“1,3,4,9”。

为此,编写了一个 VB 程序,功能如下:运行程序,窗体加载时随机产生 10 个随机整数,并在列表框 List1 中依次显示排序前数据,单击“排序”按钮 Command1,在列表框 List2 中

显示经过上述排序算法后的数据,运行结果如图 b 所示。实现上述功能的 VB 代码如下,但加框处代码有错,请改正。

Const n = 10

Dim a(1 To n) As Integer        '生成 n 个随机数,存储在 a 数组,代码略

Private Sub Command1_Click()

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

For i = 2 To n

t = a(i)  :   j = i - 1

Do  While  t < a(j)

 a(j + 1) = a(j) j = j – 1

If     Then Exit Do  ①

Loop

       ②

Next i

For i = 1 To n

 List2.AddItem Str(a(i))

Next i

End Sub

 ②

【加试题】有如下程序段:

  Dim a(1 To 10) As Integer

  Dim i As Integer, j As Integer, m As Integer

  Dim key As Integer

  i = 1: j = 10: key = Val(Text1.Text)

  Do While i <= j

    m = (i + j) \ 2

    If key < a(m) Then

      j = m - 1

    ElseIf key > a(m) Then

      i = m + 1

    Else

      Do While m > 1

         If a(m - 1) = key Then

          m = m - 1

         Else

          Exit Do

         End If

      Loop

      Exit Do

    End If

  Loop

数组中a(1)到a(10)依次为“1,1,2,3,3,3,3,4,4,4”,若在文本框Text1中输入值3,经上述程序段执行后变量m的值为(  )

A . 7 B . 6 C . 5 D . 4
有如下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的内容为“Happy2017”。执行程序后,变量n的值为(  )

A . 1 B . 2 C . 4 D . 9
“字符串合并”程序实现功能:在文本框Text1中输入字符串1,在文本框Text2中输入字符串2,单击“合并”按钮Command1,按如下规则依次从中取出各字符进行合并,合并后的结果显示在标签对象Label3中。

合并规则如下:

⑴当字符串1的长度大于字符串2的长度时,将字符串2中的各个字符从左侧依次插入到字符串1中的各字符后方。例如字符串1为“abcdef”,字符串2为“123”时,合并后的字符串为“a1b2c3def”

⑵当字符串2的长度大于等于字符串1的长度时,将字符串1中的各个字符从右侧依次插入到字符串2中的各个字符后方。例如字符串1为“abcd”,字符串2为“12345”时,合并后的字符串为“12d3c4b5a”。

程序运行界面如图所示。

  1. (1) 要使程序运行时,窗体Form1标题显示“字符串合并”,可在Form_Load事件过程中添加语句(单选,填字母:A .Fom1. Caption=“字符串合并”/B .Label3. Caption=“字符串合并”C .Text1. Text=“字符串合并”)。
  2. (2) 实现上述功能的VB程序如下,请在画线处填入合适的代码。

    Private Sub Commandl_Click ()

    Dim sl As String, s2 As String, ans As String

    Dim n As Integer, m As Integer, i As Integer

        s1=Text1. Text

        s2=Text2. Text

        m=Len (s1)

        n=Len (s2)

        If m>n Then

            For i=1 To n

                ans=ans+Mid (sl, i, 1)+Mid (s2, i, 1)

            Next i

            ans=ans +Mid (sl, i, m-n)

        Else

            For i=1 To m

                ans=   ①   +Mid (s1, i, 1)+ans

            Nest i

            ans=Mid (s2, 1, n-m)+ans

          ② 

        Label3. Caption=“合并为”+ans

    End Sub

     ② 

  3. (3) 若在文本框Text1中输入“Word”,在文本框2中输入“Min”,单击“合并”按钮后,标签Label3中显示的内容是
在VB语言中,字符串运算符“+”和“&”的作用是把两个或多个字符串连接成一个字符串,则表达式"20" + "13" & "20+13"的运算结果是(   )
A . "3333" B . "201333" C . "201320+13" D . "332013"
表达式Abs(-5)+Len("CHINA")的值是(  )
A . "5CHINA" B . "-5CHINA" C . 10 D . 0
在Python语言中,下面哪一个是赋值符号(     )?
A . + B . = C . >>> D . #
在一千多年前的《孙子算经》中,有这样一道算术题:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?” 。即一个数除以3余2,除以5余3,除以7余2,求这个数。阅读下列程序代码。

i=0

while (①):

    i=i+1

print(i)

在①处填写表达式,下列选择正桷的是(   )

A . i%3!=2 and i%5!=3 and i%7!=2 B . i%3!=2 or i%5!=3 or i%7!=2 C . i%3==2 or i%5==3 or i%7==2 D . 以上都不对
下列与数学表达式 对应的python表达式,正确的是( )。
A . ( - b + math. sqrt (b * b – 4 * a * c)) /a * a B . - b + math. sqrt (b * b – 4 * a * c) /2*a C . ( -b + math. sqrt (b * 2 – 4 * a * c)) /(2 * a) D . ( -b + math. sqrt ( b * b – 4 * a * c)) / (2 * a)
查看下面的程序代码,在文本框Text1 中输入的值为100 时,该程序的作用为(  )

Private Sub Command1_Click()

    Dim sum, k, j, n As Integer

    n = Val(Text1.Text)

    sum = 0: k = 1

    Do While k <= n

        j = 1

        Do While j <= k

            sum = sum + 1: j = j + 1

        Loop

        k = k * 3

    Loop

    Text2.Text = CStr(sum)

End Sub

A . 1+2+3+…+100 B . 20+21+22+23+…2100 C . (11111111)2 转十进制 D . (11111)3 转十进制
a(1)~a(12)是升序排列的数组元素,但是其中有重复数据,经过程序处理后,在文本框Text1中显示去重后数据,实现该功能的VB程序段如下:

n =1

For i=2 To 12

    If    ⑴    Then

        n=n+1

           ⑵  

    End If

Next i

S=””

For i=1 To n

    s=s+Str(a(i))

Next i

Text1.Text = s

上述程序中划线处可选语句为:①a(i)<>a(n)  ②a(i)=a(n)  ③a(n)=a(i)

则(1)、(2)处语句依次是(    )

A . ①、② B . ②、① C . ①、③ D . ②、③
流程图的符号中,平行四边形一般作为(     )。
A . 处理框 B . 输入输出框 C . 判断框 D . 起止框
有流程图结构如下,其算法结构属于(     )

A . 顺序结构 B . 选择结构 C . 循环结构 D . 重复结构
以下关于函数过程的叙述中,正确的是(    )
A . 函数过程形参的类型与函数返回值的类型没有关系 B . 在函数过程中,过程的返回值可以有多个 C . 当数组作为函数过程的参数时,既能以传值方式传递,也能以传址方式传递 D . 如果不指明函数过程参数的类型,则该参数没有数据类型
在VB集成开发环境中,发现没有显示“工具箱”窗口,应选择菜单的“工具箱”选项。
下列关于算法的描述,不正确的有:()
A . 广义地讲,“算法”指的是解决问题或完成任务的一系列步骤 B . 算法有多种不同的描述方式 C . 通过算法让计算机解决问题时,数据、运算及控制转移成为算法的要素 D . 算法的第一个执行步骤必须是数据输入
以下Python程序段的运行结果是(     )

flag= False

name =“C++”

if name ==“Python”:

flag =True

print(“Welcom”)

else:

print(name)

A . Welcome B . Python C . C++ D . True
最近更新