内容正文:
2.3 程序设计基本知识
一、选择题
1.已知a=5,b=6,则执行下列语句后,a和b的值分别是( )
a=a+b
b=a+b
A.11;17 B.11;11 C.17;11 D.5;6
2.将数学式子用Python表示为( )
A.(x+y)~2/2a B.(x+y)*(x+y)/2*a
C.(x+y)**2/2a D.(x+y)**2/(2*a)
3.下列不属于程序设计的三大结构的是( )
A.分支 B.顺序 C.循环 D.树型
4.Python中可以借助数据可视化模块实现函数f(x)=5x-x+1和f(x)=5x-1图像的绘制(如下图所示),请补充正确代码完成两个函数图像绘制。
import ① as np
import ② as plt
x=np.arange(−10,10,0.01)
y1=5∗x∗x−x+1
plt. plot(x,y1)
y1=5∗x−1
plt. plot(x,y1)
plt. show()
下列选项正确的是( )
A.① matplotlib.pyplot ②numpy B.①numpy ② matplotlib.pyplot
C.① matplotlib.plot ②numpy D.①numpy ② matplotlib.plot
5.表达式16/4-2^5*8/4 MOD 5\2的值为值是( )。
A.14 B.4 C.20 D.2
6.Python 语句 print(100-25*3%4)运行结果是( )
A.1 B.97 C.25 D.0
7.设a=16,b=4,下列表达式的运算结果中,值最小的是 。
A.(a +1) % b B.a % b -1 C.sqrt(b / a) D.sqrt(a) ** sqrt(b)
8.编号为1到13的纸牌顺时针排成一圈,现从编号为1的牌从数字1开始顺时针数下去,1、2、3、……、20、21、……,一圈又一圈,则当数到数字N时,所在纸牌的编号为( )
A.N%13 B.(N+1)%4 C.1+(N-1)%12 D.1+(N-1)%13
9.与数学表达式 对应的Python 表达式中,不正确的是( )
A.c*d/(2*a*b) B.c/2*d/a/b C.c*d/2*a*b D.c*d/2/a/b
10.Python 表达式 abs(−9) ∗∗ 2//4%3 ∗ int(4.0) ∗∗ 0.5的值是( )
A.4 B.2√2 C.4.0 D.−2√2
11.有如下Python程序段:
import random
a=[0]*6
for i in range(1,6):
tmp=random.randint(5,24)
if tmp%2==0 or i%2==1:
a[i]=a[i-1]+tmp
print(a)
运行程序后,数组a的值可能的是( )
A.[0, 9, 29, 50, 0, 20] B.[8, 20, 44, 62, 86, 109]
C.[0, 8, 14, 21, 39, 0] D.[0, 10, 24, 43, 0, 30]
12.有如下 python 加密程序段, 以下说法正确的是( )
A.该加密程序段所用的加密算法是换位密码法
B.若输入字符串 code 为“App”,则输出的结果为 crr
C.若要对数字字符逐个右移进行加密,则只需将加框处语句修改为“(int(s)+key)%10”
D.若原文全部由小写字母组成,将加框处语句修改为“ord('a')+((ord(s)-ord('a'))-key)%26”可将加密的密文还原为明文
13.在Python中,设 a=2,b= 3,则表达式not(a> b)的值是( )
A.1 B.0 C.True D.False
14.下列不符合Python语言变量名规则的是( )
A.L B.3_1 C._AI D.TempStr
15.某算法的部分流程图如下图所示,输入s=11200,执行这部分流程后,输出m和n的值分别是( )
A.14 4
B.21 4
C.22 5
D.42 5
16.有如下Python程序段:
s=″328ud*YourDay″
t=″″
for i in range(len(s)):
if s[i]>=″a″ and s[i]<=″z″:
t=t+s[i]
print(t)
该程序段的功能是( )
A.输出字符串t中的所有小写字母 B.输出字符串s中的小写字母个数
C.输出字符串s中的所有的非数字字符 D.输出字符串s中的所有小写字母
17.按照下图中的数值,计算round(c, 2)+int(3.88)的值为( )
A.6.7 B.5.6 C.5.67 D.5.66
二、填空题
18.利用编程解决“判断一个数的奇偶性”问题,应该使用的程序结构是 结构。
19.在Java中,System.out.println用于输出信息到 。
20.在横线处填入表达式完成如下Python程序,求0-100所有偶数的和。
sum=0
for i in :
sum=sum+i
print(sum)
21.有100位同学排成一列,从第一位同学开始按1至100的序号进行报数,所报序号含有6的同学需要出列。则判断序号x是否出列的Python表达式是: 。
22.Python中读写文本文件的方法,其中打开用 把外存储器里的文本文件(.txt)打开;存储用 将内存中的数据存储到外存储器的文件中;关闭文件时一定要用 关闭文件。
三、判断题
23.在Python语言中,用open函数把外存储器里的文本文件打开,用write方法将内存中的数据存储到外存储器的文件中,文件操作结束时一定要用close方法关闭文件。( )
24.列表中的元素可以是不同数据类型( )
25.Python语言具有面向对象、代码规范、函数库丰富、动态数据类型等特点。( )
26.算术运算符中*、/的运算优先级高于//和%。( )
四、操作题
27.某校军训,需要按照身高由低到高排成n行5列的方阵。某班学生按照身高(100≤身高≤199)由低到高编写编号并将相关信息存在如1图所示"stu.txt"文件中。根据教官提出的排方阵要求,排成如2图所示方阵,方阵各点显示学生编号。
1图 2图 3图
现有延迟报道学生归队,归队学生编号延续该班现有编号依次往后,编写程序完成下列任务:输入学生身高,输出新的方阵布局图。例如:输入学生身高为168,新的方阵布局图如3图所示,学生在方阵的位置:3,4.
(1)若插入学生身高为160cm,根据1图及范例,该学生应该在2图方阵中的几行几列 。
(2)为实现上述功能,请填写划线处代码。
f=open("stu.txt","r")
a=[]
line=f.readline( ).split( )
i=1
while line!=[]:
a.append([line[0],line[1],i])
i+=1
line=f.readline( ).split( )
n=len(a)-1
a[n][2]=-1
sg=input("请输入插入的学生身高(cm):")
xh=str(len(a))
head=1
p=head;q=head
while① :
p=q
q=a[q][2]
if q==head:
②
head=len(a)-1
else:
a.append([xh,sg,a[p][2]])
a[p][2]=len(a)-1
p=head
m=1
while p!=-1:
if m!=5:
print(a[p][0],end="")
m+=1
else:
print(a[p][0])
m=1
③
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.A
【详解】本题主要考查Python语句执行。a=5,b=6,a=a+b=5+6=11,b=a+b=11+6=17,故本题选A选项。
2.D
【详解】本题考查Python表达式。Python中,幂运算符是**,乘运算符是*,因此对应Python表达式是(x+y)**2/(2*a)。故选D。
3.D
【详解】本题主要考查程序设计的基本结构。程序设计的三大结构是分支、顺序和循环结构,故本题选D选项。
4.B
【详解】本题主要考查Python图像绘制。NumPy是Python的一种开源的数值计算扩展库,此处指定别名为np;Matplotlib是一个Python的2D绘图库,matplotlib.pyplot是一个有命令风格的函数集合,它看起来和MATLAB很相似。每一个pyplot函数都使一副图像做出些许改变,例如创建一幅图,在图中创建一个绘图区域,在绘图区域中添加一条线等等。在matplotlib.pyplot中,各种状态通过函数调用保存起来,以便于可以随时跟踪像当前图像和绘图区域这样的东西,此处指定别名为plt,故本题选B选项。
5.B
【详解】本题考查VB表达式。表达式16/4-2^5*8/4 MOD 5\2,根据优先级,先执行2^5=32,然后是16/4,以及32*8/4和5\2,化简后得到4-64 MOD 2,最后得到4,故本题选B。
6.B
【详解】本题主要考查Python表达式的运算。*表示乘,%表示求余。100-25*3%4=100-75%4=100-3=97。故本题应选B。
7.B
【详解】本题主要考查Python表达式的运算。a=16,b=4,(a +1) % b =(16+1)%4=1,a % b -1=16%4-1=-1,sqrt(b / a)=sqrt(4 / 16)=1/2,sqrt(a) ** sqrt(b)=sqrt(16) ** sqrt(4)=4**2=16,故值最小的是a % b -1,故本题选B选项。
8.D
【详解】本题主要考查Python表达式。编号为1到13的纸牌顺时针排成一圈,现从编号为1的牌从数字1开始顺时针数下去,1、2、3、……、20、21、……,一圈又一圈。因此周期是13,但是数字13的编号为13,数字14的编号为1,结合选项,则当数到数字N时,所在纸牌的编号为1+(N-1)%13,故本题选D选项。
9.C
【详解】本题主要考查Python表达式的运算。Python中乘运算符是“*”,除运算符是“/”,分子和分母整体需要加上小括号以确保优先级,故选项C与题干中的数学表达式不对应。本题应选C。
10.C
【详解】本题考查的是Python表达式。Python中数值类型的运算结果保留更精确的值,故abs(−9) ∗∗ 2//4%3 ∗ int(4.0) ∗∗ 0.5=4.0,选项C正确。
11.A
【详解】本题主要考查Python程序的调试。tmp=random.randint(5,24),tmp是随机生成[5,24]之间的整数,i从1开始,故a[0]=0不变,排除选项B;如果tmp%2==0 or i%2==1,即tmp是偶数的同时i是奇数,则执行 a[i]=a[i-1]+tmp,当i=1时,都会执行a[i]=a[i-1]+tmp,选项A、C、D均符合;当i=2时,如果tmp是偶数,则执行a[i]=a[i-1]+tmp,选项A中,29-9=20满足偶数的条件,选项C中,14-8=6满足偶数的条件,选项D中,24-10=14满足偶数的条件;当i=3时,选项A、C、D均符合;当i=4时,同理i=2的情况,选项A、D中,当tmp是奇数则跳过if,a[4]=0,选项A符合,选项B中,39-21=18,也满足;当i=5时,均满足if判断条件,故a[5]不可能为0,排除选项C,选项D中tmp最大为24,即a[5]最大为24,排除选项D,故本题选A选项。
12.D
【详解】本题主要考查Python程序的执行与调试。该加密程序段所用的加密算法是替代密码;若输入字符串 code 为“App”,则输出的结果为wrr;若要对数字字符逐个右移进行加密,则只需将加框处语句修改为“ord('0')+((ord(s)-ord('0'))+key)%10”; 若原文全部由小写字母组成,将加框处语句修改为“ord('a')+((ord(s)-ord('a'))-key)%26”可将加密的密文还原为明文,故本题选D选项。
13.C
【详解】本题考查的是Python表达式。not x表示“非”,如果x为True,返回False;如果x为False,它返回True。a=2,b= 3,a> b的值是False,故not(a> b)的值为True。选项C正确。
14.B
【详解】本题考查的是Python变量名命名。Python程序设计语言规定标识符由字母(A~Z,a~z)、数字(0~9)、下划线组成,并且其第一个字符必须是字母或下划线,而不能是数字,如s1,k,num,pai等。故本题应选B。
15.C
【详解】本题主要考查循环结构流程图的读取。
第一次循环:m=0*3+11200 mod 10=0+0=0 n=1 s=11200\10=1120
第二次循环:m=0*3+1120 mod 10=0+0=0 n=2 s=1120\10=112
第三次循环:m=0*3+112 mod 10=0+2=2 n=3 s=112\10=11
第四次循环:m=2*3+11 mod 10=6+1=7 n=4 s=11\10=1
第五次循环:m=7*3+1 mod 10=21+1=22 n=5 s=1\10=0
当s<>0不成立时,跳出循环,输出m=22 n=5,因此C选项正确。A、B、D选项均不正确。
16.D
【详解】本题Python循环语句。考查的是本题字符串t中输出的是字符串s中的所有小写字母,因此答案为D。
17.C
【详解】本题考查的是Python表达式。round(c, 2)是对c进行四舍五入保留两位小数,int(3.88)转换为整数3,结合图中可知,c=20*2/15,故round(c, 2)+int(3.88)=5.67,选项C正确。
18.条件分支
【详解】本题主要考查程序控制结构。利用编程解决“判断一个数的奇偶性”问题,应该使用的程序结构是条件分支结构。
19.标准输出(或控制台)
【详解】本题考查计算机编程。在Java中,System.out.println方法用于将信息输出到标准输出,通常是控制台。它是Java提供的一种便捷方式,让程序能够向用户展示处理结果、提示信息或其他需要输出的内容。故答案为:标准输出(或控制台)。
20.range(0,101,2)
【详解】本题考查Python程序设计相关内容。根据题意求0-100之间的偶数和,从2开始,每次递增2,直到增加到100,故用range()函数实现:range(0,101,2)。故本题答案是:range(0,101,2)。
21.x%10==6 or x//10==6
【详解】本题考查的是Python表达式。1至100的序号是否含有6,既个位数为6或十位数为6,故其表达式为:x%10==6 or x//10==6。
22. open函数 write方法 close方法
【详解】本题考查Python相关知识。Python中读写文本文件的方法,其中打开用open函数把外存储器里的文本文件(.txt)打开;存储用write方法将内存中的数据存储到外存储器的文件中;关闭文件时一定要用close方法关闭文件。
23.正确
【详解】本题主要考查Python函数的应用。在Python语言中,用open函数把外存储器里的文本文件打开,用write方法将内存中的数据存储到外存储器的文件中,文件操作结束时一定要用close方法关闭文件,表述正确。
24.对
【详解】本题考查的是Python数据类型。列表中的元素可以是不同数据类型,说法正确。
25.正确
【详解】本题考查的是Python。Python语言具有面向对象、代码规范、函数库丰富、动态数据类型等特点。说法正确。
26.错误
【详解】本题考查的是Python算术符。在Python中算术运算符*、/、//和%运算优先级一样,故题干中的说法是错误的。
27. 1,5 a[q][1]<sg and q!=-1或int(a[q][1])<int(sg) and q!=-1 a.append([xh,sg,head])或a.append([xh,sg,p])或a.append([xh,sg,q])或a+=[[xh,sg,head]]其他等价答案 p=a[p][2]
【详解】本题主要考查Python程序的综合应用。(1)由图可知,若插入学生身高为160cm,根据1图及范例,则该学生的编号为5,该学生应该在2图方阵中的1行5列。(2)①该程序实现二维数组模拟链表数据结构,二维数组中索引0、1、2分别标记编号、身高、指针域,此处通过循环找到插入位置,循环条件是当前节点q的身高小于sg且链表没有结束,即q!=-1,故循环条件是a[q][1]<sg and q!=-1或int(a[q][1])<int(sg) and q!=-1。②如果 q==head,则插入的点指向头节点head,故此处填 a.append([xh,sg,head])或a.append([xh,sg,p])或a.append([xh,sg,q])或a+=[[xh,sg,head]]。③此处更新p的值,即指向下一个节点,故此处填p=a[p][2]。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$