单选题
1、执行下列Python语句将产生的结果是( )。C
x=2
y=2.0
if(x==y): print(“Equal”)
else: print(“No Equal”)
A.编译错误
B.运行时错误
C.Equal
D.Not Equal
2、python语言对嵌套if语句的规定是:else总是与 C
A 第一个if配对
B.其之前最近的if配对
C.缩进位置相同的if配对
D.其之前最近且尚未配对的if配对
3、Python过程化程序设计的三种基本程序控制结构是( ) 。A
A.顺序结构、选择结构、循环结构
B.输入、处理、输出
C.for、while、if
D.复合语句、基本语句、空语句
4、以下哪个关键字( )是用于给 if-else分支语句添加多个条件的? A
A. elif
B.else
C.else if
D.elseif
5、
score = int(input("请输入分数"))
if score > 60:
print("你考试及格了")
print("你的考试不及格")
希望通过此程序判断是否及格。以下描述错误的是: A
A.无论输入什么分数,输出结果都是
”你考试及格了“
”你的考试不及格“
B.如果希望达到程序效果,需要在if语句后,第3行代码需要缩进4个空格
C.此程序输入分数后,能正常判断并输出此人是否考试及格。
D.if判断后,无论是TRUE或FALSE,都没有子语句块需要执行,程序直接执行下一行。这个属于逻辑错误。
6、选出对下列语句不符合语法要求的表达式:B
for var in ____________ :
print var
A.(1,2,3)
B.{1,2,3,4,5}
C.“Hello”
D.range(0,10)
7、下列for循环执行后,输出结果的最后一行是 B
for i in range(1,3):
for j in range(2,5):
print(i*j)
A.6
B.8
C.15
D.2
8、下面程序中语句print(i*j)共执行了___________________次。A
for i in range(5):
for j in range(2,5):
print(i*j)
A.15
B.14
C.20
D.12
9、Python 中,for 和 while 可以有 else 语句? C
A.只有 for 才有 else 语句。
B.只有 while 才有 else 语句。
C.for 和 while 都可以有 else 语句。
D.for 和 while 都没有 else 语句。
10、求比10小且大于等于0的偶数,下列程序中空格处应填入()B
x = 10
while x:
x = x-1
if x%2!=0:
________
print (x)
A.break
B.continue
C.pass
D.False
函数题
6-1 python函数:求m到n之和
本题要求实现一个计算m~n(m<n)之间所有整数的和的简单函数。
函数接口定义:
函数接口:
sum(m,n)
m<n,m和n可以是负数
裁判测试程序样例:
/* 请在这里填写答案 */
在这里给出函数被调用进行测试的例子。例如:
m=int(input())
n=int(input())
print(sum(m,n))
输入样例:
在这里给出一组输入。例如:
-1
5
输出样例:
在这里给出相应的输出。例如:
14
代码实现:
def sum(m,n):
sum=0
for i in range(m,n+1):
sum+=i
return sum
6-2 python函数:递归求Fabonacci数列
本题要求实现求Fabonacci数列项的函数。Fabonacci数列的定义如下:
f(n)=f(n−2)+f(n−1) (n≥3),其中f(1)=1,f(2)=1。
函数接口定义:
函数接口:
f(n)
函数f应返回第n个Fabonacci数。题目保证输入输出在整型范围内。建议用递归实现。
裁判测试程序样例:
/* 请在这里填写答案 */
在这里给出函数被调用进行测试的例子。例如:
n=int(input())
print(f(n))
输入样例:
在这里给出一组输入。例如:
6
输出样例:
在这里给出相应的输出。例如:
8
代码实现:
def f(n):
if(n==1):
return 1
if(n==2):
return 1
return f(n-1)+f(n-2)
编程题
7-1 企业根据利润提成发放奖金问题
企业根据利润提成发放奖金问题。利润低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%; 20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%; 60万到100万之间时,高于60万元的部分,可提成1.5%; 高于100万元时,超过100万元的部分按1%提成。从键盘输入当月利润,求应发放奖金总数?
输入格式:
输入一个利润整数。例如:输入120000。
输出格式:
输出一个实数。例如:11500.0。
输入样例:
在这里给出一组输入。例如:
120000
输出样例:
在这里给出相应的输出。例如:
11500.0
代码实现:
money=float(input())
if money<=100000:
s=money*0.1
elif money<=200000:
s=100000*0.1+(money-100000)*0.075
elif money<=400000:
s=100000*0.1+100000*0.075+(money-200000)*0.05
elif money <= 600000:
s = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + (money - 400000) * 0.03
elif money <= 1000000:
s = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + (money - 600000) * 0.015
elif money > 1000000:
s = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015 + (money - 1000000) * 0.01
print(s)
7-2 计算某天距元旦的天数
输入年、月、日,要求输出该年份的元旦到该日期总共经过了多少天。(提示:闰年是指能被400 整除的年份或者能被4 整除但不能100 整除的年份)
输入格式:
输入n,代表接下来要输入n行的年、月、日。
然后输入n行年、月、日,年、月、日之间的元素以空格相分隔,第1个数据为年,第2个数据为月,第3个数据为日。
输出格式:
如果输入年月日正确,则输出:Totaldays=天数
如果输入年月日有错,则输出:ErrorInput
输入样例:
4
2000 13 10
2000 3 10
2012 3 10
2018 5 20
输出样例:
在这里给出相应的输出。例如:
ErrorInput
Totaldays = 70
Totaldays = 70
Totaldays = 140
代码实现:
from datetime import datetime
n=eval(input())
for i in range(n):
s=input()
try:
y,m,d=s.split(" ",2)
y=eval(y)
m=eval(m)
d=eval(d)
nowD=datetime(y,m,d)
except:
print("ErrorInput")
continue
startD=datetime(y,1,1)
print("Totaldays =",(nowD-startD).days+1)
7-3 温度转换
温度刻画存在不同体系,摄氏度以1标准大气压下水的结冰点为0度,沸点为100度,将温度进行等分刻画。华氏度以1标准大气压下水的结冰点为32度,沸点为212度,将温度进行等分刻画。
根据华氏和摄氏温度定义,转换公式如下:
C = ( F – 32 ) / 1.8
F = C * 1.8 + 32
输入格式:
输入一个实数表示温度,后面的字母表示温度体系:F或f表示华氏温度,而C或c表示摄氏温度,实数与字母间无分隔符。
输出格式:
输出转换后的温度(保留两位小数,且后面有温度体系说明符,大写字母表示);若输入的数据格式有误(未有效标示温度体系),输出Error
输入样例:
在这里给出一组输入。例如:
36.8C
输出样例:
在这里给出相应的输出。例如:
98.24F
输入样例:
在这里给出一组输入。例如:
10f
输出样例:
在这里给出相应的输出。例如:
-12.22C
输入样例:
在这里给出一组输入。例如:
78.2#
输出样例:
在这里给出相应的输出。例如:
Error
代码实现:
s=input()
if s[-1] in ['f','F']:
c = (int(s[0:-1])-32) / 1.8
print("{:.2f}C".format(c))
elif s[-1] in ['C', 'c']:
F = 1.8 * eval(s[0:-1]) + 32
print("{:.2f}F".format(F))
else:
print("Error")
7-4 3,5,7的倍数判定
编程序实现功能:输入一个整数,判断其是否能同时被3、5、7整除。能被整除则输出“Yes”,否则, 输出“No”。
输入格式:
一个整数
输出格式:
Yes 或 No
输入样例:
7
输出样例:
No
a=eval(input())
if(a%3==0&a%5==0&a%7==0):
print('Yes')
else:
print('No')
7-5 计算分段函数f(x)的值
输入格式:
输入在一行中给出实数x
输出格式:
在一行中按“f(x)=result”的格式输出,其中result都保留三位小数(提示:使用.format()函数)。
输入样例1:
12.34
输出样例1:
f(12.34)=0.081
输入样例2:
0
输出样例2:
f(0.0)=0.000
x = float(input())
if (x != 0):
y = 1/x
else:
y = 0
print("f(",end='')
print(x,end='')
print(")=",end='')
print("{0:.3f}".format(y))
7-6 统计字符串中不同种类的字符个数
本题目要求读入一个字符串,统计字符串中字母、数字、空格、其它字符的个数。
输入格式:
输入一行由任意字符组成的字符串。
输出格式:
统计字符串中字母、数字、空格、其它字符的个数。
输入样例:
2a and Am3,MNak888!..
输出样例:
letters=10,digits=5,spaces=2,others=4
代码实现:
n=input()
a=b=c=d=0
for i in n:
if ord('a')<=ord(i)<=ord('z') or ord('A')<=ord(i)<=ord('Z'):
a=a+1
elif ord('0')<=ord(i)<=ord('9'):
b=b+1
elif ord(i)==ord(' '):
c=c+1
else:
d=d+1
print("letters={},digits={},spaces={},others={}".format(a,b,c,d))