学进去-教育应平等而普惠
排序:
414道相关试题
某医院挂号系统有两种挂号方式:预约挂号(预约就诊时间,需提前一天完成)和直接挂号(当天8:00后在服务台排队挂号)。医生8:00开诊;预约挂号患者在预约的就诊时间到达后,优先就诊;一位患者就诊结束后,下一位患者再开始就诊。
医院为提升服务质量,编写程序模拟就诊顺序。现获取某医生早上就诊患者的数据,分别为姓名、预约或挂号时间、就诊时长(单位:分钟)。预约挂号数据(准时到达人员数据)如图a所示,直接挂号数据如图b所示。运行程序,输出前三位就诊顺序名单,如图c所示。
图a图b图c
(1)根据上图数据,预约挂号人员江浩华排在第______位就诊。
(2)定义如下sort(1st)函数,参数1st的每个元素都包含3个数据项,分别为姓名、预约时间、就诊时长。函数功能是将1st的元素根据预约时间进行升序排列,函数返回1st。函数代码如下,请在划线处填入合适的代码。
def sort(lst):
       n=len(lst)-1
     for i in range(n-1):
          for j in range(n,i+1,-1):
               if______
                    1st[j], 1st[j-1]=1st[j-1], 1st[j]
     return 1st
(3)实现模拟输出就诊顺序的部分Python程序如下,请在划线处填入合适的代码。
def insert(1st, i, head):
     curtime=1st[head][1]+int(1st[head][2])#就诊结束时间
     if________
          1st[i]. append(head)
          head=i
          curtime=1st[i][1]+int(1st[i][2])
          i+=1
_______
q=1st[p][3]
while i<=len(lst)-1:
     if curtime>=1st[q][1]and q!=-1:#预约人员优先就诊
          p=q
          q=1st[p][3]
          curtime+=int(1st[p][2])
     elif curtime>=1st[i][1] or q==-1:
_______
          1st[i].append(q)
          curtime+=int(1st[i][2])
          p=i
          i+=1
     elif 1st[q][1]<=1st[i][1]:
          curtime=1st[q][1]
     else:
          curtime=1st[i][1]
     return 1st
#预约挂号数据转换为列表1st,并将时间转换为分钟,如08:30转为510,代码略
1st=sort(1st)
n=len(1st)-1
for i in range(1,n):
     1st[i]. append(i+1)                                 #1st[i]追加一个元素i+1
1st[n]. append(-1)
#将门诊挂号数据合并至列表1st中,列表1st数据如第15题图d所示,代码略
head=1
1st1=insert(1st,n+1,head)
#输出就诊顺序,代码略
类型:操作题
难度系数:困难0.15
收藏
纠错
详情
小明收集了梅西2005年至2023年国家队比赛数据,保存在“梅西国家队详细比赛数据.xlsx”文件中,部分数据如图a所示,现利用pandas模块处理数据。
图a
为统计分析梅西2019~2023年各项赛事的平均进球情况,编写Python程序。请回答下列问题:
(1)读取“梅西国家队详细比赛数据.xlsx”数据,筛选出2019年以来的各项比赛数据。函数代码如下,划线处应填入的代码为______(单选,填字母)
A.df[df["年份"]>=2019]       B.df["年份"]>=2019
C.df["年份">=2019]             D.df[df["年份"]]>=2019
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_excel("梅西国家队详细比赛数据.xlsx")#读取表格数据
df1=________
(2)统计各项赛事的平均进球数量。由于原始数据“赛事”列中部分赛事未显示年份(如第14题图a所示),无法进行跨年度统计,因此需要在赛事名前添加年份信息。例如:“国际友谊赛”根据年份修改为“2019国际友谊赛”,“2022世界杯预选赛”则不修改。具体过程代码如下,请补充完整。

def isdigit(s):

#代码略,判断s是否为纯数字字符串,是则flag为True,否则flag为False

return flag

for i in   d f1.index:

ss=df1.at[i,"赛事"]#根据行标签、列标签选取单个值,如“国际友谊赛”

_______

if not(isdigit(nf)):#isdigit()判断是否为数字,是则返回True

df1.at[i,"赛事"]=str(df1.at[i,"年份"])+df1.at[i,"赛事"]

g=df1.groupby("赛事",as_index=False).mean()#以“赛事”为关键字,分组求平均


(3)为统计2019年以来,梅西进球平均数排名前三的赛事,考虑可能存在并列情况,具体过程代码如下,请补充完整。

g=g.sort_values("进球",ascending=False)   #以“进球”为关键字,降序排序

g1=g.head(3)       #取前三项记录

m=g1["进球"].min()       #求最小值

bls=0

bl=len(g1[g1["进球"]==m])       #求序列长度

for i in   g.index:

if g.at[i,"进球"]==m:       #根据行标签、列标签选取单个值

_____

g2=g.head(     _____


(4)以下是2019~2023年梅西国家队比赛平均进球数排名前三赛事统计图,则划线处的代码应为___
图b

plt.title("2019~2023梅西国家队比赛平均进球数排名前三赛事统计图")

x=g2["赛事"]

y=______

plt.bar(x,y)

plt.show()

类型:操作题
难度系数:困难0.15
收藏
纠错
详情
使用Python编写按文件后缀名进行分类的程序。要求实现的功能为:从文件夹中读取所有文件名,存储到file列表中,如:[["000.mp3"],["001.pptx"],["002.pptx"],["003.jpg"],…,["099.jpg"]],然后按文件后缀名进行分类,并统计每个类别下文件的数量,输出结果如图所示。

(1)定义如下ft(s)函数,参数s为文件名(如"000.mp3")。函数功能是将文件名中的后缀名取出,并返回该后缀名。
def ft(s):

n=0

while   s[n]!=".":

n=n+1

returns[n+1:]


该段代码采用的算法是______(单选:A.解析法/B.枚举法/C.递归法)
(2)按后缀名将文件名分为五类,分别为“mp3、pptx、jpg、xlsx、docx”。分类的具体代码如下,请在划线处填入合适的代码。
#从文件夹中读取所有文件名,存储到file列表中,如:[["000.mp3"],["001.pptx"],…,["099.jpg"]]。过程代码略。
for i in range(len(file)):

file[i].append(-1)        #append()功能:为列表增加一个元素


fhead=[]
for i in range(len(file)):

a=____

j=0

while j<len(fhead)and fhead[j][0]!=a:

j+=1

if j<len(fhead):

file[i][1]=fhead[j][1]

____

else:

fhead.append([a,i])#append()功能:为列表增加一个元素


(3)按后缀名类型将文件名输出,效果如第15题图所示(文件名输出每10个换一行)。具体代码如下,请在划线处填入合适的代码。
for i in range(len(fhead)):

print(fhead[i][0]+"类型的文件:")

____

n=0

while p!=-1:

n+=1

print(file[p][0],end="")

if n%10==0:

print("")


          ____

        print("")


print("共"+str(n)+"个")
类型:操作题
难度系数:困难0.15
收藏
纠错
详情
有如下Python程序段:
import random
a=[1,0,0,0,0]
for i in range(1,5):

a[i]=random.randint(1,9)

if a[i]%2==1:

a[i]=a[i]+a[i-1]

elif i%2 ==0:

a[i]=a[i]//2


执行程序后,a列表各元素不可能的是(     )
A.1,4,2,4,15B.1,8,3,2,5
C.1,2,11,8,2D.1,8,15,6,4
类型:选择题
难度系数:困难0.15
收藏
纠错
详情
有n项任务,每项任务包含任务编号、出现时刻、所需时长和紧急程度(数字越大紧急程度越高)。每个时刻只能执行一项任务,按出现时刻先后顺序执行,若执行过程中出现了紧急程度更高的任务,则正在执行的任务将被暂停,执行紧急程度更高的任务。编写程序模拟任务执行过程,功能如下:程序运行时,各项任务数据按出现时刻升序显示,处理完按照任务完成时刻输出。比如任务列表信息如图a所示,程序运行界面如图b所示。
任务编号出现时刻所需时长紧急程度
T0542
T1853
T21341
T31634

图a                                                         图b


请回答下列问题:
(1)如有任务列表信息为[['T0',2,5, 2],['T1',5,4,1],['T2',6,5,3],['T3',9,5,4]],则系统处理完毕后,各任务完成先后顺序为_____(填写任务名,并用逗号分隔)。
(2)请在划线处填入合适代码。
# task添加n个任务,按任务到达时间先后,对任务升序排序,代码略
#示例:task = [['T0',5,4,2],['T1',8,5,3],['T2',13,4,1],['T3',16,3,4]]
n = len(task)
st= [0]*(n+1)
top=-1
print("任务编号完成时刻\n---------------")
cur= 0
for i in range(n):
       while top != -1 and task[i][1]>=cur+task[st[top]][2]:
             print(task[st[top]][0],cur+task[st[top]][2],sep="\t")       #参数sep="\t"实现对齐输出
             cur += task[st[top]][2]
             top -= 1
       if top !=-1:
             task[st[top]][2]-=①____
       top += 1
       j = top-1
       while j !=-1 and②____:
             st[j+1] =st[j]
             j-=1
       st[j+1]=i
       cur=③______
while④______:
       print(task[st[top]][0],cur + task[st[top]][2],sep="\t")
       cur += task[st[top]][2]
       top -= 1
类型:操作题
难度系数:困难0.15
收藏
纠错
详情
某种密码设计方法如下:给定两个数组,数组元素由数字1~9组成,从中选出k(k小于等于两个数组长度之和)个数字拼接成一个新的数,同一数组中取出的数字保持其在原数组中的相对顺序,每个数组中至少有1个数被选中,满足该条件的最大数即为密码,程序运行界面如图所示。
请输入数组1:3 4 6 5 7 8
请输入数组2:9 1 2 5 8 3 4
请输入k:6
密码为:9 8 7 8 3 4

请回答下列问题:
(1)程序部分代码如下,请在划线处填入正确的代码。
def select_num (nums, k):
     stack =[0] * len (nums);   top=-1;   cnt=len (nums) -k
     for num in nums:
          while cnt > 0 and top !=-1 and stack [top] <num:
               top -=1;cnt -= 1
          top+=1;____________
     while cnt >0:
          top -=1; cnt -= 1
     return stack[0:top+1]
def merge(a, b):
     c=’’;i=0;j=0
     while
          if   j == len(b) or i < len(a) and a [i]   >= b[j] :
               c += str(a[i] );   i += 1
          elif i == len(a) or   j   < len (b) and a[i] < b[j] :
               c += str(b[j]) ;   j += 1
     return int(c)
num1=input ("请输入数组1:")
num2=input ("请输入数组2:")
num1=list (map (int, numl. split (” ”)))
num 2=list(map (int, num2. split (” ”)))
k=int (input (“请输入k: ”))
___________
for i in range (1, k) :
     a = select_num(numl, i)
___________
     c = merge(a,b)
     if c > m:
          m = c
print(“密码为:” + str(m))
(2)加框处的程序代码有误,请改正。___________
类型:操作题
难度系数:困难0.15
收藏
纠错
详情
为了帮助小学生检查口算作业,小明所在的软件开发团队计划开发一款“口算批改”App, 以提高口算批改的效率。该App 的基本设想是:将手机对着算式拍照,利用O C R(光学字符识别)技术,识别出算式,然后逐一计算,判断答案是否正确。小明分配到的任务,是要将识别得到的算式(存放在文件“equation.csv” 中,部分算式如图a所示)进行计算并返回计算结果“√”或“×”,程序运行结果如图b所示。

(1)主程序部分。
f=open("equation.csv","r") f_csv=csv.reader(f)
for row in f csv:
     exp=row[0]
     pos=exp.find("=")
     #pos记录表达式exp中“=”的位置索引
     expleft=exp[0:pos]
     expright=exp[pos+1:]
     print(expleft,"=",expright,end=")
     lis=apart(expleft)
   “自定义函数apart()将算式字符串中的数字与运算符拆解后存储在列表中返回”
     if answer(lis)==int(expright):
     #自定义函数answer(计算列表中算式的值)
          print(" ")
     else:
          print("×")
该程序段采用的算法是   _______(单选,填字母:A.解析算法/B.枚举算法)
(2)拆解算式字符串中的数字与运算符,使用如下的apart()函数。从字符串中读取连续的数字组成运算数,并将其转化为整型存放在列表中,若取出的是运算符,直接以字符串型存放在列表中。请在划线处填入合适的代码。
def apart(expleft):
     lis=[];t="";i=0
     elen=len(expleft)
     while i<elen:
          if expleft[i] in "O+- *:
               lis.append(expleft[i])
               i+=1
          else:
               while i<elen and expleft[i]>="0" and expleft[i]<="9":
                    t+= ①______________
                    i+=1
               lis . append( ②______________)
               t=""
     return lis
(3)算式计算使用如下的answer()函数。小明打算采用栈 这一数据结构实现对列表中算式的计算,步骤如下:
①构建操作符栈ops,构建运算数栈num;
②遍历列表中全部的运算数与运算符,若是运算数, 则运算数进栈num,若为运算符,执行③;
③I.若当前运算符为“)”,从栈 ops 中依次取出到“(”为止的全部运算符,并从栈num中取数运算;
Ⅱ.若当前运算栈为空,或者当前运算符优先级高于栈顶运算符,或者栈顶运算符为“(”,运算符进栈ops;
Ⅲ.若当前运算符优先级低于栈顶运算符,依次取出栈内优先级大于等于它的运算符并运算直到栈为空后,当前运算符进栈ops。未遍历到列表的最后一个数据,则返回②,否则执行④;
④若运算符栈中仍有运算符,依次取出运算,并将最 终的运算结果返回。
请在划线处填入合适的代码。
def       cal(nl,n2,op):
     if     op=="+":return n1+n2
     if     op=="-":return n1-n2
     if     op=="*":return n1*n2
     if     op=="/":return n1/n2
def       priority(op):
     if       op in "+-":return 1
     elif op   in "*/":return 2
     else:return 3
def     answer(explist):
     ans=0
     ops,num=[],[]
     #构建操作符栈ops,构建运算数栈num
     for i in explist:
          if type(i)==int:#若是操作数,则操作数进栈
               num.append(i)
          else:
               if   i==")":
                    op=ops.pop()
                    while op!="(":
                         num2=num.pop()
                         num1=num.pop()
                         ___________
                         op=ops.pop()
               elif len(ops)==0 or priority(i)>priority(ops[- 1])or ops[- 1]=="(":
                    ops.append(i)
               else:
                    while   len(ops)!=0   and   ____________:
                         op=ops.pop()
                         num2=num.pop()
                         num1=num.pop()
                         num.append(cal(num1,num2,op))
                    ops.append(i)
while len(ops)!=0:
     #若运算符栈中仍有运算符,依次取出运算
     ___________
     num2=num.pop()
     num1=num.pop()
     num.append(cal(numl,num2,op))
ans=num[0]
return     ans
类型:操作题
难度系数:困难0.15
收藏
纠错
详情
某Python程序功能如下:输入n,生成n*n的方阵,元素的值为1到9的随机整数,存储在列表a中。再输入小于n的四个数字x0,yO,x1,y1,将以元素a[x0][yO]和a[x1][y1]为对角顶点的矩形区域中的数据进行垂直翻转,并将变换后的二维数组以矩阵形式输出。程序运行效果如图所示。   

(1)若生成7*7的方阵,如果输入左上角+右下角的坐标为:2,3,6,5,垂直翻转后,元素a[3][4]的值保存在新数组元素a[___][___](填写下标)中。
(2)实现上述功能的Python程序如下,请在划线处填入合适的代码。
import random
n=int(input("输入n,产生n*n 的方阵:"))
a=[[random.randint(1,9) for i in range(n)] for j in range(n)]
for i in a:
     print(i)
print()
x,y=[],[]
xy=input("请输入左上角+右下角坐标:")
xy=xy+","
c,j=0,0
for i in range(len(xy)):       ""提取x轴坐标存储到列表x中,y 轴坐标存储到列表y 中"'
     if xy[i]==",":
          if   ________ :
               x.append(int(xy[j:i]))
          else:
               y.append(int(xy[j:i]))
__________
          c=c+1
for j in range(y[0],y[1]+1,1):
     for i in range(________):
          a[i][j],a[x[0]+x[1]-i][j]=a[x[0]+x[1]-i][j], a[i][j]
#垂直翻转
for i in range(len(a)):
     print(a[i])
(3)若要增加一段代码判断输入坐标是否满足“左上角”和“右下角”的条件,下列代码正确的是_________(单选,填字母)。
A.if x[1]<x[0] and y[1]<y[0]:
          print("输入坐标不符!")
B.if x[1]<x[0] or y[1]<y[0]:
          print("输入坐标不符!")
C.if x[0]<x[1] or y[0]<y[1]:
          print("输入坐标不符!")
D.if x[0]<x[1] and y[0]<y[1]:
          print("输入坐标不符!")
类型:操作题
难度系数:困难0.15
收藏
纠错
详情
关于正整数n,下列描述正确的有(       
①如果Int(n/2)=n\2的值为True,可以判定n为偶数
②m为2至n-1中任意正整数,如果n Mod m=0的值为True,可以判定n为素数
③如果Int(Sqr(n))=Sgr(n)的值为True,可以判定n为完全平方数
④如果1-n Mod 2=0的值为True,可以判定n为奇数
A.①③B.①④C.②④D.③④
类型:选择题
难度系数:困难0.15
收藏
纠错
详情
有如下程序段
Function Search(m As Integer, pre As Integer) As Integer
Dim i As Integer
If m < 0 Then
Search = 0
ElseIf m = 0 Then
Search = 1
Else
For i = pre To m

Search = Search + Search(m - i, i)

Next i


End If
End Function
Private Sub Command1_Click()
Dim n As Integer
n = Val(Text1.Text)
Label1.Caption = Search(n, 1)
End Sub
若在文本框 Text1 中输入“4”,则标签 Label1 中显示的内容为(     )
A.2B.4C.5D.7
类型:选择题
难度系数:困难0.15
收藏
纠错
详情
首页
上一页
下一页
尾页