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

下列关于For ...next 语句的说法正确的是(  )
A . 循环变量、初值、终值和步长都必须为数值型 B . step后的步长只能为正数 C . 初值必须小于终值 D . 初值必须大于终值
小王编写VB程序,实现如下功能:在Text1中输入1~9之间的任意一个数字,单击“计算”按钮Command1, 计算该数字的阶乘并显示在标签Label2中。程序运行界面如图所示:

  1. (1) 如图所示,窗体中(不包含窗体本身)的对象共有个(填数字)。
  2. (2) 实现上述功能的VB程序如下,请在划线处填写合适的代码。

    Private Sub Command1_Click()

    Dim i As Integer, j As Integer, s As Long

    s = 1

    i =

    If i >= 1 And i <= 9 Then

    For j = 1 To i

    s =

    Next j

    Label2.Caption = Str(i) & "的阶乘为:" & Str(s)

    Else

    Label2.Caption = "请重新输入1~ 9之间的任意数字"

    End If

    End Sub

  3. (3) 程序中,若将变量s的类型由Long改为Integer,在文本框Text1中输入的内容为“9”,单击“计算”按钮后,程序运行将会出现什么情况(单选,填字母:A .溢出 / B .类型不匹配 / C .要求对象)。
某算法的部分流程图如下图所示,执行这部分流程,输出结果为(  )

A . 16,12 B . 16,16 C . 32,15 D . 8,15
数组a中存储的是左右交替上升的n个正整数,如下表所示:

a(1)

a(2)

a(3)

a(n-2)

a(n-1)

a(n)

3

25

38

55

31

12

依据对分查找思想,设计一个在数组a中查找数据key的程序,实现该功能的VB程序如下,但加框处代码有错,请改正

Private Sub Command1_Click( )

Const n = 6

Dim a (1 To n) As Integer, flag As Boolean

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

‘读取一组正整数,按上述规则存入数组a中

‘代码略

key = Val(Text1. Text)

i = 1

j = (n+1) \2

flag= False

Do While     And Not flag     ‘①

  m = (i+j) \2

  If key = a(m) Then

    flag= True

  ElseIf key < a(m) Then

    j = m-1

  Else

    i = m+1

Loop

If Not flag And j > 0 Then

  m =       ‘②

  If key = a(m) Then flag = True

End If

If flag Then

  Text2.ext = str(m)

Else

  Text2.Text= “找不到”

End if

End sub

①加框处应改为

②加框处应改为

调试程序时,如果程序语法有错误,计算机不会给出提示信息。
编写VB程序,实现如下功能:在文本框Textl和Text2中分别输入一个整数,单击命令按钮Command1,在列表框List1中显示结果,运行效果如1图所示。结果包含两列数据,第1列为两数之间的摄氏温度值(间隔1度、升序),第2列为对应的华氏温度值。

1图

  1. (1) 要使命令按钮Command1上显示的文本改为“转换”,可在其属性窗口(2图)中将属性的属性值修改为“转换”。

    2图

  2. (2) 为实现上述功能,请在方框处填入合适代码。

    Private Sub Command1_Click()

    Dim t1 As Integer, t2 As Integer

    Dim i As Integer, t As Integer

    Dim f As Single

    List1.Clear

    t1 = Val(Text1.Text)

    t2 = Val(Text2.Text)

    If           ①          Then

      t = t1: t1 = t2: t2 = t

    End If

    i = t1

    Do While        ②           

      f = i * 9 / 5 + 32    '摄氏温度转换为华氏温度

      List1.AddItem Str(i) + " " + Str(f)

    Loop

    End Sub

  3. (3) 划线处填入合适的选项:

    A.i <= t2  B.f <= t2  C.t1 > t2  D. i < f

     ② 

有如下VB程序段,执行该程序段后,a(1)到a(6)各元素的值可能为(  )

Randomize

For i=1 To 6

  a(i) = Int(Rnd*21) *2+11

  If I Mod 2=1 Then

    a(i) = a(i) +2

  Else

  If a(i)<a(i-1)Then a(i)=a(i-1)

  End If

Next i

A . 13, 15, 25, 37, 23, 54 B . 16, 44, 23, 51, 22, 22 C . 19, 37, 23, 45, 53, 53 D . 13,37, 11, 45, 33, 51
   通过numpy模块中的函数可以创建一个等差数列。如在0-2π之间每隔0.01取个值,则可以用表示,其中numpy.pi表示
下列选项中不属于程序设计语言的是(    )
A . 机器语言 B . 汇编语言 C . 高级语言 D . 自然语言
如图Python代码执行后,a,b的值分别为:(    )

a=5

b=10

c=a

a=b

b=c

A . 5,10 B . 10,5 C . 5,5 D . 10,10
完善代码并保存。

实现功能:从键盘输入10个学生的测试成绩,输出最高分和最低分。

cj=[]

for i in range(0,):

    x=float(input("请输入一个数"))

    cj.append()

print(max(cj), min())

input("运行完毕,请按回车键退出...")

下列字符串比较大小时,最小的是(    )
A . "abc" B . "aab" C . "abcc" D . "aa8"
某校为了响应双减政策每周加设了一节体育选修课程,为了便于学校师资安排及课程的开设,需要对学生选课需求进行摸排。学校可以开设的课程共9门,在前期选课时学生可以选择自己喜欢的3门课程,选课信息已保存在文本文件中(课程名称用数字1~9表示),最终每个学生只安排1门课程学习。为了统计每门课程的选课人数及同选最多的两门课程,编写了以下程序。

所谓“同选”是指学生在3门课的选择中最喜欢一起选的两门课,比如A同学选了124,B同学选了134,则同选最多的两门课为14。请回答以下问题:

  1. (1) 该程序先将文本文件的选课数据读取并保存到列表xk中,文本文件及读取到列表后部分数据如图所示,则该列表数据项的数据结构是(选填:字符串/列表/字典),数据项中的数据元素(如‘5’)的数据类型是(选填:整型/实型/字符串型)

      

  2. (2) 程序运行结果如图所示,补充完整划线处的代码

    course=["排球","篮球","足球","羽毛球","乒乓球","网球","健身操","游泳","太极"]

    xk=[]       #存储选课信息,用数字1~9表示9门课程

    f=[0]*9     #存储9门课程的选课人数

    d=[0]*100   #存储两门课程同选的次数,如d[26]=50表示篮球和网球被50个同学同选

    def relation(y):          #计算列表y中各数据项的同选次数

        for i in range(1,10):

            for j in range(i+1,10):

                if str(i) in y and str(j) in y:            #课程i,j均在列表y中出现

                    d[10*i+j]+=1        #第i和第j门课程同选次数加1存储在列表d中

    file=open("xk.txt","r")      #打开文件

    line=file.readline()

    while line:               #读取文件数据到列表xk中,数据样式详见第(1)小题图所示

        line=line.split()

        xk.append(line)

        line=file.readline()

    file.close()

    for y in xk:               #对列表xk中的各数据项进行处理

        relation(y)           #调用定义函数统计y中各门课程同选次数,存储到列表d中

        for x in y:            #遍历数据项y中的元素,统计每门课程的选课人数

           

    for i in range(9):

        print(course[i],"选课人数:",,"人")   #输出每门课程的选课人数

    maxd=max(d)

    print("同选最多的两门课程是:")

    for k in range(100):

        if d[k]==maxd:

            print(course[k//10-1],)       #根据列表d的索引计算两门同选课程索引

如果列表框的ListCount属性为20,则列表框的最后一项的Listindex值为
下面程序段的的运行结果为(     )

x = 5: y = -20

If Not x > 0 Then x = y - 3 Else y = x + 3

Print x - y; y – x

A . -3    3 B . 25    -25    C . -43    3 D . 3      -3
FOR I= 3 TO 19 STEP 4,循环体执行次。
有如下VB程序段:

Private Sub Command1_ Click() 

  Dim s As String, a As String, t As String

  s=Text1.Text:t=" "

  For i=1 To Len(s)

    a= Mid(s, i, 1)

    If a>= "0" And a <= "9" Then

      t=t+a

    ElseIf a="!" Then

      t=" "

    ElseIf t <> "" Then

      List1.AddItem t

    End If

  Next i

End Sub

执行程序时,在文本框Text1中输人“12+ 34=46! 789ok”(不包括双引号),单击按钮Command1后,在列表框List1中显示的结果是(    )

A.12

1234

123446

123446789

B.12

34

46

789

C.12

1234

789789

D.12

1234

123446

789

789

A . A B . B C . C D . D
Python布尔变量的值为(    )
A . 真,假 B . 0,1 C . T,F D . True ,False
小明想要统计一篇英语作文中某些单词出现的次数,他设计了如下算法:

#将要统计的单词储存在列表lis中,代码略

wordcount={}

#导入作文,分词后储存在列表zw中,代码略

for word in zw:

    if word in lis:

          ①  :

            wordcount[word]+=1

         ②  :

            wordcount[word]=1

print(wordcount)

  横线处应填入的代码是(    )

A . ①if word in wordcount      ②else B . ①if word in lis            ②else C . ①if wordcount[word]!=1     ②else D . ①if wordcount[word]==True  ②elif wordcount[word]==False
小明同学用计算机求解1+2+……+100的和,下图是他设计的算法,请问他使用了

描述方法。

第一步,令s=0

第二步,令i=1

第三步,求出s+i,仍用s表示。

第四步,判断i>100是否成立?若是,输出s;

若不是,将i的值增加1,仍用i表示返回第三步。

最近更新