二、用Python语言编写程序
理论
判断题
1 输入正整数6和5,要求和,6+66+666+6666+66666,下面程序正确吗?
a=int(input())
n=int(input())
print(sum([int('a'*i) for i in range(1,n+1)]))
2 下面程序的运行结果是4。
i=3
++i
3 当输入是:45,8 时,下面程序的输出结果是37。
a,b = input().split(',')
b=int(b)
c=int('a',b)
print(c)
4 当输入是10.0时,下面程序的输出是f(10.0) = 0.1。
x=int(input()) if x==0: result=0 else: result=1/x print('f({0:.1f}) = {1:.1f}'.format(x,result))
5 表达式 -2**4 等于16。
6 下面程序的输入是5,输出是:
m=int(input()) print('{:^5}'.format(''m)) print('{:^m}'.format(''m))
7 下面程序的输出是:这是字符串输出格式□□123。 □表示空格。
print("这是字符串输出格式{:5s}".format("123"))
8 下面语句的输出是:这是数字输出格式□□123。 □表示空格 print("这是数字输出格式{:5d}".format(123))
9 int(True)的返回值是1。
10 bool(FALSE)的返回值是True。
11 bool([])的返回值是False。
12 bool(None)的返回值是False。
13 print(bin(12.5))的输出是0b1100.1
14 int("92",8)的值是74。
15 表达式3 and 0 and "hello"的值是False。
16 z已赋值,x=(y=z+1)语句是错误语句
选择题
1 下列数据类型中, Python不支持的是_______。
A. char
B. int
C. float
D. list
2 Python 语句print(type(1J))的输出结果是__。
A.
B.
C.
D.
3 Python 语句print(type(1/2))的输出结果是__。
A.
B.
C.
D.
4 Python 语句print(type(1//2))的输出结果是__。
A.
B.
C.
D.
5 Python 语句 a=121+1.21; print(type(a))的输出结果是_______。
A.
B.
C.
D.
6 Python 语句 print(0xA + 0xB)的输出结果是__。
A. 0xA + 0xB
B. A + B
C. 0xA0xB
D. 21
7 Python 语句x=’car’; y = 2; print (x+y)的输出结果是______。
A. 语法错
B. 2
C. 'car2’
D. 'carcar’
8 表达式1+2*3.14>0的结果类型是:
A. int
B. long
C. float
D. bool
9 如math模块已引入,Python 表达式 math.sqrt(4)*math.sqrt(9)的值为__
A. 36.0
B. 6
C. 13
D. 6.0
10 关于Python中的复数,下列说法错误的是_____。
A. 表示复数的语法是real + imag j
B. 实部和虚部都是浮点数
C. 虚部必须后缀j, 且必须是小写
D. 方法conjugate 返回复数的共轭复数
11 Python 语句 print(chr(65))的运行结果是_____。
A. 65
B. 6
C. 5
D. A
12 关于Python字符串,下列说法错误的是_____。
A. 字符即长度为1的字符串
B. 字符串以\0标志字符串的结束
C. 既可以用单引号,也可以用双引号创建字符串
D. 在三引号字符串中可以包含换行回车等特殊字符
填空题
1 Python 表达式 10 + 5//3 –True+False的值为 10 .
2 Python 表达式 323 的值为 6561
3 Python 表达式 round(17.0/3**2,2) 的值为 1.89 。
4 Python 表达式 0 and 1 or not 2<True 的值为 True 。
5 Python 语句 print(int("20", 16), int("101",2))的输出结果是 32 5 。
6 Python 语句 print(hex(16), bin(10))的输出结果是(进制用小写字母表示) 0x10 0b1010 。
7 已知 a=3; b=5; c=6; d=True, 则表达式 not d or a>=0 and a+c>b+3的值是 True 。
8 Python 语句 print(abs(-10.2), round(abs(8-2j),3)) 的输出结果是 10.2 8.246 。
9 Python 语句 x=True; y=False; z=False; print(x or y and z)的程序运行结果是 True 。
10 Python 语句 x=0; y= True; print(x>=y and‘A'<'B') 的程序运行结果是 False 。
11 Python 表达式 16-25>78/2 or "XYZ"!="xyz"and not (10-6>18/2)的值是 True 。
12 Python输出 print("hello" 'world')的结果是 helloworld 。
13 表达式((2>=2) or (2<2)) and 2的值为多少? 2
14 表达式 3 and 0 and 5的结果是什么? 0 。
15 表达式 --3 的结果是什么? 3 。
16 表达式 ---3 的结果是什么? -3 。
17 表达式32.2//6-24//6的值是 1.0 。
18 运行下面程序,输入是10011时,输出是 25 。
如果你的生日在列表中,输入1,否则输入0。如你的生日是19号,输入11001。这个程序能猜到你的生日吗? yes 。能,填yes;不能,填no。
lst1=[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31] lst2=[2,3,6,7,10,11,14,15,18,19,22,23,26,27,30,31] lst3=[4,5,6,7,12,13,14,15,20,21,22,23,28,29,30,31] lst4=[8,9,10,11,12,13,14,15,24,25,26,27,28,29,30,31] lst5=[16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31] s=input() print((lst1[0] if s[0]=="1" else 0) +(lst2[0] if s[1]=="1" else 0) +(lst3[0] if s[2]=="1" else 0) +(lst4[0] if s[3]=="1" else 0) +(lst5[0] if s[4]=="1" else 0))
19 汉字张的Unicode编码是 24352 。
20 -7 & 5 的结果是 1 。 -7 | 9 的结果是 -7 。 -7 ^ 9 的结果是 -16 。 ~9 的结果是 -10
21 下面程序输出是 6 。
n = 39 remainders = [] while n>0: n,remainder = divmod(n,2) remainders.insert(0,remainder) print(len(remainders))
实验
- 编程题就只放题目名和代码了,大家学习的时候可以对应着pta看一下~
7-1 计算分段函数
a=float(input())
if(a==0):
print("g(","%.3f"%a,") = ","%.3f"%a,sep='')
else:
b=1/2/a
print("g(","%.3f"%a,") = ","%.3f"%b,sep='')
7-2 阶梯电价
a,b=input().split()
a=float(a)
b=float(b)
if(a<=50):
sum=a*0.53
print("cost =","%.2f"%sum)
else:
sum=50*0.53+(a-50)*(0.53+b)
print("cost =","%.2f"%sum)
7-3 比较大小
a,b,c=map(int,input().split())
if(b<c):
b,c=c,b
if(a<b):
a,b=b,a
if(b<c):
b,c=c,b
print(chr(c),"<",chr(b),"<",chr(a),sep="")
7-4 输出摄氏-华氏温度转换表
a,b=map(int,input().split())
if(a<-20 or b>50 or a>b):
print("Invalid.")
else:
print("celsius fahr")
for item in range(a,b+1,2):
c=float(item*1.8+32)
print("%d%14.1f"%(item,c))
7-5 计算 11+12+13+...+m
a=int(input())
sum=0
for item in range(11,a+1):
sum+=item
print("sum =",sum)
7-6 求奇数分之一序列前N项近似和
import math
n=int(input())
sum=0
for item in range(1,n+1):
sum+=1/(2*item-1)
print("sum ≈",int(math.ceil(sum)))
7-7 求交错序列前N项和
a=float(input())
flag=1
sum=0
for item in range(0,int(a)):
sum+=flag*(item+1)/(item*2+1)
flag=-flag
print("%.3f"%sum)
7-8 求平方与倒数序列的近似和
import math
a,b=input().split()
a=int(a)
b=int(b)
sum=0
for c in range(a,b+1):
item=float(c)
sum+=item*item+1/item
print("sum ≈",math.floor(sum))
7-9 产生每位数字相同的n位数
a,b=map(int,input().split(","))
for i in range(0,b):
print(a,end="")
7-10 偶数位特殊序列和
a,b=map(int,input().split())
sum=0
cnt=a*10+a
for i in range(0,b,2):
sum+=cnt
cnt=cnt*100+a*11
print(sum)
7-11 输出指定图形
a=int(input())
for i in range(0,a):
for j in range(0,i+1):
print("* ",end="")
print("")
7-12 转换函数使用
import math
a,b=map(int,input().split(","))
sum=0
cnt=0
while(a!=0):
c=a%10
sum+=c*pow(b,cnt)
a=(a-c)/10
cnt+=1
print(int(sum))
7-13 计算函数f(x)
import math
x=input()
x=float(x)
sum=math.sin(35/180*math.pi)
sum+=(math.exp(x)-15*x)/math.sqrt(x*x*x*x+1)
sum-=math.log(7*x)
print("f(",x,")=","%.3f"%sum,sep="")