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

在Visual Basic中,下列循环程序段输出“*”的个数最小的是(   )
A . a = 5: b = 8  Do    Print "*"    a = a + 1  Loop While a < b B . a = 5: b = 8  Do    Print "*"    a = a + 1  Loop Until a < b C . a = 5: b = 8  Do Until a>b    Print "*"    b = b + 1  Loop   D . a = 5: b = 8  Do Until a>b    Print "*"    a = a + 1  Loop
有如下Visual Basic程序段:

Dim s As Double, x As Double, n As Integer, i As Integer

s=0:n=0

For i= 1 to 4

  n=n+1

  x=(n-1)/(n+1)

  s=s+x

Next i

该程序段计算的数学表达式是(   )

A . 1+1/3+2/4+3/5 B . 1+1/2+1/3+1/4 C . 1/3+2/4+3/5 D . 1/2+1/3+1/4
为使左、右框内的Visual Basic程序段能实现相同的功能:

右框内划线处的内容可以是(    )

A . s < 9 B . s <= 9 C . t < 9 D . t <= 9
在VB中,设整型变量x、y的值分别是3、6,则下列语句中,能实现在标签Label1中显示“s = 18”的语句是(  )
A . Label1.Caption = "s = x * y" B . Label1.Caption = "s = " + Str(x * y) C . Label1 = "s = " (x + y)^ 2 D . Label1.Caption = "s = " + Val(x * y)
某算法的部分流程图如图所示。执行这部分流程,则输出的sum的值是(   )

A . 2450 B . 2550 C . 5050 D . 4900
某算法的部分流程图如图所示,执行第4次循环后,a,b的值分别是(  )

A . 2,14 B . 3,14 C . 11,13 D . 13,14
任意一个大于或等于4的偶数,都可以用两个素数之和表示,这就是哥德巴赫猜想。如:4=2+2,6=3+3,8=3+5, 10=5+5,12=5+7,98=19+79。

编写一个验证哥德巴赫猜想的VB程序:程序运行时,在文本框Text1中输入一个大于或等于4的偶数,单击“验证”按钮Command1后,如果哥德巴赫猜想验证成功,则在文本框Text2中显示“Yes”,并在列表框List1中显示用两个素数表示该偶数的等式,否则显示“No”。程序运行效果如图所示。

实现上述功能的VB代码如下,但加框处代码有错,请改正。

Function judge(x As Integer)As Boolean

 ‘函数judge的功能是判断整数x是不是素数,若是素数则返回True,否则返回False

 Dim j As Integer

 judge=True

 j=2

 Do While j<=x-1 And judge=True

If x Mod j=0 Then

judge=False

Else

j=j+1

End If

 Loop

End Function

Private Sub Command1_Click()

 Dim n As Integer, p As Integer, q As Integer, flag As Boolean

 n=Val(Text1.Text)

 p=1

 flag=False

 Do While  And p<n    ‘

 p=p+1

      ‘

If judge(p)And judge(q)Then

Text2.Text=“Yes”

flag=True

List1.AddItem Str(n)+“=”+Str(p)+“+”+Str(q)

  End If

 Loop

 If flag=False Then

Text2.Text=“No”

End Sub

数组d中存放了一组数据如表所示,采用对分查找数组元素值86。第一次查找的数组元素是d[4],第二组查找的数组元素是(  )

d[1]

d[2]

d[3]

d[4]

d[5]

d[6]

d[7]

65

73

75

82

85

91

95

A . d[2] B . d[3] C . d[5] D . d[6]
为促进学生学习中互帮互助,每次考后章老师都会按成绩重新编排机房上课位置,编排要求如下:

①按分数从高到低排序。若分数相同,则按学号进行升序排序。

②以班级为单位,排出从1号开始的机房座位表。章老师编写了一个位置编排功能的VB程序,在文本框Text1中输入班级名称,单击“读数据库”按钮Command1后,从数据库读取数据并显示在列表框List1中;单击“编排”按钮Command2,在列表框List2中输出学号、姓名、成绩和位置信息。运行界面如下图所示。

实现以上功能的 VB 程序如下,请回答下列问题:

  1. (1) 分析程序,可知数据库的文件名为
  2. (2) 请在划线处填入合适的代码。

    Dim n As Integer

    Dim xh(1 To 40) As Integer, xm(1 To 40) As String, cj(1 To 40) As  Integer

    Private Sub Command1_Click()

    '本过程在文本框 Text1 中输入班级名称,从数据库中读取指定班级的学号、姓名和成绩的'数据分别存储在数组 xh,xm 和 cj 中

    Dim conn As New ADODB.Connection

    conn.ConnectionString = "provider=microsoft.ace.oledb.12.0;data source="

    + App.Path + "\js.accdb"

    conn.Open

    Dim rs As New ADODB.Recordset rs.ActiveConnection = conn

    rs.Open "select * from 技术"

    '本过程的其他语句略

    End Sub

    Private Sub Command2_Click()

      Dim wz(1 To 40) As Integer

      Dim i As Integer, j  As Integer

      List2.AddItem "学号" & " " & "姓名" & " " & "成绩" & " " & "位置"

    For i = 1 To n

            ①        

    Next i

    For i = 1 To n

    For j = 1 To n

    If       ②        Then wz(i) = wz(i) + 1

    End If

    Next j

    List2.AddItem adj(Str(xh(i))) + adj(xm(i)) + adj(Str(cj(i))) + adj(Str(wz(i)))

    Next i

    End Sub

    Function adj(c As String) As String    '固定输出5个字符长度

    Dim i As Integer

            ③       

    For i = 1 To 5  - Len(c)

    adj = adj + " "

    Next i

    End Function

     ② ③

一个正整数x,如果它的平方数的最后几位数字和这个数相等,则该数为同构数。例如:5的平方数是25,且5出现在25的右侧,那么5就是一个同构数。设计程序,输出1000-9999间的同构数x,并统计个数。
  1. (1) 本题适用的算法是和此算法的基本结构是(    )。
    A . 查找算法,循环中嵌套分支 B . 枚举算法,循环中嵌套分支 C . 查找算法,循环中嵌套循环 D . 枚举算法,循环中嵌套循环
  2. (2) 判断1000-9999范围内的整数x是同构数的条件是(     )。
    A . x=x mod 1000 B . x=x^2 mod 1000 C . x=x mod 10000 D . x=x^2 mod 10000
  3. (3) 编写程序,实现算法功能。
下列程序段执行后,a的值为(  )

For i=1To 9

    For j=i To 9

        a=i*j

        List1.AddItem i&"*"&j&"="&a

    Next j

Next i

A . 81 B . 45 C . 9 D . 1
下列能作为Visual Basic变量名的是(    )。
A . x-y B . a#1 C . 2day D . num_2
下列可以作为合法变量名的是:(  )
A . 15b B . a1 C . else D . For
下面Python代码运行后,a、b的值为(    )

a=23

b=int(a/10)

a= a-b * 10

print(a,b)

A . 23  2 B . 3   2 C . 3   20 D . 2   3
穷举法的适用范围是(   )
A . 一切问题 B . 解的个数极多的问题 C . 解的个数有限且可以一一列举 D . 不适合设计算法
关于算法的描述,下列选项中正确的是(  )
A . 算法本身就是一种程序设计语言 B . 对于同一个问题,只有同一个算法 C . 算法必须在有限步骤内实现 D . 算法可以使用自然语言、伪代码、流程图等多种不同的方法来描述
已知t=5.1,s=9,m=-8,则表达式的值为True的有(    )
A . t > Abs(m) B . Sqr(s) = Int(s-t) C . S Mod 10< Fix (t) \10 D . Not (s=9)
(多选)下列有关for循环语句说法正确的是(    )。
A . for 循环变量 in 列表后面必须加冒号 B . For循环所包含的语句是不以缩进为标志的。 C . 列表的几种表达方式有直接罗列,先定义后使用和使用range( )函数 D . For循环所包含的语句是以缩进为标志的。
下列关于session对象的说法正确的是(      )
A . 用户每次打开一个web页面,将会创建一个session对象 B . 用户关闭客户端web页面后,session对象将立即消失 C . 应用程序退出后,session对象的值才能消失 D . 每个用户的session对象不能被其他用户访问
宽宽用python中的冒泡排序算法------升序排序对列表[7,9,5,6,4]进行排序,请问第二轮比较后的结果为(   )
A . 7,5,6,4,9 B . 5,6,4,7,9 C . 5,4,6,7,9 D . 4,5,6,7,9