2016 年上海市高等学校计算机等级考试试卷二级Python 语言程序设计(模拟卷)(本试卷考试时间120 分钟)一、单选题(10 小题,每小题1.5分,共15 分)1. “ Python 语法认为条件x<=y<=z 是合法的” , 此说法________A. 错误B. 是否正确,要依据y 变量的情况而定C. 正确D. 是否正确,要依据Python 版本而定2. 从字符串S的右侧向左数的第3个字符,表示为A. s[3]B. S[-3]C. S[0:-3]D. S[:-3]3. 若有iliSt=[0,1,2,3,4] ,则iliSt*2 的结果为 ________A. [0,0,1,1,2,2,3,3,4,4]B. [0,1,2,3,4,0,1,2,3,4]C. [4,3,2,1,0]D. [ ‘0','1','2','3','4']4. 下列类型中,数据不可变化的是_________A. 列表B. 字典C. 元组D. 列表、字典、元组类型中数据都不可变化5. ______________________________________________ 字典d={'abc':1, 'qwe':2, 'zxc':3} , Ien(d)的结果为 ___________________________________________A. 6B. 9C. 3D. 126. 在Python 中适合实现多路分支的结构是__________A. tryB. if-eIif-eISeC. ifD. if-eISeif-eISeA. nextB. whileC. inD. elif7. 用for 和关键词可以组成循环遍历字符串中的每个字符。
8. 设有函数定义:def f1(a=0):print(a*100)则以下错误的函数调用语句是___________A. f1( )B. f1(30)C. f1(30)+5D. f1(30+5)9. 以下python 代码片段:fname = 'c:\\test.txt' infile = open(fname,"r") data = infile.read() print(data) 其中”r ”的含意是 ____A. 读写模式B. 只写模式C. 只读模式D. 二进制只读模式10. _______ 不是类的基本特征。
A. 封装性B. 继承性C. 多态性D. 公有性、程序填空题(本大题 2 道小题,每空 2.5 分,共20 分)1. 根据密码表将密文解密成明文为了提高数据的安全性,可将数字数据(如银行账号等)加密成字母密文保存,在使用时再解密还原成数值(例如,密文agKxKaKa”用本程序可解密为20151212”。
本题解密方法可预先约定好一组字母密码存放在元组Code密码表中,code[0]~code[9]分别表示数字"0"~"9"对应的密码;输入欲解密的密文(Ciphertext)并回车(输入字母”q”退出程序),根据密码表转换成明文(Plaintext, 码表中无法转换的码用 '?代'替),显示在标签上。
如图所示。
Please InFUt c⅛⅛ CrPhC * 31 for EXit): ≡g⅛ZaX=Ihe Plaintext is:20151212Pleaie IrLPU j t th.e CTrphertext (, q1 for ExzLt}: agKxKgΓKA^The Plaintext is;20151C3丄?1Flea^€ uτ the CiPilerCe)Ct (* q1 for EXiC): q"Acode= ('g', 'K', 'a', 'P', 'W, 'x', 'E', Q, 'f, 't')while True:d=”s=i nput("Please In PUt the CiPherteXt('q' for Exit):' n")if (s=='q'):breakfor i in ___ (1) ___ :if s[i] __ (2) ___ code:P=Code.i ndex (s[i])d—(3)—else:d+='?'___ (4) ____ ("The Plai ntext is:\n" +d)参考答案:1) :【range(len(s)) 】2) :【in】3) :【+=str(p)】【=d+str(p)】4) :【Print 】2. 调用函数求级数和func是一个计算i的自定义函数。
要求输入2〜8之间的偶整数n并回车,通过调用数,计算’ 'λ ,显示计算结果;当输入的数值不符合要求时,显示提示信息"OUt Of the Range ",并等待重新输入。
输入"0”退出运行。
效果如图所示。
FIeaSe InPJt an Ξτren. Mmrher ζ≤-S f Press1O1士ClHExix):Ihe R⅞-sul^ is : 10 9S 73Fle&se HIIJPUr an E VΓ≡Ω. N L jlr l ber [Z-S f Fresa 匸■o・XOX E×lXr}:QUV Qf Please the RangeIlIPUC CIn ETen. N□πlier [2-SΛPre3□Xcz Exit);»>1def func(x,y):s=1for i in range(1,y+1):s=___(1)______ (2) ____ sdef main():while True:n=int(input("Please Input an Even Number(2-8,Press '0' for Exit):\n")) if n==0: breakif (2<=n<=8)and( ___ (3) ___ ):res=func(n+1,n)- ___ (4) ___print(str(res)) else:print("Out of the Range")if __name__ == '__main__':main()func 函参考答案:1) :【s * x 】2) :【return 】3) :【n%2==0】4) :【func (n, n - 1) 】三、程序完成题(本大题3 道小题,根据题目功能描述和样例,完成程序缺失部分,并调试实现功能。
每题10 分,共30 分)1. 程序的功能是医院叫号系统为保护个人隐私隐藏姓名中部分汉字。
打开c:\ks \3_1.py ,根据提示功能描述,完成程序缺失部分,并调试实现功能。
运行时输入姓名并回车,以姓名汉字长度为判断条件,若姓名为两个汉字,则第一个汉字用 '*'显示;若姓名长度大于2个汉字,则姓名正序第二个汉字用'*'显示,效果如图所示。
(使用Python2.7版的考生不必测试汉字姓名,完成相应英文字母,如AB'和ABC'的测试效果即可)PIeaSe IZIPHt the N ante ( * q,for EXZL j t):IJIPIlt the Nalne ( 1 q l for EXlt):PleaSe 码小刚⅛*M')IJlP-U l七tbu NaTTle ( 1 q"for EKit):FleaSeAB"5FleaSeJ E¾aj∏e ( ' q"f,□r EXLtl:ABC TTlPuFIeaSe TrLPUt NaIne (I q l for>»lwhile True:s=input("Please InPUt the Name('q' for Exit):\n")if (s=='q'):break#如果S为2字符,则SS为“ * ”加后面的字符#否则SS为取首字符,加“ * ”,再加后面的字符#使用2.7版的考生可将中文注释删掉后调试Prin t (SS)2.程序的功能是显示有规则字符图形。
打开c:\ks\ 3_2.py ,根据提示功能描述,完成程序缺失部分,并调试实现功能。
运行时输入一个正整数n (1≤n≤9)并回车,则输出n行、每行有n个字符构成的图形,效果如图所示。
Pleas已IEnPLlt NUlri3eτ Clf LlnLe (l-9f Pre≡s 10 1 for EXIt):石AAATlAA33BδB≡CCCCCCDDDDDDEEEEELFFFFFFPlease InPLLt NllIrber Of Line [1^9f Press ,0 ,f□r EXIE):»>1while True:i=int(input("Please InPUt NUmber Of Line(1-9,Press '0' for Exit):\n"))if i==0:breakfor j in ran ge(i):#每行先输出2i-j个空格,再输出i个字母,提示大写“ A”为chr(65)#使用2.7版的考生可将中文注释删掉后调试3. 程序的功能是计算部分级数和。
打开c:\ks\ 3_3.py ,根据提示功能描述,完成程序缺失部分,并调试实现功能。
运行时输入正整数n并回车,利用公式求出S的值,效果如图所示。
n X i'e i i为偶数S-J y ________ Xj =」_li e-i i为奇数Pl&s L Se InPilt a In* & get N-Jrther n P⅛⅛≡S, O ∙ for E>tιc) S3=17∙72S5⅛α6BS37B^SPIeaSe InPUt & 工!!匸eger NUnIber n (l-⅛jr Fr*ss 'C∣* for EXit): 1>»|import mathwhile True:n=i nt(i nput("Please In PUt a In teger NUmber n(1-9,Press '0' for Exit):\n"))if n==0:break#给SUm赋初值for i in ran ge(1, n+1):#循环体内根据i值的奇偶判断,计算math.exp(i)或math.exp(-i)#再将xi/i累加给SUm#使用2.7版的考生可将中文注释删掉后调试Prin t ("s="+str(sum))四、编程题(35分)1. 参照样例’ 样张4_1.exe 编写一个完整的程序,要求如下:(1) 界面设计要求:在窗体上放置提示标签、单选按钮、输入框、命令按钮和多行文本框。