2.3 周而复始的循环 知识点题库

某VB程序在调试中弹出以下错误窗口,产生该错误的可能原因是(   )

 

A . 该VB程序代码中缺少Next B . 该VB程序窗体界面中,缺少某控件 C . 该VB程序代码中,某个常量或变量没有声明 D . 该VB程序设计软件没有正确安装
下列VB程序用于计算10^8的值:

Private Sub Command1_Click( )

   Dim x As Integer,y As Integer

   x = 8

   y = 10^x

   Text1.Text = Str(y)

End Sub                                                 

运行程序时,单击Command1后弹出如上图所示的出错提示,引起该错误的原因是(   )

A . 变量x的数据类型说明不当 B . 变量y的数据类型说明不当 C . 文本框Text1的宽度不够 D . y值太大,不能在文本框中输出
如下程序:

Private Function f(x As Single, n As Integer) As Single

  If n =0 Then

    f =1

  Else

    If n Mod 2 =1 Then

      f=x * f(x, n\2)

    Else

      f=f(x, n\2) \x

    End If

  End If

End Function

Private Sub Command1_Click()

  Label1.Caption=Str(f(4, 6))

End Sub

程序运行时,单击按钮Command1,标签Label1显示的内容是(  )

A . 1 B . 4 C . 27 D . 64
生成0-9数字组成的10位无重复数字的随机密码,其VB程序段如下:

方框中的代码由以下三部分组成:①s=s+Mid(s1,x,1)②x=Int(Rnd*n)+1 ③s1=Mid(s1,1,x-1)+Mid(s1,x+1)。代码顺序正确的选项是(    )

A . ①②③ B . ③②① C . ②①③ D . ②③①
某个VB应用程序中使用如下代码读取数据库中的信息:

Dim conn As New ADODB. Connection

Dim rs As New ADODB. Recordset

Dim n as Integer

Private Sub Form_ Load()

conn. ConnectionString ="Provider= Microsoft.Ace.

OLEDB.12.0; data source ="+App. Path+"\data\data. accdb"

conn. Open

sql="select*from student"

Set rs. ActiveConnection=conn

rs. Open sql

n=0

Do while Not rs. EOF

List1.AddItem rs("name")

n=n+1

rs. MoveNext

Loop

End Sub

运行上述程序,以下说法不正确的是(    )

A . 当前读取的数据库文件是Data文件夹中的data.accdb文件 B . 数据库中存在一个名为student的数据表 C . List1列表框中将显示指定的数据表中所有记录name字段的值 D . 窗体加载完成后,读取的数据表中总记录数为n-1
有如下VB程序段:

Dim a(0 To 9)As Integer

Dim t As Long

t=Val(Text1.Text):x=0

Do While t>0

    a(t Mod 10)=1

    t=t\10

Loop

For i=0 To 9

    x=x+a(i)

Next i

若在文本框Text1中输入380305220,则程序执行后,变量x的值为(  )

A . 1 B . 2 C . 5 D . 9
有如下VB程序段(数组a中各元素的初始值均为0):

n=Len(Text1.Text):c=1

For i=1 To n

    s=Mid(Text1.Text,i,1)

    If s>="0"And s<="1"Then

        a(c)=a(c)*2+Val(s)

    Else

        If a(c)>0 Then c=c+1

    End If

Next i

在文本框Text1中输入“A:1010 C:1100 E:1110”。执行该程序后,数组a(2)中的元素值为(  )

A . 2 B . 12 C . 22 D . 2200
编写函数,接收一个正偶数为参数,输出两个素数,并且这两个素数之和等于原来的正偶数。如果存在多组符合条件的素数,则全部输出。
有如下 VB程序段∶

Dim a(1 to 6) As Integer, i As Integer

For i=1 To 6

    a(i)=Int(Rnd*4)*2+1

    If i Mod 2=1 Then a(i)=a(i) * 2 Else a(i)=a(i)+a(i-1)

Next i

最终a数组各元素的值可能是(    )

A . 10,11,6,7,14,17 B . 6,5,2,9,10,17 C . 2,9,14,17,5,7 D . 6,11,10,23,4,9
图结构中数据元素是多对多的关系。
在VB 程序设计中,下列语句在编译中或运行后一定会发生错误提示的是(     )
A . Dim text As String B . If f Then x=x*x+1 C . s="cd"+3 D . s=Mid("abc123",3)
有如下python程序段:

S=0

for i in range(101):

s+=i

print("s=",s)

循环变量i的终值是(      )

A . 101 B . 100 C . 0 D . 1
下列程序段执行后,变量s的值是

s =0

for i in range(1,4):

    for j in range(1,6):

        s=s+i

print(s)

将正整数n分解为连续正整数之和(如正整数9分解为2+3+4、4+5两种)。统计分解方法共有几种的VB程序段如下:

ans=0

n = Va1 (Text1. Text)

For i=1 To n\2

    t=n:x=i

    Do While t>0

       

    Loop

Next i

Text2.Text = Str (ans)

方框中的代码由以下三部分组成:

①If t=0 Then ans=ans+1   ②t=t-x③x=x+1

下列选项中,代码顺序正确的是(    )

A . ③①② B . ②①③ C . ①③② D . ①②③
小凡有好多活页本,记录了各门课的错题。然而,他淘气的弟弟把这些活页本都拆了,并且活页纸散落在房间各地。小凡在房间里捡了若干张活页纸,每张纸都有活页本编号和其对应的页码。现在他要统计每本活页本上剩余还有哪些页码,为了能快速的整理,按照以下规则存储:对于同一本活页本上的纸张,则记录连续序列的起始和结尾编号。例如第1本活页本上的纸张页码有1,3,4,5,8,9,则记录为1-1,3-5,8-9。他编写了VB程序来解决这个问题,功能如下:共有k本活页本,每本最多有n张活页纸,总共有sum张活页纸,每张纸的编号和页码显示在列表框List1中,每一行前两位数表示该页对应的活页本编号,后一个数表示其对应页码;程序运行时,点击“整理”按钮Command1,在列表框List2中显示整理后的结果。程序运行界面如图所示。

请回答下列问题:

  1. (1) 若要将按钮中显示的“整理”修改为“纸张整理”,则需修改按钮的属性。
  2. (2) 实现上述功能的VB代码如下,请在划线处填入合适的代码。

    Const n=40

    Const k=5

    Dim f(1 To 500)As String

    Dim sum As Integer

    Private Sub Form_Load()

        '读取sum张纸的信息,存入到数组f并显示在列表框List1中,代码略

    End Sub

    Private Sub Command1_Click()

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

        Dim a(500)As Integer,b(500)As Integer

        Dim c(500)As Integer,d(500)As Integer

        '读取每张纸信息,将页码存入到a数组中,活页本编号存入到b数组中

        For i=1 To sum

            a(i)=Val(Mid(f(i),4))

            b(i)=

        Next i

        For i=1 To sum-1    '对每一页先按照活页本编号、再按照页码从小到大排序

            t=i

            For j=i+1 To sum

                If  Then t=j

            Next j

            tmp=a(i):a(i)=a(t):a(t)=tmp

            tmp=b(i):b(i)=b(t):b(t)=tmp

        Next i

        c(1)=a(1)    '对于每个奇数位i,c(i)与c(i+1)分别存储连续页码的起始编号和结尾编号

        d(1)=b(1)

        s=1

        t=a(1)

        For i=2 To sum

            If b(i)=b(i-1)And t+1=a(i)Then

               

            Else

                c(s*2)=t

                s=s+1

                =a(i)

                d(s)=b(i)

                t=a(i)

            End If

        Next i

        c(s*2)=t

        List2.AddItem "第1本书:"

        List2.AddItem Str(c(1))+"-"+Str(c(2))

        For i=2 To s

            If d(i)<>d(i-1)Then List2.AddItem"第"+Str(d(i))+"本书:"

            List2.AddItem Str(c(2*i-1))+"-"+Str(c(2*i))

        Next i

    End Sub

  3. (3) 程序中加框处代码有误,请改正。
阅读下列程序,写出运行结果。

m = 1

n = 0

for i in range(3):

  m += 1

  for j in range(5):

    n += 1

print(m, n)

运行结果是:

在“do while<条件>loop"语句中,若条件为0,则循环次数是_次,若条件是1,则循环次数是次。
小明收集了本周信息技术学科学习评价的数据,如图所示。

  1. (1) 观察上表小明做了如下操作,其中属于数据整理的是             (多选,填字母)
    A . 删除重复行第五行 B . 验证并修改D2单元格数据  C . 通过公式计算全班平均分 D . 重新设置C3单元格格式
  2. (2) 为了分析每个组的平均分,设计了如下Python程序。                    

    import pandas as pd

    import matplotlib.pyplot as plt

    df=pd.read_excel("成绩表.xlsx")

                

    print(df1)

    划线处的代码应为           (单选,填字母)

    A . df1=df.groupby("平均分").mean() B . df1=df.mean() C . df1=df.groupby("小组").mean() D . df1=df["小组"].mean()
  3. (3) 利用Python程序绘制各小题得分率图表,如图所示:

    请在划线处填写合适的代码。

    num=int(input("请输入小组:"))

    plt.figure(figsize=(10,5))

    list=[]

    for i in range(12):

        s="题"+str(i+1)

        list.append(df1.at[num,s]*50)

    plt.bar(range(1,13),list)

    plt.title(str(num)+" ")

    plt.xlabel("question number")

    plt.ylabel("correct rate")

    plt.show()

下列程序,运行结果为

y=0

for i in [1,2,3,4,5]:

  x=int(input(“x=”))

  y=y+x

print(y)

从键盘依次输入10、20、30、40、50

有如下VB程序:

Dim s1 As String, s2 As String, n As Integer, t As Integer

Dim a(128) As Integer

s1 = Text1. Text : n = Len(s1)

s2 =""

For i=1 To n

    t = Asc(Mid(s1, i, 1))

    a(t)=a(t)+1

Next i

For i=1 To 128

    Do While a(i)> 0

        s2 = s2 + Chr(i)

        a(i)=a(i)-1

    Loop

Next i

Text2.Text = Mid(s2,5,1)

若Text1中输入的字符串为“He1lo535Study" (不包括引号) ,运行上述程序后,Text2中显示的结果为(    )

A . o B . e C . S D . 5
最近更新