资料python软件编程等级考试一级编程实操题02Word格式文档下载.docx
《资料python软件编程等级考试一级编程实操题02Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《资料python软件编程等级考试一级编程实操题02Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。
12.下面Python代码运行后,a、b的值为()
a=23
b=int(a/10)
a=a-b*10
print(a,b)
A.232B.32C.320D.23
13.下列哪个语句在Python中是非法的?
(
)
A.x=y=z=1B.x=(y=z+1)
C.x,y=y,xD.x
+=
y
14.在Python中,Print(abs(-16//5))的执行结果是()
A.2.4B.3C.4D.-2.4
15.如下Python程序段
x=0
whilex<
50:
x=(x+2)*(x+3)
运行后,x的值为()
A.0B.72C.50D.168
二、程序填空
16.某市普通高中选课数据如图1所示,学生从地理、化学、生物等科目中选择三门作为高考选考科目,“1”表示已选择的选考科目。
使用Python编程分析每所学校各科目选考的总人数、全市各科选考总人数及其占比,经过程序处理后,保存结果如图2
图1
图2
实现上述功能的Python程序如下:
importpandasaspd
importitertools
#读数据到pandas的DataFrame结构中
df=________(”xk73.csv”,sep=‘.’,header=‘infer’,encoding=‘utf-8’)
km=[‘物理’,‘化学’,‘生物’,‘政治’,‘历史’,‘地理’,‘技术’]
#按学校分组计数
sc=df.groupby(‘___________’,as_index=False).count()
#对分组计数结果进行合计,合计结果转换为DF结构并转置为行
df_sum=pd.DataFrame(data=sc.sum()).T
df_sum[‘学校代码’]=‘合计’
#增加"合计"行
result=sc.append(df_sum)
#百分比计算
df_percent=df_sum
df_percent[‘学校代码’]=‘比例’
forkinkm:
per=df_percent.at[0,k]/zrs
df_percent[k]=per
#增加"百分比"行
result=result.append(df_percent)
#删除"姓名"列
result=______________
#修改"学生编号"为"总人数"
result=result.rename(columns={‘学生编号’:
‘总人数’})
#保存结果,创建Excel文件.生成的Excel文件
result.to_excel("学校人数统计.xlsx")
(1)请在划线处填入合适的代码:
(2)加框处语句的作用是__________________
17.阅读程序。
观察使用随机数求解百钱白鸡问题的代码并回答问题。
百千白鸡问题是经典的数学问题,原题为“鸡翁一,值钱五;
鸡母一,值钱三;
鸡雏三,值钱一;
百钱买百鸡,则翁、母、雏各几何?
”翻译过来,意思是公鸡一个五块钱,母鸡一个三块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多少只?
importrandom
whileTrue:
x=random.randrange(0,20)
y=random.randrange(0,33)
z=random.randrange(0,100)
if5*x+3*y+z/3==100andx+y+z==100:
print('
公鸡'
x)
母鸡'
y)
小鸡'
z)
(1)Python中导入库文件的命令是________。
(2)random.randrange(0,20)生成的随机数的范围是_________
。
(3)如果不想写类似random.randrange(0,20)这么长的句子,可以修改程序中的第一行为
________
(4)whileTrue的作用是______。
(5)如果whileTrue造成程序无法停止,我们可以在程序中添加一行_________。
18.为保护环境,很多城市开始对垃圾实行分类,便于更好的进行处理,为了让大家了解垃圾的分类情况,建立了以下四类列表,list1(可回收垃圾)、list2(有害垃圾)、list3(易腐垃圾),剩下的为其他垃圾,目前,列表中已经存储了以下数据。
list1=["
玻璃瓶"
"
旧书"
金属"
纸板箱"
旧衣服"
易拉罐"
]
list2=["
胶片"
消毒水"
纽扣电池"
水银温度计"
过期药水"
泡沫塑料"
list3=["
动物内脏"
菜叶菜梗"
过期食品"
香蕉皮"
果壳"
根据现有列表,完成以下问题:
(1)写出从列表list3中取出“过期食品”的表达式:
___________________________________________________________________________
(2)写出从list1中截取["
]这一段的表达式:
___________________________________________________________________________
(3)现又发现一个新的列表如下:
list4=["
过期化妆品"
过期药品"
杀虫剂"
],经过判断,里面存放的为有害垃圾,如何将该列表中的元素添加到list2中,请写出相关的表达式:
__________________________________________________________________________
(4)小明在路上捡到了一个塑料瓶,判断为可回收垃圾,写出相关表达式,将塑料瓶添加到列表list1中:
19.小王编写了“字符串缩写”程序,实现如下功能:
1.输入一串由英文字母和数字组成的字符串,
2.如果字符串有连续字符构成的升序段(后面字符的ASCII值比前面的字符的ASCII值大1),则把升序段缩写成由第一个字符加上“—”和最后一个字符组成的新字符段,
3.例如:
字符串为“abcdf12345becomexy”,则缩写成“a-df1-5becomex-y”。
程序运行时,输入一串字符,输出缩写的字符串,程序运行效果如下图所示:
实现上述功能的程序如下,请在程序划线处填入合适的代码。
s=input("
请输入字符串s:
"
_______
flag=False
result="
"
foriinrange(0,k-1):
if___________________:
result=result+s[i]+"
-"
flag=True
eliford(s[i])!
=ord(s[i+1])-1:
result=result+s[i]
_____
result=result+s[i+1]
print("
缩写后的字符串为:
result)
划线处①处应该填入的语句为:
;
划线处②处应该填入的语句为:
划线处③处应该填入的语句为:
20.程序设计:
唐三藏又被妖怪抓走了,这次孙悟空还是没打得过妖怪,于是来求观音菩萨。
观音菩萨告诉孙悟空,在天庭里身高正好为1000米的那位神仙可以降伏此妖。
于是悟空立刻来到天上,在玉皇大帝的神仙册上看到了按身高从矮到高排列有10000个神仙。
由于时间紧迫,悟空想用最短的时间找到这位神仙,这样才可以尽快解救唐僧。
代码如下:
List=list(map(int,input(“请按身高递增顺序依次输入10000个神仙的身高”).split()))
left=1
right=10000
while①
mid=②
ifList[mid]==1000:
③
elifList[mid]<1000:
④
else:
⑤
print(“能帮孙悟空的神仙在第{0}位上”.format(mid+l))
(1)程序代码中①处正确的代码是(_______)。
A.left<rightB.left<=rightC.left!
=rightD.left>right
(2)程序代码中②处正确的代码是(_______)。
A.(left+right)/2B.(left+right)\2
C.(left+right)//2D.(left+right)\\2
(3)程序代码中③处正确的代码是(_______)。
A.passB.print(mid)zC.breakD.continue
(4)程序代码中④处正确的代码是(_______)。
-
A.left=midB.right=midC.left=mid+1D.right=mid-1
(5)程序代码中⑤处正确的代码是(_______)。
21.操作说明:
打开文件“Y:
/2/2.py”,在代码窗口指定位置<
1>
、<
2>
处修改完善程序代码,不得增加、删除语句或改变程序原有结构,操作结束后保存。
以下程序段的功能是:
输入一个正整数n(1至100),输出它的约数的个数。
s=0
n=int(input(“请输入一个正整数:
”))
ifn<
1orn>
100:
exit#输入的数不符合要求,退出
foriinrange(1,n+1):
ifn//i=0:
___<
s=s+i<
print(“约数的个数是:
”,s)
【参考答案】***试卷处理标记,请不要删除
1.B
【详解】
本题主要考查Python函数。
自定义函数的格式是,def函数名(参数):
语句或语句组return返回值,故在Python中自定义函数需要def关键字放在函数开始,故本题选B选
解析:
B
语句或语句组return返回值,故在Python中自定义函数需要def关键字放在函数开始,故本题选B选项。
2.A
本题主要考查程序设计语言。
编译型语言:
程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。
Python属于解释性语言,
A
Python属于解释性语言,C++和C属于编译性语言,vb是典型的编译+解释型语言,故本题选A选项。
3.A
本题考查的知识点是程序概念。
程序是指为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。
程序中包括指令和数据。
软件是指包括所有在电脑运行的程序。
软件=程序+数据+文档。
指令是指示计算机执行某种操作的命令。
一个指令通常由两部分组成:
操作码+地址码。
根据它们的定义,可以得出题目中的源代码属于程序。
故A选项正确。
4.B
本题主要考查Python变量的命名。
变量的命名规则有:
不能以数字开头,可以以字母或下划线开头,不能包含特殊字符,不能是关键词,故2a不可以作为Python合法变量名,故本题选B选项。
5.C
本题主要考查多分支选择结构。
多分支选择结构格式:
if-elif-else,故本题选C选项。
C
6.D
本题主要考查Python表达式知识点。
书写表达式时运算符号不能省略,+加、-减、*乘、**幂、/除、//整除、%取模,A、B、C正确的表达式分别是b**2-4*a*c,1/2*g*t*
D
书写表达式时运算符号不能省略,+加、-减、*乘、**幂、/除、//整除、%取模,A、B、C正确的表达式分别是b**2-4*a*c,1/2*g*t**2,pi*r**2,2*pi*r是正确的表达式,故本题选D选项。
7.C
本题主要考查Python表达式的运算。
字符串乘上整数n,将返回由n个此字符串拼接起来的新字符串,故该表达式的运算结果是abcdcd,故本题选C选项。
8.D
本题主要考查Python赋值语句。
赋值语句是将表达式赋给变量,不可以将X+Y赋给常量10,故本题选D选项。
9.B
只能以字母或下划线开头,不能包含特殊符号,不能是关键字,故可作为Python变量名的是Abc,故本题选B选项。
10.D
本题考查的是程序调试。
报错内容是“语法错误:
无效语法”,变量名51study,数字不能作为变量名的开头,故D项正确。
11.D
本题主要考查Python数据类型。
python没有char类型,一个字符也是字符串,故本题选D选项。
12.B
本题主要考查Python程序的执行。
a=23,b=int(a/10)=2(int(x)是返回不大于x的最大整数),a=a-b*10=23-2*10=3,故代码运行后,a、b的值为3和2
a=23,b=int(a/10)=2(int(x)是返回不大于x的最大整数),a=a-b*10=23-2*10=3,故代码运行后,a、b的值为3和2,故本题选B选项。
13.B
语句x=y=z=1,赋值x、y、z值均为1;
语句x,y=y,x交换x、y的值;
x+=y等价于x=x+y;
语句x=(y=
语句x=(y=z+1)是非法的,故本题选B选项。
14.C
“//”是向下取整,abs是求绝对值函数,-16//5=-4,abs(-16//5)=4,故执行结果是4,故本题选C选项。
15.B
第一遍循环,x=(0+2)*(0+3)=6;
第二遍循环x=(6+2)*(6+3)=72,不满足x<
50,退出循环,故
50,退出循环,故运行后,x的值为72,故本题选B选项。
16.pd.read_csv学校代码result.drop(‘姓名’,axis=1)将总人数存储到变量zrs中
本题主要考查Python程序的执行与调试。
①将csv文件读入并转化为数据框形式,故填pd.read_csv。
②groupby函数主要的作用是进行数据的分组,此处按学校分组计数,故填学校代码。
③此处删除"姓名"列,可以使用drop()函数来删除,故填result.drop(‘姓名’,axis=1)。
④zrs=len(df.index),该语句是统计df内有多少个元素,即将总人数存储到变量zrs中。
17.import0~19(包括0和19)importrandomasr让程序无限循环break;
①Python中导入库文件的命令是import,如importrandom。
②random.randrange(0,20)生成的随机数的范围是0~19(包括0和19)。
③如果不想写类似random.randrange(0,20)这么长的句子,可以修改程序中的第一行为importrandomasr(给random取个简单的别名)。
④whileTrue的作用是让程序无限循环。
⑤如果whileTrue造成程序无法停止,我们可以在程序中添加一行break;
(满足条件后,执行break;
可以跳出循环)。
18.list3[2]list1[1:
4]list2=list2+list4或list2.extend(list4)list1=list1+[“塑料瓶”]或者list1.append(“塑料瓶”)
本题主要考查Python列表数据类型。
①“过期食品”在列表list3索引2,故从列表list3中取出“过期食品”的表达式:
list3[2]。
②"
在列表list1索引1~3,从list1中截取["
list1[1:
4](不包括4)。
③将该列表中的元素添加到list2中,表达式是list2=list2+list4或list2.extend(list4)。
(extend()
函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表))。
④将塑料瓶添加到列表list1中:
list1=list1+[“塑料瓶”]或者list1.append(“塑料瓶”)(append字符追加函数)。
19.k=len(s)ord(s[i])==ord(s[i+1])-1andflag==False或ord(s[i])==ord(s[i+1])-1andnotflag或ord(s[i])+1==ord(s[i+1])andflag==False或ord(s[i])+1==ord(s[i+1])andnotflagflag=False
①第一空将输入的字符串s的长度赋给变量k,故填k=len(s)。
②flag用来标记是否有连续字符构成的升序段,第二空判断相邻位置后面字符的ASCII值是否比前面的字符的ASCII值大1且flag为False,故填ord(s[i])==ord(s[i+1])-1andflag==False或ord(s[i])==ord(s[i+1])-1andnotflag或ord(s[i])+1==ord(s[i+1])andflag==False或ord(s[i])+1==ord(s[i+1])andnotflag。
③如果不满足if判断条件,则需要将该字符加到变量result中,同时赋值flag为False,表示当前没有连续字符构成的升序段,需要继续判断寻找,故填flag=False。
20.BCCCD
本题主要考查二分查找算法及Python程序实现。
①二分查找的循环条件是left<=right,故选B选项。
②此处是取中间值,需要整除2,故填(left+right)//2
,故选C选项。
③如果mid对应的列表值是1000,表示已找到,则用break跳出循环,选C选项。
④如果mid对应的列表值小于1000,则需要更新left的值为mid+1继续