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

下面VB语句正确的是(   )
A . if  i≠k  then  print “i不等于k ” B . if  i <> k   then  print  i 不等于k C . if  i <> k   then  print  “i不等于k ” D . if  i≠k   then  print  i 不等于k
贝贝有n个桃子,吃完后每三个桃核可以换一个桃子,编写一个程序计算贝贝总共能够吃到几个桃子。
  1. (1) 若贝贝总共有7个桃子,则他最后可以吃到个桃子。
  2. (2) 修改程序中的错误。

    程序代码如下:

    Private Sub Command 1_Click()

    Dim n As Integer,ans As Integer

    n =Val(Text1.Text)

    ans = n

    Do While n>3    ‘

     ans = ans + n\3

     n = n\3     ‘

    Loop

    Label2.Caption = “总共能吃到的桃子数为:” + Str(ans)+“个”

    End Sub

某公用电话系统以秒为单位显示通话时间,通话费以分钟为单位进行计费将通话时间的秒数值s,转换为m分(不满60秒的当作1分钟来计费)的算法部分流程图如图所示。则流程图中①②处应该填入的是(  )

A . ①s←s-60  ②s<60? B . ①s←s+60  ②s<60? C . ①s←s-60  ②s<>0? D . ①s←s+60  ②s<>0?
某对分查找算法的VB程序段如下:

i = 1: j = 9: n = 0

key = val (Text1.text)

Do While i < = j

n=n+1

m = Fix((+j)/2)

If key=d(m) Then Exit Do     ‘Exit Do表示退出循环

If key < d (m) Then

  j = m-1

Else

  i=m+1

  End If

Loop

数组元素d(1)到d(9)的值依次为“7,12,18,2,39,58,61,72,86”。若该程序段运行结束后,n的值为2,则key的值是(  )

A . 39 B . 18或61 C . 18或72 D . 12或61
某校进行学生选修课网上选课,选课报名情况如下:

①该年级有360名学生参与选课,共开设10门选修课程,每门课程的人数上限为40人,限定每位学生只能选一门课程。

②选课报名数据保存在数据库文件中,按报名先后顺序存储选课信息,每条学生的选课记录包含学号、姓名和选课课程编号。

③学生选课是否成功的规则:如果报名该课程的人数小于等于40人,则报名该课程的学生全部选课成功;若超过40人,则通过随机方式抽取40人选中该课程的学生。

小王编写了一个VB程序实现上述要求。单击“数据处理”按钮Command1,将选课数据按选课是否成功的规则进行数据处理后,在列表框List 1中输出每门课程的编号、报名该课程人数,并在列表框List2中按学号升序输出每位学生的选课结果。程序运行界面如图所示,在划线处填入正确的代码。

Const km=10

Const n=360

Const max=40

Dim xh(1 To n) As String‘存储学生学号

Dim xm( 1 To n) As String‘存储学生姓名

Dim kc(1 To n) As Integer'存储学生选课课程编号(1-10)

Dim flag(1 To n) As Boolean'存储学生选课是否成功

Private Sub Form_load()

本过程读取学号、姓名和选择课程编号的数据分别存储在数组xh,xm和kc中

End Sub

Private Sub Command 1_Click()  

  Dim i As Integer,j As Integer,k As Integer,t As Integer

  Dim s As String,temp As Integer

  Dim num(1 To km) As Integer,b(1 To km) As Integ

  Dim c(0 To km) As Integer,d(1 To n) As Integer

  For i=1 To km

      num(i) =0

Next i

For i=1 To n

    num(kc(i) ) =num(kc(i))+1

Next i

k=1

For i=1 To km

    List1.AddItem Str(i) &“号课程报名”&num(i) &“人”

If   ⑴   Then b(k)=i:k=k+1

Net i

c(1)=1

For i=2 To k-1

  c(i) =c(i-1)+num(b(i-1) )

Next i

For i=1 To n

  flag(i) =True

  For j=1To k-1

       If b(j) =kc(i) Then

         ⑵ 

      c(j)=c(j)+1

      flag(i)=False

      Exit For

   End If

  Next j

Next i

c(0)=1

For i=1 To k-1 '超过人数上限的课程,随机方式抽取选中学生

   t=1

   Do While t<=max

     j=  ⑶ 

      If flag(d(j)) =False Then flag(d(j))=True:t=t+1

Loop

Next i

For i=1 To n

     d(i)=i

Next i

For i=1 To n'按学号升序排序

For j=n To i+1Step-1

   If   ⑷   Then

       temp=d(j):d(j)=d(j-1):d(j-1)=temp

     End If

   Next j

Next i

For i=1 To n

     s=xh(d(i))&“”&xm(d(i))&“”&kc(d(i))&“号课程本轮选课”

     If flag(d(i) ) Then s=s&“成功”Else s=s&“不成功”

     List2.AddItem s

   Next i

End Sub

 ⑵ ⑶ ⑷ 

编写VB程序,实现如下功能:在文本框Text1中输整数x,单击“查找删除”按钮Command1,在数组a(从小到大排列并显示在标签Label1中)中查找该数。若找到,则从数组a中删除该数(该数后的数组元素都往前移一位),并在标签Label2中显示删除后的结果(运行效果如图所示);否则在标签Label2中显示“该数没有找到”。

请在划线处填入合适代码。

Dim a(1 To 10) As Integer

Private Sub Form_Load()

'产生10个升序的随机数并显示在Label1,代码略

End Sub

Private Sub Command1_Click()

Dim i As Integer, j As Integer, m As Integer, k As Integer

Dim x As Integer, f As Boolean, s As String

x=Val(Text1.Text)

i=1: j=10: f=False

Do While    ①  

m=(i+j)\2

If a(m)=x Then

f=True

ElseIf    ②     Then

i=m+1

Else

j=m-1

End If

Loop

If f=True Then

For k=m To 9

   ③  

Next k

For k=1 To 9          '逐个显示删除后的数组元素

s=s+Str(a(k))+ ""

Next k

Else

s="该数没有找到"

End If

Label2.Caption=s

End Sub

 ② ③ 

某种纸牌游戏,三人一起玩一副牌,每人17张。5张及以上的连续单牌(不分花色)称为顺子,顺子最大到K,如“A,2,3,5,6”是长度为6的顺子。编写程序,判断游戏刚开始时某玩家有没有顺子,最长的顺子是几张。
  1. (1) 实现上述功能的VB代码如下,但加框处代码有误,请改正。

    Dim a(n) As Integer

    Private Sub Command1_Click()

    Dim max As Integer, count As Integer

    Dim i As Integer, j As Integer

    count=0: max=0

    i=1

    Do While i<=n-1

            '①

    j=i+1

    Do While j <= n

    If  Then         '②

    j=j+1

    count=count+1

    Else If a(j)=a(j-1) Then

    j=j+1

    Else

    Exit Do

    End If

    Loop

    i=    ③   

    If count>max Then max =count

    Loop

    If max<5 Then s ="无顺子" Else s= "最长顺子长度:"+Str(max)

    End Sub

    Private Sub Form_Load()

    '获取17张牌的数值(J、Q、K、A分别对应11、12、13、1),升序存储在数组a中

    End Sub

     ② 

  2. (2) 请将划线处的代码补充完整。
以下程序的输出结果是(   )

a=11

if a>=1 and a<=10

then

a=a*a

else

a=a+a

print a

A . 11 B . 121 C . 22 D . 0
某编码由4个信息位和3个校验位组成,通过对编码信息进行验算,能够检测并纠正一位错误代码。该7位编码中b1~b4为信息位,p1~p3为校验位,位置如表所示:

编码中位

1

2

3

4

5

6

7

对位信息

p1

p2

b1

p3

b2

b3

b4

校验的方式如下,求校验值g1、g2、g3:

g1 = p1 Xor b1 Xor b2 Xor b4

g2 = p2 Xor b1 Xor b3 Xor b4

g3 = p3 Xor b2 Xor b3 Xor b4

其中Xor 为异或运算,规则是:0 Xor 0 =0,0 Xor 1 =1,1 Xor 0 =1,1 Xor 1 =0,p1 Xor b1 是将p1、b1 转换为二进制后按位进行异或运算,如7 Xor 12 的结果为11。

a.若计算得到的校验值g1、g2、g3 均为0,说明校验正确,数据无错误。例如:若7 位编码为1101001,计算校验值g1、g2、g3 值均为0,验证正确。

b.若校验值g1、g2、g3 不全为0,说明数据有错,出错位置为g3g2g1(二进制数表示),纠错的方法是对错误的位进行取反,即“0”变“1”,“1”变“0”。例如:若7 位编码为1111001,计算校验值g1=1、g2=1、g3=0,不全为0,说明数据有错,错误位置在011(二进制数)位,即第3位,原位置上“1”应为“0”,正确编码为1101001。

小明为此编写了VB 程序,程序运行时,在文本框Text1 中输入编码值,单击“校验”按钮Command1 后,在文本框Text2 中输出运行结果,如图所示。

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

  1. (1) 若按上述规则的7位编码为1001000,其中一位有错,则正确的编码应为
  2. (2) 请在划线处填入合适的代码并对加框处改正

    Function check(s As String) As Integer

    Dim i As Integer, g1 As Integer, g2 As Integer, g3 As Integer

    Dim c(1 To 7) As Integer

    For i = 1 To 7

     c(i) = Val(Mid(s, i, 1))

    Next i

    g1 = c(1) Xor c(3) Xor c(5) Xor c(7)

    g2 = c(2) Xor c(3) Xor c(6) Xor c(7)

    g3 = c(4) Xor c(5) Xor c(6) Xor c(7)

    If g1 + g2 + g3 = 0 Then check=0 Else check=

    End Function

    Private Sub Command1_Click()

    Dim i As Integer, m As Integer, Outs As String

    m=  ② 

    If m = 0 Then

      Text2.Text = “验证正确,数据无错误”

    Else

      For i = 1 To 7

     If i = m Then

       Outs=Outs+   ③  

     Else

       Outs = Outs + Mid(Text1.Text, i, 1)

     End If

      Next i

      Text2.Text = “第” + Str(m) + “位上数据有错误,正确编码应为:” + Outs

    End If

    End Sub

     ② ③ 

    加框处改正:

某算法的VB程序段如下:

key = Int (Rnd*5)*2+ 11

i = 1: j = 8: c = 0

Do While i <= j

    m = (i+j+1) \ 2

    If a(m) >= key Then i = m+1 Else j = m-1

    c = c+1

Loop

数组元素a(1)到a(8)的值依次为“23,21,19,18,16,15,14,11”。若该程序段执行后,下列说法错误的是(  )

A . i的值为j+1 B . i的值可能是9 C . j的值可能是5 D . c的值一定是3
暑假小明的弟弟问了他一道小学一年的数学题,题目是:“小红去超市买东西,里面有:巧克力一盒28元、火腿肠一包24元、皮球一个16元、毛巾一条4元、N95口罩一包15元、笔记本一本8元、铅笔盒一个7元、水晶泥一盒12元、水彩笔一盒24元、牛奶一瓶5元等很多商品。小红带的钱刚好购买其中的两样东西。请问她可以买哪两样东西,有几种组合?”为解决这个问题,小明专门编写了一个VB程序。在文本框中text1输入商品和价格,在文本框text2中输入带的钱,单击“挑选”按钮,在列表框list1中输出查询结果。程序运行界面如下图:

请回答下面问题:

  1. (1) 下列对象中,有Caption属性的是(单选,填字母:A .Command1/B .Text1/C .Lis1)。
  2. (2) 实现挑选两样商品功能的VB程序如下,请在划线处填入合适的代码。

    Private Sub Command1_Click()

    Dim n,i,j,k,x,L,R,c As Integer

    Dim goods(1 To 20)As String      'goods(i)存储商品的名称

    Dim price(1To 20)As Integer       'price(i)存储商品的价格

    Dim s,ch As String

    s=Text1.Text:x=Val(Text2. Text)

    j=1:k=0

    For i=1 To Len(s)

        ch=Mid(s,i,1)

        If ch="," Then

          k=k+1

          If k Mod 2=1 Then

           

          Else

              price(k\2)=Val(Mid(s,j,i-j))

          End If

          j=i+1

        End If

    Next i

    n=k\2

    For i=1 To n-1

        For i=1 To n-i

          If price(j)>price(j+1)Then

            k=price(j):price(j)=price(j+1):price(j+1)=k

           

          End If

        Next j

    Next i

    For i=2 To n

     

      L=i:R=n

      Do While L<=R

        m=(L+R)\2

        If price(m)+price(k)=x Then

            c=c+1

            List1. Addltem goods(k)& Str(price(k))&"元 和" & goods(m)& Str(price(m))& "元"

            j=m

            Do While price(j)=price(j-1)

              j=j-1

              c=c+1

              Listl. Addltem goods(k)& Str(price(k))& "元 和" & goods(j)& Str(price(j))& "元"

            Loop

            Do While

              m=m+1

              c=c+1

              List1. Addltem goods(k)& Str(price(k))& "元 和" & goods(m)& Str(price(m))& "元"

            Loop

            Exit Do    ‘Exit Do 表示退出Do循环

        Elself price(m)+price(k)>x Then

            R=m-1

        Else

            L=m+1

        End If

       Loop

    Next i

    List1. Addltem"共有:" & Str(c)& "种组合"

    End Sub

  3. (3) 程序中加框处代码有错,请改正。
该算法的功能是(    )

A . 求输入43个数的平均值 B . 求输入42个数的平均值 C . 求输入41个数的平均值 D . 以上三个都不对
有一组数,从第3项开始,每一项都是前两项的和,如1,1,2,3,5,8…,求第20项的值。在流程图的空白处应该填入(    )。

A . c=a+b B . c=c+a C . c=c+b D . c=c+i
有python程序如下

a=int(input())

b=int(input())

c=input()

if c=='+':

    print(a+b)

elif c=='-':

    print(a-b)

elif c=='*':

    print(a*b)

elif c=='/':

    print(a/b)

else:

print(“输入错误,请重试”)

当程序运行后,小新依次输入 9   2   *

程序输出结果应为(    )

A . 18 B . 11 C . 7 D . 4
有如下VB程序:

Dim a As Integer, b As Integer

  a=1:b=2

  a=a+b

  b=a+b

该程序执行后,变量a和b的值分别是(  )

A . 3,5 B . 5,3 C . 3,3 D . 3,6
在 Visual basic中,要将字符串变量a和b的值连接并将结果在文本框Text1中输出,下列代码合适的是(   )。
A . Str(a+b)=Text1. Text B . Text. Text=a+b C . a+b= Text1. Text D . Text1. Text=a+b
在Python中,语句X+=1的正确含义是(      )
A . 变量X的值与X+1的值相等 B . 将变量X的值存到X+1中 C . 将变量X的值加1后赋给变量X D . 变量X的值为1
我们还可以利用计算机来模拟“割圆术”计算验证圆周率。如图所示,设圆的半径为1,正n边形的边长AB=x,弦心距为h,面积为S,正2n边形的边长AC=x;由勾股定理即可推导出 , 其中x6=1。观察发现,正2n边形的面积等于正n边形的面积加上n个等腰三角形的面积,即。利用这个推导公式,编写如下Python程序,求解π的近似值。据此完成小题。

from math import *     #从math模块调用常用的数学函数

n = int(input("请输人多边形的边数:"))

i=6

x=1

s=6*sqrt(3)/4    #sqrt( ) :math中的函数,用于求算术平方根

while i <=n/2:    #当i> n/2时,结束循环,执行print( )

    h = sqrt(1-(x/2)**2)

    s= s+i*x*( 1-h)/2

    x = sqrt(((x/2)**2+(1-h)**2)

    i=2*i

print( "当正多边形的边数为", n, "时, π的近似值为:", s)

  1. (1) 按照数字化工具的功能分类,Python语言编程软件属于(    )
    A . 信息传输工具 B . 信息加工工具 C . 信息检索工具 D . 信息存储工具
  2. (2) Python文件的后缀名为(    )
    A . .c B . .jar C . .xls D . .Py
  3. (3) s=6* sqrt(3)/4是一条(    )
    A . 输入语句 B . 赋值语句 C . 输出语句 D . 注释语句
  4. (4) “(x/2)**2+( 1-h)**2”表达的代数式是(    )
    A . 2()+1-2h B . ×2+(1-h) ×2 C . 2()+2(1- h) D . ()2+(1-h)
  5. (5) “i<=n/2”中包含①算术表达式②逻辑表达式③关系表达式④赋值表达式(    )
    A . ①② B . ①③ C . ②④ D . ②③
  6. (6) 程序中“#当i> n/2时,结束循环,执行print()"的功能为(    )
    A . 数据输入 B . 数据输出 C . 注释或解释 D . 赋值
  7. (7) “print("当正多边形的边数为" ,n,"时,π的近似值为:" ,s)”的作用是(    )
    A . 数据输入 B . 数据输出 C . 运算 D . 赋值
  8. (8) 在h = sqrt( 1-(x/2)**2)语句中, **是( )运算符 。(    )
    A . B . C . 求余 D .
  9. (9) 在Python程序设计语言中,数据输入通过input函数来实现,input函数的返回值是(    )
    A . 数值 B . 字符串 C . 字典 D . 列表
  10. (10) 利用计算机模拟“割圆术”,计算验证圆周率,体现了数字化学习的(    )特点。
    A . 多样性 B . 局限性 C . 创造性 D . 单一性
  11. (11) 编制计算机程序解决问题的一般过程为①设计算法②编写程序③调试运行程序④分析问题,正确的排序是(    )
    A . ①②③④ B . ④①②③ C . ④②①③ D . ①④②③
(多选)下列变量名中,合法的有(   )
A . _BMi B . true C . 2bmi D . bmi E . B—mi F . B2mi
在Python中要交换变量x和y中的值,无法实现的语句组是(     )
A . z=x;x=y;y=z B . x=y;y=x C . х,у=у,x D . x=x+y;y=x-y;x=x-y
最近更新