Python考试题库基础

函数题

1.使用函数求素数和

prime(p), 其中函数prime当用户传入参数p为素数时返回True,否则返回False.
PrimeSum(m,n),函数PrimeSum返回区间[m, n]内所有素数的和。题目保证用户传入的参数1<=m<n。

函数接口定义:

在这里描述函数接口: prime(p),返回True表示p是素数,返回False表示p不是素数 PrimeSum(m,n),函数返回素数和

裁判测试程序样例:
 

/* 请在这里填写答案 */

m,n=input().split()

m=int(m)

n=int(n)

print(PrimeSum(m,n))

输入样例:

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

1 10
输出样例:

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

17
代码及思考  
def prime(p):
    flag =0
    # 1 不是素数 2 是
    if p==1:
        return False
    for i in range(2, p):
        if p % i == 0:
            flag = 1
    if flag ==1:
        return False
    else:
        return True


def PrimeSum(m, n):
    sum = 0
    for i in range(m, n + 1):
        if prime(i):
            sum += i
    return sum

 

2. 使用函数统计指定数字的个数 

本题要求实现一个统计整数中指定数字的个数的简单函数。

CountDigit(number,digit )

其中number是整数,digit为[1, 9]区间内的整数。函数CountDigit应返回number中digit出现的次数。

函数接口定义:

在这里描述函数接口。例如: CountDigit(number,digit ),返回digit出现的次数

裁判测试程序样例:

/* 请在这里填写答案 */

number,digit=input().split()
number=int(number)
digit=int(digit)
count=CountDigit(number,digit )
print("Number of digit 2 in "+str(number)+":",count)
输入样例:

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

-21252 2
输出样例:

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

Number of digit 2 in -21252: 3
代码及思考  
def CountDigit(number,digit):
    count=0
    number=str(number)
    digit=str(digit)
    for i in number:
        if i==digit:
            count+=1
    return count

 3 使用函数输出指定范围内Fibonacci数的个数

本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m<n≤100000)之间的所有Fibonacci数的数目。
所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列,fib(0)=fib(1)=1。其中函数fib(n)须返回第n项Fibonacci数;函数PrintFN(m,n)用列表返回[m, n]中的所有Fibonacci数。

函数接口定义:

在这里描述函数接口。例如: fib(n),返回fib(n)的值 PrintFN(m,n),用列表返回[m, n]中的所有Fibonacci数。

裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:
/* 请在这里填写答案 */

m,n,i=input().split()
n=int(n)
m=int(m)
i=int(i)
b=fib(i)
print("fib({0}) = {1}".format(i,b))
fiblist=PrintFN(m,n)
print(len(fiblist))
输入样例:

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

20 100 6
输出样例:

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

fib(6) = 13
4
代码及思考 
# 从零开始
def fib(n):
    f=[1,1]
    for i in range(n-1):  # 相当于从一开始减2
        f.append(f[-1]+f[-2])
    return f[-1]
# 有多少个fib小于n
def PrintFN(m,n):
    l=[1,1]
    num=[]
    while l[-1]<n:
        l.append(l[-1]+l[-2])
    for i in l:
        if i>=m and i<=n:
            num.append(i)
    return num

 4 使用函数求余弦函数的近似值

本题要求实现一个函数,用下列公式求cos(x)近似值,精确到最后一项的绝对值小于eps(绝对值小于eps的项不要加):

cos(x)=0!x0​−2!x2​+4!x4​−6!x6​+...

函数接口定义:funcos(eps,x),其中用户传入的参数为eps和x;函数funcos应返回用给定公式计算出来,保留小数4位。

函数接口定义:
 

函数接口: funcos(eps,x),返回cos(x)的值。

裁判测试程序样例:
 

在这里给出函数被调用进行测试的例子。例如: /* 请在这里填写答案 */ eps,x=input().split() eps,x=float(eps),float(x) value=funcos(eps,x ) print("cos({0}) = {1:.4f}".format(x,value))

输入样例:
0.0001  -3.1

输出样例:
cos(-3.1) = -0.9991
代码 
import math
# fabs()绝对值函数


def funcos(b,a):
   s=0
   i = 1
   while True:       # 可以把条件写在 while 后面

      up=pow(a,(2*i))   #分子
      down=1            #分母
      for j in range(1,2*i+1): #n!
         down*=j
      if i%2!=0:        # 判断+-
         down=-down
      if abs(up/down)>b:    # 最后一项绝对值是否<eps
         s+=up/down
         i+=1
      else:
         break
   return s+1           #没加第一项,补上  0!=1

5 缩写词

缩写词是由一个短语中每个单词的第一个字母组成,均为大写。例如,CPU是短语“central processing unit”的缩写。

5.函数接口定义:

acronym(phrase);
phrase是短语参数,返回短语的缩写词
裁判测试程序样例:
 

/* 请在这里填写答案 */

phrase=input()
print(acronym(phrase))

输入样例:
central  processing  unit
输出样例:
CPU
 代码
# split() 把字符串转换为列表
# 列表的每一项元素都为str类型
def acronym(phrase):
    phrase = phrase.split()
    str=''
    for i in range(len(phrase)):
        str+=phrase[i][0].upper()
    return  str

6 求嵌套列表的平均值

Avg是一个求平均值的函数。它的参数是嵌套列表,求每个元素的平均值。每个元素是列表,至少有1个值。

函数接口定义:
在这里描述函数接口。例如:
 Avg(lst)
 lst是一个二维嵌套列表,该函数返回值是每个元素的平均值组成的列表。
裁判测试程序样例:
/* 请在这里填写答案 */
lst=eval(input())
result=Avg(lst)
for value in result:
    print("{:.1f}".format(value),end=" ")
输入样例:

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

[[5],[1,2,3],[7,9,4]]
输出样例:

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

5.0 2.0 6.7 
代码 
def Avg(lst):
    avg = []

    for i in lst:
        sum = 0
        for j in i:
            sum += j
            if j == i[-1]:
                avg.append(sum / len(i))
    return avg

7 使用函数求特殊a串数列和

给定两个均不超过9的正整数a和n,要求编写函数fn(a,n) 求a+aa+aaa++⋯+aa⋯aa(n个a)之和,fn须返回的是数列和

函数接口定义:
 

fn(a,n) 其中 a 和 n 都是用户传入的参数。 a 的值在[1, 9]范围;n 是[1, 9]区间内的个位数。函数须返回级数和

裁判测试程序样例:
 

/* 请在这里填写答案 */ a,b=input().split() s=fn(int(a),int(b)) print(s)

输入样例:

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

2 3
输出样例:

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

246

代码 

import math
def fn(a,n):
    # a为数字  n 为次数
    sum=0
    cum=0
    for i in range(n):  # 10的0次幂开始
        sum+=a*math.pow(10,i)    # 求得是每一项的数
        cum=cum+sum
    return int(cum)

8 求多项式的值

一元多项式可以用列表表示。如p(x)=1+3x+9x4,可以表示成列表[1,3,0,0,9]。输入列表表示的多项式和x的值,求多项式的值。

函数接口定义:
 

在这里描述函数接口。例如: polyvalue(lst,x)

lst表示多项式,x代表具体的值。

裁判测试程序样例:
 

/* 请在这里填写答案 */ lst=eval(input()) y=float(input()) print("{:.1f}".format(polyvalue(lst,y)))

输入样例:

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

[1,3,0,0,9]
1
输出样例:

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

13.0
代码 
import math
def polyvalue(lst,x):
    sum=0
    k=0  # 计数
    for i in lst:
        sum+=i*math.pow(x,k)
        k+=1
    return sum

  • 17
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值