-
1、使用链表结构模拟某景区游玩路线,链表a中每一个节点包含三个数据,第1个为景点名称,第2个为预计游玩时间(单位:分钟),第3个为下一个景点指针。景区可以从多个景点 的大门进入,但只能从"天梯"离开,输出显示各大门进入路线及预计总时间的代码如下。
a=[["迎客松" , 21, 2],["激流勇进" , 40, 2],[" 天空栈道" , 50, 5],["一线天" , 30, 4],[" 飞来 峰" , 60, 5],["天梯" , 20, -1]]
head=[0, 1, 3]
for i in range(len(head)):
⑴
s=a[p][1]
while a[p][2]! =-1:
print(a[p][0], end="-->")
⑵
⑶
print(a[p][0])
print("预计时间:" , s , "分钟")
上述程序划线处的可选代码有:
①p=head ②p=head[i] ③s=s+a[p][1] ④p=a[p][2]
则(1),(2),(3)处代码依次为:( )
A、①③④ B、①④③ C、②③④ D、②④③ -
2、有如下 Python程序:
q=[0]*6
q[0]=1
head=0; tail=1
while tail<len(q)=1:
x=q[head]
if x%2==0:
q[tail]=x//2
tail+=1
else:
q[tail]=x*2
q[tail+1]=x*3
tail+=2
head+=1
程序运行后 , tail-head的值为( )
A、3 B、4 C、5 D、6 -
3、定义如下递归函数:
def f(a , n):
n=n-1
if n=0:
return a
else:
return f(a-1, n)+f(a+1, n)
print(f(5, 3))
程序运行后,输出的结果是( )
A、10 B、20 C、30 D、40 -
4、栈 q初始有三个值,经过一系列入栈,出栈操作后,栈为空,若元素出栈的顺序是1, 2, 3, 4, 5, 6, 7,则栈 q初始的情况可能是( )A、[1, 2, 3] B、[7, 5, 6] C、[6, 3, 1] D、[4, 7, 2]
-
5、某二叉树中序遍历为 ABCDEF,则下列不可能是此二叉树的是( )A、
B、
C、
D、
-
6、下列关于模拟信号数字化过程的说法不正确 的是( )A、数字化过程一般需要经过采样、量化与编码 B、数据在计算机中以二进制方式存储 C、将模拟信号转换成数字信号,会引起失真 D、量化值的范围是0~256,则量化位数最少是8位
-
7、下列关于移动终端的说法,不正确 的是( )A、移动终端工作原理与计算机基本相同 , 包括输入、处理、存储和输出 B、移动终端的“智能性”在硬件上主要基于传感器的植入 C、Android, Apple ios, Harmonyos是常见的移动终端应用软件 D、影响智能手机的主要性能指标有 CPU、存储和屏幕分辨率等
-
8、下列关于网络说法不正确 的是( )A、网络是由数据通信系统以及网络软件和网络协议三部分组成 B、移动通信的实质是利用无线电波来传递信息 C、网络互联设备 , 主要包括调制解调器、路由器和交换机等 D、网络资源共享指网络中的软件、硬件、数据资源的共享
-
9、阅读下列材料,回答问题:
某“自助扫码点餐系统”的部分功能是:消费者扫描二维码进入点餐页面,系统推荐热销菜品,客户根据个人喜好自助下单,完成在线支付。消费者填写个人基本信息,注册成为餐厅会员后,将会不定期收到餐厅发出的优惠活动讯息。
(1)、下列关于该系统功能和应用的说法,不正确 的是( )A、该信息系统的用户是消费者 B、该系统具有数据采集 、 处理和存储等功能 C、消费者自助下单和结账为餐厅节约了人力成本 D、系统在网络故障时无法完成自助下单 , 这体现了信息系统对外部环境的依赖性(2)、该系统的下列应用中,体现人工智能技术的是( )A、推荐热销菜品 B、扫描二维码登录系统 C、下单时自动使用优惠券 D、人脸识别完成支付认证(3)、下列关于信息系统安全和信息社会责任的说法,正确的是()A、使用扫码点餐,其目的是提高系统的安全性 B、在该系统中,可为所有的用户设置相同的访问控制权限 C、系统定期备份数据,是保护数据安全的重要措施 D、未经授权,可将用户的基本信息进行出售 -
10、下列关于数据和信息的说法,正确的是( )A、音频和视频不是数据的表现形式 B、信息的价值一般会随着时间的推移而变化 C、信息的加工和处理必须使用计算机才能完成 D、银联卡用久了会失去磁性,这说明信息在重复使用中会产生损耗
-
11、最短路径问题。以 m*n 个边长为 1 的正方形组成的矩形,各顶点按行优先从 0 开始编号,如图 a 所示为 3*2 的矩形及顶点编号。从顶点 x(起点)经由各正方形的边移动到顶点 y(终点)有多种移动 路径,编程求解所有的最短路径。
图 a
图 b
(1)、分析问题,将矩形转换为计算机可处理的数据。可采用列表存储矩形中各顶点的相邻关系,如图 b所示。编写函数init,根据横向和纵向的正方形数量,返回所有顶点及其所有的相邻顶点数据。完善程序,在划线处填入合适的代码。
def init(m,n):
tot=(m+1)*(n+1) #顶点总数
lst=[[] for i in range(tot)]
for i in range(tot):
if i>m:
lst[i].append(i-m- 1)
if i<(m+1)*n:
lst[i].append(i+m+1)
if i%(m+1) != 0:
lst[i].append(i- 1)
if i%(m+1) != m:
return lst
(2)、分析问题,查找所有从起点到终点的最短路径。例如:查找从起点1到终点10的所有最短路径,可先查找终点10的所有相邻顶点(6,9,11),然后再逐个查找顶点6、9、11的相邻顶点,直到查找到起点1,获得所有最短路径,如图c所示,共有3条长度为3的最短路径,分别为1→2→6→10,1→5→6→10,1→5→9→10。若从起点4到终点11,共有 (填数字)条最短路径。图 c
(3)、分析问题,存储查询到的路径。可采用链表结构保存路径数据,例如:查找从起点1到终点10的所有最短路径,首先将终点10的数据[10,0,-1]保存在path[0]中,然后将其相邻顶点6、9、11的数据保存到path中,path[i][0]保存顶点的编号,path[i][1]保存当前顶点到终点的距离,path[i][2]保存下一顶点在path中的位置,其值为-1表示当前顶点为终点。编写函数print_path,输出所有的最短路径。完善程序,在划线处填入合适的代码。
def print_path(x,path,length): #为起点编号,length为Path中有效元素个数。
cnt=0
for i in range(length):
if path[i][0] == x:
cnt+= 1
s="最短路径"+str(cnt)+":"
v=path[i]
while :
s=s+str(v[0])+","
v=path[v[2]]
s=s+str(v[0])+" 。"
print(s)
(4)、实现上述功能的 Python程序如下,运行结果如图 d 所示。请在划线处填入合适的代码。m=3 #横向正方形数量
n=2 #纵向正方形数量
mtx=init(m,n)
x=int(input("请输入起点:"))
y=int(input("请输入终点:"))
path=[[] for i in range(30)]
passed=[False]*len(mtx) #保存顶点是否已途经
dis=0
head=0
tail=0
path[tail]=[y,0,- 1]
tail+= 1
passed[y]=True
while not found:
dis+= 1
pass_dis=[False]*len(mtx)
tmp=tail
for i in range(head,tail):
v=path[i]
for d in mtx[v[0]]:
if not passed[d]:
path[tail]=
tail+= 1
pass_dis[d]=True
if d == x:
found=True
head=tmp
for i in range(len(mtx)): #标记已途经的顶点
if :
passed[i]=True
#输出结果
print_path(x,path,tail)
-
12、某地高中的技术选考数据,保存在“jsxk.xls”文件中,如图a所示。
图 a
图 b
请回答下列问题:
(1)、统计各学校技术选考人数占本校总人数的比例,找出占比最高的前 5 所学校并绘制柱形图,如图 b 所示。部分 Python程序如下,请在划线处填写合适的代码。import pandas as pd
import matplotlib.pyplot as plt
#图表支持中文字体显示,代码略
df= pd.read_excel("jsxk.xls",dtype={'学校代码':'string'}) #学校代码列为字符串
df1 = df.groupby(" ", as_index=False).count() #按学校统计人数
df1 = df1.rename(columns={'姓名':'学生总数'})#重命名列
df1['技术比例'] = round(/df1['学生总数']* 100,2)
df1 = df1.sort_values('技术比例',ascending=False).head(5)
plt.title('技术选考比例前 5 的学校')
plt.bar( )
plt.show()
(2)、在本问题的解决中,为了探究函数 groupby() ,某同学编写了自定义函数zdygroupby() ,其功能为统 计各校技术选考总人数,并以字典的形式返回。函数代码如下,请在划线处填写合适的代码。(注:代码中 lst 为二维列表,列表中每个元素包含3个数据项,格式如[['201901','顾筱扬',NaN],['201901',' 俞凯睿', 1.0],['201901',' 陈丹祺', 1.0] … …])def zdygroupby(1st):
dic = {}
for row in lst:
if row[2] == 1:
if :
dic[row[0]]=1
else:
dic[row[0]]+= 1
-
13、小李设计了一个会员管理系统,用户通过浏览器在相应页面可进行会员注册、在线充值、线上查询消费记录等操作。该系统服务器端程序采用FlaskWeb框架编写,框架结构如图a所示。
其中会员注册子页面如图b所示。存储会员信息的users表中共3个字段,依次保存序号、用户名和密码,如图c所示。会员注册时需满足以下条件:①用户名不重复;②密码长度大于5。服务器端部分代码如下。
from flask import Flask , render_template , request
import sqlite3
def check(name ,pwd):
conn= sqlite3 .connect( " account .db ")
cur=conn .cursor()
cur . execute( " select * from users where name= ’%s ’"%name)
val=cur .fetchall()
flag=True
if len(val)==0 and :
sql= "insert into users(name , password) values(' %s' , '%s ') "%(name , pwd)
cur .execute(sql)
conn .commit()
else:
flag=False
cur .close()
conn .close()
return flag
app=Flask(name_)
@app .route( "/reg ")
def reg() :
name=request . args .get( "xm ")
pwd=request .args .get( "psd ")
if :
return "注册成功! "
else:
return "请重新注册! "
#其它代码略
if _name_== "_main_ " :
app .run (host= " 192 . 168 . 1 . 10 " , port= 80 , debug=True)
(1)、在搭建“会员管理系统 ”的前期准备过程中,选定系统物理配置的过程属于(单选,填字母: A .需求分析 / B .概要设计 / C .详细设计)。(2)、该系统网络应用软件的实现架构是 (单选,填字母:A .B/S 架构 / B .C/S 架构)。(3)、分析程序可知,该系统中存储会员用户名和密码数据的数据库文件名为 。(4)、分析程序,①处应填写的代码为 ,②处应填写的代码为 。(5)、下列关于该信息系统的描述正确的是 (多选,填字母)。A、服务器采用 GET 方式接收用户名和密码数据 B、程序代码中 debug=True 语句的作用是打开调试功能,在实际的网站应用环境中,也可以打开该 功能,方便调试程序。 C、注册新会员时,用户名为 admin03 ,密码为 123abc ,提交数据到 Web 服务器的 URL 为 http://192.168.1.10/check?xm=admin03&psd=123abc D、对 users 表中的密码进行加密,可以提高该信息系统的安全性 -
14、待入栈的序列 a 有多种出栈序列, 以下函数用于判断序列 b 是否是 a 的出栈序列,代码如下:
def judge(a, b):
n=len(a) ;st=[- 1]*n
top-= 1; i=j=0
while i<n:
top+= 1
①
i+= 1
while top> - 1 and ② :
top-= 1
j+= 1
return top==- 1
from random import shuffle
a=[1,2,3,4, 5]
b=[1,2, 3, 4, 5]
shuffle (b) #将序列 b 的元素随机排序
if judge(a, b):
print (b,'是' ,a,' 的出栈序列')
else:
print (b,'不是' ,a,' 的出栈序列')
程序运行结果如图所示。划线处应填写的语句是( )
A、①st[top]=a[i] ②st [top]==b[j] B、①st[top]=a[i] ②st[- 1]==b[j] C、①st [top]=b[i] ②st[top]=a[j] D、①st[top]=b[i] ②st[- 1]= =a[j] -
15、长度为5的循环队列que,que[0]至que[4]的值依次为'a' ,'b' ,'c' ,'d','e',执行如下程序段后,输出的最后一个字符为( )
n= 5
head=0
tail=4
que=['a' , 'b' ,'c' ,'d' ,'e' ]
while head!=tail:
if head%4==0:
print (que[head])
else:
tail=(tail+1)%n
que[tail]=que[head]
head= (head+1)%n
print (que[head])
A、b B、c C、d D、e -
16、下面有关数据结构的说法不正确的是( )A、在程序设计中,数据结构设计时主要考虑对象之间逻辑关系的实现 B、链表结构适用于初始规模确定但在处理过程中频繁进行插入、删除操作的数据 C、数组结构中采用下标访问数据,访问效率要高于链表结构 D、大多数软件中都有“撤销 ”功能,实现此功能应采用队列结构
-
17、有如下 Python 程序段:
s = "A-b2c " ; ch = ""
list=[4 , 3 , 1 , 5 ,2]
for i in range(1en( s)):
if "A " <= s [i] <= "Z " :
ch = ch + chr (ord(s [i]) + list[i])
elif "a " <= s [i] <= "z " :
ch = ch + chr (ord(s [i]) - list[i])
else:
ch= s [i]+ch
print(ch)
该程序运行后,输出的结果是( )
A、2-Eaa B、2-ECE C、 E-c2e D、 E-a2b -
18、下列 Python 表达式运算结果为 True 的是( )A、3**2<8 and 2%5>1 B、25//4>4 and 3/2<1 C、not 7<8 or 9>6+2 D、not(2**3<9 or 6%4<2)
-
19、某算法的流程图如所示,关于该算法下列说法正确的是( )
A、执行这部分流程后,变量 i 的值为 7 B、k 的值为 1*2*3*4*5*6*7 的结果 C、该流程图是双重循环结构 D、将“i≤x/2 ”改成“i<x" ,输出 k 的值不会变化 -
20、下列关于网络组成与构建的说法中,正确的是( )A、智能家居设备一般通过有线方式联网 B、常见的网络互联设备主要包括调制解调器、路由器和交换机等 C、不同网络之间一般采用 HTTP 协议互联 D、计算机网络分为局域网、广域网与广播电视网