hw大一Python模拟题详解

一、选择题

1、关于Python语言的特点,以下选项描述正确的是( B )。

A.Python语言不支持面向对象。            B.Python语言是解释型语言。

C.Python语言是编译型语言。              D.Python语言是非跨平台语言。

解析:Python是一种解释型、面向对象、动态数据类型的高级程序语言,故A错误,B正确;既然Python是一种解释型语言,这意味着开发过程中没有了编译这个环节,类似于PHP和Perl语言,故C错误;可移植是Python的特点之一,故D错误。

2、以下选项,(  D  )不是Python的保留字。

A.del       B.pass      C.in         D.string

解析:del,pass,in均为Python的保留字,故D正确。

3、关于Python语句P = –P,以下选项中描述正确的是(  C )。

A.P和P的负数相等。           。 B.P和P的绝对值相等。

C.给P赋值为它的负数 。          D.P的值为0。

解析:一个等号“=”代表赋值,两个等号“==”代表比较,故C正确。

4、关于Python的列表,描述错误的选项是(  D  )。

A.Python列表是包含0个或者多个对象引用的有序序列。

B.Python列表用中括号[]表示。

C.Python列表是一个可以修改数据项的序列类型。

D.Python列表的长度不可变。

解析:列表、字典、集合为可变类型,整形、字符串、元组、布尔为不可变类型,故D正确。需要注意的是,对于集合来说,其内部的元素必须为不可变类型。

Tips:可变与不可变取决于当该数据类型的对应变量的值发生改变时,对应的内存地址是否发生变化,若变化,则为不可变对象;若改变,则为可变对象。

5、下面代码的输出结果是(     A     )。

name = "Python语言程序设计"

print(name[2: –2])

A.thon语言程序          B.thon语言程序设

C.ython语言程序         D.ython语言程序设

解析

6、lst = [1,2,3,4,5,6], 以下关于循环结构的描述,错误的是(  D  )。

A.表达式for i in range(len(lst))的循环次数跟for i in lst 的循环次数是一样的。

B.表达式for i in range(len(lst))的循环次数跟for i in range(0,len(lst))的循环次数是一样的。

C.表达式for i in range(len(lst))的循环次数跟for i in range(1,len(lst)+1)的循环次数是一样的。

D.表达式for i in range(len(lst))跟for i in lst 的循环中,i的值是一样的。

解析:一个是遍历数字,一个是遍历列表,i值不一样,故D错误。

7函数表达式 any([0,False,True]) 的结果是(  D  )。

A.无输出      B.False      C.出错        D.True

解析:any() 函数用于判断给定的可迭代参数 iterable 是否全部为 False,则返回 False,如果有一个为 True,则返回 True。元素除了是 0、空、FALSE 外都算 TRUE。故D正确

8、下列程序运行结果是(   D   )。

a = 30;b = 1

if a >= 10:

    a = 20

elif a >= 20:

    a = 30

elif a >= 30:

    b = a

else:

    b = 0

print('a={}, b={}'.format(a, b))

A.a=30, b=1                       B.a=30, b=30

C.a=20, b=20                      D.a=20, b=1

解析:由于a=30>=10,a=20,那么剩下的语句就不再执行了,只执行“a>=10”的if语句,而b的值没有受到改变,故a=20,b=1,D正确。

9、实例方法的第一个参数必须是(  D  )。

A、 cls      B、 init      C、 class          D、 self

解析:实例方法的第一个参数是self,当然在调用类方法时可以不写self,因为self会当作默认值;而第一个参数不一定是self,也可以自己创建参数。那为啥其他选项不行呢?因为clsclass代表类,init是结构函数,涉及到方法、类名、函数、关键字等都不可作为参数,故D正确。

10、以下(   B   )以只写方式打开文件abc.txt。

A、f = open("abc.txt","r")           B、f = open("abc.txt","w")

C、f = open("abc.txt","r+")          D、f = open("abc.txt","w+")

解析:只写方式 — write — w;

      只读方式 – read – r。故B正确。

二、判断题  

1、(   T   )Python使用缩进来体现代码之间的逻辑关系。                          

2、(   T   )可以使用pyinstaller扩展库把Python源程序打包成为exe文件,从而脱离Python环境在Windows平台上运行。

3、(     )在Python中可以使用if作为变量名。(if 是关键字!!!)

4、(   T   )加法运算符可以用来连接字符串并生成新字符串。

5、(  F  )Python中集合数据类型支持使用下标访问其中的元素。(集合是无序的,那么索引将毫无意义。

6、(   F   )下面代码的输出结果是['brown','purple','tomato']。  

s=["seashell","gold","pink","brown","purple","tomato"]

print(s[4:])

7、(   F   )下面代码的输出结果是:False。 

listV=list(range(5))

print(2 in listV)

8、(     )在使用try…except…finally 结构时,将可能发生异常的语句放在except之后。

9、(   F   )使用with语句打开文件对象,文件操作结束后仍需要使用close()来关闭文件。

10、(     )定义类时所有实例方法的第一个参数self用来表示对象本身。

三、 填空题

1、表达式(5**2)%10//3的计算结果是   1   (与数学运算符的优先级差不多)

2、布尔类型的值包括  True   和  False  (布尔类型也属于不可变类型)

3、判断变量num能整除5的表达式为: num % 5 == 0     (一般都用if语句进行判断)

4、程序的流程控制有三种结构,分别是顺序结构,  选择结构     循环结构  

5、while循环判断条件是True,我们可以通过在循环体内部使用  break   语句来跳出循环。

6、下列程序运行的结果是  abab    。

for i in range( 2 ):

    for s in "abcd":

        if s=="c":

            break

        print (s,end="")  

解析:整体循环两次,内部循环输出“ab”,最后输出结果不换行。

7、下列程序运行结果是   [81, 8, 9, 5, 36]  

lst = [9,8,3,5,6]

for i in range(len(lst)):

    if lst[i] %3 ==0:

        lst[i] = pow(lst[i],2)

print(lst)

解析:这属于间接访问,用i遍历0~4的整数,也就是列表索引,将列表中能被3整除的元素替换成元素的平方,最后输出替换后的列表。

8lst1 = [2,3, 4,2,3],则set(lst1)的结果是   {234}   

解析:set()代表集合,而集合不允许有重复元素。

9、下列程序的运行结果是  3      

ls=[[1,2,3],[4,5,6],[7,8]]

print(len(ls))

解析:长度取决于数据类型的元素个数。

10、下列程序运行的结果是   29   

f=lambda x,y:x*x+2*y

print(f(5,2))

解析:就相当于把52代入xy中,求x**2+2*y的值。

11、导入random模块的写法是 import random

12exec("for i in range(6):print(i,end ='  ') ")的运行结果是 0  1  2  3  4  5

解析:exec 执行储存在字符串或文件中的 Python 语句,相比于 eval,exec可以执行更复杂的 Python 代码。相当于执行引号内的表达式。

13、print(list(map(abs,[1,2,-5,-6]))) 的运行结果是 [1,2,5,6] 

解析:map()会根据提供的函数对指定序列做映射。第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。在这里相当于用abs取绝对值的函数,去对列表[1,2,-5,-6]中元素逐一进行操作。

14Python 文件操作中,read ()可以读取    文件中的所有数据    ,readline()读取  文件中某一行的内容    ,readlines()读取  文件的所有行    

解析:readlines所读取的文件内容会被放进一个列表中,每行的内容会作为列表中的元素,包括空格与换行符。

15面向对象程序设计的三个基本特征是  继承    、  多态    、封装。

四、阅读下列程序,并按要求解答

1、(1)输入为:defg 时,写出程序的输出。(已知a的ASCII码为97)

(2)描述此程序的运行过程。

s = input("请输入一个字符串")

s2 = []

for i in s:

    s2.append(ord(i))

print(s2)

运行过程:

  1. 创建变量s,输入字符串,并创建空列表s2;
  2. 用变量i遍历字符串s;
  3. 将i值转换为ASCII码,追加到空列表s2中;
  4. 最后输出列表s2,结果为

2、写出下列程序的运行结果。

d = { 1:'Mon',2:'Tues',3:'Wed'}

for key in d:

    print(key,end= " ")

print()

for key in d:

    print(d[key],end =" " )

print()

for key ,value in d.items():

    print((key,value),end= " ")

运行结果为:1 2 3

            Mon Tues Wed

            (1,’Mon’) (2,’Tues’) (3,’Wed’)

3、(1)写出下列程序的运行结果。(2)描述函数func()的功能。

def func(a, *b):

    for item in b:

        a += item

    return a

m = 0

print(func(m,  7, 8, 9, 10))

  1. 运行结果为:34
  2. 函数func()的功能是将m依次与元组变量中的多个值累加。

4、(1)写出下列程序的运行结果。(2)描述此程序运行过程。

def change(x,y):

    a = y

    b = x

    print(a,b)

a = 4

b = 5

change(a,b)

print(a,b)

  1. 运行结果为:(5,4) (4,5)
  2. 运行过程:首先将4、5分别赋值给a、b,调用自定义函数change(),

将a、b的值分别赋值给自定义函数的变量x、y;在函数体内,

将x、y的值分别赋值给b、a,随后输出a、b的值(5,4);最后输出函数体外的a、b的值(4,5).

5、(1)写出程序的运行输入3时的结果。(2)描述此程序的运行过程。

n = int(input("请输入n(>=0):"))

while n<=0:

    n = int(input("请输入n(>=0):"))

s2 = 1; i =1

while i<= n:

    s2 = s2*i

    i +=1

print("{}!= {}".format(n,s2))

  1. 结果为:3! = 6
  2. 运行过程:
  3.  输入整数3,将3赋值给n;
  4. 判断n是否小于等于0,由于3大于0,故不执行while循环体语句;
  5. 判断i是否小于等于n,已知s2=1,i=1,而1小于3,故执行while循环体语句,将s2*i的值赋值给s2,将i+1的值赋值给i,如此循环下去,直至i的值大于3时,结束循环,此时s2的值为6,n的值为3;
  6. 最后将n和s2的值格式化输出。

6、(1)写出下列程序后数据的存储情况。(2)解释writelines()与write()的区别。

with open('d:\\abc.txt','w') as f:

    f.write("时间是个常数\n")

    f.write('但也是个变数\n')

f.writelines(["勤奋的人无穷多\n","懒惰的人无穷少\n"])

(1)存储情况:时间是个常数

            但也是个变数

            勤奋的人无穷多

            懒惰的人无穷少

  1. writelines()的参数是序列,作用是依次把列表中的数据写入到文件中;
  2. 而write()的参数是一个字符串,作用是将字符串中数据写入到文件中。

五、 编程题(本题2小题,每小题10分,共20分)

1、编写程序:根据用户输入的课程成绩(成绩的有效区间为[0,100]分),输出相应提示语,如表1所示。当用户输入q 或Q,程序运行结束。运行效果如图1所示。 (10分)

表1  用户输入对应的输出

输入分数

输出

[90,100]

成绩优秀。

[60,89]

成绩合格。

[0,59]

继续努力。

Q 或q

运行结束

图1  运行效果示意图

while True:
    n =
input("请输入课程成绩(Qq结束):")
   
if n.upper() == 'Q':
       
print('运行结束。')
       
break
    if
90 <= int(n) <= 100:
       
print("成绩优秀。")
   
elif 60 <= int(n) <= 89:
       
print("成绩合格。")
   
elif 0 <= int(n) <= 59:
        
print("继续努力。")
   
elif int(n) < 0 or int(n) > 100:
        n =
input("请输入课程成绩(Qq结束):")
       
continue

2、编写程序创建类MySquare,计算正方形的周长、面积、正方体的体积、正方体的表面积,结果保留2位小数,正方形的边长在运行时由用户输入。运行效果如图2所示。 (10分)

图2  运行效果示意图

class MySquare:

    def __init__(self,x):

        self.x = x

        self.zfx_tx()

        self.zft_tx()



    def zfx_tx(self):

        self.c = 4 * self.x

        self.s1 = self.x ** 2

        print(f"正方形周长是:{round(self.c,2)}")

        print(f"正方形面积是:{round(self.s1,2)}")





    def zft_tx(self):

        self.v = self.x ** 2

        self.s2 = 6 * (self.x ** 2)

        print(f"正方体表面积是:{round(self.s2,2)}\n正方体体积是:{round(self.v,2)}")





bc = float(input("请输入正方形边长:"))

MySquare(bc)

首次编稿,若有差错请多多指正~

  • 24
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值