1.有n个从小到大排列的正整数依次存储在数组a中,另有m(m<n)个正整数存储在数组b中。现要求只保留上述n+m个数据中从小到大排列的前n个数据,并依次存入数组a中,其余数据被剔除。

小李为了解决该问题,首先结合数组a的有序性,找出a,b两个数组中要剔除的m个数据,再将数组b中保留的数据插入到数组a中。示例如下:

n=10,数组a:2,4,6,8,10,12,14,16,18,20

m=5,数组b:41 , 11,17 , 29,9

处理后的数组a:2,4,6,8,9 , 10,11 , 12,14,16

(1) 若n=8,m=4,数组a的元素依次为“3,4,6,10,13,14,21,25”,数组b的元素依次为“3,18,7,15”,按上述要求剔除m个数据后,数组b中保留的数据个数为个。
(2) 实现上述功能的部分VB程序如下,请在划线处填入合适的代码。

Const n=1000,m=50

Dim a(1 To n)As Integer, b(1 To m)As Integer

Function getImax(k As Integer)As Integer

    ‘在数组元素b(1)~b(k)中找出值最大的元素,返回其下标,代码略

End Function

Private Sub Commandl_Click( )

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

    Dim na As Integer, nb As Integer, imax As Integer, mean As Integer

     ‘读取数据分别存入数组a、b,代码略

    na=n : nb=m

    imax=getImax(nb)

    For i=1 To m

        If a(na)<= Then

            b(imax)=b(nb)

            nb=nb-1

            If nb>0 Then imax=getImax(nb)

        Else

            na=na-1

        End If

    Next i

    Do While nb>0

        i=1 : j=na

        imax= getImax(nb)

    Do While i<=j

        mean =(i+j)\2

        If a(mean)<b(imax) Then i= mean +1 Else j=mean-1

    Loop

        For k=na To 1 Step-1

            

        Next k

        a(i+nb-1)=b(imax)

        b(imax)=b(nb)

        

        nb=nb-1

    Loop

    '输出数组a,代码略

End Sub

【考点】
常见数据类型、数组; 分支结构语句及程序实现; 循环结构语句及程序实现;
【答案】

您现在未登录,无法查看试题答案与解析。 登录
综合题 真题 困难
能力提升
真题演练
换一批
1.为研究某项疾病与年龄的关系,某医院对以前的诊断记录进行整理和分析,整理部分数据如图a所示。

(1) 观察图a所示数据,发现年龄列数据格式不一致,为了便于数据分析,下列操作合适的是(   )(单选,填字母)。 A. 删除“年龄”列数据 B. 将“年龄”列含有中文字的记录删除 C. 将“年龄”列数据转为文本类型 D. 将“年龄”列含有中文字的记录修改为只包含数字的年龄
(2) 将数据整理好后,为了统计0-18、19-35、36-60、61以上(含61)四个年龄段的某疾病患病人数占该疾病总患病人数的比例,并绘制如图b所示图表,编写如下Python程序,请在划线处填入合适代码。

import pandas as pd

import matplotlib.pyplot as plt

df = pd.read_excel('data.xlsx')

tp = input('请输入疾病类型:')

df1 =       # 筛选 tp 疾病的数据

count = [0] * 4

for i in range(len(df1)):

    age = df.at[i, "年龄"]

    if:

        count[0] += 1

    elif age <= 35:

        count[1] += 1

    elif age <= 60:

        count[2] += 1

    else:

        count[3] += 1

x = ['0-18', '19-35', '36-60', '61 以上']

y = []

for i in range(4):

    y.append

plt.bar(x, y)      # 显示不同年龄段患该病的人数百分比

# 设置图表其他参数,代码略

plt.show()

(3) 观察图b,“疾病A”患病比例最大的年龄段为
(4) 若想获取61岁及以上的人群中,患病率最高的10种疾病,编写如下程序。

def get_head10(df, age):

   

    return df.疾病.head(10)

print(get_head10(df, 61))

上述程序段中方框处可选代码为:

①df = df.sort_values("年龄", ascending=False)

②df = df[df.年龄 >= age]

③df = df.groupby("疾病", as_index=False).count()

则加框处应填代码的顺序依次为(   )(单选,填字母)

A. ①②③ B. ①③② C. ②①③ D. ②③①
综合题 未知 困难
2.小明为他们教室搭建了环境温湿度监测系统,该系统结构示意图如图所示。该系统可实时监测教室温湿度数据,并持续运行一周,数据由智能终端经loT模块发送至Web服务器,若环境温湿度监测值超过设定阀值区间,则控制执行器调节温湿度,用户可以使用浏览器查看实时数据。本系统服务器端程序采用FlaskWeb框架编写,数据库管理系统选择sqlite3,服务器的IP地址是192.168.0.1,端口是5000。网站功能页面规划如下:

序号

子页面路径

功能说明

1

/

实时显示温湿度数据

2

/input

提交温湿度数据

3

lcount

显示温湿度统计数据

4

/search

查询显示某一天的历史数据

(1) 上述页面规划属于搭建信息系统的前期准备的哪个阶段?(   )。 A. 需求分析 B. 可行性分析 C. 概要设计 D. 详细设计
(2) 根据该系统的功能要求,图中①②处的设备分别为
(3) 教空里的学生最舒服的温度是范围是 tmin~tmax,现要实现温度 t 正常、非正常(偏高或偏低)时,将对应的状态 sta 的值设为 0 和 1。下列Python程序段中符合要求的有(   )(多选,填字母)。 A. if t<tmin:

    sta=1

if t>tmax:

    sta=1

sta=0

B. sta=0

if t<tmin:

    sta=1

elif t>tmax:

    sta=1

C. if t<tmin or t>tmax:

    sta=1

else:

    sta=0

D. sta=1

if t<=tmax:

    sta=0

elif t>=tmin:

    sta=0

(4) 小明在某次系统调试时,输入URL后浏览器出现“404”错误信息(服务器反锁404信息表示服务器端无法找到对应的网页),简要说明系统中可能造成上述问题的原因:
综合题 未知 困难
3.某商场有升降货梯需要在各个楼层(商场总楼层m=7)之间实现货物运送,已知需要运送的货物量为n件,分别需要从各个起点楼层送去目标楼层,例如“1-7”表示货物需要从楼层1送到楼层7,上下楼层间运作和停顿时间为3分钟,其他时间(包括空闲时上升或下降)不计。设计一个VB程序模拟运送过程,并计算输出上升过程和下降过程分别需要的时间。若起始位置楼层大于目标位置楼层,表示货物需要往下运送,为了提高运送的效率,先将货梯从下往上运送,再实现从上往下运送。

设计一个VB程序,模拟生成10件货物的上升或者下降需求,在数组en和ex中分别记录每件货物起始楼层和目标楼层,将初始需求输出到列表框List1中,然后点击按钮Command1完成货物起始楼层先升后降的排序,当起始楼层相同时,上升中则目标楼层升序,下降中则目标楼层降序。将排序结果输出到列表框List2,最后计算出上升和下降分别需要的总时长输出到文本框Text1。程序界面如下:

(1) 程序界面中有(填数字)类控件没有Caption属性。
(2) 实现上述功能的部分VB程序如下,请在划线处填入合适的代码。

Const n = 10:Const m = 7

Dim en(1 To n) As Integer, ex(1 To n) As Integer

Dimf(1 To n) As Integer      '值为1表示货物往上运送,值为-1表示货物往下运送

'n件货物起始楼层、目标楼层以及升降值分别存入数组en,ex,f,输出到List1,代码略

Private Sub Command1_Click()

    Dim i As Integer, j As Integer, up1 As Integer, up2 As Integer

    Dim t(1 To 2) As Integer, first As Integer, last As Integer, p As Integer

    For i = 1 To n -1

        For j = n To i + 1 Step -1

            up1 = f(j)*(en(j)*10+ex(j)): up2 = f(j-1)*(en(j-1)*10+ex(j-1))

            If f(j) > f(j -1) Or f(j) = f(j -1) AndThen

                p = f(j): f(j) = f(j -1): f(j -1) = p

                p = en(j): en(j) = en(j -1): en(j -1) = p

                p = ex(j): ex(j) = ex(j -1): ex(j -1) = p

            End If

        Next j

    Next i

    i = 1: first = en(1): last = ex(1): p = 1

    Do While i < n       '计算货梯上升时间和下降时间

        i = i + 1

        If  Then     '改错

            t(p) = t(p) + (last -first) * 3

            last = ex(i): first = en(i)

           

        ElseIf f(i) * (en(i) -last) > 0 Then

            t(p) = t(p) + f(i) * (last -first) * 3

            last = ex(i): first = en(i)

        ElseIf f(i) * (en(i) -last) <= 0 And f(i) * (ex(i) -last) > 0 Then

           

        End If

    Loop

    t(p) = t(p) + f(i) * (last -first) * 3

    Text1.Text = "升降货梯分别需要" & t(1) & "和" & t(2)& "分钟完成。"

    '将排序后的升降信息输出到List2,代码略

End Sub

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