1. 某游戏实现相同字母消除操作,规则如下:

1)首先生成一段由字母“a,b,c,A,B,C"随机组成的字符串s;

2)对字符串s从左到右寻找3个及以上连续相同字母(不区分大小写)组成的字符串并进行消除;

3)对消除后的重组字符串再进行相同消除操作,直至完成所有消除操作。

例如,生成字符串s为“BCbbaabAbAaaA",第1次消除字符串“aaa” 后,字符串s重组为“BCcbbbAbAaaA”;第2次消除字符串“bbb" 后,字符串s重组为“BCcAbAaaA”;第3次消除字符串“AaaA” 后,字符串s重组为“BCcAb”。

小陈编写了VB程序,功能如下:单击“生成字符串”按钮Command1, 随机生成由字母“a,b,c,A,B,C”组成的字符串s并显示在文本框Text1中,单击“消除”按钮Command2,在列表框List1中显示各次消除的字符串,在文本框Text2中显示消除后的字符串。程序运行界面如图所示。

(提示:字母“a”的ascii码值为97,字母“A”的asci码值为65)

(1) 若生成字符串s为“ccbBBBccBabcaAA",则第2次消除的字符串为
(2) 请在划线处填入合适的代码。

Dim a(1 To 100) As String

Dim b(1 To 100) As String

Dim s As String

Constn= 15

Private Sub Command1_ Click0

     Dim i As Integer

     Randomize

     For i= 1 To n

         a(i)= Cr

         s=s+ a(i)

     Next i

         Text1.Text=s

     End Sub

     Private Sub Command2 _Click)

         Dim I As Integer, j As Integer, m As Integer, k As Integer

         i=1

         m= 1

         Do Whilei <= Len(s) -2

             k=i

             Do While IsSame(a(i), a(i + 1)) Andi<= Len(s)- 1

                 i=i+ 1

                 If i= n Then Exit Do

             Loop

             If i-k>= 2 Then

                 b(m) =

                 List1 AddItem "第" + Str(m) + "次消除的字符: " + b(m)

                 m=m+ 1

                 s= Mid(s, 1, k- 1) + Mid(s, i+ 1, Len(S)-i)

                 For j= 1 To Len(s)

                     a(j)= Mid(s, j, 1)

                 Next j

                 i=k-3

                 If i<0 Then i=0

             End If

             i=i+1

         Loop

         Text2.Text=s

     End Sub

     Function IsSame(p As String, q As String) As Boolean

         IsSame = False

         If  Then

             IsSame = True

         End If

     End Function

【考点】
运算符、基本运算与表达式; 过程与自定义函数; 分支结构语句及程序实现; 循环结构语句及程序实现;
【答案】

您现在未登录,无法查看试题答案与解析。 登录
综合题 困难
能力提升
换一批
1. 某快递驿站有A、B两类货架,收到的包裹重量小于等于10存放于A货架,其余存放于B货架。编写程序模拟生成取件码和顾客的取件过程,取件码是根据当前已处理的包裹数量生成,如A-0001表示当天第一个处理的包裹存放在A货架,B-0003表示当天第三个处理的包裹存放在B货架。取件码与顾客手机号关联,程序根据输入的手机号显示其所有包裹的取件码,并允许顾客一次性提取或者部分提取。程序的部分运行界面如图a和图b所示。

(1) 当前已处理的包裹取件码是 A-0158,若下一个包裹重量是 12,其取件码为
(2) 定义函数save(pnum,code),参数pnum为手机号,code为取件码。函数功能是将一条包裹信息存储到列表goods和列表dic中。如图a的包裹数据,手机号“180****1215”在两个列表中的数据分别为goods[4]=["B-0005",-1]、goods[9]=["A-0010",4]和 dic[2]=["180****1215",9,2]。

①若调用该函数继续存储手机号“180****1215 ”的包裹, 其取件码是“B-0011 ”,则对应 dic[2]的值变为["180****1215",,]。

②函数 save 代码如下,程序中加框处代码有错,请改正。

def save(pnum,code):

    goods.append([code,-1])

    n=len(goods)-1

    print(n,"号包裹的手机号:",pnum,"取件码:",code)

    num=search(dic,pnum)    #函数返回手机号 pnum 在 dic 中的索引号,未找到返回-1

    if num==-1:

        dic.append([pnum,n,1])             #新增一个包裹信息

    else:

        goods[n][1]=dic[num][1]

        dic[num][1]=n

        

(3) 实现取件功能的部分 Python 程序如下,请在划线处填入合适的代码。

x=input("请输入您的手机号:")

num=search(dic,x)

if num!=-1:

    #输出手机号为 x 的当前所有包裹信息,代码略

    op=int(input("输入 0 取全部包裹,输入 1 取部分包裹:"))

    if op==0:

        print("您的包裹已经取完! ")

        del dic[num]  #删除 dic 中索引为 num 的元素

    else:

        order=input("请输入本次的取件码,只输入#表示结束取件:")

        while order!="#":

           

            p,q=head,head

            while goods[q][0]!=order:

            p=q

           

        if p==head:

            dic[num][1]=goods[q][1]

        else:

            goods[p][1]=goods[q][1]

        dic[num][2]-=1

        if dic[num][2]==0:

            print("您的包裹已经取完!")

            break

        #输出手机号为 x 的当前所有包裹信息,代码略

        order=input("请输入本次的取件码, 只输入#表示结束取件:")

else:

    print("查无此号,请检查后重新输入!")

综合题 困难
2. 小明打算搭建一个大棚温度报警控制系统,传感器获取的温度数据经智能终端和IOT模块发送到服务器,服务器端程序采用Flask Web框架编写,网站的功能页面规划如下表所示:

序号

访问地址

功能说明

1

/

主页,显示历史温度列表

2

/input?id=1&temp=25

提交传感器id和温度数据,并返回提示

3

/execute

分析统计温度数据

……

……

……

实现上述系统的服务器端程序部分代码如下:

import sqlite3

import datetime

from flask import Flask, render. _template, request

DATABASE = 'data.db'

app= Flask(_name_ )

@app.route("/")

#视图函数代码略

aproute("  ①  ", methods-=['  ②  '])     #提交数据功能页面的路由

def input_ data():

    id = intrequest.args. get(id))

    value = float_(  ③  )

    nowtime = datetime.datetime.now()

    nowtime = nowtime.strftime("%Y-%m-%d %H:%M:%S)

    db = sqlite3.connect(DATABASE)

    cur = db.cursor()

    cur.execute("INSERT INTO tempdata(id, value, updatetime)

    VALUES(%d, %f, %s")" %(id, value, nowtime))

    db.commit()

    cur.close()

    db.Close()

    if 16< value < 25:

        return "当前温度适宜"

    elif value <= 16:

        return'当前温度较低'

    elif value >= 25:

        returm '当前温度较高'

if__ name__= "main_":

    app.run(host=" 10.235.0.1", port= =5000, debug=True)

(1) 由以上代码可知访问主页的地址是http://
(2) 阅读代码可知提交的数据保存在数据表中。
(3) ①处路由为,②处的请求方式为(GET/POST二选地)
(4) ③处应填写的代码为
综合题 普通
3. 校服烘干。五校联考要求学生统一穿校服参加,但是不幸的是,考试前所有考生的校服全都打湿了。一件衣服在自然条件下用一秒的时间可以晒干a点湿度。现在学校里有且仅有一台烘衣机,且目前烘衣机全部断货(即无法购入新机器)使用用一秒烘衣机可以让一件衣服额外烘干b点湿度(一秒晒干a+b湿度),但在同一时间内只能烘一件衣服。现在有n件衣服,第i衣服的湿度为w(i)(保证互不相同),要你求出弄干所有衣服的最少时间(湿度为0为干)。编写VB程序,实现上述功能。运行程序,显示窗体From1,在文本框Text1输入衣服总数n,在文本框Text2中输入a,在文本框Text3中输入b,在文本框Text4中输入各件衣服的湿度(共n个数据,数据与数据使用空格隔开),点击命令按钮Command1后,在标签Label1中显示弄干所有衣服的最少时间。程序运行界面如图所示。请回答下列问题:

(1) 若要使程序运行时,命令按钮Command1上显示为“计算”,可以在事件处理过程中添加语句Command1.Caption="计算"。(单选,填字母:A .Form_Load/B .Form1_Load/C .Command1_Click/D .Form1_Start)
(2) 实现上述功能的VB程序如下,请在划线处填入合适代码。

Const maxn = 500005

Dim n As Long, a As Long, b As Long

Dim f(1 To maxn) As Long

Dim i As Long, tby As Long

Private Sub Command1_Click()

    tby = 1

    n = Val(Text1.Text) : a = Val(Text2.Text) : b = Val(Text3.Text)

    For i = 1 To n

        f(i) = Getin()

    Next i

    Dim l As Long, r As Long, m As Long

    l = 0: r = n

    Do While l <= r

        m = (l + r) / 2

        If Then

            r = m - 1

        Else

            l = m + 1

        End If

    Loop

    Label1.Caption = Str(r + 1)

End Sub

Function check(x As Long)

    Dim y As Long

    y = x

    For i = 1 To n

    Dim tmp As Long

   

    If tmp > 0 Then

        If y < 0 Then

            check = True

            Exit Function

        End If

    Next i

    check = False

End Function

Function Getin() As Long

    Dim aaa As String

    aaa = Mid(Text4.Text, tby, 1)

    If aaa = " " Then tby = tby + 1

    aaa = Mid(Text4.Text, tby, 1)

    Dim bbb As Long

    bbb = 0

    Do While aaa <> " " And tby <= Len(Text4.Text)

        bbb = bbb * 10 + Val(aaa) : tby = tby + 1

        aaa = Mid(Text4.Text, tby, 1)

    Loop

    Getin = bbb

End Function

(3) 程序中加框处代码有错,请改正。
综合题 困难