1. 假期学校联合社区开展志愿者活动,共组织A、B、C三项活动。活动报名采用线上限时报名,三项活动共45个名额,报名系统根据报名时间取前45名学生并按照先后生成45个报名序号。由于活动场地和组织人员等因素限制,每项活动都有限定人数,因此可能会出现活动人数超额的情况。根据先报先得的原则,在每项活动报名满员后的时间段内报名的学生需要调剂重报,系统会自动推送需重报名的学生报名序号。

编写VB程序,实现上述功能。运行程序,在列表框List1中显示45位报名学生的报名序号和所选活动名称。单击“统计”按钮Command1,在列表框List2中显示需要调剂重报活动的学生报名序号。程序运行界面如图所示。

(1) 语句″List1.Additem xm(i)″中的″Additem″是(单选,填字母:A .对象名B .方法名C .属性值) 。
(2) 实现上述功能的部分VB程序如下,请在划线处填入合适的代码。

Const n=45

Dim a(1 To n) As String, xh(1 To n) As String

Dim c(1 To 3) As Integer

Private Sub Form_Load()

    '在数据库中读取前45位学生的报名序号和所选活动项目名称,分别存入数组xh和数组a,在List1中显示。读取三项活动的限报人数,存入数组c,代码略

End Sub

Private Sub Command1_Click()

    Dim b(1 To 3) As Integer, i As Integer, j As Integer, k As Integer

    Dim t1 As String, t2 As String

    For i=1 To n-1

        For j=n To i+1 Step-1

            If Then 

                If a(j)=″A″ Then

                    b(1)=j-1

                Else

                    b(2)=

                End If

                t1=a(j): a(j)=a(j-1): a(j-1)=t1

                t2=xh(j): xh(j)=xh(j-1): xh(j-1)=t2

            End If

        Next j

    Next i

    b(3)=n

    i=1: k=1

    Do While i <=n

        If c(k)=0 And i <=b(k) Then

            Do While i <=b(k)

                a(i)=″″

                i=i+1

            Loop

            k=k+1

        ElseIf    Then

            k=k+1

        Else

            

            i=i+1

        End If

    Loop

    For i=1 To n

        If a(i)=″″ Then List2.AddItem xh(i)

    Next i

End Sub

(3) 程序中加框处代码有错,请改正。
【考点】
类、对象、属性、方法、事件和事件处理的概念及应用; 分支结构语句及程序实现; 循环结构语句及程序实现;
【答案】

您现在未登录,无法查看试题答案与解析。 登录
综合题 困难
能力提升
真题演练
换一批
1. 小华开发了一个自动改卷系统,但是由于科目不同,没有固定的题号模板,于是小华又编写了python程序,能根据试卷答案自动输出题号。如图1为答案模板文件,小华在模板文件中录入答案后保存为"卷3.txt",如图2所示,每一行是一题或者一题中的一小题的答案,题号之间没有跳跃。例如:图2中【1】和【5】之间有4行,A、B、C、D为第1到4题的答案。程序运行结果如图3所示。

图 1

图 2

图 3

(1) 实现上述功能的 Python 程序如下,若删除图2最后一行(【7】所在的行),对程序运行结果  影响(填:有/没有)。
(2) 请在划线处填入合适的代码。

f=open("卷 3.txt",encoding="utf-8")

line=f.readline().strip() c=0      #strip()用于删除字符串尾部的"\n"换行符

preId=0

QuestionInfo=[ ]

while line:

    if line[0] == "【":

        curId =

        if curId - preId > 1:

            for i in range(preId, curId):

                QuestionInfo.append(str(i))

        elif c>0:

            for i in range(1, c + 1):

                QuestionInfo.append(str(preId) + "(" + str(i) + ")")

        c = 0

           

    else:

       

    line=f.readline().strip()         #strip()用于删除字符串尾部的"\n"换行符

f.close()

print("卷 3 题号划分为: ")

for Id in QuestionInfo:

    print(Id)

综合题 困难
2. 有m个人结伴旅行(m≤9,每个人用整数1~m编号)。期间既有全员参与的集体活动,也有自主参与的小团队活动。每项活动的消费由参与人平均分摊,其中一人先行垫付并记录。记录内容包括该项活动的人均消费金额(整数,单位:元)、参与人。每项活动的参与人用字符串表示,垫付人排在第1位。如“25134”表示2、5、1、3、4号参与该项活动,其中2号是垫付人。旅行结束后依据所有活动的消费记录进行结算:

1)计算每个人的应还款(应还款=应分摊的总金额-先行垫付的总金额);

2)根据所有人的应还款数据计算转账明细(应还款为正的人转给应还款为负的人)。

根据上述要求编写VB程序,功能如下:运行程序,读取消费记录数据并在列表框List 1中显示。单击“结算”按钮Command 1,在列表框List 2中显示每个人的应还款,在列表框List 3中显示转账明细。程序运行界面如图所示。

(1) 结合程序与界面可知,AddItem是List 2的(单选,填字母:A .方法名/B .事件名/C .属性名)。
(2) 实现上述功能的部分VB程序如下,请在划线处填入合适的代码。

Const n=9, m=15

Dim x(1 To n)As Integer       ‘x(i)存储第i项消费记录的人均消费金额

Dim a(1 To n)As String        ‘a(i)存储第i项消费记录的参与人

Private Sub Form_Load( )

    ‘读取所有消费记录,存入数组x和a中,并显示在列表框List 1中

     ‘代码略

End Sub

Private Sub Command1_Click( )

    Dim i As Integer, j As Integer, k As Integer, p As Integer

    Dim c As Integer, w As Integer, v As Integer

    Dim b(1 To m)As Integer        ‘保存应还款数据

    For i= 1 To m

        b(i)=0

    Next i

    For i=1 To n      ‘根据消费记录计算应还款

        k=Len(a(i))

        p=Val(Mid(a(i), 1, 1))

        b(p)=b(p)-(k–1)*x(i)

        For j=2 To k

            p=Val(Mid(a(i), j, 1))

            

        Next j

    Next i

    c=0

    For i=1 To m

        List 2. AddItem Str(i)+“号”+Str(b(i))

        If b(i)>0 Then c=c+1

    Next i

    i=1 : j=1               ‘根据应还款数据计算转账明细

    Do While  

        Do While b(i)<=0

            i=i+1

        Loop

    Do While b(j)>=0

        j=j+1

    Loop:

        

        If w>0 Then  Else v =b(i)

        b(i)=b(i)-v:b(j)=b(j)+v

        List 3. AddItem Str(i)+“号->”+Str(j)+“号   ”+Str(v)

        If w<=0 Then c=c–1

    Loop

End Sub

(3) 程序中加框处代码有错,请改正。
综合题 困难
3. 小王设计“模拟撤销”程序,需要用一个“历史记录”,“历史记录”是在对字符串s进行插入或删除时,将每步操作信息依次存储得到的,操作信息由操作符(“+”表示插入,“-”表示删除)、操作位置和操作字符串(只包含英文字母)构成,例如,“+23abc”表示在字符串s第23位插入了“abc”,“模拟撤销”过程按照“历史记录”的逆序进行,将字符串s的内容恢复到初始状态。对字符串“Book”的操作与撤销过程,如图所示。

小王编写的“模拟撤销”Python程序如下,输入撤销前字符串和历史记录,显示撤销过程代码如下所示。

实现上述功能的代码如下,请回答下列问题。

s=input("输入撤销前的字符串")

t=input("历史记录")

t=t[::-1]

c,num="",""

ss=s

for ch in t:

    if "a"<=ch<="z"or"A"<=ch<="Z":

    c=ch+c

    elif "0"<=ch<="9"··

    num=ch+num

    else:

                  ①        

    if ch=="-":

                 ②     

    else:

         s=s[:n-1]+s[n-1+len(c):]

    ss=ss+"→"+s

    c,num="",""

print("撤销过程:"+     ③     )

(1) 请在划线处填入合适的代码。

程序划线①处应填入的代码为;

程序划线②处应填入的代码为;

程序划线③处应填入的代码为

(2) 运行该程序,输入的内容分别是"April"和"-3p+3ri-6e",字符串s的值是
综合题 困难