4.1.1 Python的常量和变量 知识点题库

下列给变量赋值的语句正确的是(   )  
A . 3=a B . a+1=a C . a=b=c=3 D . a=a+8
在VB语言中,下列正确的赋值语句是(   )  
A . J=K*6-6 B . 5J=K*6 C . J+6=K*6 D . 5*J=K*6
【加试题】任意一个英文单词都由若干字母组成,记录单词中每个字母出现的次数,其中maxn为最多次数,minn为最少次数,如果maxn与minn的差是一个素数,这个单词就是一个幸运单词。

例如:单词banana由b,a,n三个字母组成,其中a字母出现了3次,n字母出现了2次,b字母出现了1次,得到maxn为3,minn为1,maxn与minn的差为2,是一个素数,那么banana就是一个幸运单词。

编写一个判断幸运单词的VB程序,在文本框Text1中输入一个单词(注:仅输入小写字母,且长度小于100),单击“判断”按钮Command1,标签Labal1输出运行结果。

程序运行界面如图所示,实现上述功能的VB代码如下,但加框处代码有错,请改正。

Private Sub Command1_Click()

    Dim maxn As Integer

    Dim minn As Integer

    Dim a(1 To 26)As Integer

    maxn=0

    minn=100

s= Text1.Text

n=Len(s)

For i=1 To n

        dz=Mid(s,i,1)

        If dz>=“a”And dz<=“z”Then

          p=                 ‘(1)

           a(p)=a(p)+1

        End If

Next i

For j=1 To 26

        If a(j)>0 Then

         If a(j)>maxn Then maxn=a(j)

          If a(i)<minn Then minn=a(j)

        End If

       Next j

    If(maxn-minn>=1)And  Then       ‘(2)

        Label1.Caption=“幸运单词!”

      Else

        Label1.Caption=“无!”

      End If

    End Sub

‘自定义函数iszs(x)用于判断整数x是否为素数,如果x是素数返回True

  Function iszs(x As Integer)As Boolean

      ‘代码略

End Fuction

  1. (1) 处加框代码应改为
  2. (2) 处加框代码应改为
有如下VB程序段:

Dim c As String, i As Integer

Dim s As String, s1 As String

s = "Jishu_Xuankao_2020"

s1 =""

For i = 1 To Len(s) Step 2

  c = Mid(s, i, l)

  If c >= "a" And c <= "z" Then s1=c+s1

Next i

Text1. Text = s1

执行该程序段后,文本框Text1显示的内容是(  )

A . okaus B . suako C . okus D . suko
下列程序的功能是将text1中输入的自然数分解为3个互不相同的质数(三个质数的和等于输入的自然数),并把分解产生的质数按升序顺序显示在左边的列表框中。例如,输入20,那么在列表框中会显示如图所示结果。其中,界面中“开始处理”按钮的名称是“Command1”,程序中函数f(x)的功能是判断x是否为质数,如果是质数则返回值为true,否则返回值为false。

请在下列程序代码的基础上按照要求设计该程序,完善程序中的划线部分。

Dim n As Integer, a1 As Integer, a2 As Integer, a3 As Integer

Function f(x as integer) As Boolean

 f=True

 For i=2 To Sqr(x)

   If x Mod i=0 Then

 Next i

End Function

Private Sub Command1_Click()

n=

For a1=2 To n

 For a2=a1 To n

  For a3=a2 To n

   IfAnd f(a1) And f(a2) And f(a3) Then

    List1.AddItem(Str(a1)+“ ”+Str(a2)+“ ”+Str(a3))

   End If

  Next a3

 Next a2

Next a1

End Sub

给出用等号连接的两个整数,如“222 = 24”,让你在左边的整数中间某个位置插入一个加号,看有没有可能让等式成立。以上面的式子为例,可以写成2+22=24和22+2=24两种答案。现设计一个程序,实现该算法,程序运行界面如图所示。

  1. (1) 标题要显示“趣味数学”,需修改窗体的(选填:Caption、Name、Text)属性。
  2. (2) 实现上述功能的VB程序如下,请在程序划线处填入合适代码。

    Private Sub Command1_Click()

    Dim s As String, s1 As String, s2 As String

    Dim c As Integer, k As Integer, i As Integer, flag As Boolean

    flag = False: c = 0

    s = Text1.Text

    For i = 1 To Len(s)

     If Mid(s, i, 1) = “=”Then Exit For

    Next i

    s2 = Mid(s,i+1,Len(s)- i)

    k = Len(s1)

    For i = 1 To k-1

     If Val(Mid(s1, 1, i))+Val(Mid(s1, i + 1, k-i))=Val(s2) Then

      List1.AddItem “第”+Str (c)+“种答案:”+Mid(s, 1, i)+“+”+Mid(s, i + 1, Len (s)-i)

      flag = True

     End If

    Next i

    IfThen List1.AddItem “没有答案!”

    End Sub

寻找数组元素a(1)到a(10)中最小值min的程序段如下:

For i =2 To 10

    If a(i) < min Then min = a(i)

Next i

方框中最合适的语句是(  )

A . a(1) = min B . min = 1 C . min = a(1) D . min = 0
有1个升序排列的数组a(a(1)~a(n),n≥3),从左到右相邻两个元素的差值(后一个元素值减去前一个元素值)先由小到大、再由大到小,且相邻两个差值不相等,为了查找相邻两个元素的最大差值,小李编写的VB程序段如下:

i=1:j=n

Do While i+1<j

  m=(i+j)\2

  If a(m+1)-a(m)>a(m)-a(m-1)Then

    

  Else

    

  End If

Loop

Labell.Caption="相邻两个元素的最大差值是"+Str(a(j)-a(i))

上述程序段两个方框处的语句分别为(  )

A . ①i=m       ②j=m B . ①i=m        ②j=m-1 C . ①i=m+1     ②j=m-1 D . ①i=m+1      ②j=m
某对分查找算法的VB程序段如下:

t=" ":i=0:j=9:key=62:f=False

Do While i<=j And Not f

  m=Fix((i+j)/2)

  t=t+Str(m)

  If a(m)=key Then

    f=True

  Elself a(m)>key Then

    i=m+1

    t=t+"→"

  Else

    j=m-1

    t=t+"←"

  End If

Loop

数组元素a(0)到a(9)的值依次为“99,94,90,87,78,70,63,56,45,36”,执行该程序段,t的值是(  )

A . “4→7←5→” B . “4→7←5→6→” C . “4→7←5→6” D . “4→7←5”
在文本框Text1中输入一串字符串,单击“运行”按钮后,程序在列表框List1中输出该字符串的所有子串,程序运行界面如图所示,VB代码如下。

   s=Text1.Text

   For i=1 To Len(s)

       For j=    ①   

           List 1.AddItem   ②   

       Next j

   Next i

为实现上述功能,程序段两个划线处的语句分别为 (  )

A . ①i To Len(s)         ②Mid(s,i,j-i+1) B . ①1 To Len(s)-i+1     ②Mid(s,j,i) C . ①i To Len(s)-i+1     ②Mid(s,i,j-i+1) D . ①1 To Len(s)        ②Mid(s,j,i)
下列程序段执行后,变量s的值是(  )。

s=0

For i=1 To 10

 s=s+i

Next i

A . 1 B . 0 C . 55 D . 10
  某校组织文艺汇演比赛,共20个班级参加,每5个班级划为一个团队,1~5班为甲队,6~10班为乙队,11~15班为丙队,16~20班为丁队。20个班级根据抽签的顺序依次上台,共有6位评委为每个班级的表演打分,去掉一个最高分和一个最低分,剩下4个分数的平均值叩为该班最终得分。现要求编写VB程序对比赛数据进行汇总,左侧List1中显示原始数据,点击“汇总”按钮后,在List2中按顺序输出班级号以及对应计算得到的最终得分,并在Label3中输出每个团队的总分,程序运行界面如图所示。

  1. (1) 如上图所示数据,若要通过冒泡排序对3班的6个得分从大到小排序,需要交换的次数是次。
  2. (2) 请在划线处填入合适代码。

    Const nc=20    ‘班级总数

    Constn= 8

    Dim a(1 To n*nc) As Single

    Dim sum(1 To 4) As Single        ‘存储每个团队的总分

    Dim q(1 To nc) As Integer         ‘存储演出时班级出现的顺序

    Private Sub Form_Load()

    ‘本过程读取班级号和6个打分情况存储到a数组中。a(1)存储第一个上台的班级号,a(2)~a(7)中存储该班的6个得分,a(8)预留出来,用来存储该班最终得分,初值为0;a(9)存储第二个上台的班级号,a(10)~a(15)中存储第二个上台班级的6个得分,a(16)预留,用来存储该班最终得分,初值为0,以此类推。在List1中输出班级号和6个得分,代码略。

    End Sub

    Private Sub Command1_Click()

    Dim i As Integer, j As Integer, k As Integer, s As String

      For i=1 To n* nc                   ‘将每个班的6个得分排序

        If i Mod n<>0 And i Mod n<>1 Then

          k=i

          For j=i+1 To

            If a(j)>a(k) Then k=j

          Next j

          If k<>i Then t=a(k): a(k)=a(i): a(i)=t

        End If

      Next i

      For i=1 To n* nc Step n            ‘计算每个班的最终得分,存入相应位置

        a(i+n-1)=(a(i+2)+a(i+3)+a(i+4)+a(i+5))/4

      Next i

      For i=1 To n* nc Step n    ‘计算每个团队总分

       

      Next i

      For i=1 To n* nc Step n

        k=a(i)

        q(k)=i

      Next i

      For i=1 To nc

        List2.Addltem Str(i)&" "&

      Next i

      s="甲:"+Str(sum(1))+"乙:"+Str(sum(2))+"丙:"+Str(sum(3))+"丁:"+Str(sum(4))

      Label3.Caption=s

    End Sub

某VB的事件过程如下:

   Pirvate Sub Command1_Click()

      a = Val(Text1.Text)

      b = a * a + 1

      Text1.Text = b

   End Sub

程序运行时,在文本框Text1中输入2,连续两次单击命令按钮Command1后,Text1中显示的内容是(    )

A . 677 B . 2 C . 26 D . 5
某算法的部分流程图如图所示。执行这部分流程后,“i<6?”执行的次数和变量s的值分别为(     )

A . 4 和 16 B . 3 和 16 C . 4 和 9 D . 3 和 9
有如下程序:

Private Sub Command1_Click()

  Dim a(5) as Integer

  Dim n as Integer, i as Integer

  n=Val(Text1.Text)

  i=0

  a(1)=1: a(2)=1

  For i=3 To n

     a(i)=a(i-1)+a(i-2)

  Next i

  Label1.Caption=a(i)

End Sub

若在Text1中输入5,则点击按钮后的运行结果为(    )

A . Label11中输出5 B . Label1中输出10 C . 报“下标越界”错误 D . Label11中无内容
已知直角三角形的斜边长度,利用对分查找算法计算其他两条整数边长的VB程序段如下:

flag = True : p = 0

Key = 5

For i = 1 To Key - 1

L = i

            

Do While            

M = (L + R) \2

p = p + 1

If i * i + M * M < Key * Key Then

      L = M + 1

ElseIf i * i + M * M > Key * Key Then

      R = M - 1

Else

    Text2.Text = Str(i) + “” + Str(M) + “” + Str(key)

    flag = False

    i = Key

End If

Loop

Next i

If flag Then Text2.Text = “没有符合条件的整数勾股数对!”

上述程序段2个划线处的代码分别为(  )

A . ①R=Key-1 ②L<=R And flag B . ①R=Key ②L<=R And flag C . ①R=Key – 1 ②L<=R Or  flag D . ①R=Key – 1 ②L<=R And flag=False
下列VB程序段功能为:在文本框Text1中显示整型数组元素a( 1 )到a( 10 )中的最小值和次小值。

k1 = 1:k2= 10

For i=2 To 10

     If a(i) < a(k1) Then

        

        

     ElseIf a(i) < a(k2) Then

        

     End If

Next i

Text1.Text = Str(a(k1)) + "," + Str(a(k2))

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

①k1=i

②k2= i

③k2= k1

则⑴⑵⑶处语句依次是(    )

A . ①②③ B . ③①② C . ②①③ D . ③②①
下列属于正确的VB赋值语句的是(  )
A . x+y=10 B . 10=x+y C . x=True D . x+y=Text1.Text
下面哪个不是Python合法的标识符(    )
A . int_3 B . print C . count D . __name__
下面哪个不是Python合法的标识符(    )
A . int_3 B . 30XL C . self D . _abc
最近更新