PTA Python实验8 综合模拟测试

目录

判断题

单选题

函数题

6-1 判断回文函数

6-2 计算一元二次方程的根

编程题

7-1 计算球体积

7-2 计算每月电费费用

7-3 按顺序输出小于指定值的所有斐波纳契数

7-5 计算每个学生的平均成绩

判断题

1-1在Python中使用浮点数除法运算符/时,结果总是浮点数,而使用整数除法运算符//时,如果一个或者两个操作数为浮点数,则结果为浮点数,但小数部分被舍弃。(T)

1-2在Python中,print函数输出不会自动换行,因此,如下两条语句:

print('Hello ')
print('World!')

输出结果为:Hello World!(F)

1-3if语句的判断后需要添加分号(:),子语句块需要进行缩进,但对于缩进多少位没有具体要求。(F)

1-4if判断语句后,可以没有elif和else。(T)

1-5在一个函数中,某个变量用global修饰,则该变量为全局变量。(T)

1-6无论while循环表达式判断结果是真是假,循环体至少执行一次。(F)

1-7python中,循环体中的每条语句都需要缩进(T)

1-8Python字典和集合都是无序的容器。(T)

1-9在Python异常处理中,只能有一个try,但可以有多个except。(T)

1-10文件打开的默认方式是只读。(T)

单选题

2-1以下Python变量名称中哪一个是不合法的?()

A._abc123

B.123abc

C.abc123_

D._123

2-2关于 Python 中的复数,下列说法错误的是

A.表示复数的语法是 real + image j

B.实部和虚部都是浮点数

C.虚部必须后缀 j,且必须是小写

D.方法 conjugate 返回复数的共轭复数

2-3以下表达式不正确的是:()

A."hello" * 2

B."hello" + 2

C."hello" + '2'

D."hello" > "2"

2-4关于Python的分支结构,以下选项中描述错误的是( )。

A.分支结构可以向已经执行过的语句部分跳转

B.Python中if-elif-else语句描述多分支结构

C.Python中if-else语句用来形成二分支结构

D.分支结构使用if保留字

2-5下列语句中,用来结束整个循环的是( )

A.break

B.continue

C.pass

D.else

2-6关于组合数据类型的描述,正确的选项是:

A.Python中最常用的映射类型的典型代表是字典类型

B.列表类型里的元素要求是同一种数据类型

C.元组采用大括号{ }方式表示

D.序列类型的元素可以用reverse()方法交换相邻元素的位置

2-7当try语句中没有任何错误信息时,一定不会执行( )语句。

A.try

B.else

C.finally

D.except

2-8以下关于函数定义的描述错误的是:

A.函数必须有返回值

B.函数使用return给出返回值

C.函数定义中可以指定无限多个参数

D.函数定义中可以为某些参数指定默认值

2-9调用以下函数返回的值

def myfun():
    pass

A.0

B.出错不能运行

C.None

D.空字符串

2-10关于 python 读取文件,下列描述错误的是:

A.关键字 with 会在程序不再需要访问文件或出现异常的情况下,关闭文件 。

B.Python 对数据量没有大小限制,需要读取的文件多大都可以。

C.函数 open()中如果输入参数只有文件名,那么 Python 会在当前执行的 .py 文件的所在目录中查找文件 。

D.读取文本文件时,Python 会将文件中的所有文本都解释为字符串 。

函数题

6-1 判断回文函数

作者 Yiping

单位 广东东软学院

请编写一个函数,判断输入字符串是否是回文。如果是,返回True,否则返回False。回文指的是,若某字符串正着读和倒着读都一样,则称该字符串为回文。比如madam、noon等。

函数接口定义:

def isPalindrome(str):

其中str为任意字符串。

裁判测试程序样例:

# 请在这里填写答案

def main():
    global input
    input = input()
    if isPalindrome(input):
        print("yes")
    else:
        print("no")

if __name__ == '__main__':
    main()


输入样例:

refer

输出样例:

yes

输入样例:

laugh

输出样例:

no
def isPalindrome(str):
    str1 = str[-1::-1]
    if str1==str:
        return 1
    else:
        return 0

6-2 计算一元二次方程的根

作者 马杨珲

单位 浙江科技学院

已知一元二次方程ax2+bc+c=0的三个系数,求解方程的实根。设计 equation(a,b,c)函数,三个参数分别为二次项系数a,一次项系数b和常数项系数c。计算Δ=b2−4ac。若Δ≥0,则有实根,返回两个实根,要求保留2位小数,英文逗号分隔;若Δ<0,则没有实根,返回“没有实根”。
计算方程两个根的公式为:x=2a−b±b2−4ac​​

函数接口定义:

def equation(a,b,c):

裁判测试程序样例:

# 请在这里写答案

a,b,c=map(float,input().split())
print(equation(a, b, c))

输入样例1:

在这里给出一组输入。例如:

1 -2 1

输出样例1:

在这里给出相应的输出。例如:

1.00,1.00

输入样例2:

在这里给出一组输入。例如:

2 11 -6

输出样例2:

在这里给出相应的输出。例如:

0.50,-6.00

输入样例3:

在这里给出一组输入。例如:

2 2 1

输出样例3:

在这里给出相应的输出。例如:

没有实根
import math
def equation(a,b,c):
    deart = b*b-4*a*c
    if deart<0:
        return "没有实根"
    else:
        x1 = (-b+math.sqrt(deart))/(2*a)
        x2 = (-b-math.sqrt(deart))/(2*a)
        return f"{x1:.2f},{x2:.2f}"

编程题

7-1 计算球体积

作者 马杨珲

单位 浙江科技学院

输入半径,计算球的体积。球体积公式是34​πr3

输入格式:

输入半径,可以是小数。

输出格式:

输出球的体积,结果保留3位小数,π使用math库的常量。

输入样例:

在这里给出一组输入。例如:

2

输出样例:

在这里给出相应的输出。例如:

v=33.510

输入样例:

在这里给出一组输入。例如:

3.33

输出样例:

在这里给出相应的输出。例如:

v=154.675
import math
r = eval(input())
v = 4*math.pi*r**3/3
print(f"v={v:.3f}")

7-2 计算每月电费费用

作者 殷伟凤

单位 浙江传媒学院

计算电费。通常一度电的电费是0.53元,但超过50度后每度电的电费将增加费用。
输入用电量和超过50度后的每度电费用。
计算电费总价。结果保留2位小数。

输入格式:

在一行内输入用电度数和超过50度的每度用电电费,两个数之间用空格隔开

输出格式:

输出电费总价。结果保留2位小数。

输入样例1:

40 0.8

输出样例1:

cost = 21.20

输入样例2:

150 0.8

输出样例2:

cost = 106.50
a,b = map(eval,input().split())

if a<=50:
    cost = 0.53*a
    print(f"cost = {cost:.2f}")
else:
    cost = 0.53*50+(a-50)*b
    print(f"cost = {cost:.2f}")

7-3 按顺序输出小于指定值的所有斐波纳契数

作者 马杨珲

单位 浙江科技学院

斐波那契数列的输出:按顺序输出所有小于指定值的斐波那契数。

输入格式:

输入一个整数n(1

输出格式:

输出斐波那契数列,要求只输出小于n的部分。每个数占5列,每行6个数。

输入样例1:

在这里给出一组输入。例如:

100

输出样例1:

在这里给出相应的输出。例如:

    1    1    2    3    5    8
   13   21   34   55   89
n = int(input())
f = [1, 1]
i = 2
while f[-1] + f[-2] < n:
    f.append(f[-1] + f[-2])
    i += 1
OraOla = ""
for j in range(i):
    OraOla += f"{f[j]:5}"
    if (j+1) % 6 == 0:
        OraOla += "\n"
print(OraOla)
'''def f(x):
    if x==1 or x==2:
        return 1
    else:
        return f(x-1)+f(x-2)
n = eval(input())
if n<=1 or n>=10000:
    raise ValueError
i = 1
fib = []
while f(i)

7-4 句子首字母变大写

作者 殷伟凤

单位 浙江传媒学院

输入一行句子,将每个句子的首字母变为大写。每个单词之间都有空格,每个句子以?或.或!结尾。

输入格式:

输入一段字符串

输出格式:

将句子的首字母变大写输出字符串

输入样例:

you are a sight sore eyes! you look well.

输出样例:

You are a sight sore eyes! You look well. 
s = input()
l = len(s)
OraOla = ""
for i in range(l):
    if i==1:
        OraOla +=s[i]
    elif  i == 0 or s[i-2] in [".", "?", "!"]:
        OraOla += s[i].upper()
    else:
        OraOla +=s[i]
OraOla +=" "
print(OraOla)

7-5 计算每个学生的平均成绩

作者 殷伟凤

单位 浙江传媒学院

输入所有学生的姓名和成绩,以#结束。输出每个学生的平均成绩表。

输入格式:

每一行输入一个学生的姓名和成绩,以空格分隔。
输入完成后以#结束

输出格式:

每行显示一个学生的姓名和平均成绩,姓名占8位宽度,平均成绩保留两位小数点。姓名和平均成绩之间用空格隔开。

输入样例1:

在这里给出一组输入。例如:

Maria 20
David 10
Bob 15
David 20
#

输出样例1:

在这里给出相应的输出。例如:

姓 名     平均成绩
Maria    20.00
David    15.00
Bob      15.00

输入样例2:

在这里给出一组输入。例如:

韩思	80
杨世忆	70
徐晓畅	100
黄嘉	95
刘天宇	60
叶鸿	80
韩思	85
杨世忆	65
徐晓畅	100
黄嘉	90
刘天宇	80
刘天宇	90
徐晓畅	100
徐晓畅	100
徐晓畅	100
#

输出样例2:

在这里给出相应的输出。例如:

姓 名     平均成绩
韩思       82.50
杨世忆      67.50
徐晓畅      100.00
黄嘉       92.50
刘天宇      76.67
叶鸿       80.00
s = {}
x = {}
while 1:
    a = input()
    if a == '#':
        break
    name,point = a.split()
    if name in s:
        s[name] += eval(point)
        x[name] += 1
    else:
        s[name] = eval(point)
        x[name] = 1
print("姓 名     平均成绩")
for name in s:
    print("{:<8} {:.2f}".format(name,s[name]/x[name]))

你可能感兴趣的:(python,开发语言)