相关试卷
-
1、小明设计了一个加密程序,对于任意输入的一个字符串,运行程序后会输出相应的密文。其中,字符串加密算法的思路如下:
⑴只针对英文字符和数字进行加密,其余字符保持不变;
⑵将原文中的小写字母转换成大写字母;
⑶根据第2步所得结果,若是英文字符,则逐个后移4位(例如“A”→“E”,“Z”→“D”);若是数字,则逐个前移2位(例如:“3”→“1”,“1”→“9”)。
实现上述要求的某Python程序如下,但程序加框处代码有误,请修改。
s1=input("请输入明文:")
s2="
for i in range(len(s1)):
s=""
if s1[i]>="a" and s1[i]<="z":
s=chr(ord(s1[i])-32)
s=chr((ord(s)-ord("A")+4) % 26 +ord("A"))
elif s1[i]>="A" and s1[i]<= "Z":
s=chr((ord(s1[i])-ord("A")+4)%26 +ord("A"))
elif s1[i]>="0" and s1[i]<="9":
#①else:
#②s2=s2+s
print("得到的密文是:",s2)
-
2、在平面坐标系中,给定一组有序的点 。从原点出发,依次用线段连接这些点,构成一条折线,要求编写一个“计算折线长度”的Python程序,该Python程序代码编写思路如下:
①输入各点的坐标(最后一个点的坐标后不加逗号),存人变量a中;
②将原点坐标加到坐标序列a的最前端;
③以逗号为界从a中取出各点的坐标,存入列表b中;其中列表b中的第一个和第二个数字为第一个点的x坐标和y坐标,第三个和第四个数字为第二个点的x坐标和y坐标,以此类推;
④计算折线长度。若以b[]标记为相邻两个点中前者的x坐标,则b[i+2]为后者的x坐标,b[i+1]为前者的y坐标,b[i+3]为后者的y坐标。i最小值为0,最大值为len(b)-4,步长为2。运用for语句求折线长度。
程序如下:
from math import sqrt
a=input("请输入各点的坐标:")
① #补上原点坐标
b=a.splt(",") #取出各点的坐标
if len(b) %2== 1:
print("输入的坐标有误")
else:
s=0
for i in range(0, len(b)-2, ② ):
s=s+sqt((int(b[i+2])-int(b[i])* *2+(int(b[i+3])-int(b[i+1])**2)
else:
print("折线长度为:", s)
(1)、若三个点的坐标为(5,10),(8,12),(6,17),则输入为。(2)、程序中划线处的代码为①;②。 -
3、编写“字符串生成”的Python程序。程序功能:输入由多个正整数组成的字符串t1(这些正整数以“,”为分割符和结束符),并以这些整数为位置信息,依次从字典内容(t2)中提取相应字符并连接成字符串(s),最后将字符串(s)显示输出。其中,字典内容(2)从文件“dictionary.txt"中读取。
例如:
输入的t1="2,8,15,"
字典内容(t2)从文件“dictionary.txt”中读取的内容为“python is a programming language.”
程序最终输出的字符串(s)为:yio
实现上述功能的某Python程序如下:
f=open('dictionary.txt', 'r')
t1=input('字符位置:')
t2=f.read( )
s=' '
t=' '
for i in range ① :
c=t1[i]
if c==',':
p=int(t)
s=s+t2[p-1]
t="
else:
②
print(生成内容:',s)
f.close
为了使程序能正确运行,上述程序中划线处的代码分别为:①
②
-
4、有如下Python程序。
import turtle
str1=input("请输入一个二进制整数:")
str1_ len=len(str1)
s=0
for i in range(str1_ len):
a=int(str1[i])
b=2**(str1_ len-i-1)
x=a*b
s+=x
print(s)
运行该程序,输入1101110,程序结果为( )
A、110 B、111 C、220 D、1101110 -
5、有10个数据34,22,101,8,14,88,24,17,54,7依次存放在列表list中,有如下Python程序:
list= [34,22,101,8,14,88,24,17,54,7]
num=list[0] for i in range(1, 10):
if list[i]<num:
num=list[i]
print(num)
当程序运行结束时,输出的值是( )
A、101 B、7 C、8 D、88 -
6、斐波那契数列又称黄金分割数列,指的是这样一个数列:0,1,1,2,3,5,8,13,21,34……在数学上,斐波那契数列以下面的方法来定义:
F(0)=0 (n=0)
F(1)=1 (n=1)
F(n)=F(n-1)+F(n-2) (n≥2)
输出斐波那契数列中第10个数的Python程序如下:
def fib(n):
a,b= 0,1
for i in range(n):
return a
print(fib(10))
关于加框处的代码,下列说法正确的是( )
A、最多执行1次 B、最多执行9次 C、交换a和b的值 D、从数列中的第三项起,每一.项都是它 相邻的前两项之和 -
7、有如下Python程序段:
s="6st-udYy"
for i in range(len(s)):
if s[i]>="a" and s[i]<="z":
t=t+s[i]
print(t)
该程序段的功能是输出字符串s中的( )
A、小写字母个数 B、所有小写字母 C、所有数字之和 D、所有非数字字符 -
8、有如下Python程序:
score = int(input('\n'))
if score>= 90:
grade= 'A'
elif score >= 60:
grade = 'B'
else:
grade= 'C'
print (score, grade)
运行程序,输入“78”后回车,程序的输出结果是( )
A、78A B、B78 C、78B D、78C -
9、某算法的部分程序代码与其相对应的流程图表示如下:
Python程序代码
流程图
s= 1
for i in range(1, ① ):
if i%2!=0:
②
print (s)
则程序中划线①和②处应填入的是( )
A、①11 ②s*=i B、①11 ②s*=i+1 C、①10 ②s*=i D、①10 ②s*=i-1 -
10、在Python中,若lang-"study python" ,则要访问第一个字符“s”的表达式为( )A、lang(0) B、lang[0] C、lang[1] D、"study python"[1]
-
11、在Python中,与语句pow(4,2)功能相同的是( )A、4**2 B、2**4 C、4*2 D、4%2
-
12、下列Python表达式的值为5的是( )A、int('10',5) B、max(5,10,15) C、len([1,5]) D、ord('5)
-
13、Python中,若用变量a存储学生的身份证:号码,则变量a的数据类型为( )A、布尔型 B、实型 C、字符串型 D、整型
-
14、素数(prime number)又称质数,有无限个。在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为素数,如2,3,5,7,11……求1到100之间所有素数的Python程序如下,请在划线处填入合适的代码。
import math #导人math库,以便使用里面的函数
list= [2,3] #2,3预先加到素数列表中
for i in range(5,101,2): #第一层循环,从5到100中的奇数
for j in range(2, ): #第二层循环,逐个判断是否有因数
if #如果出现整除说明有因数
break #跳出循环判断下一个
else: #如果第二层循环结束还没有跳出的话
list.append(i) #说明是素数,加到列表里
n+=1
for i in range(0,n+2): #输出
print(list[i])
-
15、10个数据“23,15,51,36,78,47,39,9,88,96”依次存放在列表a中,使用如下Python程序段找出大于70的数的个数。
a=[23,15,51,36,78,47,39,9,88,96]
n=0
m=70
for i in range(0,10):
if :
n+=1
print("个数:",n)
程序中划线处的代码应为( )
A、a[i]>n B、a[i]<n C、a[i]>m D、a[i]< m -
16、密码的合法性。某网络服务平台,要求新注册用户的密码必须以字母开头,并且含有字母(区分大小写)、数字和下划线,密码字符的长度为6~18个字符。判断用户的密码是否合法的某Python程序如下,请在程序划线处填入合适的代码,完善程序。
n1 =False #判断数字
n2=False #判断下划线
flag=False #判断首字符和长度是否满足要求
password=input('请输入密码:\n')
n= ①
ch=password[0]
if 19>n>5 and (z'>=ch>='a' or 'Z>= =ch>='A'):
flag=True
if flag:
for i in range(1, n):
ch=password[i]
if '9'>=ch>='0':
n1= ②
elif ch= '_':
n2=True
if ③
print('结果:', '合法')
else:
print('结果:', '不合法')
① ② ③ -
17、验证哥德巴赫猜想“任一大于2的整数都可写成两个质数之和"的Python程序如下:
import math
def isprime(n): #判断素数(素数又称质数)
if n= 1:
return False
elif n= 2:
return True
else:
for i in range ①
if n%i== 0:
return False
return True
print('请输入一个正整数n:')
n = int(input( ))
for i in range(2,n//2+1):
if isprime(i) and ②
print(n,‘=’,i,‘+’,n-i)
(1)、请在划线处填入合适的代码,完善程序,实现功能。① ②
(2)、若输入的一个正整数为6,则输出结果是 。 -
18、求方程组的解。有如下方程组:
求该方程组解的Python程序如下:
for x in range(1,8,1):
if :
print("x= ",x)
print("y=",38-5*x)
回答下列问题:
(1)、上述程序中,用到的主要算法是。(2)、为了使程序能正确运行,上述程序划线处的代码应为。 -
19、有如下Python程序段:
s=0
for i in range(1, 101):
if i%2== 0:
s+=i
该程序段被执行后,变量s中存储的是1~100之间的( )
A、偶数个数 B、奇数个数 C、奇数之和 D、偶数之和 -
20、下列问题中,适合使用枚举算法的是( )A、计算两个电阻的并联值 B、计算五位同学的平均身高 C、查找100以内所有能被6整除的数 D、计算超市的月利润