分支结构语句及程序实现 知识点题库

大写字母分段加密。输入n(n≤50)个大写字母组成的原文字符串,以规模m为一段进行加密。加密方法为:(1)找出每段中最长的连续递增子串长度max;(2)将该段每个字符后移max位进行加密,如果后移后的字母ASCII码值超过90(Asc("Z")=90),则从小写字母“a”(ASCII码值为97)开始表示;(3)规模不足m部分不做处理。

例如:n=10,原文字符串为“ABCXYEFDOK”,m=4时,处理过程如下:

其中,第1段中字母“X”后移4位后超过字母“Z”的ASCII码值,用“b”表示,第2段中字母“Y”后移2位用“a”表示用VB编写程序,程序运行时,在文本框Text1中输入原文字符串,在文本框Text2中输入每段个数,单击“加密”按钮Command1后,在文本框Text3中显示加密结果。程序运行界面如图所示。

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

  1. (1) 已知加密结果是“RaVJON”,m=4,根据上述加密规则,推得原文是
  2. (2) 请在划线处填入合适的代码。

    Dim a(0 To 50) As String, b(1 To 50) As Integer

    Private Sub Command1_Click ()

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

    n = Len(Text1. Text)

    For i=1 To n

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

      b(i) =

    Next i

    m=Val (Text2. Text)

    max=1

    For k=1 To n\m

      For i=(k-1)*m+2 To k*m

        j=i

        Do while

          b(i)=b(i)+1

          j=j-1

        Loop

        If b(i)>max Then

          max = b(i)

        End If

      Next i

      For i=(k-1)*m+1 To k*m

        s =s+ mingtoni (a(i), max)

      Next i

      max=1

    Next k

    If n Mod m <> 0 Then

      For i=(n\m)*m+1 To n

        s=s+ a(i)

      Next i

    End If

    Text3.Text = s

    End Sub

    Function mingtomi(e As String, d As Integer) As String

      If Ase(c) + d > Asc("Z") Then

       

      Else

        mingtomi = Chr(Asc(c) + d)

      End If

    End Function

某算法流程图如图所示,该流程图对应的程序段是(      )

A . B . C . D .
listque=[]                        #定义列表listque存储订单

x=0

while(x!=4):                      #当x=!4时,执行循环

    print('1. 添加订单')

    print('2. 发货')

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

    print('4. 退出')

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

    if    ①    :

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

           ②            #在列表listque中添加订单号

    elif x==2:

          ③           #如果订单列表为空

            print("订单列表为空")

        else:

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

    elif x==3:

        print("等待发货:",listque)            #查询列表listque中的订单号

    print()

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

  1. (1) 此列表,定义的是列表。(从“空、非空” 里选填)
  2. (2) 补充划线处的内容。

     ② ③ 

有如下VB程序:

x=5:y=2

If x>y Then

  y=y+6

  If y>9 Then y=x*y

  Else

  y=y+2

  y=x+y

End If

Text1.Text=Str(y)

程序运行后,文本框Text1上显示的内容为

任意一个大于或等于4的偶数,都可以用两个素数之和表示,这就是哥德巴赫猜想。如:4=2+2,6=3+3,8=3+5,12=5+7,98=19+79。

编写一个验证哥德巴赫猜想的VB程序,程序运行时,在文本框Text1中输入一个大于或等于4的偶数,单击“验证”按键Command1后,如果猜想验证成功,则在文本框Text2中显示“Yes”,并在列表框List1中显示用两个素数表示该偶数的等式;否则显示“No”。程序运行界面如图所示。

实现上述功能的VB代码如下,但加框处代码有误,请改正。

Function judge(x As Integer) As Boolean

  Dim j As Integer

  judge=True

  j=2

    Do While j<=x-1 And judge=True

        If x Mod j=0 Then

            judge=False

        Else

            j=j+1

        End If

    Loop

End Function

Private Sub Command1_Click()

  Dim n As Integer, p As Integer

  Dim q As Integer, flag As Boolean

  n=Val(Text1. Text)

  p=1

  flag=False

  Do While  And p<n           ‘①

    p=p+1

                                ‘②

    If judge(p) And judge(q) Then

        Text2. Text="Yes"

        flag=True

        List1. Addltem Str(n)+"="+Str(p)+"+"+Str(q)

    End If

  Loop

  If flag=False Then

    Text2.Text="No"

  End If

End Sub

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

在数据加密过程中,为了防止加密方法外泄,往往使用密钥,只有掌握了密钥才能正确加密、解密。某信息加密VB程序,对输入的明文(由英文字母或数字组成的字符串)进行加密,输出加密后得到的密文。该程序使用的密钥是一个2位十进制数。数据加密方法对明文中的每个字符进行如下处理:

①将该字符的ASCII码加密钥后,转换成对应的8位二进制;

②将对应的8位二进制数进行按位取反(1变0,0变1);

③将最后产生的8位二进制数转换成对应的十六进制数;

④将得到的十六进制数码交换顺序后连接,即为该明文的密文。

例如,明文大写字母“A",输入的密钥数值为25,得到的密文为5A,信息加密过程如图所示。

小李编写了加密算法的VB程序,在文本框Text1中输入明文,单击“加密”按钮Command1。程序对明文数据依次进行加密处理,加密后生成的密文将显示在文本框Text2中。程序运行界面如图所示。

  1. (1) 如果输入的明文为大写字母“F",密钥为16,则生成的密文是
  2. (2) 实现上述功能的VB程序如下,请在画线处填入合适的代码。

    Function btoh(m As String)As String     ‘将4位二进制数转换成对应的十六进制数

      Dim s As Integer, i As Integer

      Dim st As String

      st="0123456789ABCDEF"

      s=0

      For i=1 To 4

          s=s*2 +Val(Mid(m,i,1))

      Next i

         ①   

    End Function

    Private Sub Command1_Click( )

      Dim ans,ch,s,ret,s1,s2 As String

      Dim a,b,c As Integer

      s= Text1.Text

      c= Val(Text2.Text)

      For i = 1 To Len(s)

          ch=Mid(s,i,1)   ‘取出第i个字符存入变量ch

          a=Asc(ch)

          b=a+c

          ret = " "

          For m=1 To 8             ‘完成加密步骤①和步骤②

              n=(b+1)Mod 2

              ret =str(n)+ ret

                 ②   

          Next m

          s1 = btoh(Mid(ret,1,4))    ‘完成加密步骤③和步骤④

          s2 = btoh(Mid(ret,5,4))

          ans=ans +s2+s1

      Next i

      Text3.Text=ans

    End Sub

    以上程序段运行时,为了实现上述功能,画线处应填入的代码分别为:①;②

  已知数组a中的元素按非递减有序排列,在程序运行时显示在Text1中。编写程序实现如下功能:删除数组的重复元素,并更新数组的长度,在Text2输出新的数组元素值。程序运行界面如图所示。

  1. (1) 要是程序运行时,窗体Form1标题立即立即显示为“删除重复数组元素”,可在(单 选:A . Form_Load()/B . Form_click()/C . Command1_Click())事件过程中添Form1.Caption=”删除重复数组元素”语句来实现。
  2. (2) 为实现上述功能的VB程序如下,请在划线处补充缺失的代码。

    Const n = 20

    Dim a(1 To n) As Integer

    Dim lena As Integer

    '数组a的实际长度

    Dim s As String

    Private Sub Form_Load()

    '生成lena个长度的非递减序列,并输出到文本框text1中,代码略

    End Sub

    Private Sub Command1_Click()

        Dim i As Integer, j As Integer

        i = 1

        Do While i < lena

            If a(i) <> a(i + 1) Then

                i =

            Else

                For j = i + 1 To lena

                    a(j - 1) =

                Next j

                 

            End If

        Loop

        s = ""

        For i = 1 To lena

            s = s + Str(a(i))

        Next i

        Text2.Text = s

    End Sub

执行下列程序以后的结果是(    )

print("请输入3个数:")

x=int(input("x= "))

y=int(input("y= "))

z=int(input("z= "))

temp=0

if x>y:

    temp=y

    y=x

    x=temp

if x>z:

    temp=z

    z=x

    x=temp

If y>z:

    temp=z

    z=y

    y=temp

print(x, y, z)

A . 从小到大排序 B . 从大到小排序 C . 都变成最大的数 D . 都变成最小的数
地球绕太阳的运行周期为365天5小时48分46秒(合365.24219天),即一回归年。公历的平年只有365天,比回归年短约0.2422天,每四年累积约一天,把这一天加于2月末(即2月29日),使当年的时间长度变为366天,这一年就是闰年。判断某一年是否是闰年的方法是年份数能被4整除,但不能被100整除,或者年份数能被400整除。以下是一段用于判断某一年是否是闰年的程序。

 ② ③ ④ ⑤

阅读下列用python解一元二次方程的程序代码。

import   ① 

a=float(input("请输入方程系数a(!=0):"))

b=float(input("请输入方程系数b:"))

c=float(input("请输入方程系数c:"))

d=b*b-4*a*c

if d>0:

    x1=(-b+  ②  )/(2*a)

    x2=(-b-  ②  )/(2*a)

    print("方程有两个不同的解",x1,x2)

elif   ③  :

    x1=-b/(2*a)

    print("方程有两个相同的解",x1)

else:

print("方程无解")

下列选择错误的是(  )

A . ①填写math B . ②填写math.sqrt(d) C . ③填写d==0 D . 以上都不对
有如下程序段:

map =“ 01234567890123456789012345”

tel = Text1.Text

For i = 1 To Len(tel)

    c = Mid(tel, i, 1)

    If c >=“ 0” And c <=“ 9” Then

        s = s + c

    ElseIf c >“ A” And c <=“ Z” Then

        s = s + Mid(map, Asc(c) - Asc(“A”) + 1, 1)

    End If

Next i

在text1 文本框中输入“hi,NICETOSEEYOU-2016”,程序执行完后s 的结果是( )

A . 1602726222282016 B . 2713837333392016 C . 44,1602726222282016-2016 D . 3824948444402016
设有n盏灯,放在一排。从1到n依次顺序编号。有n个人也从1 到n依次编号。第1 个人(1号)将灯全部关闭,第2 个人(2号)将2 的倍数的灯打开,第3个人(3号)将编号为3 的倍数的灯做相反处理(该灯如果已打开,则将它关闭;如为关闭则将它打开),以后的人和3号一样,将编号为自己号数倍数的灯做相反处理。问当n个人操作后,哪几盏灯是亮的(亮灯为0,关闭为1)。程序代码如下:

Private Sub Command1_Click()

    Const n = 20

    Dim i As Integer, j As Integer

    Dim a(1 To n) As Integer

    For j = 1 To n

        a(j) = 0

    Next j

    For i = 1 To n

        For j = 1 To n

            Ifthen

               

            End If

        Next j

    Next i

    For j = 1 To n

        If a(j) = 0 Then list1.AddItem Str(j)

    Next j

End Sub

为了实现程序该功能,在画线处填写正确代码。

给定一个数组(有n个元素),小李通过边分段、边合并的方式将n个数据处理成一个非降序数据段(a(1)≤a(2)≤a(3)≤……≤a(n)),每一轮数据处理方法如下:

1)查找相邻两个非降序数据段:在未处理的数据区域中,从前往后找出第一个最长非降序数据段。若该数据段后面没有元素,则本轮处理完毕:否则在第1个数据段的后面,从前往后找出数组中第二个最长非降序数据段。

2)合并两个数据段:借助数组tmp.将查找到的两个相邻数据段合并成一个非降序数据段,然后将合并后的数据依次存回到原数组中。

3)若数组中还有未处理的数据,则重复(1)(2)步骤。每一轮数据处理完毕后,重新从数组第1个数据开始进行下一轮处理。若检测到某一轮没有合并处理,则说明n个数据已构成非降序数据段,数据处理结束。

  1. (1) 根据上述描述,若数组各元素为“3,9,7,6,8,2,1,5,7,4”,则第一轮合并处理完成后,数组中的数据依次是:(用“,”间隔)。
  2. (2) 实现上述功能的VB程序如下.请在划线处填入合适代码。

    Const n = 10

    Dim a(1 To n + 5) As Integer

    Din tmp(1 To n + 5) As Integer

        '读取n个整数保存到数组a中,并在文本概Text1中显示,代码略。

    Private Sub Comnand1_ Click()

        Do While True

            If Not Merge() Then Exit Do

            '在列表概List1中输出这一轮合并后的数据,代码略。

        Loop

    End Sub

    Function Position(low As Integer) As Integer

        Din i As Int eger

        For i=low To n-1

            If  Then Exit For

        Next i

        Position = i

    End Function

    Function Merge() As Bool ean

        Dim i As Integer, flag As Boolean, p1 As Integer, p2 As Integer

        Dim low1 As Integer, high1 As Integer, high2 As Integer

        flag = False: low1= 1

        Do While low1 < n

            high1 = Position(low1)

            If high1 = n Then Exit Do Else flag = True

            high2 = Position(high1 + 1)

            p1=low1:p2=high1+1

            i = low1

            Do While

                If p2>high2 Or p1 <= high1 And a(p1) < a(p2) Then

                    tmp(i)=a(p1):p1=p1+1

                Else

                    tmp(i)=a(p2):p2=p2+1

                End If

                i =i+1

            Loop

            For i = low1 To high2

                a(i) = tmp(i)

            Next i

            

        Loop

        Merge = flag

    End Function

以下VB代码运行后,在文本框Text1中输入1,则选择语句If k<=9 Then k=k+i执行的次数为(    )

Private Sub Text1_Changeo( )

    Dim k As Integer, i As Integer

    k=Val(Text1.Text)

    For i=1 To 3

        If k<=9 Then k=k+i

    Next i

Text1.Text=Str(k)

End sub

A . 3 B . 5 C . 6 D . 9
阅读程序。分析代码并回答问题。

list=['a','b','c','d','e','f','g']

list1=[]

list2=[]

for i in range(7):

    if i%2==0:

        list1.append(list[i])

else:

    list2.append(list[i])

print(list1)

print(list1)

 

  1. (1) list的数据类型是
  2. (2) list中的元素的数据类型
  3. (3) list1=[ ]的作用是
  4. (4) for i in range(7)语句中,i的实际数据范围是从
  5. (5) append(list[i])的作用是
小明是班级里的生活委员,运动会期间他将班级支出明细记录在记事本文件中,现在想将各项支出的结果做一个统计。他编写了一个实现该功能的Python程序。程序运行时,输出记事本文件中的原文内容,并提取其中的数值进行计算。程序运行结果如下图所示:

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

f=open("支出.txt","r")

mx=f.read()

print(mx)

t="";s=0

for i in mx:

    if :

        t=t+i

        flag=True

    elif flag:

        s=s+int(t)

        t=""

        flag=False

if flag:

print("一共支出:",str(s),"元")

某学校推出一款食堂套餐查询小程序。学生登录该小程序后,可以查询相关套餐信息,系统根据以往购买评分,给出相关套餐的平均评分以及推荐指数。

编写一个VB程序实现如下功能:程序运行后自动读取数据库中关于食堂套餐的相关数据,在文本框Text1中输人查找套餐的关键词,搜索到的套餐信息在列表框List1中显示,程序计算套餐平均评分(四舍五入保留一位小数)和推荐指数,并显示在套餐信息下方。程序运行界面如图所示。

Const n = 50

Dim food(1 To n) As String

Dim price(1 To n) As Integer

Dim score(1 To n) As Single

Private Sub Form_ Load()

‘读取数据库中套餐名称、套餐价格和套餐评分信息分别存储于数组food、price和score中,代码略。

End Sub

Private Sub Command1 _Click()

    Dim food(1 To n) As String, s As String

    Dim price(1 To n) As Integer

    Dim judge(1 To n) As Boolean

    Dim score(1 To n) As Single,  sum As Single,  ave As Single

    Dim i As Integer, j As Integer, t As Integer, q As Integer

    Dim w1 As Boolean, w2 As String, w3 As Integer, w4 As Single

    s = Text1.Text : q= 0

    For i=1 To n

            ①    

        j= 1

        Do While True

            If j+Len(s)-1<=t Then

                If s = Mid( food(i),  j, Len(s)) Then

                    judge(i) = True

                    q=q+1

                Else

                        ②   

                End If

            End If

            If  Then

                Exit Do

            End If

        Loop

    Next i

    For i=1 To n-1

        For j=n To i+1 Step -1

            If Not judge(j-1) And judge(j) Then

                w1 = judge(j): judge(j) = judge(j-1): judge(j-1) = w1

                w2 = food(j): food(j) = food(j - 1): food(j-1) = w2

                w3 = price(j): price(j) = price(j -1): price(j-1) = w3

                w4 = score(j): score(j) = score(j-1): score(j -1) = w4

            End If

        Next j

    Next i

    For i=    ③   

        List1. AddItem food(i) +Str( price(i))+"元"

        sum =sum+score(i)

    Next i

ave = Int(sum/ q * 10 +0.5) / 10

‘根据平均评分ave 的值给出推荐指数。若平均评分高于4.5分显示推荐指数"* **",若平均评分高于4.0分显示推荐指数"* *",4.0分以下的显示推荐指数" *",代码略。

End Sub

  1. (1) 程序编写完成后,若要得到运行文件,则保存文件类型为(单选,填字母:A . *.exe /B . *. frm /C . *. vbp/D . *. txt)
  2. (2) 实现上述功能的VB程序如下,请在划线处填入合适的代码。

  3. (3) 程序中加框处代码有错,请改正。
有如下 VB 程序段

i = 1: j = 6: s = ""

Key = Val(Text1.Text) Randomize

Do While i <= j

m = Int(Rnd * (j - i + 1) + i) s = s + Str(a(m))

If a(m) < Key Then j = m - 1

ElseIf a(m) > Key Then i = m + 1

Else

Exit Do

End If

Loop

数组元素 a(1)到 a(6)的值依次为“88、76、64、25、24、12 ”,文本框 Text1 中输入 key 值,执行该程序段,s 值不可能的是(    )

A . 76     88 B . 88     12  25   24 C . 25     64  88  76 D . 64     12  88   24
用Python编辑器打开“Y:\116”下的文件“成绩等级.py”,进行以下操作并保存结果。

学期末,李老师要根据学生的总成绩给出相应的等级:成绩90分及以上(包含90分)等级为“优秀”,成绩在90和75(包含75分)之间等级为良好,成绩在75和60(包括60)之间等级为“合格”,60分以下为不合格。其中信息技术课的“总成绩=0.3*平时成绩+0.7*期未成绩",(注意:平时成绩和期末成绩的满分均为100分

请填空完善该程序,实现功能:输入平时成绩和期末成绩,输出学生的成绩等级。

#此程序功能是实现输出成绩等级。

pscore=int(input("请输入平时成绩:"))        #输入平时成绩

qscore=                      #请输入期末成绩

score=            #计算总成绩

if score>100 or score<0:

    print("你的成绩输入有误")

elif :                           # 优秀等级的条件

    print("优秀")

elif score>=75:

                   # 输出相应等级

elif score >= 60:

    print("合格")

:

print("不合格")

新冠疫情背景下,测量体温成为了常态。
  1. (1) 小明利用micro:bit开发板实现测量体温的功能,对应Python代码如下:

    from microbit import *

    while True:

        n=temperature()

        if 34<=n<=36.5:

            print('体温为'+str(n)+',体温偏低')

        if 36.5<n<=37.5:

            print('体温为'+str(n)+',体温正常')

        if 37.5<n<=40:

            print('体温为'+str(n)+',体温偏高')

        sleep(2000)

    如果小明的体温为36.8℃,则输出结果为

  2. (2) 小明希望向web服务器传输监测数据,并通过数据库进行记录。如果他希望进行信息系统搭建,那么他选择的架构是(填写:B/S或C/S)模式。他选择使用SQLite3数据库,以下不是其特点的一项是

    A. 轻量级   B. 独立性,没有依赖,无序安装   C.对大小写有严格的区分

  3. (3) 下列工作不属于概要设计阶段的是________。
    A . 开发者模式选择 B . 模块结构设计 C . 系统物理配置 D . 数据库管理系统选择
最近更新