内容正文:
第三章 算法的程序实现
一、选择题
1.运行下列程序,结果不可能是( )
import random
i=1
s=""
while i<=6:
a=random.randint(0,9)
if a%4==(i+1)%4:
s+=str(a)
i+=1
print(s)
A.638167 B.634923 C.564861 D.670527
2.有如下Python程序段:
x,y,z=input("请输入三个整数:").split(",")
x=int(x);y=int(y);z=int(z)
maxt=x
if y>maxt:maxt=y
if z>maxt:maxt=z
print(maxt)
运行该程序,输入数据“2,13,9”,程序的输出结果是( )
A.13 B.9 C.2 D.31
3.有如下 Python 程序段:
s=0
n=1
while s<n*2:
s=s+n
n=n+1
print(s,n)
执行程序后,输出结果是( )
A.6 4 B.9 4 C.10 5 D.15 6
4.以下关于高级语言的描述,错误的是( )
A.程序代码可读性强 B.计算机能直接执行
C.接近于数学语言 D.不再依赖特定型号的计算机
5.在Python语言中,不是关系运算符的是( )
A.<= B.== C.+= D.!=
6.某加密程序的代码如下:
str1 = input("请输入明文:")
num = "1358821604"
str2 = " "
for ch in strl:
if "0" <= ch <= "9":
str2 += num[int(ch)]
elif "a" <= ch <= "z":
str2 += chr((ord(ch) - ord("a") + 2) % 26 + ord("a"))
else:
str2 += ch
print(str2)
运行该程序,输入str1的值为“I-520-Python”,则输出结果为( )
A.G-831-Ravjqp B.G-831-Nwrfml C.I-251-Pwrfml D.I-251-Pavjqp
7.用高级语言和机器语言编写具有相同功能的程序时,下列说法中错误的是( )
A.前者比后者可移植性强 B.前者比后者执行速度快
C.前者比后者容易编写 D.前者比后者容易修改
8.在Python 语言中,如果要程序一直循环下去, 则循环的“条件”要一直为“True”,因此在程序循环开始的地方写上语句( )
A.while True: B.while 2>1: C.while 2<3: D.以上选项都对
9.有如下Python段:
import random
b=[ 39,35,28,17,15,11,9,6]
n=random.randint(1,4)*2-1
for i in range(8-n):
for j in range(7,i,-1):
if b[j] < b[j-1]:
tt=b[j]
b[j]=b[j-1]
b[j1]=tt
print(b)
执行该程序段后,输出的结果不可能是( )
A.6,39,35,28,17,15,11,9 B.6,9,11,15,17,39,35,28
C.6,9,11,15,39,35,28,17 D.6,9,11,39,35,28,17,15
10.列表1st长度为20,1st[0]至1st[5]的值依次为"p","y","t","h","o","n",执行如下Python程序段后,输出的结果是( )
i=0; j=6
while i <j:
if i % 3==0:
print(1st[i],end="")
else:
1st[j]=1st[i]
j+=1
i+=1
A.hpotny B.photny C.phynt D.phynto
11.运行以下Python程序段,输出结果是( )
def s(n):
m=1
for i in range(2,n+1):
m+=i
return m
total=s(5)
print(total)
A.5 B.10 C.24 D.15
12.Python表达式125//3**2*3%8+int(len("firstexam")/4)的值为( )
A.5 B.6 C.9 D.43
13.有如下Python程序段:
def sp(a,i):
if "a"<=a[i]<= "z":
a=a[:i]+a[i+1:]
elif "0"<=a[i]<= "9":
a=a[:i]+str((int(a[i])+3)%10)+a[i+1:]
return a
s="cfi3H8qwz4";i=0
while i<len(s):
s=sp(s,i)
i+=1
执行上述程序段后,s的值为( )
A."f3H1w4" B."3H84" C."6H17" D."f6H1w7"
14.在Python语言中,以下赋值语句正确的是( )
A.i=i-1 B.i-1=a+2 C.i+1=a D.i*3=a//2
15.列表d有n个整型元素,输出列表中最长连续递增序列的长度。小明编写的Python程序段如下:
k=1; lmax=1; n=len(d)
for i in range(1, n):
if d[i]>d[i-1]:
k+=1
else:
if k>lmax:
1max=k
k=1
print(lmax)
该程序段在某些情况下无法得到符合题意的结果,下列4组数据中能测试出这一问题的是( )
A.[1, 4, 5, 1, 2] B.[1, 2, 3, 4, 1] C.[1, 5, 1, 2, 3] D.[5, 4, 3, 2, 1]
16.下列Python表达式的值为False的是( )
A.258//10%10==5 B."7" in["3","7","m"]
C."student"[2:5]=="ude" D.1en("python")==max([2,6,1,4,7])
二、填空题
17.在非数值计算中, 算法常用于求解具有最优子结构特性的问题。
18.在JavaScript中,用于实现异步请求的API是 。
19.在JavaScript中,用于定义变量的关键字有var、let和 。
20.将高级语言源程序翻译成机器语言通常有 和 两种方式。
21.在 IDLE 编辑器中运行以下程序,屏幕打印 颗*。
for i in range(0,10,2):
print(" *" )
三、判断题
22.在python 中,运行下列程序,输出结果是0。( )
a=37
b=a%5
print(b)
23.在python中,运行下列程序,从键盘接受的数据分别是10和20,输出结果是1020。( )
a=int(input())
b=int(input())
print(a+b)
24.python程序中,乘除运算的优先级高于加减运算。( )
25.Python中变量在使用前不需要定义,变量会根据每次赋值的具体数据类型,自动改变数据类型以适应新的赋值。( )
26.在Python语言中,变量名Air和air表示的是两个不同的变量。( )
四、操作题
27.骰子六个面上分别是数字1~6。设计模拟掷骰子游戏。反复掷,掷到6为止,统计掷骰子次数。请在序号处填写正确的代码,且不改变原程序的结构。
import ①
res=0 #骰子的数字
i=② #投掷的次数
while ③ :
res=random. randint (1, 6) #骰子再投掷一次
print (④ )
⑤ #投掷的次数加1
print ( "一共掷了" , i, "次" )
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.C
【详解】本题考查Python程序设计相关内容。语句a=random.randint(0,9)用于产生0~9之间的随机整数,语句if a%4==(i+1)%4的作用为判断产生的随机数a除以4的余数与(i+1)除以4的余数是否相同,如果相同,将a转成字符串连接到s中,继续往下执行。因此,当i=1时,a除以4的余数应是2(a值可能为2、6);i=2时,a除以4的余数应是3(a值可能为3、7);i=3时,a除以4的余数应是0(a值可能为0、4、8);i=4时,a除以4的余数应是1(a值可能为1、5、9);i=5时,a除以4的余数应是2(a值可能为2、6);i=6时,a除以4的余数应是3(a值可能为3、7);ABD选项为可能结果。C选项,第一个字符不可能为'5',第二个字符不可能为'6',第四个字符不可能为'8',第六个字符不可能为'1'。故本题答案是C选项。
2.A
【详解】本题考查Python基础。
该程序功能是从输入的数字中,找到最大的一个数输出。故正确答案为:选项A。
3.C
【详解】本题考查程序分析。
初始化s=0,n=1。每次循环n累加1,s累加n。当累加n到s结果为10时,故s=1+2+3+4,此时n为5,退出循环。故正确答案为:选项C。
4.B
【详解】本题考查程序设计语言的描述。用高级语言编写的程序,不能直接被计算机所识别和执行,接近于自然语言,程序代码可读性强,移植性好。故本题应选B。
5.C
【详解】本题考查Python运算符。+=:赋值运算符,用于将右操作数加到左操作数并赋值给左操作数。故答案为:C。
6.D
【详解】本题主要考查Python程序的执行。分析程序可知,ch依次是从字符串s1中取的字符,如果ch是数字时,则将其作为索引从字符串q中取对应的数字,故520对应的数字是251;如果ch是小写字母,则将其循环后移2位;如果ch是其他字符,则保持不变,故输入s1的值为"I-520-Python",则输出结果为I-251-Pavjqp,故本题选D选项。
7.B
【详解】本题主要考查编程语言的描述。高级语言更接近人类的自然语言,易学易记;采用高级语言编写的程序修改方便;高级语言可读性好、移植性好;采用高级语言编写的程序占用内存空间较大,执行速度较慢。故本题选B选项。
8.D
【详解】本题考查的是while循序。2>1、 2<3表达式值为True,故本题应选D。
9.C
【详解】本题考查Python程序设计相关内容。n的值为1、3、5、7,当n=7时,将b数组中的数据进行1遍排序,排序结果为“6,39,35,28,17,15,11,9”,因此A选项有可能;当n=3时,排序结果为“6,9,11,15,17,39,35,28”,因此B选项有可能;当n=5时,排序结果为“6,9,11,39,35,28,17,15”,因此D选项有可能;C选项是当n=4时的排序结果,而n是[1,8]间的奇数,因此不可能是C。故本题答案是C选项。
10.D
【详解】本题考查Python程序设计相关内容。结合题目内容,分析程序段,可知,该程序段运行过程如图所示:
其输出结果为:“phynto”。故本题答案是D选项。
11.D
【详解】本题考查Python程序设计相关内容。range(start, stop,[step]),start:计数从start开始,默认是从0开始。stop:计数到stop结束,但不包括stop。step:步长,默认为1。分析程序段可知,该程序通过调用s函数实现计算:1+2+3+4+5=15。故本题答案是D选项。
12.C
【详解】本题考查的是Python表达式。//整除,**幂乘,*乘,%求余,int取整,len()求长度。**运算等级最高,故125//3**2*3%8+int(len("firstexam")/4)=9。选项C正确。
13.A
【详解】本题考查Python程序设计相关内容。分析程序段,可知,sp函数中,当字符s[i]是小写字母时,则在字符串s中跳过该字母,即删除该字符;当s[i]是数字时,该数字变为int(s[i])+3)%10,即循环后移3个单位。s="cfi3H8qwz4",当i=0时,s=sp(s, i)="fi3H8qwz4";当i=1时,s=sp(s, i)="f3H8qwz4";当i=2时,s=sp(s, i)="f3H8qwz4";当i=3时,s=sp(s, i)="f3H1qwz4";当i=4时,s=sp(s, i)="f3H1wz4";当i=5时,s=sp(s, i)="f3H1w4";当i=6时,循环结束。此时,s的值为:"f3H1w4"。故本题答案是A选项。
14.A
【详解】本题考查Python赋值语句。Python中,赋值语句是将等号右边的表达式赋值给等号左边的变量,因此正确的赋值语句是i=i-1。故选A。
15.C
【详解】本题考查Python程序设计相关内容。分析代码段及4个选项可知,ABD选项均可以得出正确结论;
C选项,最长连续递增序列为:1,2,3,lmax值应该为3,但代码段运行后,其结果为2,具体情况:循环开始,(1)当i=1时,d[1]>d[0]成立,k+1,k值为2,lmax没变化,值为1;(2)当i=2时,d[2]>d[1]不成立,此时k=2,k>lmax成立,执行lmax=k,lmax值变为2,且k变为1(k=1);(3)当i=3时,d[3]>d[2]成立,k+1,k值为2,lmax没变化,值为2;(4)当i=4时,d[4]>d[3]成立,k+1,k=3,lmax没变化,值为2;循环结束。此实例说明该代码段在某些情况下无法得到符合题意的结果。故本题答案是C选项。
16.D
【详解】本题考查的是Python表达式。258//10%10==5值为True,"7" in["3","7","m"]值为True,"student"[2:5]=="ude"值为True,1en("python")==max([2,6,1,4,7])值为False。故本题应选D。
17.动态规划
【详解】本题考查动态规划算法。动态规划是一种用于解决具有最优子结构特性问题的算法技术。最优子结构特性意味着一个问题的最优解可以通过其子问题的最优解来构建。动态规划通过将问题分解为更小的子问题,逐步解决这些子问题,并将其结果存储起来以避免重复计算,从而提高算法的效率。
18.XMLHttpRequest 或 fetch
【详解】本题考查计算机编程语言。
在JavaScript中,用于实现异步请求的API主要是XMLHttpRequest和fetch。然而,随着现代Web开发的演进,fetch API因其更简洁的语法和更强大的功能,逐渐成为实现异步请求的首选。故正确答案为:XMLHttpRequest或fetch。
19.const
【详解】本题考查计算机编程。在JavaScript中,var、let和const是用于定义变量的关键字。var是传统的定义变量的方式,但存在一些作用域和变量提升方面的问题。let解决了var的部分问题,具有块级作用域。const用于定义常量,即定义后其值不能被重新赋值。故答案为:const。
20. 解释 编译
【详解】本题考查程序的描述。将高级语言源程序翻译成机器语言通常有解释和编译两种方式。
21.5
【详解】本题考查Python程序的执行。range(start, stop, [step]),start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5;step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)。i依次取0、2、4、6、8,因此循环5次,即屏幕打印5颗*。
22.错误
【详解】本题考查Python程序设计相关内容。b=a%5-->b=37%5-->b=2,输出结果是2。故本题答案是:错误。
23.错误
【详解】本题考查Python程序设计相关内容。input()函数用于提示并获取终端用户输入内容,一般获取的输入内容为字符串类型。int()函数用于将一个字符串或数字转换为整型。从键盘接受的数据分别是'10'和'20',两个数据为字符串类型,经过int()函数后,'10'和'20'转换为整型数值10和20,a+b=30,故本题答案是:错误。
24.正确
【详解】本题考查Python运算符相关内容。在Python中,算术运算符有:加、减、乘、除、取余等。乘除运算的优先级高于加减运算。故本题答案是:正确。
25.正确
【详解】本题主要考查Python变量相关内容。Python是动态语言,变量不需要根据其要赋予的值提前定义数据类型,变量会根据每次赋值的具体数据类型,自动改变数据类型以适应新的赋值。故本题答案是:正确。
26.正确
【详解】本题考查Python变量相关内容。在Python语言中,变量名是区分大小写的,因此变量名Air和air会被视为两个不同的变量。故本题答案是:正确。
27. random 0 res!=6 res i+=1
【详解】本题考查Python程序设计相关内容。结合题目内容分析程序段,推知:该程序利用随机数函数模拟掷骰子过程。random()函数不能直接访问,需要通过import导入random模块,故①处应填写:random。②处,i作用是统计投掷的次数,其初始值应为0,故此处应填写:0。③处,由“反复掷,掷到6为止”可知,循环条件为:res!=6,故此处应填写:res!=6。④处,res存放掷骰子的数值,每次投掷后均输出其值,故此处应填写:res。⑤处,每投掷一次,计数器i加1,故此处应填写:i+=1。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$