python基础试题(含答案)word.doc
python基础试题(含答案)word一、选择题1小新编制了一个python程序如下,但程序无法执行,你帮他找出程序中一共有几处错误( )1a=3b=input()c=a+bprint("c")A1B2C3D42下列不可以用来搭建本地服务器的软件是( )(1)Python (2) Excel (3)IIS (4)ApacheA(1)(2)B(3)(4)C(1)(2)(3)(4)D(1)(2)(4)3在Python中,input()函数的返回结果的数据类型为( )ANumber型BString型CList型DSets型4在Python程序设计语言中,用于输入和输出的函数分别是( )Aread( )和write()Binput( )和output()Cinput( )和print()Dcin( )和cout( )5在下列程序设计语言中,属于人工智能语言的是( )。APythonBVBCPascalDC6下列序列拼接错误的是()Alist = None * 4Bmsg = “Python”, ”语言”Ctup = “/”.join( ( “123”, ”234” ) )Dset = 1, 2, 3 + 4, 5, 6 7Python不支持的数据类型有( )。AcharBintCfloatDlist8以下选项中,不是Python中文件操作的相关函数是( )。Aopen ()Bload ()Cread ()Dwrite ()9关于Python3.8基础知识的说法中,不正确的是( )A支持中文做标识符BPython标识符不区分字母的大小写CPython命令提示符是>>>D命令中用到的标点符号只能是英文字符10下列Python表达式的值不是2的是( )。A3%2B5/2C1*2D1+3/311已知a = 6,b = -4,则Python表达式 a / 2 + b % 2 * 3 的值为()A3B3.0C5D5.012下列哪个语句在Python中是非法的?()Ax = y = z = 1Bx = (y = z + 1)Cx, y = y, xDx += y x=x+y13以下是一段python程序:它的可以用哪个流程图表达( )。ABC14在Python中要交换变量a和b中的值,应使用的语句组是( )Aa,b = b,aBa = c ;a = b;b = cCa = b;b = aDc = a;b = a;b = c15下列不属于高级编程语言的是AC 语言BVB语言CPython语言D机器语言二、程序填空16密码强度检测。编写python程序,实现如下功能:输入要检测的密码,输出密码强度结果。密码字符分为数字字符、字母和其他符号三类。密码强度的检测方法为:若密码位数少于8位,则不进行强度检测,给出提示“密码位数不能少于8位,请重新输入!”。若密码位数在8位及以上,则进行强度检测:若密码字符属于同一类字符,则密码强度为“弱”;若密码字符属于不同的二类字符,则密码强度为“中等”;若密码字符属于不同的三类字符,则密码强度为“强”。(1)若输入“12abcd5!”,则输出结果为_(选填,选字母:A密码位数不能少于8位,请重新输入! / B弱 / C中等 / D强)(2)实现上述功能的程序如下,请在划线处填入合适的代码。password=input(“请输入要检测的密码:”)_if n<8: print(“密码位数不能少于8位,请重新输入!”)else: n1=0 n2=0 n3=0 for i in range(0,n,1): _ if “0”<=ch<=“9”: n1=1 elif “a”<=ch<=“z” or “A”<=ch<=“Z”: n2=1 else: n3=1 _if x=3: print(“强”)elif x=2: print(“中等”)else: print(“弱”)17小敏有10万元本金,想要购买银行保证收益型理财产品。每年到期后连本带利仍购买此种理财。请你帮助小敏分析,在年收益率不变的情况下,多少年后小敏的累计收益能超过本金,请完成程序填空。(例如输人:5.15%,输出:14年后收益超过本金。)1 s=input("请输入年利率:)2 rate=float(s:-1)*0.013 money=1000004 year=05 while money<=200000:6 money=round( ),2)7 year=year+18 print(year,"年后收益超过本金。”)(1)程序第6行下划线处应填入_。(2)程序第2行的作用是_,并赋值给变量 rate。(3)该程序主要是通过while实现_结构。18小王编写了“字符串缩写”程序,实现如下功能:1.输入一串由英文字母和数字组成的字符串,2.如果字符串有连续字符构成的升序段(后面字符的ASCII值比前面的字符的ASCII值大1),则把升序段缩写成由第一个字符加上“ ”和最后一个字符组成的新字符段,3.例如:字符串为“abcdf12345becomexy”,则缩写成“a-df1-5becomex-y”。程序运行时,输入一串字符,输出缩写的字符串,程序运行效果如下图所示: 实现上述功能的程序如下,请在程序划线处填入合适的代码。s=input("请输入字符串s:")_flag = Falseresult=" "for i in range( 0 , k-1): if _ : result=result+si+"-" flag = True elif ord(si) ! = ord(si+1)-1: result=result+si _result=result + si+1print("缩写后的字符串为:",result)划线处处应该填入的语句为: ;划线处处应该填入的语句为: ;划线处处应该填入的语句为: 。19程序设计:键盘输入任意的正整数,程序输出与其相应的二进制数。代码如下:nint(input("请输入一个十进制数:")resultwhile n>0:result.append( )n result.reverse()for i in result:print(i,end”)(1)程序代码中处正确的代码是(_)。An%2 Bn/2 Cn/2 Dn*2(2)程序代码中处可能的代码是(_)。An%2 Bn/2 Cn/2 Dn*220求水仙花数(一个三位数,其各位数字立方和等于该数字本身)21(项目情境)在中国古代,出自数学家张丘建的算经中这样一个值得研究的问题:今有鸡翁一,直钱五;鸡母一,直钱三;鸡雏三,直钱一。凡百钱,买鸡百只。问鸡翁、母、雏各几何?这个问题就是著名的“百钱买百鸡问题”。即:现有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("公鸡:",g,"母鸡:",m,"小鸡:",x)【参考答案】*试卷处理标记,请不要删除一、选择题1C【详解】本题考查Python程序语法Python变量命名不能以数字开头、变量b、c必须先定义后使用。故有3处错误,故本题选C选项解析:C【详解】本题考查Python程序语法Python变量命名不能以数字开头、变量b、c必须先定义后使用。故有3处错误,故本题选C选项2A【详解】本题主要考查服务器的搭建。Python是程序设计软件,Excel是表格处理软件,IIS是互联网信息服务,Apache是Web服务器软件,IIS和Apache可以用来搭建本地服务器的软件解析:A【详解】本题主要考查服务器的搭建。Python是程序设计软件,Excel是表格处理软件,IIS是互联网信息服务,Apache是Web服务器软件,IIS和Apache可以用来搭建本地服务器的软件,故本题选A选项。3B【详解】本题主要考查Python输入函数。在Python中,input()函数的返回结果的数据类型为字符串String型,故本题选B选项。解析:B【详解】本题主要考查Python输入函数。在Python中,input()函数的返回结果的数据类型为字符串String型,故本题选B选项。4C【详解】本题主要考查Python程序设计语言中的输入和输出函数。input( )函数返回值默认是字符串。print( )函数默认是输出后换行。因此C选项正确。【点睛】解析:C【详解】本题主要考查Python程序设计语言中的输入和输出函数。input( )函数返回值默认是字符串。print( )函数默认是输出后换行。因此C选项正确。【点睛】5A【详解】本题考查的是人工智能语言。Python由于简单易用,是人工智能领域中使用最广泛的编程语言之一,它可以无缝地与数据结构和其他常用的AI算法一起使用。故选项A正确。解析:A【详解】本题考查的是人工智能语言。Python由于简单易用,是人工智能领域中使用最广泛的编程语言之一,它可以无缝地与数据结构和其他常用的AI算法一起使用。故选项A正确。6D【详解】本题主要考查Python序列拼接运算。set = 生成的是字典类型,而不是集合类型,不支持使用+,故本题选D选项。解析:D【详解】本题主要考查Python序列拼接运算。set = 生成的是字典类型,而不是集合类型,不支持使用+,故本题选D选项。7A【详解】本题考查Python数据类型相关的知识点Python不支持char类型、byte类型。故本题选A选项解析:A【详解】本题考查Python数据类型相关的知识点Python不支持char类型、byte类型。故本题选A选项8B【详解】本题主要考查Python文件操作函数。open ()是文件打开函数,read () 、write ()是文件读写函数;json.load()用于从json文件中读取数据,故本题选B选项解析:B【详解】本题主要考查Python文件操作函数。open ()是文件打开函数,read () 、write ()是文件读写函数;json.load()用于从json文件中读取数据,故本题选B选项。9B【详解】本题主要考查Python语法。Python3.8支持中文做标识符,Python标识符区分字母的大小写,Python命令提示符是>>>,命令中用到的标点符号只能是英文字符,故本题选B选项解析:B【详解】本题主要考查Python语法。Python3.8支持中文做标识符,Python标识符区分字母的大小写,Python命令提示符是>>>,命令中用到的标点符号只能是英文字符,故本题选B选项。10A【详解】本题主要考查Python表达式的运算。3%2=1,5/2=2,1*2=2,1+3/3=2,故本题选A选项。解析:A【详解】本题主要考查Python表达式的运算。3%2=1,5/2=2,1*2=2,1+3/3=2,故本题选A选项。11B【详解】本题主要考查Python表达式的运算。a=6,b=-4, a/2 + b%2*3 =6/2+(-4%2*3)=3.0+0=3.0,故本题选B选项。解析:B【详解】本题主要考查Python表达式的运算。a=6,b=-4, a/2 + b%2*3 =6/2+(-4%2*3)=3.0+0=3.0,故本题选B选项。12B【详解】本题主要考查Python语句。对于语句x = (y = z + 1),y= z+1是一个赋值语句,作为一个整体没有返回值,x等于的是个空值,故该语句是非法的,故本题选B选项。解析:B【详解】本题主要考查Python语句。对于语句x = (y = z + 1),y= z+1是一个赋值语句,作为一个整体没有返回值,x等于的是个空值,故该语句是非法的,故本题选B选项。13B【详解】本题主要考查算法流程图知识点。程序代码中有双分支语句if else。所以选B绘制有分支流程图,故本题选B选项。解析:B【详解】本题主要考查算法流程图知识点。程序代码中有双分支语句if else。所以选B绘制有分支流程图,故本题选B选项。14A【详解】本题考查Python语句。在Python中要交换变量a和b中的值,可以使用的语句组是t=a;a=b;b=t也可以是a,b=b,a,故本题选A。解析:A【详解】本题考查Python语句。在Python中要交换变量a和b中的值,可以使用的语句组是t=a;a=b;b=t也可以是a,b=b,a,故本题选A。15D【详解】本题考查的是程序语言。常见的高级编程语言有:C 、VB、Python等。机器语言是计算机语言的一种不属于高级语言。故应选D。【点睛】解析:D【详解】本题考查的是程序语言。常见的高级编程语言有:C 、VB、Python等。机器语言是计算机语言的一种不属于高级语言。故应选D。【点睛】二、程序填空16D n=len(password) ch=passwordi x=n1+n2+n3 【详解】本题主要考查Python程序的执行与调试。“12abcd5!”含有三类字符,则输出结果为强,选D选项。此处取密码的长度,将其赋给变量n,len()是返回字符串的长度,故填n=len(password)。ch是取密码的每一位进行判断,故此处填ch=passwordi。当出现数字时n1=1,当出现字母时n2=1,当出现其他字符时n3=1,x用来统计有几类字符,故此处填x=n1+n2+n3。17money*(1+rate) 将输入的字符串年利率由百分制转换为浮点数 循环 【详解】本题主要考查Python程序设计。round(x,n)函数是将x取n位,此处是计算当前年份的收益,收益=本金+本金*年利率,故填money*(1+rate),并将结果取2位。程序第2行的作用是将输入的字符串年利率由百分制转换为浮点数,并赋值给变量 rate。该程序主要是通过while实现循环结构。18k=len(s) ord(si)=ord(si+1)-1 and flag=False 或 ord(si)=ord(si+1)-1 and not flag 或 ord(si)+1=ord(si+1) and flag=False 或 ord(si)+1=ord(si+1) and not flag flag = False 【详解】本题主要考查Python程序的执行与调试。第一空将输入的字符串s的长度赋给变量k,故填k=len(s)。flag用来标记是否有连续字符构成的升序段,第二空判断相邻位置后面字符的ASCII值是否比前面的字符的ASCII值大1且flag为False,故填ord(si)=ord(si+1)-1 and flag=False 或 ord(si)=ord(si+1)-1 and not flag 或 ord(si)+1=ord(si+1) and flag=False 或 ord(si)+1=ord(si+1) and not flag。如果不满足if判断条件,则需要将该字符加到变量result中,同时赋值flag为False,表示当前没有连续字符构成的升序段,需要继续判断寻找,故填flag = False。19A C 【详解】本题主要考查Python程序设计。此处将n取余2,用append函数将值追加到列表result中,故此处填n%2,选A选项。当n大于0时,n整除2继续循环,循环结束使用reverse函数,将result列表中的元素逆转,故此处填n/2,选C选项。20for i in range(100,1000): a=i/100 b= (i/10)%10 c=i%10 if i=a*a*a+b*b*b+c*c*c: print(i)【详解】本题主要考查程序设计。可通过Python程序设计实现题干要求,通过for循环找出水仙花数,依次取出三位数的每一位数,其中百位a= i/100,十位b= (i/10)%10,个位c=i%10,然后判断是否是水仙花数,具体代码如下:for i in range(100,1000): a=i/100 b= (i/10)%10 c=i%10 if i=a*a*a+b*b*b+c*c*c: print(i)21range(1,33) g+m+x=100 5*g+3*m+x/3 【详解】本题考查的是算法中的经典问题。百鸡百钱问题是典型的枚举算法解决,枚举算法的关键就是找到问题解决的条件和枚举范围。