一 单项选择题
calendar模块的作用
A. 处理日期和时间
B. 处理日期
C. 处理随机数
D. 处理时间
for i in range(10)的循环i的取值范围是
A. 0-9
B. 1-10
C. 0-10
D. 1-9
以下关于self的说法正确的是
A. self是用于定义类属性的
B. 不需要对self进行赋值
C. self作为参数的位置是不确定的
D. self是可有可无的
哪种函式参数定义非法? ( )
A def myfunc(*args, a):B def myfunc(arg1=1):C def myfunc(*args):D def myfunc(a=1, **args):
A. B
B. C
C. D
D. A
以下Python的标识符中,合法的是
A. it#3
B. 321abc
C. break
D. a_111
以下关于私有化方法的说法错误是
A. 私有化之后外部就不能直接访问
B. 私有化后的方法仍可以进行迭代
C. 私有方法用双下划线开头来表示
D. 私有化对应的是类的继承性
print('a'.rjust(10,"*")
A. ********* a
B. aaaaaaaaaa
C. (前面有9个空格)a*
D. a*********
使用( )关键字定义匿名函数
A. main
B. def
C. function
D. lambda
c.create_rectangle(0,0,50,50)的作用是
A. 画一条弧线
B. 画一个矩形
C. 生成一个文本框
D. 画一条直线
在植物大战僵尸游戏中下列不属于类的是
A. 背景
B. 分数
C. 画面右上角的那只僵尸
D. 向日葵
random.randrange(1,100)的作用是
A. 生成一个1-100中的随机小数
B. 生成一个1-99中的随机整数
C. 生成一个1-99中的随机小数
D. 生成一个1-100中的随机整数
Python语言属于
A. 以上都不是
B. 高级语言
C. 汇编语言
D. 机器语言
Python表达式12/4-2+5*8/4%5/2的值为
A. 1.0
B. 0.8
C. 0.5
D. 2.0
在如下代码中,number 是一个()
class Stu: number=0 ...
私有属性
类方法
类属性
实例属性
15. 下列选项中,不属于 Python特点的是
A.运行效率高
B.可移植性
C.面向对象
D.免费和开源
16. 已知x=5;y=1,复合赋值语句x*=y+5执行后,x变量中的值是
A.30
B.25
C.6
D.10
17. 可以利用python的可选参数,可变参数,以及不需要事先声明参数数据类型等特征实现
A.封装
B.多态
C.继承
D.唯一
18. 在植物大战僵尸游戏中,属于向日葵类的方法的是
A.发射阳光
B.颜色
C.位置
D.1号向日葵
19. 执行下列Python语句将产生的结果是
i=1if(i) :print(True)else:print(False)
编译错误
输出1
输出True
输出False
20. 下列运算符中优先级最低的是( )
A.<=
B.*
C.=
D.and
21. 数学关系式2
A.x>20x<=10
B.2
C.2
D.2
22. print("数量{1},单价{0}".format(26.4,34.5))
A.数量34,单价26
B.数量26.4,单价34.5
C.数量34.5,单价26,4
D.数量26,单价34
23. 下面的Python循环体的执行次数与其他不同的是:
A.
i=0while(i<=10) : print(i) i=i+1
B.
i=10while(i>0): print(i) i=i-1
C.
for i in range(10): print(i)
D.
for i in range(10, 0, -1): print(i)
22.下列Python语句中,非法的是
x=(y=1)
x=1;y=1
x,y=y,x
x,y=(3,5)
23.在飞机大战游戏中,飞机位置的坐标是一种
属性
方法
实例对象
类
二 问答题
一 基础编程题 (共7小题选4,每题4分共16分)
要求:在以下题目中选择四个题目,编写为四个函数,并在主程序中依次调用这四个函数(分支的需调用多次确保每个分支有输出结果)。本大题可假设所有输入合法,即不需要对输入进行判断。将四个函数及调用测试保存在一个.py文件中,在每个函数前编写注释写明实现的功能。
1. 输入三个数,输出最大值与最小值
2. 输入三个数,将其由大到小排序输出
3. 输入N,返回斐波那契数列(1 1 2 3 5...)前N项。
4. 输入一个数,输出对应函数值
F(x)=10 (x>0);
F(x)=0 (x=0);
F(x)=-10 (x<0)
5. 输入一个正整数n,利用while语句,计算[1,n]内所有奇数的和
6. 输入一个正整数,返回大于它的第一个可以被27整除的数字
7. 输入一个年份,返回其是不是闰年
def a(): #这是第一小题 输入三个数,输出最大值与最小值 a1=int(input("")) a2=int(input("")) a3=int(input("")) b=[a1,a2,a3] print("最大值是",max(b)) print("最小值是",min(b))def b():#这是第二小题 输入三个数,将其由大到小排序输出 bb=[] for i in range(3): x=int(input("请先输入3个数字:")) bb.append(x) bb.sort() print(bb) def c(): #这是第三小题 输入N,返回斐波那契数列(1 1 2 3 5...)前N项。 c1=int(input("")) if c1 < 3: return ('输入错误') else: c2 = [1, 1] for i in range(2, c1): c2.append(b2[i - 1] + c2[i - 2]) print(b2) def d():#这是第四小题 输入一个数,输出对应函数值 d1=int(input("")) if d1>0: print("10") elif d1=0: print("0") eles: print("-10") def e():#这是第五小题 输入一个正整数n,利用while语句,计算[1,n]内所有奇数的和 e1=int(input("")) a=1 s=0 while a < e1: s+=a a=a+2 print(s)def f(): #这是第六小题 输入一个正整数,返回大于它的第一个可以被27整除的数字 f1=int(input("")) for i in range(f1,100000): if i%27==0: break print(i) def g(): #这是第七小题 输入一个年份,返回其是不是闰年 g1= eval(input('请您输入一个年份:')) if g1%400==0: print('{}是闰年'.format(d1)) elif g1%4==0 and g1%100 != 0: print('{}是闰年'.format(d1)) else: print("{}不是闰年".format(d1)) def main(): a() b() c() d() e() f() g()main()
二. 拓展编程题 (每小题6分共18分)
要求:三个题目每个单独保存为一个.py文件,编写的程序必须可直接运行,并包含测试代码。本大题中的题目需要对输入进行合法性判断。
1. 输入三个数,判断是否能组成三角形,如果可以,判断这个三角形是否为(1)等边三角形(2)直角三角形 并计算三角形的面积。
#三角形import math as mdef higerexam2(): a = int(input("")) b = int(input("")) c = int(input("")) d=(a+b+c)/2 if (a == b and a == c and b == c): print("等边三角形") a1=m.sqrt(d*(d-a)*(d-b)*(d-c)) print("面积是",a1) elif (a == b and a + b > c): print("等腰三角形") a1 = m.sqrt(d * (d - a) * (d - b) * (d - c)) print("面积是",a1) elif (c ** 2 == a ** 2 + b ** 2): print("直角三角形") a1 = m.sqrt(d * (d - a) * (d - b) * (d - c)) print("面积是",a1) elif (a + b > c): print("三角形") a1 = m.sqrt(d * (d - a) * (d - b) * (d - c)) print("面积是",a1) else: print("无法构成三角形")def main(): higerexam2()main()
2. 输出三种乘法表: 全部9*9 共81个算式(9*9矩阵显示),左下方三角形算式和右上角的算式(如下图)。
def higerexam3():#打印九九乘法表 #第一种样式 for i in range(1,10): for j in range(1,10): print("{0:2}*{1:1}={2:<2}".format(i, j, i * j,), end=' ') print() #第二种样式 for i in range(1,10): s = "" for j in range(1,i+1): s += str.format("{0:2}*{1:1}={2:<2}", i, j, i * j) print(s) #第三种样式 for i in range(1, 10): s = "" for j in range(1,i): s += " " * 8 for j in range(i,10): s += str.format("{0:2}*{1:2}={2:<2}", i, j, i * j) print(s)def main(): higerexam3()main()
3. 实现鸡兔同笼问题,通过函数实现:总头数和总腿数,输出鸡和兔子的只数。调用此函数进行检查。
#鸡兔同笼def higerexam4(): a1=int(input("请输入总头数(偶数):")) a2=int(input("请输入总脚数(偶数)")) r=a2/2 - a1 c=a1-r if c<0: print("无解,请重新运行测试!") elif r<0: print("无解,请重新运行测试!") else: print("鸡有{}只,兔有{}只".format(c,r))def main(): higerexam4()main()
三 综合编程题(每小题8分共16分)
要求:每题单独保存为一个.py文件,编写的程序必须可直接运行,并包含测试代码。
1. 类与对象
·学生类信息如下:
实例属性:学号,姓名,成绩
类属性:学生人数, 学生总成绩
实例方法:(1)输出姓名学号,(2)判断成绩是否及格(>60分)。
类方法:输出学生的平均成绩· 要求:
1)根据以上要求建立学生类,并创建两个实例,成绩分别大于和小于60分。
2)两个实例分别调用各自的两个实例方法,查看输出结果
3)调用类方法获取当前的学生平均成绩
#学生类class User: def __init__(self,jsyh,jsxm): self.jsyh=jsyh self.jsxm=jsxm #print("教师工号:{0},教师姓名:{1}".format(self.jsyh,self.jsxm)) def takeitboy(self): print("学号是:{0},姓名是:{1}".format(self.jsyh,self.jsxm))class StuUser(User): def __init__(self,stunu,stuna,stunum): User.__init__(self,stunu,stuna) self.stunum=stunum def takeitboy(self): User.takeitboy(self) a=int(self.stunum) if a<=60: print("不及格") else: print("及格了")def main(): a=input("请简单的输入学号") b=input("请简单的输入姓名") c=input("请简单的输入成绩") d=input("请简单的输入2学号") e=input("请简单的输入2姓名") f=input("请简单的输入2成绩") stu001=StuUser(a,b,c) stu002=StuUser(d,e,f) stu001.takeitboy() stu002.takeitboy() print(StuUser.__mro__)main()
2. 图形界面
编写一个基于tkinter模块的GUI程序。要求在根窗口上显示一个标签和一个按钮。标签显示文字为你自己的姓名,按钮上的显示信息为“查看详细信息”;鼠标左键单击按钮后,在交互窗口(Message)显示你自己的详细信息:“你好,我叫XXX(自己姓名)”。鼠标右键单击按钮,在交互窗口(Message)显示“我的学号是XXXX(自己学号)”
#图形界面import tkinter as tkfrom tkinter import messageboxdef Ass(e): messagebox.showinfo("Message","你好,我叫李星海")def Boy(e): messagebox.showinfo("Message","我的学号是1944315")def main(): root=tk.Tk() root.title("李星海") btnAsswecan = tk.Button(root) btnAsswecan["text"] = "查看详细信息" btnAsswecan.pack() btnAsswecan.bind("", Ass) btnAsswecan.bind("", Boy) root.mainloop()main()