2.2 算法的控制结构 知识点题库

RGB颜色模式是用8位二进制数表示红色、8位二进制数表示绿色、8位二进制数表示蓝色即使用24位二进制数表示一种颜色的模式。若将每位二进制数取反,即(0改为1、1改为0)就会变为另一种颜色,我们称这种方式为颜色反相。小明编写了一个VB程序实现上述功能,在名称为o_c_txt的文本框中输入原始颜色如#000000,点击命令按钮fx_cmd后,在名称为f_c_lab的标签中输出反相后的颜色如#FFFFFF。运行效果如图所示。实现上述功能的算法如下:

  数组dzb_h的16个元素分别存放16进制数的16个基本数码。

  依次取出原始颜色代码中每一位对应的16进制数码,例如原始颜色代码为#123456,第1次取出1,第2次取出2……

  在数组dzb_h各元素中找到对应16进制数码的元素

  运用规律:0+F=1+E…=7+8取得反相色并累加,例如:数组dzb_h第1个元素值的反相色的值是数组dzb_h第16个元素值。

  输出得到的反相色。

  实现上述功能的VB程序代码段如下,请完善相关程序代码。

Private Sub fx_cmd_Click()

Dim dzb_h(1 To 16) As String

Dim o_c As String, f_c As String, i As Integer, xbxh As Integer, c As String

dzb_h(1)="0":dzb_h(2)="1":dzb_h(3)="2":dzb_h(4)="3":dzb_h(5)="4":dzb_h(6)="5":dzb_h(7)="6"

dzb_h(8)="7":dzb_h(9)="8":dzb_h(10)="9":dzb_h(11)="A":dzb_h(12)="B":dzb_h(13)="C"

dzb_h(14)="D":dzb_h(15)="E":dzb_h(16)="F"

o_c=o_c_txt.Text     

 

f_c="#"

  Do While i<=Len(o_c)

    c=Mid(o_c,i,1)

    If Asc(c)>96 Then

    xbxh=1

    Do While xbxh<17

      If  Then

        f_c= 

        Exit Do

      End If

      xbxh=xbxh+1

    Loop

    i=i+1

  Loop

  f_c_lab.Caption=f_c

End Sub

阅读下面程序:

Dim i As Integer, c As String, s As String, t As String

s=“GaoEr1YueXKChongA!”

For i = 1 To Len(s)

   c=Mid(s, i, 1)

   If c >= “A” And c<=“Z” Then t=t+c

Next i

Text1.Text = t

程序运行结束后是在文本框Text1中输出的结果是(  )

A . GEYXKCA B . aoeuehong C . ACKXYEG D . gnoheueoa
下面的程序段运行后的结果为(    )

s=1

for i in range(1,6,2):

  s=s+i

  print(s)

A . 15 B . 10 C . 12 D . 9
有如下VB程序段:

Private Sub Command1_Click( )

  Dims As String, i As Integer

  s=Text1.Text

  For i=1 To 8 Step 2

      s=ds(s, i)

  Next i

  Text2.Text=s

End Sub

Function ds(s As String, m As Integer)As String

  Dim n As Integer

  n=Len(s)

  If m<1 0r m>n Then ds= "位置有误"

  If m=1 Then ds=Mid(s, 2, n-1)

  If m=n Then ds=Mid(s, 1, n-1)

  If m <n Then ds=Mid(s, 1, m-1)+Mid(s, m+1, n-m)

End Function

若在文本框Text1中输入“TXHOLLYCLASS”,执行该程序段后,文本框Text2中显示的是(  )

A . THLYLS B . XHLLCLSS C . TXHOLLY D . XOLCLASS
某数组a(1)~a(10)中的数值分别为:3,8,5,7,6,1,4,9,2,10,v(1)~v(10)均初始化为True,有如下程序段:

cnt = 0

For i = 1 To 10

    If (v(i)) Then

        j = i

        Do While (v(j))

            v(j) = False

            j = a(j)

        Loop

        cnt = cnt + 1

    End If

Next i

执行上述程序段后,cnt的值是(    )

A . 3 B . 4 C . 5 D . 6
有如下VB程序段:

Dim x As String,y As String

Dim ans As Integer

x="5":y="20":ans=0

If x>y Then ans=Val(x) Else ans=Val(y)

ans=ans +Val(x+y)

Text1.Text=Str(ans)

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

A . 25 B . 30 C . 540 D . 525
“若是本书店会员,所有商品打八五折,否则无折扣”,用算法描述这一问题,合适的算法结构是(     )
A . 分支结构 B . 循环结构 C . 顺序结构 D . 树形结构
有如下VB程序段

Dim k As Integer, num As Integer, m As Integer

Dim s As String, ans As String

s =" abcdefghi jk lmnopqrs tuvwxyz "

k=26:ans=””

m = Val(Text1.Text)

Do While m> 0

    x=Int(Rnd()*k)+1

    ans=ans+Mid(s, x,1)

    s =Mid(s,1,x-1)+Mid(s,k,1)+Mid(s,x+1,26-x)

    k=k-1:m=m-1

Loop

Text2.Text = ans

文本框Text1中输入4,执行上述程序后,文本框Tex2中有显示的内容不可能为(    )

A . snyg B . tuna C . vmlc D . Amzm
网店接受了大量的订单,如何安排发货呢?实际上,网店在处理订单时,一般采取“先下单,先发货”的原则,阅读下面的Python程序,下列选择中正确的是(      )

listque=[]               #定义列表listque存储订单

x=0

while(x!=4):

    print('1. 添加订单')

    print('2. 发货')

    print('3. 查看订单列表')

    print('4. 退出')

    x=int(input("输入你的选择:"))

    if x==1:

        y=input("输入订单编号:") 

        listque.append(y)

    elif x==2:

        if len(listque)==0:

            print("订单列表为空")

        else:

            print("发货单号:"+listque.pop(0)) 

    elif x==3:

        print("等待发货:",listque)

    print( )

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

A . listque.append(y)增加订单编号,listque.pop(0)出货,删除订单编号 B . listque.append(y)增加订单编号,listque.pop()出货,删除订单编号 C . 此程序的数据结构是先进先出的栈 D . 如此程序的数据结构是先进先出的“队列”,可以用listque.insert(y)代替listque.append(y)插入添加订单
循环次数未知时,我们通常称为,只有当成立时,才执行循环体。在python中,使用语句来创建这类循环。
以下Python代码的运行结果是(   )。

a = 3

b = 4

a = a * b

print(a)

A . 3 B . 4 C . 12 D . a*b
小曲使用while写了一个最接近平方数的程序,用于计算比整数limit小的最大平方数,并将其存储在变量nearest_square中。请根据下面程序分析,代码第7行输出为(    )。

A . 36 B . 40 C . 49 D . 0
读Pyton程序代码,回答下列问题:
  1. (1) 代码一:

    def fun(b):

        c=a*b

        return C

    a=4

    print(fun(a))

    程序执行后,输出的结果是

  2. (2) 代码二:

    s=["Java", "C++", "Python", "C","PHP*"]

    max=s[0]

    i=1

    while i<len(s) :

        if max<s[i]:

            max=s[i]

        i+=1

    print (max)

    程序执行后,输出的结果是

已知由字母组成的字符串s,现要实现如下功能:将字符串s中的字母按照26个英文字母顺序依次输出(重复出现的字母只需输出一次)。如s="Congratulate",输出结果为"aceglnortu",为实现上述功能,在横线处填入的代码应该是(    )

Dim a(1 To 26)As Integer

    s=Text1. Text

    For i=1 To Len(s)

           ①      

        If c>="A" And c<="Z" Then c=Chr(Asc(c)+32)

            ②    

    Next i

    For i=1 To 26

        If a(i)<> 0 Then Label1.Caption= Label1.Caption+     ③    

Next i

A . ①c=Mid(s,i,1)   ②a(Asc(c)-96)=a(Asc(c)-96)+1   ③Chr(96+i) B . ①c=Mid(s,i,1)   ②a(i)=a(i)+1   ③Chr(a(i)) C . ①c=Mid(s,i,1)   ②a(Asc(c)-96)=a(Asc(c)-96)+1   ③Chr(a(i)) D . ①c=Mid(s,i,1)   ②a(i)=a(i)+1   ③Chr(96+i)
执行下列Python程序段后,变量n的值是(   )

n=0

for i in range(1,4):

   n+=i

A . 4 B . 3 C . 6 D . 1
下列选项中,不能实现表达式1-1/3+1/5-1/7+1/9- 1/11计算的是(    )

A

Sum=0

For i=1 To 12 Step 2

Sum =Sum+1/i

Sum =-Sum

Next i

B

Sum=1:t=1

For i=3 To 11 Step 2

Sum= Sum+t/i

t =-t

Next i

C

Sum=0

For i=1 To 11 Step 4

Sum =Sum+1/i

Sum =Sum-1/(i + 2)

Next i

D

Sum=1

For i=3 To 11 Step 2

t=(-1)^ (i\2)

Sum= Sum+t/i

Next i

A . A B . B C . C D . D
现在有一个程序用来解决以下问题:如果有总量共1020个西瓜,第一天卖掉总数的一半后多卖出了两个,以后每天卖剩下的一半多两个,那么几天以后卖完呢?

请将下列程序补充完整。

tc=1020

c=0

while  :

  tc=tc-(tc/2+2)

 

print(c)

下面程序输入X的值,按以下公式求Y的值。

 

Private Sub Command1_Click( )

    X=Val(Text1.Text)

    Select Case X

        Case  

            Print “出错”

        Case Is<0

            Y=100-X

        Case 0 To 100

            Y=100+X

        Case   

            Y=400

    End Select

    Text2.Text=X

End Sub

求解下列问题最适合用选择结构的是(    )。
A . 求1到20之间所有偶数的和 B . 求某球队队员的平均年龄 C . 已知正方形的边长A,求正方形的周长C和面积S D . 解不等式Ax+b>0(A≠0)
有以下Python程序段:

a=[1,2,3,4,5]

b=[1,3,5,7,9]

for i in range(10):

    if i in a:

    if i in b:

        print(i,end=“→”)

  以上程序段执行后的输出结果是(    )

A . 1→3→5→ B . 1→3→5 C . 1 3 5 D . 报错
最近更新