大佬们,可以帮我做做这张试卷吗。很快考试了。做一道也可以,给个答案就行了,

  全国高等学校计算机水平考试II级---《Python 程序设计》考试大纲 (试行)
一、考试目标与要求
考试目标:测试考生系统掌握 Python 基本概念及其编程思想,了解 Python 计算生态,利 用 Python 进行数据处理及解决问题的能力。
考试要求:
1. 熟练掌握 Python 语言基础语法,掌握模块化程序设计思想,了解面向对象基本概念。 2. 熟练掌握 Python 常用标准库及第三方库的使用。
3. 能够阅读和分析 Python 程序,利用 Python 进行简单的数据处理及数据可视化。
二、考试内容
(一)基础知识
【考试要求】
掌握Python中的常量、变量、数据类型、运算符、表达式、内置函数和基本输入输出。 【主要考点】
1.常量与变量
2.基本数据类型 3.运算符与表达式 4.数据类型转换 5.字符串类型及相关函数/方法 6.基本输入输出
7. Python常用内置函数 8.注释
(二)流程控制
【考试要求】 掌握Python程序格式框架及书写风格,掌握顺序、选择、循环结构在Python中的实现方
法,能灵活运用不同的控制结构解决实际问题。 【主要考点】
1.顺序结构
2. 选择结构:单分支、双分支、多分支选择结构,选择结构的嵌套
3. 循环结构:for 循环、while 循环,带有 else 子句的循环,break 与 continue 语句的作

4. 程序的异常处理:try ---except
(三)高级数据类型
【考试要求】 掌握Python中列表、元组、字典、集合的使用方法以及应用场合;了解不同数据类型的
     1/7

  优缺点和适用领域;学会综合应用多种数据类型解决实际问题。 【主要考点】 1.列表:创建、删除、修改、切片、访问、排序;多维列表
2. 元组:创建、删除、切片、访问
3. 字典:创建、删除、添加、修改及访问,有序字典的使用
4. 集合:创建、删除、访问,集合的并、交、差以及对称差等运算 5. 列表、元组、集合的区别及相互转换
(四)模块化程序设计
【考试要求】 了解模块化程序设计思想,掌握分而治之的结构化程序设计方法;掌握函数定义、参数传
递及高级函数的使用;了解变量作用域的含义;掌握匿名函数的定义及使用。 【主要考点】
1. 函数定义与使用
2. 函数参数:默认参数、可变参数、关键字参数
3. 变量作用域:局部变量和全局变量
4. 匿名函数的定义及使用
5. 高级函数(map、reduce、filter)的使用
(五)面向对象程序设计
【考试要求】 了解Python中面向对象程序设计的基本方法,包括类的定义与使用、类的属性、类中的
特殊方法。
【主要考点】
1. 类的定义与使用
2. 类成员访问控制
3. 继承与多态
4. 特殊方法与运算符重载
(六)文件操作
【考试要求】 要求考生掌握文件的基本操作,掌握CSV、Excel文件的读取。
【主要考点】
1. 文件的使用:打开、读写、定位和关闭 2. 一二维数据组织:存储、处理及可视化 3. 读写CSV格式数据文件
4. 读取Excel格式数据文件(pandas库)
(七)模块与库
【考试要求】 了解Python生态系统,掌握Python常用标准库,运用第三方库解决实际问题,包括但不限
于网络爬虫、数据分析、文本处理、数据可视化、机器学习、Web应用开发、网络编程等领域。 【主要考点】
     2/7

  1. Python常用标准库:random、math、string、OS、time、datetime、urllib.request。 2.第三方库:Matplotlib、pandas、jieba、wordcloud、requests、BeautifulSoup4、XPath、 NumPy、Scrapy。
三、考试方式
机试(考试时间:105 分钟)
考卷题型题量:卷面总分 100。单选题(15 题,30 分)、填空题(5 题,30 分)和操作题
(程序代码挖空题)(2 题,40 分)。
四、考试环境要求
Python 3.7 及以上,可选装 PyScripter、Pycharm、Anaconda、VSCode 等 IDE 编程环境。
五、考试样题
(一)单选题(15 题,30 分) 1、下面__________不是 Python 合法标识符。
A) __name32 B) name32
C) __name32__ D) 32name
2、关于 Python 内存管理,下面__________说法错误。
A) 当 Python 运行时垃圾回收也会启动
B) python 会自己管理内存,对于占用很大内存的对象,并不会马上释放 C) Python 采用了类似 Windows 内核对象一样的方式来对内存进行管理 D) Python 语言,对象的类型和内存都是在运行时确定的
3、在 Python3 中,下列不支持的数字类型是__________。
A) 浮点型 B) 分数 C) 复数 D) 长整型
4、下列不能作为字典的键是__________。 A) 变量
B) 字符 C) 元组 D) 数字
5、关于单引号,双引号,三引号的说法错误的是__________。
A) 单引号和双引号是等效的
B) 单引号,双引号,三引号,如果要换行,需要符号(\),不可以直接换行 C) 三引号则可以直接换行,并且可以包含注释
D) 三引号可以包含双引号,而不需要转义
6、在 Python3 中下列__________语句是非法的。
     3/7

  A) m=(n=a+1) B) a,b=b,a
C) m,n='ab' D) m,n=3,4
7、在 Python3 中,关于模块说法错误的是__________。
A) 模块是对象
B)模块是一个 Python 文件
C) 模块能定义函数和变量,但不能定义类
D) 在不同的模块中可以存在相同名字的函数名和变量名
8、关于变量的作用域说法错误的是__________。
A) 如果一个局部变量和一个全局变量重名,则局部变量会覆盖全局变量 B) Python 变量的作用域不由变量所在源代码中的位置决定
C) 全局变量如果是在函数内部赋值的话,必须经过声明
D) 全局变量在函数内部不经过声明也可以使用
9、以下关于异常处理的描述,正确的是__________。
A) try 语句中有 except 子句,但也可以有 finally 子句
B) Python 中不允许利用 raise 语句由程序主动引发异常 C)引发一个不存在索引的列表元素会引发 NameError 错误 D)Python 中,可以用异常处理捕获程序中的所有错误
  10、以下语句会无限循环下去的是__________。
 A) for n in range(1000): time.sleep(5)
C) while False: continue
B) while 1<10: time.sleep(10)
D) while True: break
11、Python 变量命名规则说法错误的是__________。
A) 变量名不能包含空格,但可使用下划线来分隔其中的单词。 B) 不论是类成员变量还是全局变量,均不使用 m 或 g 前缀 C) 变量名只能包含字母、数字和下划线。以字母或数字开头 D) 变量名不应带有类型信息,因为 Python 是动态类型语言
12、关于 Python 的 lambda 函数,以下选项中描述错误的是__________。
A) f = lambda x,y:x+y 执行后,f 的类型为数字类型
B) lambda 函数是指一类无需定义标识符(函数名)的函数或子程序
C) lambda 函数可以接收任意多个参数 (包括可选参数) 并且返回单个表达式的值 D) lambda 的主体是一个表达式,而不是一个代码块
13、以下选项中,不是 Python 语言保留字的是__________。 A) pass
B) continue C) except D) next
14、关于 Python 程序中与“缩进”有关的说法中,以下选项中不正确的是__________。
A) 缩进统一为 4 个空格且强制使用
B) Python 中的每一条语句都有一个缩进级别,并且缩进级别会使用栈的数据结构进行存

  4/7

  C) Python 中的缩进是有语法含义的,它用来表示一个代码块 D) 一条比较长的语句也可以用缩进分成多行
15、关于 Python 循环结构,以下选项中描述错误的是__________。
A) 每个 continue 语句只有能力跳出当前层次的循环
B) continue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮
循环
C) break 跳出并结束当前整个循环,执行循环后的语句
D) while 循环不会迭代 list 或 tuple 的元素,而是根据表达式判断循环是否结束
(二)填空题(5 题,30 分)
1、表达式 [x for x in [1,2,3,4,5] if x<3]的值为 1
2、设列表对象 aList 的值为[3, 4, 5, 6, 7, 9, 11, 13, 15, 17],那么 aList[3:7]得到的值是 2 3、从猫眼电影热门榜单上爬取电影信息(包括电影名、主演、上映时间、评分),结果保存 形式为 item= [('少年的你','主演:周冬雨','上映时间:06-27',9.5),┈],那么使用 item.sort(key=lambda x:x[3],reverse=True)语句的作用是对 3 (电影名/主演/上映时间/评 分)进行 4 (升序/降序)排列
4、list1 中存放李小姐结婚请帖名单,她发现把“李泓”写成了“李弘”,少写“张瀚”, “刘 斯”名字有重复,得把第一删除,请补全横线处的代码,请你帮她更正过来。
list1=['张杨华','韩冠浩','刘斯','李弘','关申海','李晓思','李思慧','刘潇斯','刘斯'] 5 ('李泓')
6 ('刘斯')
7 ('张瀚') print(list1)
5、t_array 中存放 4╳4 的二维数组,下列程序是计算该二维数组各元素的和,请完善下列代 码。
t_array=[(4,5,6,7),(8,9,10,11),(12,13,14,15),(16,17,18,19)] sum= 8
for arr in t_array:
for i in 9 : 10
print(sum)
(三)操作题(程序代码挖空题)(2 题,40 分)
                  5/7

  1、在考试操作试题文件夹里,打开“gdpython1.py”文件,按下面的要求完成操作: 从键盘上输入一段文字,调用下列函数,能统计出该段文字的中文个数、英文个数、数
字个数和标点符号的个数。请完善代码。
import string
def str_count(str):
count_en = count_dg = count_sp =count_zh = count_pu = 0 for s in str:
# 统计英文字母个数 if s in string. 1 :
count_en += 1 # 统计数字个数
elifs. 2 : count_dg += 1
# 统计中文个数 elifs. 3 :
count_zh += 1 # 统计空格个数
elif s. 4 : count_sp += 1
# 统计标点符号个数 else:
count_pu += 1 print('英文字符:', count_en)
print('数字:', count_dg) print('空格:', count_sp) print('中文:', count_zh) print('标点符号:', count_pu)
2、在考试操作试题文件夹里,打开“gdpython2.py”文件,按下面的要求完善列代码,生产 随机激活码。具体要求如下:
(1) 使用random库,采用0x1011作为随机种子。
(2) 每次产生20条激活码,且首字不能一样。每条激活码单独一行。
(3) 必须包含大写字母、小写字母和数字,必需包括“!@#$%&*-”8个特殊符号中的某
一个。
(4) 每次激活码产生的长度为12位。
(5) 不能重复。
(6) 程序所产生的激活码保存在“激活码.txt”文件中。
import random
random. 1 s="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMOPQRSTUVWXYZ0123456789!@#$%&*-" ls=[]
excludes=""
while 2 :
          pwd=""
 6/7

  for i in 3 : 4
if pwd[0] in excludes:
5
else:
ls. 6
excludes+= 7 with open('激活码.txt','w') as f:
f.write('\n'. 8 )
           7/7

大部分比较基础,操作题有点费点时间。

一、选择题

1、D

2、C

3、B

4、A

5、B

6、C

7、C

8、B

9、A

10、D

11、C

12、A

13、D

14、D

15、B

二、填空题

1、[1,2]

2、[6, 7, 9, 11]

3、评分、降序

4、代码如下,按照填空需求填空即可。

list1=['张杨华','韩冠浩','刘斯','李弘','关申海','李晓思','李思慧','刘潇斯','刘斯']
list1[list1.index('李弘')]='李泓'
list1.remove('刘斯')
list1.append('张瀚') 
print(list1)

5、代码如下,按照填空需求填空即可。

t_array=[(4,5,6,7),(8,9,10,11),(12,13,14,15),(16,17,18,19)]
sum=0
for arr in t_array:
    for i in range(4):
        sum+=arr[i]
print(sum)

三、操作题

1、代码如下,网上有一模一样的题目,不过代码有点问题,改正如下,思路就是排除法。

import string
def str_count(str):
    count_en = count_dg = count_sp =count_zh = count_pu = 0
    for s in str:
        # 统计英文字母个数 
        if s in string.ascii_letters:
            count_en += 1 
        # 统计数字个数
        elif s.isdigit(): 
            count_dg += 1
        # 统计空格个数 
        elif s.isspace():
            count_sp += 1 
        # 统计中文个数
        elif s.isalpha():
            count_zh += 1
        # 剩余就是标点符号 
        else:
            count_pu += 1 
    print('英文字符:', count_en)
    print('数字:', count_dg) 
    print('空格:', count_sp) 
    print('中文:', count_zh) 
    print('标点符号:', count_pu)

2、代码如下,网上有类似的题目,不过这个题目要求更严格,所以for循环中这样写。

import random
random.seed(0x1010)
s="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMOPQRSTUVWXYZ0123456789!@#$%&*-" 
ls=[]
excludes=""

while len(ls)<20:
    pwd=""

    for i in range(3):
        pwd+=random.choice(s[:26])
        pwd+=random.choice(s[26:53])
        pwd+=random.choice(s[53:64])
        pwd+=random.choice(s[64:len(s)+1])
        
    if pwd[0] in excludes:
        continue
    else:
        ls.append(pwd)
        excludes+=pwd[0]

    with open('激活码.txt','w') as f:
        f.write('\n'.join(ls))

(一)单选题(15 题,30 分) 1、下面_____D_____不是 Python 合法标识符。

A) __name32 B) name32

C) __name32__ D) 32name

2、关于 Python 内存管理,下面_____C(不确定)_____说法错误。

A) 当 Python 运行时垃圾回收也会启动

B) python 会自己管理内存,对于占用很大内存的对象,并不会马上释放 C) Python 采用了类似 Windows 内核对象一样的方式来对内存进行管理 D) Python 语言,对象的类型和内存都是在运行时确定的

3、在 Python3 中,下列不支持的数字类型是____B______。

A) 浮点型 B) 分数 C) 复数 D) 长整型

4、下列不能作为字典的键是___A_______。 A) 变量

B) 字符 C) 元组 D) 数字

5、关于单引号,双引号,三引号的说法错误的是___B_______。

A) 单引号和双引号是等效的

B) 单引号,双引号,三引号,如果要换行,需要符号(\),不可以直接换行 C) 三引号则可以直接换行,并且可以包含注释

D) 三引号可以包含双引号,而不需要转义

6、在 Python3 中下列_____A_____语句是非法的。

  A) m=(n=a+1) B) a,b=b,a

C) m,n='ab' D) m,n=3,4

7、在 Python3 中,关于模块说法错误的是_____C_____。

A) 模块是对象

B)模块是一个 Python 文件

C) 模块能定义函数和变量,但不能定义类

D) 在不同的模块中可以存在相同名字的函数名和变量名

8、关于变量的作用域说法错误的是___B_______。

A) 如果一个局部变量和一个全局变量重名,则局部变量会覆盖全局变量 B) Python 变量的作用域不由变量所在源代码中的位置决定

C) 全局变量如果是在函数内部赋值的话,必须经过声明

D) 全局变量在函数内部不经过声明也可以使用

9、以下关于异常处理的描述,正确的是____A______。

A) try 语句中有 except 子句,但也可以有 finally 子句

B) Python 中不允许利用 raise 语句由程序主动引发异常 C)引发一个不存在索引的列表元素会引发 NameError 错误 D)Python 中,可以用异常处理捕获程序中的所有错误

  10、以下语句会无限循环下去的是_____C_____。

 A) for n in range(1000): time.sleep(5)

C) while False: continue

B) while 1<10: time.sleep(10)

D) while True: break

11、Python 变量命名规则说法错误的是___C(不能以数字开头)_______。

A) 变量名不能包含空格,但可使用下划线来分隔其中的单词。 B) 不论是类成员变量还是全局变量,均不使用 m 或 g 前缀 C) 变量名只能包含字母、数字和下划线。以字母或数字开头 D) 变量名不应带有类型信息,因为 Python 是动态类型语言

12、关于 Python 的 lambda 函数,以下选项中描述错误的是_____A_____。

A) f = lambda x,y:x+y 执行后,f 的类型为数字类型

B) lambda 函数是指一类无需定义标识符(函数名)的函数或子程序

C) lambda 函数可以接收任意多个参数 (包括可选参数) 并且返回单个表达式的值 D) lambda 的主体是一个表达式,而不是一个代码块

13、以下选项中,不是 Python 语言保留字的是_____D_____。 A) pass

B) continue C) except D) next

14、关于 Python 程序中与“缩进”有关的说法中,以下选项中不正确的是_____D_____。

A) 缩进统一为 4 个空格且强制使用

B) Python 中的每一条语句都有一个缩进级别,并且缩进级别会使用栈的数据结构进行存

  4/7

 

  C) Python 中的缩进是有语法含义的,它用来表示一个代码块 D) 一条比较长的语句也可以用缩进分成多行

15、关于 Python 循环结构,以下选项中描述错误的是_____A_____。

A) 每个 continue 语句只有能力跳出当前层次的循环

B) continue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮

循环

C) break 跳出并结束当前整个循环,执行循环后的语句

D) while 循环不会迭代 list 或 tuple 的元素,而是根据表达式判断循环是否结束

(三)操作题,1

import string
def str_count(str):
    count_en = count_dg = count_sp = count_zh = count_pu = 0 
    for s in str:
        # 统计英文字母个数 
        if s in string.ascii_letters:
            count_en += 1  
        # 统计数字个数
        elif s.isdigit(): 
            count_dg += 1
        # 统计中文个数 
        elif s.isalpha():
            count_zh += 1  
        # 统计空格个数
        elif s.isspace():
            count_sp += 1
        # 统计标点符号个数 
        else:
            count_pu += 1 
    print('英文字符:', count_en)
    print('数字:', count_dg) 
    print('空格:', count_sp) 
    print('中文:', count_zh) 
    print('标点符号:', count_pu)
str_count(',./?abc# 123 统计个数')

'''
英文字符: 3
数字: 3
空格: 2
中文: 4
标点符号: 5
'''

 

下列的哪一个表达式将返回真( ) A.!(3==4) B.(4!=4) C.(“a”==”d”) D.(2<3)&&(3<2)