综合核心素养测评卷(二)(含答案) 2025-2026学年高中信息技术 必修1 数据与计算

资源下载
  1. 二一教育资源

综合核心素养测评卷(二)(含答案) 2025-2026学年高中信息技术 必修1 数据与计算

资源简介

综合核心素养测评卷(二)
一、 选择题(本大题共16小题,每小题3分,共48分。每小题列出的四个选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. 对某一256色图像进行数字化,则颜色的位深度至少是( B )
A. 4位 B. 8位
C. 24位 D. 256位
【解析】 由于28=256,因此颜色的位深度至少是8位,故选B。
2. 如图所示的算法的执行结果是( B )
第2题图
A. 30 B. 50
C. 20 D. -20
【解析】 本题主要考查算法流程图的执行。A=10,B=30,A=A-B=-20,
B=B-A=30-(-20)=50,故执行结果是50。
3. 小张点开网课视频进行学习时,收到了学校发送的开学短信,那么网课视频和短信中的文字内容分别是( D )
A. 数据 数据 B. 信息 数据
C. 知识 信息 D. 数据 信息
【解析】 本题主要考查数据、信息、知识的描述。信息,指音讯、消息、通信系统传输和处理的对象,泛指人类社会传播的一切内容,信息是加工过的数据。数据是记录客观事物、可鉴别的符号。知识是人们运用大脑对所获取或积累的信息进行提炼、研究和分析的结果,能够精确地反映事物的本质。网课视频和短信中的文字内容分别是数据和信息。
4. 图形符号“”在算法描述流程图中表示( C )
A. 算法的开始或结束
B. 输入/输出操作
C. 处理或运算的功能
D. 判断条件是否满足需求
【解析】 本题主要考查算法流程图。菱形是判断框,平行四边形是输入/输出框,圆角矩形是开始/结束符,矩形是处理框,C正确。
5. n个人分为m组,则进行1~m的循环报数,报相同数的人分为一组。则第k个人报的数为( D )
A. k
B. k%m
C. (k+1)%m-1
D. (k-1)%m+1
【解析】 考虑表达式的值域可知,只有选项D符合要求。
6. 下列关于算法表示方法的描述,正确的是( B )
A. 描述算法的方法只能是计算机程序设计语言
B. 算法可以使用方言来描述
C. 一个问题的算法只有1种
D. 用一种程序设计语言来实现某个具体问题的算法只能有一种方式
【解析】 本题主要考查算法的描述。描述算法的方法有计算机程序设计语言、自然语言、算法流程图和伪代码;算法可以使用方言来描述,这属于自然语言描述方法;一个问题的算法有多种;用一种程序设计语言来实现某个具体问题的算法可以有多种方式。B正确。
7. 小明家开了一家自助火锅店,按食材盘子的颜色来区分单价,收费标准为白盘5元、绿盘8元、黄盘15元、紫盘21元、红盘30元,若单桌用餐人数少于4,则额外收取底料费用40元。小明编写了以下程序来计算费用:
def cost(num,white,green,yellow,purple,red):
  diliao=0
  if num<4:
    diliao=40
  return diliao+white*5+green*8+yellow*15+purple*21+red*30
print(cost(5,2,2,3,2,2))
该程序的运行结果为( A )
A. 173 B. 213
C. 175 D. 215
【解析】 本题主要考查Python程序的执行。分析程序可知,cost(5,2,2,3,2,
2)=0+2*5+2*8+3*15+2*21+2*30=173。
8. 下列关于进制数转换的说法,正确的是( C )
A. 二进制数 1011 转换为十进制数是12
B. 二进制数1011中的最低位对应的权值是21
C. 十进制数 11 转换为二进制数是1011
D. 十六进制数 A 转换为二进制数是1100
【解析】 本题主要考查进制数的转换。二进制数1011转换为十进制数是11;二进制数1011中的最低位对应的权值是20;十进制数11转换为二进制数是1011;十六进制数A转换为二进制数是 1010。C正确。
9. 下列程序的输出结果是( C )
count=0
for i in range(100,1000):
  if i%10==i//100:
     count+=1
print(count)
A. 70 B. 80
C. 90 D. 100
【解析】 本题主要考查Python循环语句。阅读程序可知,这是求三位数中百位与个位上数字相同的数有几个,有101、111、121、131、141、151、161、171、181、191…共有10*9=90个。
10. 下面的Python程序段运行后的输出结果是( A )
x=3
if x%2==0:
  print(x,"是偶数。")
else:
  print(x,"是奇数。")
A. 3是奇数。 B. x,“是偶数。”
C. x,“是奇数。” D. 3是偶数。
【解析】 本题主要考查Python程序的执行。x=3,3%2=1,故输出“3是
奇数。”。
11. 两个阻值分别为R1,R2的电阻并联后,电路总电阻R可由公式来求解。下列Python表达式中,能正确求出R的为( D )
A. (R1+ R2)/(R1*R2)
B. R1+R2/(R1*R2)
C. R1*R2/R1+R2
D. R1*R2/(R1+R2)
【解析】 本题主要考查Python表达式的书写。表达式的书写要在一行中,并且乘号不能省略,并且用括号表示其计算的优先级。电阻表达式转换后,D正确。
12. 下列关于大数据的说法,错误的是( C )
A. 大数据更注重事物的相关性,而不是因果关系
B. 大数据中价值密度的高低与数据总量的大小成反比
C. 大数据追求数据的精确性,处理大数据时要保证每个数据准确无误
D. 大数据中各种结构化、半结构化和非结构化数据共存
【解析】 本题考查大数据知识。处理大数据时不需要保证每个数据都准确无误。C错误。
13. 一个两位整数n,要将它的个位上的数字和十位上的数字交换位置,例如,28变成82,下列Python表达式中,正确的是( C )
A. (n/10)%10+ n//10
B. (n%10)//10+n//10
C. (n%10)*10+n//10
D. (n%10)*10+n%10
【解析】 本题主要考查Python表达式的运算。思路是先通过对10取余将个位上的数字取出来,再乘10,然后将十位上的数字(n//10)加起来即可实现个位上的数字和十位上的数字交换位置,故正确的Python表达式为(n%10)*10+n//10。
14. 如图所示为某算法的部分流程图,执行这部分流程后,下列说法中,正确的是( C )
第14题图
A. 变量t的值为27
B. 变量s的值为40
C. 变量i的值为5
D. 循环条件“s≤40 ”判断了5次
【解析】 本题主要考查流程图的识读。初始值t=1,s=0,i=0。
第一次判断s<=40成立,s=s+t=1,t=t*3=3,i=i+1=1;
第二次判断s<=40成立,s=s+t=4,t=t*3=9,i=i+1=2;
第三次判断s<=40成立,s=s+t=13,t=t*3=27,i=i+1=3;
第四次判断s<=40成立,s=s+t=40,t=t*3=81,i=i+1=4;
第五次判断s<=40成立,s=s+t=121,t=t*3=243,i=i+1=5;
第六次判断s<=40不成立,跳出循环。
故执行后,变量t的值是243,变量s的值是121,变量i的值为5,循环条件“s≤40 ”共进行了6次判断。C正确。
15. 如图所示为某算法的部分流程图。执行这部分流程,依次输入整数-2,3,-1,2,0,则输出的s的值分别为( D )
第15题图
A. -3 B. 0
C. 2 D. 5
【解析】 本题考查流程图知识。从流程图可以看出,当a=0时,循环结束,s变量是输入的数据中所有非负数累加的结果,所以最终s的值是0+3+2=5。
16. 有如下Python 程序段,运行该程序段后,列表a 中的值可能是( D )
import random
a = []
for i in range(6):
  a.append(random.randint(1,5)*2+i%2)
for i in range(1,5):
  j = i; k = a[j]
  while a[j-1]0:
    a[j] = a[j-1] ; j=j-1
  a[j] = k
A. 11,8,7,6,5,5 B. 8,6,5,5,3,8
C. 9,6,7,8,8,11 D. 11,11,8,2,2,11
【解析】 本题主要考查Python程序的执行与调试。分析程序可知,第一个for循环执行完,a[0]、a[2]、a[4]均为偶数,且最大值是10,a[1]、a[3]、a[5]均为奇数,且最大值是11。第二个嵌套for循环一共进行了4轮,即列表a中的前5个数参与排序,最后一个数是奇数且不参与排序,排除B。实现的是降序排序,排除C。前5个数应该有2个奇数和3个偶数,排除A。
[答题区]
序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
答案 B B D C D B A C C A D C C C D D
二、 非选择题(本大题共6小题,其中第17题6分,第18题6分,第19题9分,第20题9分,第21题10分,第22题12分,共52分)
17. 编写Python程序,要求输出区间[m,n]内所有素数的和,具体代码如下:
def isPrime(num): #判断素数
  num=int(num)
  for i in range(2, num):
    if  ① :
        return False
  if num!=1:
    return True
def PrimeSum(a,b):
sum=0
for i in range(a,b+1)
    if isPrime(i):
       ② 
  return sum
m=int(input( m: ))
m=int(input( n: ))
print(PrimeSum(m,n))
请回答下列问题:
(1)程序运行后,输入的m的值为19,n的值为26,输出的结果是 42 。
(2)横线上应填入的代码为① num%i==0 ,② sum+=i 。
【解析】 (1)在区间[19,26]内素数有19和23两个,19+23=42,输出的结果是42。(2)①处代码为函数体isPrime(num)内的代码,函数isPrime(num)用于判断num是否为素数,返回True表示num是素数,返回False表示num不是素数,不是素数说明num能被1和它本身之外的其他数整除,应填入的代码为num%i==0;②处代码表示满足函数isPrime(i)时所执行的语句,即当i为素数时,将i累加到sum中,应填入的代码为sum+=i。
18. 在机器打印发票的过程中,只需输入数量与单价,机器就自动计算金额并输出对应的大写金额(只限整数,不超过12位)。现在请你结合下面的流程图,写出横线上应填入的代码:① str(dj*num) ,② len(s)>12 ,③ int (s[i]) 。
第18题图
import sys
d=“零壹贰叁肆伍陆柒捌玖”
w=“元拾佰仟万拾佰仟亿拾佰仟”
dj=int(input("请输入单价:"))
num=int(input("请输入数量:"))
s=  ①  
if  ②  :
  print("金额过大")
  sys exit()#退出
c=""
for i in range(len(s)):
  c=c+d[  ③  ]+w[len(s)-i-1]
c=c+"整"
print(c)
【解析】 本题主要考查Python程序的综合应用。①变量s保存金额(金额=单价*数量),由下文知s是字符类型,故此处填str(dj*num)。②当满足大写金额超过12位时,就输出金额过大,故此处判断条件是len(s)>12。③此处是自动生成大写的公式,题干要求的是整数,所以s[i]应该取整,故填int(s[i])。
19. 操作要求:
用Python编辑器打开文件“bx6.py”,进行以下操作并保存。实现如下功能:
输入两个不为零的整数a,b,判断a与b的大小,若a大于b,则输出a/b的值,否则输出a*b的值。
测试数据:
输入10,5,输出的结果:2.0
输入5,10,输出的结果:50
素材文件:
#注释:输入两个不为零的整数a,b:
a=int(input("请输入一个不为零的整数a:"))
b=int(input("请输入一个不为零的整数b:"))
#注释:在以下区域中编写代码,实现:判断a与b的大小,如果a大于b,则输出a/b的值,否则输出a*b的值。
第19题图
【答案】 Python操作题满分卷示例:
#注释:输入两个不为零的整数a,b:
a=int(input("请输入一个不为零的整数a:")
b=int(input("请输入一个不为零的整数b:")
#注释:在以下区域中编写代码,实现:判断a与b的大小,如果a大于b,则输出a/b的值,否则输出a*b的值。
if a>b:
  print(a/b)
else:
  print(a*b)
【解析】 本题主要考查Python程序设计。输入两个不为零的整数a,b,判断a与b的大小,若a大于b,则输出a/b的值,否则输出a*b的值。该程序可以通过条件分支结构实现,具体代码如下:
#注释:输入两个不为零的整数a,b:
a=int(input("请输入一个不为零的整数a:")
b=int(input("请输入一个不为零的整数b:")
#注释:在以下区域中编写代码,实现:判断a与b的大小,如果a大于b,则输出a/b的值,否则输出a*b的值。
if a>b:
  print(a/b)
else:
  print(a*b)
20. 用Python编辑器打开 “Y:\89”下的文件“判断是正数、负数还是零. py”,进行以下操作并保存结果。
(1)请完善该程序,实现如下功能:输入一个实数,如果这个数大于0,那么输出“为正数”;如果小于0,那么输出“为负数”;如果等于0,那么输出“为零”。例如:
请输入一个数:0
输出0.0 为零<<<
(2)编写完成后保存并关闭应用程序。
x=float(input("请输入一个数:"))
if  ① :
  print(x,"为正数")
 ② :
  print(x,"为负数")
else:
   ③ 
请在横线上填入合适的代码:① x>0 ,② elif x<0 ,③ print(x,"为零") 。
【解析】 本题主要考查Python程序的综合应用。①处判断x为正数的条件,故填x>0。由语句“print(x,"为负数")”,可知②处填elif x<0。由题干,“输入一个数:0,输出:0.0 为零”,故此处填print(x,"为零")。
21. 程序设计:唐三藏又被妖怪抓走了,这次孙悟空打不过妖怪,于是来求观音菩萨。观音菩萨告诉孙悟空,天庭里身高正好为1000米的那位神仙可以降伏此妖。于是悟空立刻去天庭,在玉皇大帝的神仙册上看到了天庭里按身高从矮到高顺序排列的10000位神仙。由于时间紧迫,悟空想用最短的时间找到这位神仙,这样才能尽快解救唐僧。
代码如下:
List=list(map(int,input(“请按身高递增顺序依次输入10000位神仙的身高”).split()))
left=1
right=10000
while  ① :
  mid= ② 
  if List[mid]==1000:
     ③ 
  elif List[mid]<1000:
     ④ 
  else:
     ⑤ 
print(“能帮孙悟空的神仙在第{0}位上”.format(mid+l))
(1)程序中①处的正确代码是( B )
A. left<right B. left<=right
C. left!=right D. left>right
(2)程序中②处的正确代码是( C )
A. (left+right)/2 B. (left+right)%2
C. (left+right)//2 D. (left+right)\2
(3)程序中③处的正确代码是( C )
A. pass B. print(mid)z
C. break D. continue
(4)程序中④处的正确代码是( C )
A. left=mid B. right=mid
C. left=mid+1 D. right=mid-1
(5)程序中⑤处的正确代码是( D )
A. left=mid B. right=mid
C. left=mid+1 D. right=mid-1
【解析】 本题主要考查二分查找算法及Python程序实现。(1)二分查找的循环条件是left<=right,B正确。(2)此处是取中间值,需要整除2,故填(left+right)//2,C正确。(3)若mid对应的列表值是1000,表示已找到,则用break语句跳出循环,C正确。(4)若mid对应的列表值小于1000,则需要更新left的值为mid+1,继续循环,C正确。(5)⑤处更新right的值为mid-1,D正确。
22. 小明收集了所住小区内不同职业、不同年龄住户的睡眠指数,将数据保存在“sleep.xlsx”文件中,部分数据如图1所示。为统计和分析数据中不同职业住户的失眠人数,编写Python程序。请回答下列问题:
第22题图1
(1)小明将根据每个人的睡眠时间判定其是否具有睡眠障碍:若睡眠时间少于5小时且睡眠质量低于6,则为“失眠”;睡眠时间在12小时以上,则为“嗜睡”;否则为“无”。请在横线上填入合适的代码: elif df.at[i,"睡眠时间"]>12或elif df["睡眠时间"][i]>12 。
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_excel("sleep.xlsx")
for i in df.index:
  if df.at[i,"睡眠时间"]<5 and df.at[i,"睡眠质量"]<6:
    df.at[i,"睡眠障碍"]="失眠"
        :
    df.at[i,"睡眠障碍"]="嗜睡"
  else:
    df.at[i,"睡眠障碍"]="无"
(2)统计和分析数据中不同职业住户的失眠人数,并绘制柱形图,部分Python程序如下,请完成①②③题。
dfl= ① 
df2=df1.groupby("职业",as_index=False). ② 
plt.bar( ③ ,df2.睡眠障碍)
plt.title("不同职业住户的失眠人数比较")
plt.xlabel("职业")
plt.ylabel("失眠人数")
plt.show()
①小明首先筛选出失眠人群的相关数据,则①处应填入的代码是 D (单选,填字母)。
A. df["睡眠障碍"]=="失眠"
B. df["睡眠障碍"=="失眠"]
C. df[df["睡眠障碍"]]=="失眠"
D. df[df["睡眠障碍"]=="失眠"]
②小明对筛选的结果按职业进行分组,并计算不同职业住户的人数,则②处需填入的代码为 count() 或睡眠障碍.count() 。
③结合分析数据,绘制不同职业住户的失眠人数比较柱形图,如图2所示,则③处需填入的代码为 df2.职业或df2["职业"] 。
第22题图2
【解析】 本题主要考查Python程序的综合应用。(1)睡眠时间在12小时以上,则为“嗜睡”,故此处填elif df.at[i,"睡眠时间"]>12或elif df["睡眠时间"]
[i]>12。(2)①小明首先筛选出失眠人群的相关数据,则①处应填入的代码是df[df["睡眠障碍"]=="失眠"]。D正确。②小明对筛选的结果按职业进行分组,并计算不同职业住户的人数,使用count函数进行计数,故填count()或睡眠障碍.count() 。③绘制的是柱形图,横坐标是职业,故填df2.职业或df2["职业"]。(共35张PPT)
综合核心素养测评卷(二)
信息技术 必修1 数据与计算
一、 选择题(本大题共16小题,每小题3分,共48分。每小题列出的四个选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. 对某一256色图像进行数字化,则颜色的位深度至少是(  )
A. 4位 B. 8位
C. 24位 D. 256位
【解析】 由于28=256,因此颜色的位深度至少是8位,故选B。
B
2. 如图所示的算法的执行结果是(  )
A. 30 B. 50
C. 20 D. -20
【解析】 本题主要考查算法流程图的执行。A=10,B=30,A=A-B=-20,B=B-A=30-(-20)=50,故执行结果是50。
B
3. 小张点开网课视频进行学习时,收到了学校发送的开学短信,那么网课视频和短信中的
文字内容分别是(  )
A. 数据 数据 B. 信息 数据
C. 知识 信息 D. 数据 信息
【解析】 本题主要考查数据、信息、知识的描述。信息,指音讯、消息、通信系统传输和处理的对象,泛指人类社会传播的一切内容,信息是加工过的数据。数据是记录客观事物、可鉴别的符号。知识是人们运用大脑对所获取或积累的信息进行提炼、研究和分析的结果,能够精确地反映事物的本质。网课视频和短信中的文字内容分别是数据和信息。
D
4. 图形符号“
”在算法描述流程图中表示(  )
A. 算法的开始或结束 B. 输入/输出操作
C. 处理或运算的功能 D. 判断条件是否满足需求
【解析】 本题主要考查算法流程图。菱形是判断框,平行四边形是输入/输出框,圆角矩形是开始/结束符,矩形是处理框,C正确。
C
5. n个人分为m组,则进行1~m的循环报数,报相同数的人分为一组。则第k个人报的数为
(  )
A. k B. k%m
C. (k+1)%m-1 D. (k-1)%m+1
【解析】 考虑表达式的值域可知,只有选项D符合要求。
D
6. 下列关于算法表示方法的描述,正确的是(  )
A. 描述算法的方法只能是计算机程序设计语言
B. 算法可以使用方言来描述
C. 一个问题的算法只有1种
D. 用一种程序设计语言来实现某个具体问题的算法只能有一种方式
【解析】 本题主要考查算法的描述。描述算法的方法有计算机程序设计语言、自然语言、算法流程图和伪代码;算法可以使用方言来描述,这属于自然语言描述方法;一个问题的算法有多种;用一种程序设计语言来实现某个具体问题的算法可以有多种方式。B正确。
B
7. 小明家开了一家自助火锅店,按食材盘子的颜色来区分单价,收费标准为白盘5元、绿盘8元、黄盘15元、紫盘21元、红盘30元,若单桌用餐人数少于4,则额外收取底料费用40元。小明编写了以下程序来计算费用:
def cost(num,white,green,yellow,purple,red):
  diliao=0
  if num<4:
    diliao=40
  return diliao+white*5+green*8+yellow*15+purple*21+red*30

print(cost(5,2,2,3,2,2))
该程序的运行结果为(  )
A. 173 B. 213
C. 175 D. 215
【解析】 本题主要考查Python程序的执行。分析程序可知,cost(5,2,2,3,2,2)=0+2*5+2*8+3*15+2*21+2*30=173。
A
8. 下列关于进制数转换的说法,正确的是(  )
A. 二进制数 1011 转换为十进制数是 12
B. 二进制数1011中的最低位对应的权值是21
C. 十进制数 11 转换为二进制数是 1011
D. 十六进制数 A 转换为二进制数是 1100
【解析】 本题主要考查进制数的转换。二进制数 1011 转换为十进制数是11;二进制数1011中的最低位对应的权值是20;十进制数 11 转换为二进制数是 1011;十六进制数 A 转换为二进制数是 1010。C正确。
C
9. 下列程序的输出结果是(  )
count=0
for i in range(100,1000):
  if i%10==i//100:
     count+=1
print(count)
A. 70 B. 80
C. 90 D. 100
【解析】 本题主要考查Python循环语句。阅读程序可知,这是求三位数中百位与个位上数字相同的数有几个,有101、111、121、131、141、151、161、171、181、191…共有10*9=90个。
C
10. 下面的Python程序段运行后的输出结果是(  )
x=3
if x%2==0:
  print(x,"是偶数。")
else:
  print(x,"是奇数。")
A. 3是奇数。 B. x,“是偶数。”
C. x,“是奇数。” D. 3是偶数。
【解析】 本题主要考查Python程序的执行。x=3,3%2=1,故输出“3是奇数。”。
A
11. 两个阻值分别为R1,R2的电阻并联后,电路总电阻R可由公式来求解。下列Python表达式中,能正确求出R的为(  )
A. (R1+ R2)/(R1*R2)
B. R1+R2/(R1*R2)
C. R1*R2/R1+R2
D. R1*R2/(R1+R2)
【解析】 本题主要考查Python表达式的书写。表达式的书写要在一行中,并且乘号不能省略,并且用括号表示其计算的优先级。电阻表达式转换后,D正确。
D
12. 下列关于大数据的说法,错.误.的是(  )
A. 大数据更注重事物的相关性,而不是因果关系
B. 大数据中价值密度的高低与数据总量的大小成反比
C. 大数据追求数据的精确性,处理大数据时要保证每个数据准确无误
D. 大数据中各种结构化、半结构化和非结构化数据共存
【解析】 本题考查大数据知识。处理大数据时不需要保证每个数据都准确无误。C错误。
C
13. 一个两位整数n,要将它的个位上的数字和十位上的数字交换位置,例如,28变成82,下列Python表达式中,正确的是(  )
A. (n/10)%10+ n//10 B. (n%10)//10+n//10
C. (n%10)*10+n//10 D. (n%10)*10+n%10
【解析】 本题主要考查Python表达式的运算。思路是先通过对10取余将个位上的数字取出来,再乘10,然后将十位上的数字(n//10)加起来即可实现个位上的数字和十位上的数字交换位置,故正确的Python表达式为(n%10)*10+n//10。
C
14. 如图所示为某算法的部分流程图,执行这部分流程后,下列说法中,正确的是(  )
A. 变量t的值为27 B. 变量s的值为40
C. 变量i的值为5 D. 循环条件“s≤40 ”判断了5次
C
【解析】 本题主要考查流程图的识读。初始值t=1,s=0,i=0。
第一次判断s<=40成立,s=s+t=1,t=t*3=3,i=i+1=1;
第二次判断s<=40成立,s=s+t=4,t=t*3=9,i=i+1=2;
第三次判断s<=40成立,s=s+t=13,t=t*3=27,i=i+1=3;
第四次判断s<=40成立,s=s+t=40,t=t*3=81,i=i+1=4;
第五次判断s<=40成立,s=s+t=121,t=t*3=243,i=i+1=5;
第六次判断s<=40不成立,跳出循环。
故执行后,变量t的值是243,变量s的值是121,变量i的值为5,循环条件“s≤40 ”共进行了6次判断。C正确。
15. 如图所示为某算法的部分流程图。执行这部分流程,依次输入整数-2,3,-1,2,0,则输出的s的值分别为(  )
A. -3
B. 0
C. 2
D. 5
【解析】 本题考查流程图知识。从流程图可以看出,当a=0时,循环结束,s变量是输入的数据中所有非负数累加的结果,所以最终s的值是0+3+2=5。
D
16. 有如下Python 程序段,运行该程序段后,列表a 中的值可能是(  )
import random
a = []
for i in range(6):
  a.append(random.randint(1,5)*2+i%2)
for i in range(1,5):
  j = i; k = a[j]
  while a[j-1]0:
    a[j] = a[j-1] ; j=j-1
  a[j] = k
A. 11,8,7,6,5,5 B. 8,6,5,5,3,8
C. 9,6,7,8,8,11 D. 11,11,8,2,2,11
D
【解析】 本题主要考查Python程序的执行与调试。分析程序可知,第一个for循环执行完,a[0]、a[2]、a[4]均为偶数,且最大值是10,a[1]、a[3]、a[5]均为奇数,且最大值是11。第二个嵌套for循环一共进行了4轮,即列表a中的前5个数参与排序,最后一个数是奇数且不参与排序,排除B。实现的是降序排序,排除C。前5个数应该有2个奇数和3个偶数,排除A。
二、 非选择题(本大题共6小题,其中第17题6分,第18题6分,第19题9分,第20题9分,第21题10分,第22题12分,共52分)
17. 编写Python程序,要求输出区间[m,n]内所有素数的和,具体代码如下:
def isPrime(num): #判断素数
  num=int(num)
  for i in range(2, num):
    if  ① :
        return False
  if num!=1:
    return True
def PrimeSum(a,b):
sum=0
for i in range(a,b+1)
    if isPrime(i):
        ② 
  return sum
m=int(input( m: ))
m=int(input( n: ))
print(PrimeSum(m,n))
请回答下列问题:
(1)程序运行后,输入的m的值为19,n的值为26,输出的结果是__________。
(2)横线上应填入的代码为①_______________,②____________。
【解析】 (1)在区间[19,26]内素数有19和23两个,19+23=42,输出的结果是42。 (2)①处代码为函数体isPrime(num)内的代码,函数isPrime(num)用于判断num是否为素数,返回True表示num是素数,返回False表示num不是素数,不是素数说明num能被1和它本身之外的其他数整除,应填入的代码为num%i==0;②处代码表示满足函数isPrime(i)时所执行的语句,即当i为素数时,将i累加到sum中,应填入的代码为sum+=i。
42
num%i==0
sum+=i
18. 在机器打印发票的过程中,只需输入数量与单价,机器就自动计算金额并输出对应的大写金额(只限整数,不超过12位)。现在请你结合下面的流程图,写出横线上应填入的代码:①________________,②________________,③__________。
str(dj*num)
len(s)>12
int (s[i])
import sys
d=“零壹贰叁肆伍陆柒捌玖”
w=“元拾佰仟万拾佰仟亿拾佰仟”
dj=int(input("请输入单价:"))
num=int(input("请输入数量:"))
s=  ①  
if  ②  :
  print("金额过大")
  sys exit()#退出
c=""
for i in range(len(s)):
  c=c+d[  ③  ]+w[len(s)-i-1]
c=c+"整"
print(c)
【解析】 本题主要考查Python程序的综合应用。①变量s保存金额(金额=单价*数量),由下文知s是字符类型,故此处填str(dj*num)。②当满足大写金额超过12位时,就输出金额过大,故此处判断条件是len(s)>12。③此处是自动生成大写的公式,题干要求的是整数,所以s[i]应该取整,故填int(s[i])。
19. 操作要求:
用Python编辑器打开文件“bx6.py”,进行以下操作并保存。实现如下功能:
输入两个不为零的整数a,b,判断a与b的大小,若a大于b,则输出a/b的值,否则输出a*b的值。
测试数据:
输入10,5,输出的结果:2.0
输入5,10,输出的结果:50
素材文件:
#注释:输入两个不为零的整数a,b:
a=int(input("请输入一个不为零的整数a:"))
b=int(input("请输入一个不为零的整数b:"))
#注释:在以下区域中编写代码,实现:判断a与b的大小,如果a大于b,则输出a/b的值,否则输出a*b的值。
【答案】 Python操作题满分卷示例:
#注释:输入两个不为零的整数a,b:
a=int(input("请输入一个不为零的整数a:")
b=int(input("请输入一个不为零的整数b:")
#注释:在以下区域中编写代码,实现:判断a与b的大小,如果a大于b,则输出a/b的值,否则输出a*b的值。
if a>b:
  print(a/b)
else:
  print(a*b)
【解析】 本题主要考查Python程序设计。输入两个不为零的整数a,b,判断a与b的大小,若a大于b,则输出a/b的值,否则输出a*b的值。该程序可以通过条件分支结构实现,具体代码如下:
#注释:输入两个不为零的整数a,b:
a=int(input("请输入一个不为零的整数a:")
b=int(input("请输入一个不为零的整数b:")
#注释:在以下区域中编写代码,实现:判断a与b的大小,如果a大于b,则输出a/b的值,否则输出a*b的值。
if a>b:
  print(a/b)
else:
  print(a*b)
20. 用 Python 编辑器打开 “Y:\89”下的文件“判断是正数、负数还是零. py”,进行以下操作并保存结果。
(1)请完善该程序,实现如下功能:输入一个实数,如果这个数大于 0,那么输出“为正数”;如果小于 0,那么输出“为负数”;如果等于 0 ,那么输出“为零”。例如:
请输入一个数:0
输出0.0 为零<<<
(2)编写完成后保存并关闭应用程序。
x=float(input("请输入一个数:"))
if  ① :
  print(x,"为正数")
 ② :
  print(x,"为负数")
else:
   ③ 
请在横线上填入合适的代码:①__________,②__________,③_________________。
x>0
elif x<0
print(x,"为零")
【解析】 本题主要考查Python程序的综合应用。①处判断x为正数的条件,故填x>0。由语句“print(x,"为负数")”,可知②处填elif x<0。由题干,“输入一个数:0,输出:0.0 为零”,故此处填print(x,"为零")。
21. 程序设计:唐三藏又被妖怪抓走了,这次孙悟空打不过妖怪,于是来求观音菩萨。观音菩萨告诉孙悟空,天庭里身高正好为1000米的那位神仙可以降伏此妖。于是悟空立刻去天庭,在玉皇大帝的神仙册上看到了天庭里按身高从矮到高顺序排列的10000位神仙。由于时间紧迫,悟空想用最短的时间找到这位神仙,这样才能尽快解救唐僧。
代码如下:
List=list(map(int,input(“请按身高递增顺序依次输入10000位神仙的身高”).split()))
left=1
right=10000
while  ① :
  mid= ② 
  if List[mid]==1000:
     ③ 
  elif List[mid]<1000:
     ④ 
  else:
     ⑤ 
print(“能帮孙悟空的神仙在第{0}位上”.format(mid+l))
(1)程序中①处的正确代码是(  )
A. left<right    B. left<=right  C. left!=right   D. left>right
(2)程序中②处的正确代码是(  )
A. (left+right)/2   B. (left+right)%2 C. (left+right)//2   D. (left+right)\2
(3)程序中③处的正确代码是(  )
A. pass      B. print(mid)z   C. break     D. continue
(4)程序中④处的正确代码是(  )
A. left=mid    B. right=mid   C. left=mid+1   D. right=mid-1
(5)程序中⑤处的正确代码是(  )
A. left=mid    B. right=mid   C. left=mid+1   D. right=mid-1
【解析】 本题主要考查二分查找算法及Python程序实现。(1)二分查找的循环条件是left<=right,B正确。(2)此处是取中间值,需要整除2,故填(left+right)//2,C正确。(3)若mid对应的列表值是1000,表示已找到,则用break语句跳出循环,C正确。(4)若mid对应的列表值小于1000,则需要更新left的值为mid+1,继续循环,C正确。(5)⑤处更新right的值为mid-1,D正确。
B
C
C
C
D
22. 小明收集了所住小区内不同职业、不同年龄住户的睡眠指数,将数据保存在“sleep.xlsx”文件中,部分数据如图1所示。为统计和分析数据中不同职业住户的失眠人数,编写Python程序。请回答下列问题:
图1
(1)小明将根据每个人的睡眠时间判定其是否具有睡眠障碍:若睡眠时间少于5小时且睡眠质量低于6,则为“失眠”;睡眠时间在12小时以上,则为“嗜睡”;否则为“无”。请在横
线上填入合适的代码:_____________________________________________________。
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_excel("sleep.xlsx")
for i in df.index:
  if df.at[i,"睡眠时间"]<5 and df.at[i,"睡眠质量"]<6:
    df.at[i,"睡眠障碍"]="失眠"
        :
    df.at[i,"睡眠障碍"]="嗜睡"
  else:
    df.at[i,"睡眠障碍"]="无"
elif df.at[i,"睡眠时间"]>12或elif df["睡眠时间"][i]>12
(2)统计和分析数据中不同职业住户的失眠人数,并绘制柱形图,部分Python程序如下,请完成①②③题。
dfl= ① 
df2=df1.groupby("职业",as_index=False). ② 
plt.bar( ③ ,df2.睡眠障碍)
plt.title("不同职业住户的失眠人数比较")
plt.xlabel("职业")
plt.ylabel("失眠人数")
plt.show()
①小明首先筛选出失眠人群的相关数据,则①处应填入的代码是__________(单选,填字母)。
A. df["睡眠障碍"]=="失眠" B. df["睡眠障碍"=="失眠"]
C. df[df["睡眠障碍"]]=="失眠" D. df[df["睡眠障碍"]=="失眠"]
②小明对筛选的结果按职业进行分组,并计算不同职业住户的人数,则②处需填入的代码为____________________________。
D
count( ) 或睡眠障碍.count( )
③结合分析数据,绘制不同职业住户的失眠人数比较柱形图,如图2所示,则③处需填入的
代码为________________________。
图2
df2.职业或df2["职业"]
【解析】 本题主要考查Python程序的综合应用。(1)睡眠时间在12小时以上,则为“嗜睡”,故此处填elif df.at[i,"睡眠时间"]>12或elif df["睡眠时间"][i]>12。(2)①小明首先筛选出失眠人群的相关数据,则①处应填入的代码是df[df["睡眠障碍"]=="失眠"]。D正确。②小明对筛选的结果按职业进行分组,并计算不同职业住户的人数,使用count函数进行计数,故填count()或睡眠障碍.count() 。③绘制的是柱形图,横坐标是职业,故填df2.职业或df2["职业"]。

展开更多......

收起↑

资源列表