《高教版Python语言程序设计冲刺试卷》——模拟试卷C知识点
本文根据该书模拟试卷C答案及试卷讲解整理得,具有题目针对性,不涵盖部分送分题。欢迎探讨。
1.栈和队列
栈:指定了一端进行插入与删除的线性表,按照先进后出、后进先出原则,具有记忆作用
队列:允许在一段插入并在另一端删除的线性表,按照先进先出、后进后出原则,一般采取循环队列形式顺序存储,由队头指针和队尾指针共同决定其元素个数
2.模块独立性
模块独立性是评价软件设计好坏的度量标准。耦合性低、内聚性高的软件模块独立性好,意味着该软件质量高。
3.数据库系统
数据库系统核心:数据库管理系统
数据独立性:数据与程序之间互不依赖
4.python变量特点
随时命名、随时赋值、随时使用。
5.综合应用题
题目要求:
- 使用 random 库,采用 0x1010作为随机数种子。
- 密码 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&* 中的字符组成。
- 每个密码长度固定为 10 个字符。
- 程序运行每次产生 10个密码,每个密码一行。
- 每次产生的 10个密码首字符不能一样。
- 程序运行后产生的密码保存在“随机密码.txt”文件中。
自己敲的代码如下,运用直接重排密码字符本取前十位的方式生成密码,自己跑没问题但是平台自动评阅认不出来。
#PasswordGenerator
import random
random.seed(0x1010)
def SINGLEPASS(codebook):
passwords=''.join(codebook)
password=passwords[0:10]
return password
def WRITEFILE(password):
file=open('随机密码.txt','a',encoding='utf-8')
file.write(password+'\n')
file.close
def MAIN():
initials=[]
codebook=['a','b','c','d','e','f','g','h','i','j',\
'k','l','m','n','o','p','q','r','s','t',\
'u','v','w','x','y','z','A','B','C','D',\
'E','F','G','H','I','J','K','L','M','N',\
'O','P','Q','R','S','T','U','V','W','X',\
'Y','Z','1','2','3','4','5','6','7','8',\
'9','0','!','@','#','$','%','^','&','*']
i=0
while i<10:
random.shuffle(codebook)
password=SINGLEPASS(codebook)
if password[0] not in initials:
WRITEFILE(password)
initials.append(password[0])
i+=1
MAIN()
参考答案代码如下,是采用了密码字符本不动随机蹦字符的方法。
import random
random.seed(0x1010)
s = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*"
ls = []
excludes = ""
while len(ls) < 10:
pwd = ""
for i in range(10):
pwd += s[random.randint(0, len(s)-1)]
if pwd[0] in excludes:
continue
else:
ls.append(pwd)
excludes += pwd[0]
# 直接打印
print("\n".join(ls))
# 或写入文件
fo = open("随机密码.txt", "w")
fo.write("\n".join(ls))
fo.close()