1.
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。(10分)你可以假设除了整数 0 之外,这个整数不会以零开头。(10分)示例 1: 输入:digits = [1,2,3] 输出:[1,2,4] 解释:输入数组表示数字 123。示例 2: 输入:digits = [4,3,2,1] 输出:[4,3,2,2] 解释:输入数组表示数字 4321。示例 3 输入:digits = [0] 输出:[1] 解释:输入的数组表示数字0.
def OnePlus(digits):
s = ''
for i in digits:
s+=str(i)
i = int(s)+1
s2 = str(i)
l = []
for j in s2:
l.append(int(j))
return l
print(OnePlus(digits))
2.矩阵a用数组表示为 int a[ ][ ]={{1,2,3,4},{2,3,4,5},{3,4,5,6}},并编写transpose()方法实现矩阵的转置
a = [[1,2,3,4],[2,3,4,5],[3,4,5,6]]
print("转置前")
for i in a:
for j in i:
print(j,end=' ')
print()
a_copy = [[],[],[],[]]
def transpose(a):
for i in range(len(a[0])):
for j in range(len(a)):
a_copy[i].append(a[j][i])
return a_copy
l = transpose(a)
print('转置后')
for i in l:
for j in i:
print(j,end=' ')
print()
3.题目描述(15分)n(n≤100) 名同学参加歌唱比赛,并接受m(m≤20) 名评委的评分,评分范围是 0 到 10 分。这名同学的得分就是这些评委给分中去掉一个最高分,去掉一个最低分,剩下m−2 个评分的平均数。请问得分最高的同学分数是多少?评分保留 2 位小数。输入格式第一行两个整数 n,m。 接下来 n 行,每行各 m 个整数,表示得分。输出格式输出分数最高的同学的分数,保留两位小数。
ns = input().split()
n = int(ns[0])
m = int(ns[1])
scores =[]
for i in range(n):
list1 = input().split()
list2 = [int(i) for i in list1]
list2.remove(max(list2))
list2.remove(min(list2))
scores.append(sum(list2)/(m-2))
print(format(max(scores),'.2f'))
4.面向对象程序设计基础(40分)要求:(1)按照题目所给变量名称、类型和方法名称进行编程,禁止修改(2)所有成员变量是私有的,所有成员方法是公有的1、图书类(Book)成员变量:图书名称(name)str类型出版社(publisher)str类型构造方法:通过形参初始化图书名称(name)和出版社(publisher)普通方法:(1)设置getter和setter方法用于获取和设置类中的name变量的值;(2)equals方法,当且仅当书名(name)和出版社(publisher)均相等时,即为同一本书。(3)toString方法,返回书名(name)和出版社(publisher)的信息,样式如下:“书名:Java程序设计,出版社:清华大学出版社”2、馆藏图书类(CollectionBook),继承自Book类 成员变量:图书编号(bNo)str类型所在书库(stacks)str类型是否借阅(isBorrow)boolean类型 图书状态为已借阅时,值为true构造方法:调用父类构造方法初始化书名(name)和出版社(publisher)信息,然后初始化图书编号(bNo)和线路图书书库(stacks)普通方法:输入0表示借阅操作,输入1表示归还操作(1)实现borrow方法 借阅图书 如果图书状态为已借阅,则输出“对不起,该图书已借阅”,否则,修改该图书状态为已借阅,输出“借阅成功”(2)实现revert方法 归还图书如果图书状态是可借阅状态,输出“该图书已归还”, 否则,修改图书借阅状态为未借阅,并输出“还书成功”3、通过main函数测试(1)创建两个CollectionBook对象book1和book2,分别输出book1和book2,并调用其equals方法判断两个对象是否相等(2)通过键盘输入整数,输入0,则对book1进行借阅,输入1,则对book1进行归还操作
class Book:
def __init__(self, name, publisher):
'''
构造方法
:param name: 书名
:param publisher: 出版社
'''
self.__name = name
self.__publisher = publisher
def getter(self):
'''
获得书名
:return: 返回书名
'''
return self.__name
def setter(self, name):
'''
更改书名
:param name: 书名
:return: None
'''
self.__name = name
def equals(self, other):
'''
判断两者是否相等
:param other: 另一个对象
:return: 返回Boolean值,
'''
# 只有当and 两端的都为True的时候 返回True
return self.__name == other.__name and self.__publisher == other.__publisher
def toString(self):
'''
将书的基本信息整合成字符串
:return:
'''
return f'书名:{self.__name},出版社:{self.__publisher}'
class CollectionBook(Book):
def __init__(self, name, publisher, bNo, stacks, isBorrow):
'''
:param name: 书名
:param publisher: 出版社
:param bNo: 编号
:param stacks: 类别
:param isBorrow: 借阅状态
'''
super().__init__(name, publisher)
self.__bNo = bNo
self.__stacks = stacks
self.__isBorrow = isBorrow
def borrow(self):
# 根据借阅状判断进行不同的操作
if self.__isBorrow:
print("对不起,该图书已借阅")
else:
print('借阅成功')
self.__isBorrow = True
def revert(self):
# 根据借阅状判断进行不同的操作
if self.__isBorrow:
print("还书成功")
self.__isBorrow = False
else:
print('该图书已归还')
if __name__ == '__main__':
book1 = CollectionBook(name="国超自传", publisher="清华出版社", bNo='1000', stacks='名人自传', isBorrow=False)
book2 = CollectionBook(name="国超自传", publisher="清华出版社", bNo='1000', stacks='名人自传', isBorrow=False)
print(book1.toString())
print(book1.toString())
print(book1.equals(book2))
# 输入0表示借阅,输入1表示还书
n = input()
if n == '0':
book2.borrow()
elif n == '1':
book2.revert()