一、选择题
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,也可以自己创建参数。那为啥其他选项不行呢?因为cls、class代表类,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、( F )在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、( F )在使用try…except…finally 结构时,将可能发生异常的语句放在except之后。
9、( F )使用with语句打开文件对象,文件操作结束后仍需要使用close()来关闭文件。
10、( T )定义类时所有实例方法的第一个参数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整除的元素替换成元素的平方,最后输出替换后的列表。
8、lst1 = [2,3, 4,2,3],则set(lst1)的结果是 {2,3,4} 。
解析: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))
解析:就相当于把5和2代入x和y中,求x**2+2*y的值。
11、导入random模块的写法是 import random 。
12、exec("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]中元素逐一进行操作。
14、Python 文件操作中,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)
运行过程:
- 创建变量s,输入字符串,并创建空列表s2;
- 用变量i遍历字符串s;
- 将i值转换为ASCII码,追加到空列表s2中;
- 最后输出列表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))
- 运行结果为:34
- 函数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)
- 运行结果为:(5,4) (4,5)
- 运行过程:首先将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))
- 结果为:3! = 6
- 运行过程:
- 输入整数3,将3赋值给n;
- 判断n是否小于等于0,由于3大于0,故不执行while循环体语句;
- 判断i是否小于等于n,已知s2=1,i=1,而1小于3,故执行while循环体语句,将s2*i的值赋值给s2,将i+1的值赋值给i,如此循环下去,直至i的值大于3时,结束循环,此时s2的值为6,n的值为3;
- 最后将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)存储情况:时间是个常数
但也是个变数
勤奋的人无穷多
懒惰的人无穷少
- writelines()的参数是序列,作用是依次把列表中的数据写入到文件中;
-
而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("请输入课程成绩(Q或q结束):")
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("请输入课程成绩(Q或q结束):")
continue
2、编写程序创建类MySquare,计算正方形的周长、面积、正方体的体积、正方体的表面积,结果保留2位小数,正方形的边长在运行时由用户输入。运行效果如图2所示。 (10分)
图2 运行效果示意图文章来源:https://www.toymoban.com/news/detail-793337.html
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)
首次编稿,若有差错请多多指正~文章来源地址https://www.toymoban.com/news/detail-793337.html
到了这里,关于hw大一Python模拟题详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!