您的当前位置:首页正文

资料(完整版)python考试复习题库

2020-05-24 来源:好走旅游网


资料(完整版)python考试复习题库

一、选择题

1.已知列表list1=[8,22,34,9,7],则python表达式len(list1)+min(list1)的值为( )

A.5 B.34 C.7 2.运行下列Python程序

i=1

s=1

while ①:

s=s*i

i+=2

print(s)

当输出结果为105时,则①处应填入( A.i<=7 B.i<7 C.i>=7 D.12

D.i>7

3.运行下列Python程序,输出结果为True,则空白处应为( )

a=15

b=46

if__________:

print(‘True’)

else:

print(‘Flase’)

A.a=b B.a>b C.a4.在python中,Int()函数的功能是返回不大于x的最大整数,设a=3,b=4,c=5 ,则下列表达式的运算结果中值最大的是( )

A.math.sqrt(b) c**2

B.abs(a- b) C.Int(2*a-c/b) D.a**2+b**2-

5.下列有关于print命令的描述中,正确的是( )

A.在打印机里打印相关的文本或者数字等

B.可以用来画图

C.在屏幕中输出相应的文本或者数字等

D.执行语句print(“python”,3.7)时会出错

6.有如下Python程序,当程序运行后输入15000,则程序输出结果为( )

A.2800

B.2800.0

C.12200

D.12200.0

7.在python中,语句print(a,b)的意思是( )

A.打印a,b B.输出(a,b) C.输出a,b D.输出a,b的值

8.在数学中,我们一般使用“=“表示相等关系,那么“=”在Python语言中的写法为( )

A.= B.== C.:= D.<>

9.在Python中,已知a=3,b=5,运行下列程序段后,a和b的值为

a = a * b

b = a // b

a = a // b

A.a=3 b=5 B.a=15 b=3 C.a=5 b=5 D.a=5 b=3

10.要实现将实数型变量a的值保留三位小数,以下python可以实现的是( )

A.a%0.001 B.a//0.001 C.round(a,3) D.round(3,a)

11.以下python程序段运行后,s的值是( )

n=0

s=0

while s <= 10:

n=n+3

s=s+n

print (s)

A.0 B.3 C.18 D.30

12.关于python程序设计语言,下列说法不正确的是( )。

A.python源文件以***.py为扩展名

B.python的默认交互提示符是:>>>

C.python只能在文件模式中编写代码

D.python具有丰富和强大的模块

13.python3解释器执行 not 1 and 1的结果为( )。

A.True B.False C.0 D.1

14.( ) 不是程序设计高级语言。

A.Python

B.Basic

C.C++

D.伪代码

15.算法用Python程序实现,以下代码中哪处语句存在语法错误( )

A.

B.

C.

D.

二、程序填空

16.蒙特卡洛方法不仅可以用来模拟投针实验,还可以用来模拟求解圆周率T。请根据所学知识,并上网搜索有关资料,找到利用蒙特卡洛方法求解圆周率Π的原理、方法和Python程序。

17.(项目情境)递归就是自己调用自己,它是设计和描述算法的一种有力工具,常常用来解决比较复杂的问题。为求解规模为N的问题,设法将它分解成规模较小的问题,从小问题的解容易构造出大问题的解,并且这些规模问题较小的问题也能采用同样的分解方法,分解成规模更小的问题,并能从这些更小问题的解构造出规模较大问题的解。一般情况下,规模N=1时,问题的解是已知的。已知:从1到n的连续自然数相乘的积、叫做阶乘、用符号n!表示。如5!=1×2×3×4×5,规定0!=1。我们用递归算法可以较容易求n的阶乘。求n的阶乘算法可以描述如下:

n!=n*(n-1)! (n-1)!=(n-1)*(n-2)! (n-2)!=(n-2)*(n-3)!

2!=2*1! 1!=0! 0!=1

如果把n!写成函数形式,即f(n),f(n)=n*f(n-1)。如f(5)就是表示5!,求5!的过程可以写成如下形式:

f(5)=5*f(4) f(4)=4*f(3) f(3)=3*f(2) f(2)=2*f(1) f(1)=1

(问题求解)在python中用递归算法求1!+2!+……+n!(n的值为整数,从键盘输入)。请阅读如下程序,在空白处填写适当的表达式或语句,使程序完整。

def f(n):

if n==0:

return 1

else:

return _________

s=0

n=int(input(\"请输入n:\"))

for i in_______:

s=________

print(s)

18.广场上有许多(有数百人)小朋友在玩分组游戏,当他们分成三人一组时,发现最后多出两个;当他们分成五人一组时,发现最后多出三个;当他们分成七人一组时,发现最后多出两个。编写程序求出这些小朋友的可能人数。

实现上述功能的程序如下,请在程序划线处填入合适的代码。

________

a=[ ]

for i in range(100,1000):

if_____________:

a.append(i)

total + = 1

print(\"这群小朋友总的人数有:\")

for j in range(len(a)):

print(____,end='、')

print('')

print('可能情况数为:',total,'种')

划线处①处应该填入的语句为: ;

划线处②处应该填入的语句为: ;

划线处③处应该填入的语句为: 。

19.(项目情境)在中国古代,出自数学家张丘建的《算经》中这样一个值得研究的问题:今有鸡翁一,直钱五;鸡母一,直钱三;鸡雏三,直钱一。凡百钱,买鸡百只。问鸡翁、母、雏各几何?这个问题就是著名的“百钱买百鸡问题”。即:现有100文钱,公鸡5文钱一只,母鸡3文钱一只,小鸡一文钱3只,要求:公鸡,母鸡,小鸡都要有,把100文钱买100只鸡,买的鸡是整数。问公鸡、母鸡和小鸡各几何?

(问题求解)设用变量g、m、x三个变量分别存放公鸡、母鸡和小鸡的数量,请阅读如下程序,在空白处填写适当的表达式或语句,使程序完整。

for g in range(1,20):

for m in _______:

for x in range(3,98,3):

if _________ and __________ ==100:

print(\"公鸡:\母鸡:\小鸡:\

20.编写程序,找到并输出100以内的素数。

21.“百鸡百钱”问题是一个有名的数学问题,出自《张丘建算经》。其内容是:公鸡5文钱1只,母鸡3文钱1只,小鸡3只1文钱,用100文钱买100只鸡,其中公鸡、母鸡和小鸡都必须要有,问公鸡、母鸡和小鸡各多少只?

(1)请在空格处填写正确的代码,使程序完善实现以下功能。

money=100 #一共100文钱

num=100 #一共100只鸡

cock_price=5 #公鸡价格5文

hen_price=3 #母鸡价格3文

threechick_price=1 #3只小鸡1文

for cock_num in range(1,_______): #公鸡只数可能为1-20

for hen_num in range(1,_________): #母鸡只数可能为1-33

for chick_num in range(1,101): #(3小鸡)只数可能为1-100

money1=cock_num*cock_price+hen_num*hen_price+chick_num/threechick_price

num1=cock_num+hen_num+chick_num

if money1==money and num1==num:

print (cock_num,hen_num,__________)

input(\"运行完毕,请按回车键退出...\")

(2)运行程序,运行结果如图所示。

【参考答案】***试卷处理标记,请不要删除

一、选择题

1.D

【详解】

本题主要考查Python表达式的运算。列表list1=[8,22,34,9,7],则python表达式len(list1)+min(list1)=5+7=12,故本题选D选项。

解析:D

【详解】

本题主要考查Python表达式的运算。列表list1=[8,22,34,9,7],则python表达式len(list1)+min(list1)=5+7=12,故本题选D选项。

2.A

【详解】

本题考查循环语句。在循环体内,s=s*i,i的初值为1,循环内i每次递增2,则s=1*3*5*7=105,最后结果为105,可知条件为while i<=7,故本题选A。

解析:A

【详解】

本题考查循环语句。在循环体内,s=s*i,i的初值为1,循环内i每次递增2,则

s=1*3*5*7=105,最后结果为105,可知条件为while i<=7,故本题选A。

3.C

【详解】

本题考查Python程序调试

a解析:C

【详解】

本题考查Python程序调试

a4.C

【详解】

本题主要考查Python表达式的运算。设a=3,b=4,c=5,math.sqrt(b)=2,abs(a- b)=abs(-1)=1,Int(2*a-c/b)=Int(4.75)=4,

解析:C

【详解】

本题主要考查Python表达式的运算。设a=3,b=4,c=5,math.sqrt(b)=2,abs(a- b)=abs(-1)=1,Int(2*a-c/b)=Int(4.75)=4,a**2+b**2-c**2=9+16-25=0,故运算结果中值最大的是Int(2*a-c/b),故本题选C选项。

5.C

【详解】

本题主要考查print函数。print命令在屏幕中输出相应的文本或者数字等,执行语句print(“python”,3.7)的结果是python 3.7,故本题选C选项。

解析:C

【详解】

本题主要考查print函数。print命令在屏幕中输出相应的文本或者数字等,执行语句print(“python”,3.7)的结果是python 3.7,故本题选C选项。

6.D

【详解】

本题考查的是Python的选择嵌套语句。先判断是否小于等于5000,接着在判断是否小于等于7000,最后判断是否小于等于10000。15000不小于等于10000,故执行

tax=800

解析:D

【详解】

本题考查的是Python的选择嵌套语句。先判断是否小于等于5000,接着在判断是否小于等于7000,最后判断是否小于等于10000。15000不小于等于10000,故执行tax=800+(salary-1000)*0.4=800+(15000-10000)*0.4=800+2000=2800.0。因为salary接收的是浮点型数据。salary-tax=15000-2800.0=12200.0。故选项D正确。

7.D

【详解】

本题主要考查Python输出函数。在python中,语句print(a,b)的意思是输出a,b的值,故本题选D选项。

解析:D

【详解】

本题主要考查Python输出函数。在python中,语句print(a,b)的意思是输出a,b的值,故本题选D选项。

8.B

【详解】

本题主要考查Python运算符。在Python语言等高级语言中,“=“往往被用于赋值语句,而表示相等的情况时,大多用“==”。因此B选项正确。

解析:B

【详解】

本题主要考查Python运算符。在Python语言等高级语言中,“=“往往被用于赋值语句,而表示相等的情况时,大多用“==”。因此B选项正确。

9.D

【详解】

本题主要考查Python表达式的运行。a=3,b=5,a = a * b=15,b = a // b=15//5=3,a = a // b=15//3=5,故运行下列程序段后,a和b的

解析:D

【详解】

本题主要考查Python表达式的运行。a=3,b=5,a = a * b=15,b = a // b=15//5=3,a = a // b=15//3=5,故运行下列程序段后,a和b的值为a=5 b=3,故本题选D选项。

10.C

【详解】

本题主要考查Python函数。round(x,n)方法返回 x 的小数点四舍五入到n个数字,故要实现将实数型变量a的值保留三位小数,可以使用语句round(a,3),故本题选C选项。

解析:C

【详解】

本题主要考查Python函数。round(x,n)方法返回 x 的小数点四舍五入到n个数字,故要实现将实数型变量a的值保留三位小数,可以使用语句round(a,3),故本题选C选项。

11.C

【详解】

本题主要考查Python程序的执行。n=0,s=0,循环条件是s<=10,则循环结束时,n=n+3=0+3+3+3=9,s=s+n=0+3+6+9=18,故程序结束后,s的值是18,故

解析:C

【详解】

本题主要考查Python程序的执行。n=0,s=0,循环条件是s<=10,则循环结束时,n=n+3=0+3+3+3=9,s=s+n=0+3+6+9=18,故程序结束后,s的值是18,故本题选C选项。

12.C

【详解】

本题主要考查Python程序设计语言。python源文件以***.py为扩展名,python的默认交互提示符是:>>>,python能在文件模式中编写代码,也能在交互模式中编写代码,p

解析:C

【详解】

本题主要考查Python程序设计语言。python源文件以***.py为扩展名,python的默认交互提示符是:>>>,python能在文件模式中编写代码,也能在交互模式中编写代码,python具有丰富和强大的模块,故本题选C选项。

13.B

【详解】

本题考查的是Python逻辑运算符。not运算级别高于and,故先算not 1,返回值为:False,False and 1,返回值为:False。故选项B正确。

解析:B

【详解】

本题考查的是Python逻辑运算符。not运算级别高于and,故先算not 1,返回值为:False,False and 1,返回值为:False。故选项B正确。

14.D

【详解】

本题考查程序设计语言的相关知识点

程序设计高级语言包括Python、Basic、C++等,伪代码不能执行,不是程序设计高级语言。故本题选D选项

解析:D

【详解】

本题考查程序设计语言的相关知识点

程序设计高级语言包括Python、Basic、C++等,伪代码不能执行,不是程序设计高级语言。故本题选D选项

15.D

【详解】

本题考查的是Python程序调试。双分支IF语句。if (条件)后面要加冒号,else后面也要加冒号。故标号4中存在语法错误。

解析:D

【详解】

本题考查的是Python程序调试。双分支IF语句。if (条件)后面要加冒号,else后面也要加冒号。故标号4中存在语法错误。

二、程序填空

16.原理:通常蒙特•卡罗方法通过构造符合一定规则的随机数来解决数学上的各种问题。对于那些由于计算过于复杂而难以得到解析解或者根本没有解析解的问题,蒙特•卡罗方法是一种有效的求出数值解的方法。一般蒙特•卡罗方法在数学中最常见的应用就是蒙特•卡罗积分。方法:蒙特卡罗方法的解题过程可以归结为三个主要步骤:构造或描述概率过程;实现从已知概率分布抽样;建立各种估计量。利用蒙特卡洛方法实现求解圆周率

#!/usr/bin/Python

#-*- coding:utf-8 -*-

import random

import math

def monteCarlo(N):

i = 0

count = 0

while i <= N:

x = random.random()

y = random.random()

if pow(x, 2) + pow(y, 2) < 1:

count += 1

i += 1

pi = 4 * count / N

print(pi)

monteCarlo(1000000)

【详解】

本题考查的知识点是Python程序。原理:通常蒙特•卡罗方法通过构造符合一定规则的随机数来解决数学上的各种问题。对于那些由于计算过于复杂而难以得到解析解或者根本没有解析解的问题,蒙特•卡罗方法是一种有效的求出数值解的方法。一般蒙特•卡罗方法在数学中最常见的应用就是蒙特•卡罗积分。方法:蒙特卡罗方法的解题过程可以归结为三个主要步骤:构造或描述概率过程;实现从已知概率分布抽样;建立各种估计量。利用蒙特卡洛方法实现求解圆周率#!/usr/bin/Python#-*- coding:utf-8 -*-import randomimport mathdef monteCarlo(N): i = 0 count = 0 while i <= N: x = random.random() y = random.random() if pow(x, 2) + pow(y, 2) < 1: count += 1 i += 1 pi = 4 * count / N print(pi)monteCarlo(1000000)

17.n*f(n-1) range(1,n+1) s+f(i)

【详解】

本题主要考查Python程序的执行与调试。①此处是定义递归函数f(n),由题干,当n=0时,返回1,否则返回n*f(n-1),故此处填n*f(n-1)。②用递归算法求1!+2!+……+n!,故变量i的范围应是1—n,for i in range(1,n+1)表示i的范围是[1,n],故此处填range(1,n+1)。③循环体实现累加,将每一项阶乘f(i)加到s中,故此处填s+f(i)。

18.total=0 i%3 == 2 and i%5 == 3 and i%7 == 2 a[j]

【详解】

本题主要考查Python程序的执行与调试。①变量total用来统计有多少种情况,初始值为0,第一空填total=0。②当他们分成三人一组时,发现最后多出两个;当他们分成五人一组时,发现最后多出三个;当他们分成七人一组时,发现最后多出两个,即if判断条件为i%3 == 2 and i%5 == 3 and i%7 == 2,满足if条件时,将该值加到列表a中,故第二空填i%3 == 2 and i%5 == 3 and i%7 == 2。③最后通过for循环输出所有可能的数,用变量j控制,故第三空填a[j]。

19.range(1,33) g+m+x==100 5*g+3*m+x/3

【详解】

本题考查的是算法中的经典问题。百鸡百钱问题是典型的枚举算法解决,枚举算法的关键就是找到问题解决的条件和枚举范围。

20.参考答案1:

for i in range(2,101):

j=2

while j<=i:

if i%j==0:

break

j+=1

if jcontinue

else:

print(i,end=\" \")

参考答:2:

for i in range(2,101):

for j in range(2,i):

if(i%j==0):

break

else:

print(i)

【详解】

本题考查是Python语言编程解决问题。break 语句可以立即终止当前循环的执行,跳出当前所在的循环结构。无论是 while 循环还是 for 循环,只要执行 break 语句,就会直接结束当前正在执行的循环体。这就好比在操场上跑步,原计划跑 10 圈,可是当跑到第 2 圈的时候,突然想起有急事要办,于是果断停止跑步并离开操场,这就相当于使用了 break 语句提前终止了循环。答案中代码的实现过程见下图:

参考答案1:

参考答案2:

21.34 chick_num

【详解】

本题主要考查Python程序的执行。①公鸡数量的范围1-20,for cock_num in range(1,21)表示变量cock_num的范围是1-20,故此处填21。②母鸡的数量可能为1-33,同理,故此处填34。③此处是按顺序使用print()函数输出公鸡数量、母鸡数量、小鸡数量,故此处填chick_num。

因篇幅问题不能全部显示,请点此查看更多更全内容