4.4.4 循环控制的应用 知识点题库

将数组逆序输出:数组a中有n个元素,将元素顺序颠倒,即a(1)和a(n)交换位置,a(2)和a(n-1)交换位置,依次下去,然后在List1中显示数组中的元素值。程序调用了一个自定义过程来实现目的。

代码如下,但加框处代码有误,请改正。

Dim a(1 To 10)As Integer

Private Sub Form_Load( )

  For i=1 To10

    a(i)=2*i-1

  Next i

End Sub

Private Sub Command1_Click()

              ‘①

  For i=1 To 10

    List1.Addltem Str(a(i))

  Next i

End Sub

Sub swap(b(i) As Integer)

  n=UBound(b)                  ‘函数返回数组b的上界

  For                         ‘②

    t=b(i):b(i)=b(n):b(n)=t

    n=n-1

  Next i

End Sub

以上程序段运行时,为了实现上述功能,加框处代码应改正为:①;②

某全英文教材文件"textbook.txt"内容如图所示。编写Python程序,分析该书中的单词使用情况。程序代码如下,请回答下面问题。

 

  1. (1) 图1中单词的间隔有 。
  2. (2) 自定义函数cleantext( )的功能是
  3. (3) 在划线处填入合适代码,完善程序。

    import pandas as pd

    def cleantext( ):

        txt = open("textbook.txt","r"). read( )

        txt=     ①            #将字符串中所有大写字母转为小写

        for ch in '! ( );:''',.? ' :

            txt = txt.replace(ch,"")       #用空格替代ch的值

        return txt

    booktxt = cleantext( )

    words = booktxt. split( )

    #以空格为分隔符分割文本并生成列表

    counts= { }

    for word in words:

        counts[word]=counts. get( word,0)+1

    items= -list(counts. items( ))    #返回所有键值对信息,生成列表

    df= pd.DataFrame(items,columns=['word','times'])

    df1= df.sort _values('word')

    df1.plot( x='word', y='times', kind='line', igsize=(8,3))

    df2=    ②       

    print('文件中出现的不同单词数:',     ③          )

    print(df2[:10])

     ② ③ 

  4. (4) 运行程序,输出结果如图2所示,绘制的图形如图3所示。结合两图分析,该教材中出现次数超过50次的单词有哪些?这些单词有什么特征?

  5. (5) 若将该教材中单词的掌握程度分为“非常熟练”“熟练”“一般”三类输 出,请完善下表。

    掌握程度

    程序末尾须添加的输出语句

    非常熟练(出现10次以上)

    熟练(出现2~10次)

    一般(出现1次)

小赵编写了一个VB程序,实现从某一字符串删除指定的连续字符串,并将处理后的字符串重新输出,程序界面如图所示,在文本框Text1中输入原始字符串,在文本框Text2中输入需要删除的连续字符串,单击Command1后,在文本框Text3中输出处理后的结果。实现上述功能的VB程序如下,请对其中的代码进行完善。

Private Sub Command1_Click()

    Dim s1, s2, d As String

    Dim i As Integer

    s1 = Text1.Text

        ①   

    i = 1 

    Do While i<= Len(s1)

        s = Mid(s1, i, Len(d))

        If s = d Then

               ②  

        Else

            s2 = s2 +    ③  

            i = i + 1

        End If

    Loop

    Text3.Text = s2

End Sub

  1. (1) 若要在窗Form1的左上角显示如图所示的“删除字符串”字样,则应对Form1对象的属性值进行修改。

  2. (2) 为了实现上述的功能,请在划线处填上合适的代码。

     ② ③ 

求1-2+3-4+5 ... 99的所有数的和。
小李编写了一个程序,用以实现下列功能:在文本框Text1中一个十进制数,在文本框Text2中输入需转换数的进制(小于等于16),点击转换按钮,在文本框Text3中输出转换后的数字;点击“退出”按钮,关闭程序。程序运行界面如下图所示:

  1. (1) 根据题目意思,应该在编辑界面将对象“command2”的属性改为“退出”。
  2. (2) 为实现上述功能,请在划线处填入合适的代码。

    Private Sub Command1_Click()

        Dim x As Long

        Dim y As Integer

        x = Val(Text1.Text)

        y =

        Text3.Text =

    End Sub

    Function trans(n As Long, b As Integer) As String

        Dim hex As String

        hex = "0123456789ABCDEF"

        Do while n<>0

            r = n Mod b

            n = n \ b

            trans = + trans

        Loop

    End Function

    Private Sub Command2_Click()

    End Sub

有求和式 ,编写程序计算并输出当n=20时,s的值。
将以下程序段补充完整。

问题:输入一个正整数n,判断n是否为素数。要判断n是否为素数,最简单的方法是:统计2到n-1之间能整除n的整数个数s,若s大于0,则n不是素数,否则就是素数。根据以上方法,完善以下程序代码。

Dim n, s As Integer

n = Val(InputBox(“n=”))

s=0

For i=2 to

    If n Mod i = 0 then

        s=        ‘统计因数个数

    End If

Next i

IfThen

    Print n &“是素数”

Else

Print n &“不是素数”

End If

下面程序的功能是:找出10以内的奇数中能被3整除的正整数,并将它们累加起来。为了实现这一目标,请完善下列程序:

x=0

For i=1 to 10 step

    If   then x=x+i

Next i

上述程序段是计算以下哪条算式?(    )

s=0

For i=1 To 10

    t=1

    For j=1 To i

        t=t*j

    Next j

    s=s+t

Next i

Print s

A . s=1+2+3+…+10 B . s=1!+2!+3!+…+10! C . s=1*2*3*…*10 D . s=1+2*3+3*4+4*5+……+9*10
统计字符串s中的升序段个数(例如47923123 ,则满足条件的升序段是479,23,123)。编写的部分VB程序段如下:

s= "47923123"

f=True : n=Len(s) : m=0

For i=2 To n

    If Mid(s, i, 1)> >Mid(s, i - 1, 1) Then

      

      

    Else

       

    End If

Next i

Print "升序段个数有"十Str(m)

上述程序段中方框处可选语句为:

①f= True

②f= False

③If f Then m=m+1

则(1)(2)(3)处语句依次为(    )

A . ①②③ B . ②③① C . ③②① D . ②③①
小王设计“表达式计算"的程序,通过程序实现加法和乘法结合的表达式计算。程序工作原理为:对输入的表达式从前往后以相邻两个运算符和三个数字为一组,根据先乘后加的优先级进行运算,得到一个运算符和两个数字,再将其与之后的运算符和数字组成一组继续运算,直到全部数据运算完毕。现编写VB程序如下:在文本框Text1中输入一个由加法和乘法组成的表达式,以“="结尾。点击“计算”按钮后,在文本框Text2中输出表达式计算的结果。实现该功能的VB程序及界面如下。

Private Sub Command1_Click()

    Dim i As Integer, j As Integer, n As Integer, ¥ As Integer

    Dim s As String, ch As String, c1 As String, c2 As String

    s=Text1.Text:k=1:j=1

    For i=1 To Len(s)

        ch=Mid(s,i,1)

        If ch< "0" Or ch>"g" Then

            v=     '变量v截取s中的每段数字

            j=i+1

            If k =1 Then

                n1=v:c1=ch

            ElseIf k = 2 Then

                n2=v:c2=ch

            Else

                    ①   

                If c1 ="*" And c2 = "*" Then

                    n1=n1*n2:n2=n3

                    c2=ch

                ElseIf c1 = "*" And c2 =" +" Then

                    n1=n1*n2:n2=n3

                    c1 ="+": c2= ch

                ElseIf c1= "+"And c2 =' "*" Then

                        ②   

                    c2=ch

                Else

                    n1=n1+n2:n2=n3

                    c2=ch

                End If

            End If

            K=k+1

        End If

    Next i

    If c1="*"Then n1=n1*n2 Else n1=n1+n2

    Text2.Text = Str (n1)

End Sub

请回答以下问题。

  1. (1) 在最后的输出语句“Text2.Text = Str(n1)”中,Text属于Text2的( 单选,填字母:A .方法名/ B .对象名/C .属性名/ D .属性值)。
  2. (2) 加框处的代码有误,请改正
  3. (3) 补充横线处代码

     ② 

  4. (4) 若将表达式结尾的“=”改为“+”,对程序运行的结果(选填:是/否)会有影响。
下列程序段执行后,变量s的值是

s =0

for i in range(1,4):

    for j in range(1,6):

        s=s+i

print(s)

“回文字符串” 是一种正读和反读都一样的字符串, 比如“level"或者“noon”等就是回文字符串。现在要求把字符串看成一个环,求环中能截取的最长回文字符串,当存在多组长度相同的最长回文字符串时,输出第1次找到的即可。实现该功能的Python程序如下,请回答下列问题:
  1. (1) 若输入“cdcdcdedc",则输出的最长回文字符串是
  2. (2) 完成以下程序填空:

    样例:

    请输入字符串: bcabc

    字符串环中的最长回文字符串是: bcb

    import sys

    def ishw(s): #判断s是否是回文字符串

        if s==

             return True

        else:

           return False

    s = input("请输入字符串: ")

    n = len(s)

    s=s+s

    for i in range(n, 0, -1): # 枚举字符串长度

        for j in

             t=s[j:j+i]

             if ishw(t):

               print(“字符串环中的最长回文字符串是:”+ t)

               sys.exit(0) #提前结束程序

求1+2+3+…+100的和(for循环实现)

s=0

for i in range():

 

print(s)

有如下Python程序段:

#生成6个随机整数,存入列表元素a[0]到a[5]中,代码略

b=[0]*6

for i in range(1,6):

    for j in range(i):

        if a[i]>a[j]:

            b[i] += 1

print(sum(b))

执行该程序段后,输出的结果是6,则a[0]到a[5]各元素值可能的是(      )

A . 10, 17, 33, 28, 49, 30 B . 14, 36, 21, 37, 11, 19 C . 46, 33, 50, 47, 13, 34 D . 33, 24, 34, 11, 31, 43
下列程序的运行结果是(      )

PRIVATE SUB FORM_CLICK( )

S=1

FOR I = 1 TO 5

    S=S*I

NEXT I

PRINT S,I

END SUB

A . 15    6 B . 120    6 C . 15     5 D . 120     5
下列程序的执行结果是(     )

FOR A= 1 TO 3

    PRINT A;

NEXT A

A . 1   1   1 B . 1    2    3 C . 2   2   2 D . 3    3    3
在 Python语言中,可以使用列表来模拟链表节点的插入操作。以下Python程序段用二维列表来定义单向链表。如要在该链表中插入节点,可以通过程序来修改相应节点的指针达到目的。
  1. (1) 如下图所示,请根据程序补充完整未插入数据前的链表数据区域的值(依次填写),此时链表的头指针的值是

  2. (2) 实现链表插入的 Python 程序如下,请在程序划线处填入合适的代码。

    data=[[8,-1],[7,4],[5,5],[6,0],[1,3],[2,1]]      # 定义单向链表

    head=2 leng=len(data)

    pos=int(input("请输入要插入的位置(0~%d)之间:"%(leng)))

    val=int(input("请输入要插入的数据值:"))

    data.append([val,leng])

    # 插入节点:

    p=head

    if pos== :       # 加在链表最前面,作为首节点

      data[leng][1]=p

      head=            # 更新头指针

    else: q=data[p][1] c=0

      while c<pos-1 and q!=-1:

      p=q q=data[p][1]

      c+=1

              # 更新指针

    data[p][1]=leng

    #用列表形式来显示插入后的链表:

    p=head s=[]

    while p!=-1:

      s.append()

      p=data[p][1]

    print(s)

下列VB程序段功能为:在文本框 Text中显示整型数组元素a(1)到a(9)中的最小值和最大值。

amin= a(1) : amax=a(1)

i=2 : j=9

Do While i <= j

    If a(i) > a(j) Then

       

        

    Else

       

       

    End If

    i=1 : j=j-1

Loop

Text 1. Text= Str(amin)+"," Str(amax)

上述程序段中方框处可选语句为:

①If a(j)>amax Then amax =a(j)

②If a(j)< amin Then amin =a(j)

③If a(i)<amin Then amin =a(i)

④If a(i)>amin Then amin =a(i)

则(1)(2)(3)(4)处语句依次可为(    )

A . ④③②① B . ④②③① C . ③②④① D . ③①④②
有如下程序:

a = input('输入小写字母组成的字符:')

for i in a:

  n = ord(i)+1                           #(字符a的ASCII码为97)

  h = ''

  for j in range(8):

    h = str(abs(n%2- 1))+h

    n = n//2

print(h, end=' ')

若输入小写字母“ab ”得到的结果是 (    )

A . 0011101 0011100 B . 1100010 0011100 C . 10011101 10011100 D . 00011101 00011100
最近更新