计算机考试编程题(7)
精品文档
精品文档
收集于网络,如有侵权请联系管理员删除
收集于网络,如有侵权请联系管理员删除
精品文档
收集于网络,如有侵权请联系管理员删除
编程题
(1)输人直角三角形的两个直角边的长度a、b,求斜边c的长度。
from math import *
a=float(input("请输入斜边 1 的长度:")) #输入实数
b=float(input("请输入斜边 2 的长度:")) #输入实数
c=a*a+b*b #计算,得到的是斜边的平方
c=sqrt(c) #开方,得到的是斜边长
print("斜边长为:",c) #显示,一项是字符串,一项是 c 表示的斜边长
(2)输人两个数,求它们的最大数。
a=int( input("请输入第一个数:") )
b=int( input("请输入第二个数:") )
max_num=a
if max_num
max_num=b
print('最大数是:',max_num)
(4)一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
Sn = 100.0
Hn = Sn / 2
for n in range(2,11):
Sn += 2 * Hn
Hn /= 2
print ('Total of road is %f'%Sn)
print ('The tenth is %f meter'%Hn)
(5)将一个列表逆序输出。
a = [9,6,5,4,1]
N = len(a)
print (a)
for i in range(len(a)//2):
a[i],a[N - i - 1] = a[N - i - 1],a[i]
print (a)
(6)求一个3X3矩阵对角线元素之和。程序分析:利用双重for循环控制输人二维数组,再将a[i][门]累加后输出。
a = []
sum = 0.0
for i in range(3):
a.append([])
for j in range(3):
a[i].append(float(input("input num:\n")))
for i in range(3):
sum += a[i][i]
print (sum)
(7)打印出由1、2、3、4个数字组成的互不相同且无重复数字的三位数。
程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if( i != k ) and (i != j) and (j != k):
print (i,j,k)
(10)编写函数,判断个数字是否为素数,是则返回字符串YES,否则返回字符串NO,并编写主程序调用该函数。
x=int(input('请输入一个大于 1 的自然数:'))
import math
def IsPrime(a):
n = int(math.sqrt(a)+1)
for i in range(2,n):
if a%i==0:
return 'No'
else:
return 'Yes'
print(IsPrime(x))
(11)古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
程序分析:兔子的规律为数列1,1, 2,3,5,8,13,21…..
f1 = 1
f2 = 1
for i in range(1,21):
print ('%12d %12d' % (f1,f2))
if (i % 2) == 0:
print ('')
f1 = f1 + f2
f2 = f1 + f2
(12)两个变量互换值。
def exchange(a,b):
a,b = b,a
return (a,b)
x = 10
y = 20
print('x = %d,y = %d' % (x,y))
x,y = excha