内容正文:
安徽省2025年对口招生考试计算机类
专业综合模拟卷(二)
(本试题卷共三部分,84道小题,共13页。时量150分钟,满分390分)
第一部分 计算机网络基础(180分)
1、 填空题(每空3分,共60分)
1. 集线器连接的以太网和同轴电缆以太网都属于______以太网局域网技术。
2. 通信信道的每一端都可以是发送端,也可以是接收端,信息可以在两个方向上传输,但在同一时刻只能有一个方向上传输信息,这种通信方式称为______通信。
3. 以太网采用的MAC协议是______,相对于OSI七层参考模型,该协议属于数据链路层的______子层。
4. 路由器工作在ISO/OSI的______层。宽带路由器通常具有一个WAN口和4个或更多LAN口,并提供NAT和DHCP功能,甚至具有VPN功能。其中,实现网络地址转换的是______功能,实现动态主机配置的是______功能。
5. 用一条双绞线将两台计算机直接连接起来,该双绞线应该制作成______线。
6. 多模光纤比单模光纤的直径______,传输距离______。
7. TCP协议是一个面向______的协议,它对每一个字节进行编号,以此实现按序交付和确认。
8. TCP软件通过______字段向发送方通告每次希望接收多少数据。该字段给出了一个16比特的无符号整数值,使得TCP能够实现______控制。
9. 1998年,IEEE制定出无线局域网的协议标准,其标准系列是______。
10. 在广域网中,分组交换网通常可以提供数据报和虚电路两类不同的服务,其中______服务能较好地保证通信的服务质量(QoS)。
11. 在有噪声信道上,信道的极限传输速率受______和______的限制。
12. 测试网络的连通性通常用______命令。
13. 模拟信号与数字信号可以实现相互转换。将模拟信号转换为数字信号的过程称为______转换,反之,将数字信号转换为模拟信号的过程称为______转换。
2、 单项选择题(每小题4分,共60分)
1. 以下哪一项属于正确的主机IP地址?( )
A. 224.0.0.5
B. 127.32.5.62
C. 202.112.5.0
D. 162.111.111.111
2. N-ISDN B信道的速率是?( )
A. 16kbps
B. 64kbps
C. 144kbps
D. 2048kbps
3. 一个IP报文在路由器中经过一番处理后,TTL字段值变为0,将会发生以下哪项操作?( )
A. 路由器向IP报文的源地址发送一个出错信息,并继续转发该报文
B. 路由器向IP报文的源地址发送一个出错信息,并丢弃该报文
C. 路由器继续转发报文,不发送错误信息
D. 路由器直接丢弃该IP报文,既不转发,也不发送错误信息
4. 在Windows 2000/XP的CMD命令窗口下,以下哪个命令可查看主机的路由表?( )
A. display ip routing-table
B. arp –a
C. traceroute
D. route print
5. TCP和UDP协议通过()来确定最终目的进程。( )
A. IP地址
B. 物理地址
C. 端口号
D. 以上答案均不对
6. 关于地址192.168.19.255/20,下列说法正确的是?( )
A. 这是一个广播地址
B. 地址在192.168.19.0网段上
C. 地址在192.168.16.0网段上
D. 这是一个公有地址
7. 在一个无电磁干扰的实验室内布设一个快速以太网,最合适的线缆是?( )
A. UTP CAT3
B. STP CAT5
C. UTP CAT5E
D. UTP CAT6
8. 在IP报文头部的字段中,以下()内容和IP报文分片无关。( )
A. 目的IP地址
B. 标识字段(Identification)
C. 标志字段(MF、DF字段)
D. 片偏移
9. 下列几组协议中,互相兼容的是哪一组?( )
A. IEEE802.11a和IEEE802.11b
B. IEEE802.11b和IEEE802.11g
C. IEEE802.11a和IEEE802.11g
D. 以上都不兼容
10. 下列关于虚拟局域网的说法不正确的是?( )
A. 是用户和网络资源的逻辑划分
B. 一个虚拟网是一个数据链路层广播域
C. 虚拟局域网是一种新型的局域网
D. 虚拟网的划分与设备的物理位置无关
11. 以下应用层协议中,用于动态主机配置的协议是?( )
A. SNMP
B. MIME
C. DHCP
D. HTTP
12. 路由器转发数据报时,优先匹配的是?( )
A. 默认路由
B. 特定于具体主机的路由
C. 基于网络的路由
13. 定义以太网介质访问控制协议的是下面哪一个IEEE标准?( )
A. IEEE 802.11
B. IEEE 802.5
C. IEEE802.4
D. IEEE 802.3
14. 在Windows XP系统中,以下哪个命令可以查看本机网卡的物理地址?( )
A. ARP
B. IPCONFIG/ALL
C. PING
D. TRACERT
15. SMTP服务器和POP3服务器?( )
A. 必须是同一台主机
B. 可以是同一主机
C. 必须是两台主机
D. 以上说法均不对
3、 综合运用题(每题15分,共60分)
1.设有三个以太网,现在,希望通过以太网交换机将他们互联起来,并要求LAN2和LAN3构成同一个链路层广播域,并共用同一个IP子网地址,而LAN1为单独的广播域,使用不同于LAN2和LAN3的IP子网地址。
(1)如果按下图方式互联,交换机1和交换机2分别应该为第几层交换机?为什么?
(2)如果按下图方式互联,交换机应该为第几层交换机?如何实现LAN2和LAN3共用同一个IP子网地址?
2. 设有一个如下图所示的大型局域网络,各网段的网络地址及子网掩码已标在图中。试写出路由器R1和R2的路由表,要求路由表中应包含以下内容:(目的网络地址,子网掩码,下一跳路由),并尽量使用默认路由简化路由表。
Internet上是否可能出现用下列IP地址标识的主机?为什么?
4. TCP和UDP向应用层提供的服务有何差别?互联网上的应用绝大部分使用哪一个协议?为什么?
第二部分 信息技术(40分)
4、 填空题(每空2分,共20分)
1. 在信息社会中,信息技术的发展与应用对社会生产和生活产生了深远的影响,这体现了信息社会的______特征。
2. 计算机的主要硬件包括CPU、内存、外存、输入设备和输出设备,其中______是计算机的核心部件。
3. 在Windows 10操作系统中,资源管理器是用于管理文件和文件夹的______。
4. Word 2016中,若要设置文档的页面格式,可以在“页面布局”选项卡中进行相关设置,如设置页边距、纸张大小等。
5. Excel 2016中,使用______函数可以计算单元格区域中所有数值的总和。
6. 在信息安全方面,为了防止信息被非法访问和修改,需要采取相应的______技术。
7. 数字媒体技术中,常见的图像文件格式有JPG、PNG、GIF等,其中______格式适用于网页图像。
8. PowerPoint 2016中,要为幻灯片添加动画效果,可以在“动画”选项卡中进行设置。
9. 在信息处理基本流程中,信息的______是获取原始数据的过程。
10. 信息技术设备中,______是一种可以穿戴在身上的设备,如智能手表、智能眼镜等。
5、 单项选择题(每小题4分,共20分)
1. 以下哪个不是信息社会的基本特征?( )
A. 网络化
B. 智能化
C. 静态化
D. 全球化
2. 在Windows 10操作系统中,下列哪个不是文件管理的基本操作?( )
A. 创建文件或文件夹
B. 修改文件或文件夹的属性
C. 搜索文件或文件夹
D. 安装硬件驱动程序
3. Word 2016中,以下哪个操作不能在“开始”选项卡中完成?( )
A. 设置字体格式
B. 设置段落格式
C. 插入图片
D. 插入页码
4. Excel 2016中,以下哪个函数用于计算单元格区域中的最大值?( )
A. SUM
B. AVERAGE
C. MAX
D. MIN
5. 在PowerPoint 2016中,以下哪个功能不能在“设计”选项卡中找到?( )
A. 更换幻灯片版式
B. 设置幻灯片主题
C. 插入艺术字
D. 使用幻灯片母版
第三部分 Python程序(170分)
6、 填空题(每空3分,共30分)
1. 字符串 'abcabcabc'.count('abc') 的值为______。
2. 对于有 else 子句的 for 循环和 while 循环,如果循环因循环条件不成立而自然结束时______执行 else 中的代码。
3. 已知 x='hello world.', 那么表达式 x.find('x') 和 x.rfind('x') 的值都为______。
4. print("{:#>4d}".format(23)) 的输出结果是______。
5. 以下哪个选项不是 Python 中的合法名称:______。
6. 以下哪个选项是 Python 中的合法名称:______。
7. print(3+5) 语句的运行结果是______。
8. print(2**4+16%3) 的输出结果是______。
9. 以下程序的输出结果是______。
a=8
a%=2
print(a)
10. print(""3) 的输出结果是______。
7、 单项选择题(每小题4分,共60分)
1. 以下哪个是Python的关键字?( )
A. main
B. for
C. while
D. switch
2. Python中用来定义一个函数的关键字是?( )
A. def
B. function
C. define
D. func
3. Python中可以表示真或假的两个特殊值是?( )
A. true 和 false
B. yes 和 no
C. on 和 off
D. 1 和 0
4. 以下关于Python列表的描述正确的是?( )
A. 列表内的元素可以是不同类型的
B. 列表内的元素只能是相同类型的
C. 列表内的元素不能修改
D. 列表内的元素是有序的
5. Python中用来读取用户输入的函数是?( )
A. input()
B. print()
C. read()
D. scan()
6. Python中的循环语句是?( )
A. for
B. else
C. loop
D. switch
7. Python中用来分割字符串的方法是?( )
A. split()
B. strip()
C. slice()
D. divide()
8. Python中用来连接字符串的符号是?( )
A. +
B. -
C. *
D. /
9. Python中的if语句后面要加上?( )
A. 逗号
B. 冒号
C. 分号
D. 点号
10. Python中用来定义一个类的关键字是?( )
A. def
B. class
C. func
D. object
11. Python中,以下哪个是合法的变量名?( )
A. 123var
B. for
C. var123
D. break
12. 下列函数定义中,哪个函数是一个递归函数?( )
A. def fact(n):
if n == 0:
return 1
else:
return n * fact(n-1)
B. def fib(n):
if n <= 1:
return n
else:
return fib(n-1) + fib(n-2)
C. def sum_list(lst):
if len(lst) == 0:
return 0
else:
return lst[0] + sum_list(lst[1:])
D. def is_prime(n):
if n <= 1:
return False
else:
for i in range(2, n):
if n % i == 0:
return False
return True
13. Python中,以下哪个数据类型是有序的?( )
A. list
B. set
C. tuple
D. dictionary
14. 关于Python内存管理,下列说法错误的是?( )
A. 变量不必事先声明
B. 变量无须先创建和赋值而直接使用
C. 变量无须指定类型
D. 可以使用del释放资源
15. 执行下列语句后的显示结果是什么?( )
world="world"
print "hello" + world
A. helloworld
B.“hello”world
C. hello world
D. 语法错误
8、 程序分析题(每小题8分,共40分)
1. 分析下列程序运行结果。
def func(x):
if x > 10:
return x * 2
else:
return x + 10
print(func(func(5)))
2. 分析下列程序运行结果。
a = [1, 2, 3, 4, 5]
for i in range(len(a)):
a[i] += 1
print(a)
3. 分析下列程序运行结果。
def outer():
x = 10
def inner():
nonlocal x
x += 1
return x
return inner()
print(outer())
4. 分析下列程序运行结果。
def add(x, y):
return x + y
def multiply(x, y):
return x * y
a = 5
b = 6
print(multiply(add(a, b), a))
5. 分析下列程序运行结果。
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
print(factorial(5))
9、 程序设计题(每小题10分,共20分)
1. 编写一个函数 cached_fib(n),用于计算斐波那契数列的第n项。要求使用缓存机制来优化计算过程,避免重复计算。斐波那契数列的定义如下:F(0) = 0, F(1) = 1, F(n) = F(n-1) + F(n-2)。
2. 给定一元函数 f(x) = x * sin(4 * pi * x) + 2,其中 x 的取值范围为 [0, 1]。使用遗传算法求该函数在指定区间内的最大值。
10、 综合应用题(20分)
1. 编写一个简单的银行账户管理系统,该系统应支持以下功能:
创建账户:允许用户创建一个新的银行账户,账户信息包括账户名、密码和初始余额。
存款:允许用户向指定账户存入一定金额。
取款:允许用户从指定账户取出一定金额,取款前需要验证密码。
查询余额:允许用户查询指定账户的当前余额。
账户列表:显示系统中所有账户的列表。
要求:
账户信息存储在内存中,不需要持久化到文件或数据库。
账户名必须是唯一的,不能创建同名账户。
取款操作前需要验证密码,密码错误则不允许取款。
系统应具有一定的异常处理能力,如账户不存在、余额不足等。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$
安徽省2025年对口招生考试计算机类
专业综合模拟卷(二)
(本试题卷共三部分,84道小题,共13页。时量150分钟,满分390分)
第一部分 计算机网络基础(180分)
1、 填空题(每空3分,共60分)
1. 集线器连接的以太网和同轴电缆以太网都属于______以太网局域网技术。
【答案】传统
2. 通信信道的每一端都可以是发送端,也可以是接收端,信息可以在两个方向上传输,但在同一时刻只能有一个方向上传输信息,这种通信方式称为______通信。
【答案】半双工
3. 以太网采用的MAC协议是______,相对于OSI七层参考模型,该协议属于数据链路层的______子层。
【答案】CSMA/CD,介质访问控制
4. 路由器工作在ISO/OSI的______层。宽带路由器通常具有一个WAN口和4个或更多LAN口,并提供NAT和DHCP功能,甚至具有VPN功能。其中,实现网络地址转换的是______功能,实现动态主机配置的是______功能。
【答案】网络,NAT,DHCP
5. 用一条双绞线将两台计算机直接连接起来,该双绞线应该制作成______线。
【答案】交叉
6. 多模光纤比单模光纤的直径______,传输距离______。
【答案】大,近
7. TCP协议是一个面向______的协议,它对每一个字节进行编号,以此实现按序交付和确认。
【答案】数据流
8. TCP软件通过______字段向发送方通告每次希望接收多少数据。该字段给出了一个16比特的无符号整数值,使得TCP能够实现______控制。
【答案】窗口,流量
9. 1998年,IEEE制定出无线局域网的协议标准,其标准系列是______。
【答案】IEEE802.11
10. 在广域网中,分组交换网通常可以提供数据报和虚电路两类不同的服务,其中______服务能较好地保证通信的服务质量(QoS)。
【答案】虚电路
11. 在有噪声信道上,信道的极限传输速率受______和______的限制。
【答案】信道带宽,信噪比
12. 测试网络的连通性通常用______命令。
【答案】ping
13. 模拟信号与数字信号可以实现相互转换。将模拟信号转换为数字信号的过程称为______转换,反之,将数字信号转换为模拟信号的过程称为______转换。
【答案】模数,数模
2、 单项选择题(每小题4分,共60分)
1. 以下哪一项属于正确的主机IP地址?( )
A. 224.0.0.5
B. 127.32.5.62
C. 202.112.5.0
D. 162.111.111.111
【答案】C
2. N-ISDN B信道的速率是?( )
A. 16kbps
B. 64kbps
C. 144kbps
D. 2048kbps
【答案】B
3. 一个IP报文在路由器中经过一番处理后,TTL字段值变为0,将会发生以下哪项操作?( )
A. 路由器向IP报文的源地址发送一个出错信息,并继续转发该报文
B. 路由器向IP报文的源地址发送一个出错信息,并丢弃该报文
C. 路由器继续转发报文,不发送错误信息
D. 路由器直接丢弃该IP报文,既不转发,也不发送错误信息
【答案】B
4. 在Windows 2000/XP的CMD命令窗口下,以下哪个命令可查看主机的路由表?( )
A. display ip routing-table
B. arp –a
C. traceroute
D. route print
【答案】D
5. TCP和UDP协议通过()来确定最终目的进程。( )
A. IP地址
B. 物理地址
C. 端口号
D. 以上答案均不对
【答案】C
6. 关于地址192.168.19.255/20,下列说法正确的是?( )
A. 这是一个广播地址
B. 地址在192.168.19.0网段上
C. 地址在192.168.16.0网段上
D. 这是一个公有地址
【答案】C
7. 在一个无电磁干扰的实验室内布设一个快速以太网,最合适的线缆是?( )
A. UTP CAT3
B. STP CAT5
C. UTP CAT5E
D. UTP CAT6
【答案】C
8. 在IP报文头部的字段中,以下()内容和IP报文分片无关。( )
A. 目的IP地址
B. 标识字段(Identification)
C. 标志字段(MF、DF字段)
D. 片偏移
【答案】A
9. 下列几组协议中,互相兼容的是哪一组?( )
A. IEEE802.11a和IEEE802.11b
B. IEEE802.11b和IEEE802.11g
C. IEEE802.11a和IEEE802.11g
D. 以上都不兼容
【答案】B
10. 下列关于虚拟局域网的说法不正确的是?( )
A. 是用户和网络资源的逻辑划分
B. 一个虚拟网是一个数据链路层广播域
C. 虚拟局域网是一种新型的局域网
D. 虚拟网的划分与设备的物理位置无关
【答案】C
11. 以下应用层协议中,用于动态主机配置的协议是?( )
A. SNMP
B. MIME
C. DHCP
D. HTTP
【答案】C
12. 路由器转发数据报时,优先匹配的是?( )
A. 默认路由
B. 特定于具体主机的路由
C. 基于网络的路由
【答案】B
13. 定义以太网介质访问控制协议的是下面哪一个IEEE标准?( )
A. IEEE 802.11
B. IEEE 802.5
C. IEEE802.4
D. IEEE 802.3
【答案】D
14. 在Windows XP系统中,以下哪个命令可以查看本机网卡的物理地址?( )
A. ARP
B. IPCONFIG/ALL
C. PING
D. TRACERT
【答案】B
15. SMTP服务器和POP3服务器?( )
A. 必须是同一台主机
B. 可以是同一主机
C. 必须是两台主机
D. 以上说法均不对
【答案】B
3、 综合运用题(每题15分,共60分)
1.设有三个以太网,现在,希望通过以太网交换机将他们互联起来,并要求LAN2和LAN3构成同一个链路层广播域,并共用同一个IP子网地址,而LAN1为单独的广播域,使用不同于LAN2和LAN3的IP子网地址。
(1)如果按下图方式互联,交换机1和交换机2分别应该为第几层交换机?为什么?
(2)如果按下图方式互联,交换机应该为第几层交换机?如何实现LAN2和LAN3共用同一个IP子网地址?
【答案】
(1)交换机1和交换机2分别是第二层、第三层交换机,其分别实现第二层(物理层和数据链路层)协议和第三层(网络层)协议。
(2)为第三层交换机,为实现LAN1和LAN2共用一个IP子网地址,可以使用基于源IP子网和LAN划分方法,将LAN1和LAN2定义为同一个IP子网。
2. 设有一个如下图所示的大型局域网络,各网段的网络地址及子网掩码已标在图中。试写出路由器R1和R2的路由表,要求路由表中应包含以下内容:(目的网络地址,子网掩码,下一跳路由),并尽量使用默认路由简化路由表。
【答案】
3. Internet上是否可能出现用下列IP地址标识的主机?为什么?
【答案】
(1)127.0.0.1 (2)192.10.6.0 (3)192.168.10.7 (4)224.10.20.3
(1)网络号为127的IP地址用做本机软件回送测试之用,永远不会出现在网络上。
(2)主机编号各位不能设置为0。
(3)属于保留的IP地址,在专用网络上使用。
(4)超出IP地址的数值范围。
4. TCP和UDP向应用层提供的服务有何差别?互联网上的应用绝大部分使用哪一个协议?为什么?
【答案】
TCP提供面向连接的可靠的数据流服务,而UDP提供无连接的数据报交付服务。
应用绝大部分使用TCP协议,UDP是一个非常简单的协议,没有流量控制机制,在大型的TCP/IP互联网上运行时会出现各种错误,而互联网的应用需要提供可靠的数据流服务。
第二部分 信息技术(40分)
4、 填空题(每空2分,共20分)
1. 在信息社会中,信息技术的发展与应用对社会生产和生活产生了深远的影响,这体现了信息社会的______特征。
【答案】基本
2. 计算机的主要硬件包括CPU、内存、外存、输入设备和输出设备,其中______是计算机的核心部件。
【答案】CPU
3. 在Windows 10操作系统中,资源管理器是用于管理文件和文件夹的______。
【答案】工具
4. Word 2016中,若要设置文档的页面格式,可以在“页面布局”选项卡中进行相关设置,如设置页边距、纸张大小等。
【答案】页面布局
5. Excel 2016中,使用______函数可以计算单元格区域中所有数值的总和。
【答案】SUM
6. 在信息安全方面,为了防止信息被非法访问和修改,需要采取相应的______技术。
【答案】信息安全
7. 数字媒体技术中,常见的图像文件格式有JPG、PNG、GIF等,其中______格式适用于网页图像。
【答案】GIF
8. PowerPoint 2016中,要为幻灯片添加动画效果,可以在“动画”选项卡中进行设置。
【答案】动画
9. 在信息处理基本流程中,信息的______是获取原始数据的过程。
【答案】输入
10. 信息技术设备中,______是一种可以穿戴在身上的设备,如智能手表、智能眼镜等。
【答案】可穿戴设备
5、 单项选择题(每小题4分,共20分)
1. 以下哪个不是信息社会的基本特征?( )
A. 网络化
B. 智能化
C. 静态化
D. 全球化
【答案】C
2. 在Windows 10操作系统中,下列哪个不是文件管理的基本操作?( )
A. 创建文件或文件夹
B. 修改文件或文件夹的属性
C. 搜索文件或文件夹
D. 安装硬件驱动程序
【答案】D
3. Word 2016中,以下哪个操作不能在“开始”选项卡中完成?( )
A. 设置字体格式
B. 设置段落格式
C. 插入图片
D. 插入页码
【答案】C
4. Excel 2016中,以下哪个函数用于计算单元格区域中的最大值?( )
A. SUM
B. AVERAGE
C. MAX
D. MIN
【答案】C
5. 在PowerPoint 2016中,以下哪个功能不能在“设计”选项卡中找到?( )
A. 更换幻灯片版式
B. 设置幻灯片主题
C. 插入艺术字
D. 使用幻灯片母版
【答案】C
第三部分 Python程序(170分)
6、 填空题(每空3分,共30分)
1. 字符串 'abcabcabc'.count('abc') 的值为______。
【答案】3
2. 对于有 else 子句的 for 循环和 while 循环,如果循环因循环条件不成立而自然结束时______执行 else 中的代码。
【答案】会
3. 已知 x='hello world.', 那么表达式 x.find('x') 和 x.rfind('x') 的值都为______。
【答案】-1
4. print("{:#>4d}".format(23)) 的输出结果是______。
【答案】##23
5. 以下哪个选项不是 Python 中的合法名称:______。
【答案】2_g
6. 以下哪个选项是 Python 中的合法名称:______。
【答案】num_1
7. print(3+5) 语句的运行结果是______。
【答案】8
8. print(2**4+16%3) 的输出结果是______。
【答案】17
9. 以下程序的输出结果是______。
a=8
a%=2
print(a)
【答案】0
10. print(""3) 的输出结果是______。
【答案】***
7、 单项选择题(每小题4分,共60分)
1. 以下哪个是Python的关键字?( )
A. main
B. for
C. while
D. switch
【答案】B
2. Python中用来定义一个函数的关键字是?( )
A. def
B. function
C. define
D. func
【答案】A
3. Python中可以表示真或假的两个特殊值是?( )
A. true 和 false
B. yes 和 no
C. on 和 off
D. 1 和 0
【答案】A
4. 以下关于Python列表的描述正确的是?( )
A. 列表内的元素可以是不同类型的
B. 列表内的元素只能是相同类型的
C. 列表内的元素不能修改
D. 列表内的元素是有序的
【答案】A
5. Python中用来读取用户输入的函数是?( )
A. input()
B. print()
C. read()
D. scan()
【答案】A
6. Python中的循环语句是?( )
A. for
B. else
C. loop
D. switch
【答案】A
7. Python中用来分割字符串的方法是?( )
A. split()
B. strip()
C. slice()
D. divide()
【答案】A
8. Python中用来连接字符串的符号是?( )
A. +
B. -
C. *
D. /
【答案】A
9. Python中的if语句后面要加上?( )
A. 逗号
B. 冒号
C. 分号
D. 点号
【答案】B
10. Python中用来定义一个类的关键字是?( )
A. def
B. class
C. func
D. object
【答案】B
11. Python中,以下哪个是合法的变量名?( )
A. 123var
B. for
C. var123
D. break
【答案】C
12. 下列函数定义中,哪个函数是一个递归函数?( )
A. def fact(n):
if n == 0:
return 1
else:
return n * fact(n-1)
B. def fib(n):
if n <= 1:
return n
else:
return fib(n-1) + fib(n-2)
C. def sum_list(lst):
if len(lst) == 0:
return 0
else:
return lst[0] + sum_list(lst[1:])
D. def is_prime(n):
if n <= 1:
return False
else:
for i in range(2, n):
if n % i == 0:
return False
return True
【答案】A
13. Python中,以下哪个数据类型是有序的?( )
A. list
B. set
C. tuple
D. dictionary
【答案】C
14. 关于Python内存管理,下列说法错误的是?( )
A. 变量不必事先声明
B. 变量无须先创建和赋值而直接使用
C. 变量无须指定类型
D. 可以使用del释放资源
【答案】B
15. 执行下列语句后的显示结果是什么?( )
world="world"
print "hello" + world
A. helloworld
B.“hello”world
C. hello world
D. 语法错误
【答案】A
8、 程序分析题(每小题8分,共40分)
1. 分析下列程序运行结果。
def func(x):
if x > 10:
return x * 2
else:
return x + 10
print(func(func(5)))
【答案】首先调用func(5),因为5不大于10,所以返回5 + 10 = 15。然后调用func(15),因为15大于10,所以返回15 * 2 = 30。最终输出结果为30。
2. 分析下列程序运行结果。
a = [1, 2, 3, 4, 5]
for i in range(len(a)):
a[i] += 1
print(a)
【答案】列表a中的每个元素都自增1,最终输出结果为[2, 3, 4, 5, 6]。
3. 分析下列程序运行结果。
def outer():
x = 10
def inner():
nonlocal x
x += 1
return x
return inner()
print(outer())
【答案】函数inner是嵌套在outer函数内部的,它通过nonlocal关键字修改了外部变量x的值。调用outer()时,先执行inner(),将x的值修改为11,并返回11。最终输出结果为11。
4. 分析下列程序运行结果。
def add(x, y):
return x + y
def multiply(x, y):
return x * y
a = 5
b = 6
print(multiply(add(a, b), a))
【答案】首先调用add(a, b),返回5 + 6 = 11。然后调用multiply(11, a),返回11 * 5 = 55。最终输出结果为55。
5. 分析下列程序运行结果。
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
print(factorial(5))
【答案】这是一个递归函数,用于计算阶乘。计算5的阶乘,即5 * 4 * 3 * 2 * 1 = 120。最终输出结果为120。
9、 程序设计题(每小题10分,共20分)
1. 编写一个函数 cached_fib(n),用于计算斐波那契数列的第n项。要求使用缓存机制来优化计算过程,避免重复计算。斐波那契数列的定义如下:F(0) = 0, F(1) = 1, F(n) = F(n-1) + F(n-2)。
【答案】
def cached_fib(n, cache=None):
if cache is None:
cache = {0: 0, 1: 1}
if n not in cache:
cache[n] = cached_fib(n-1, cache) + cached_fib(n-2, cache)
return cache[n]
# 测试
print(cached_fib(10)) # 输出 55
print(cached_fib(50)) # 输出 12586269025。
2. 给定一元函数 f(x) = x * sin(4 * pi * x) + 2,其中 x 的取值范围为 [0, 1]。使用遗传算法求该函数在指定区间内的最大值。
【答案】
import random
import math
# 定义目标函数
def f(x):
return x * math.sin(4 * math.pi * x) + 2
# 初始化种群
def init_population(pop_size, x_range):
return [random.uniform(*x_range) for _ in range(pop_size)]
# 适应度函数
def fitness(x):
return f(x)
# 选择操作
def select(population, fitness_func):
sorted_population = sorted(population, key=fitness_func, reverse=True)
return sorted_population[:2]
# 交叉操作
def crossover(parent1, parent2, x_range):
alpha = random.random()
child = alpha * parent1 + (1 - alpha) * parent2
child = max(min(child, x_range[1]), x_range[0]) # 保证子代在定义域内
return child
# 变异操作
def mutate(child, x_range, mutation_rate):
if random.random() < mutation_rate:
child += random.uniform(-0.1, 0.1)
child = max(min(child, x_range[1]), x_range[0]) # 保证子代在定义域内
return child
# 遗传算法主函数
def genetic_algorithm(pop_size, x_range, mutation_rate, generations):
population = init_population(pop_size, x_range)
for _ in range(generations):
population = sorted(population, key=fitness, reverse=True)
new_population = []
for i in range(0, pop_size, 2):
parent1, parent2 = select(population, fitness)
child1 = crossover(parent1, parent2, x_range)
child2 = crossover(parent2, parent1, x_range)
child1 = mutate(child1, x_range, mutation_rate)
child2 = mutate(child2, x_range, mutation_rate)
new_population.extend([child1, child2])
population = new_population
best_individual = population[0]
return best_individual, f(best_individual)
# 参数设置
pop_size = 100
x_range = [0, 1]
mutation_rate = 0.01
generations = 100
# 运行遗传算法
best_individual, best_fitness = genetic_algorithm(pop_size, x_range, mutation_rate, generations)
print(f"最佳个体:{best_individual}, 最大值:{best_fitness}")
10、 综合应用题(20分)
1. 编写一个简单的银行账户管理系统,该系统应支持以下功能:
创建账户:允许用户创建一个新的银行账户,账户信息包括账户名、密码和初始余额。
存款:允许用户向指定账户存入一定金额。
取款:允许用户从指定账户取出一定金额,取款前需要验证密码。
查询余额:允许用户查询指定账户的当前余额。
账户列表:显示系统中所有账户的列表。
要求:
账户信息存储在内存中,不需要持久化到文件或数据库。
账户名必须是唯一的,不能创建同名账户。
取款操作前需要验证密码,密码错误则不允许取款。
系统应具有一定的异常处理能力,如账户不存在、余额不足等。
【答案】
class BankAccount:
def __init__(self, account_name, password, balance=0):
self.account_name = account_name
self.password = password
self.balance = balance
def deposit(self, amount):
if amount > 0:
self.balance += amount
return True
return False
def withdraw(self, password, amount):
if password != self.password:
return "密码错误"
if amount > self.balance:
return "余额不足"
if amount <= 0:
return "取款金额无效"
self.balance -= amount
return True
def get_balance(self):
return self.balance
class BankSystem:
def __init__(self):
self.accounts = {}
def create_account(self, account_name, password, initial_balance=0):
if account_name in self.accounts:
return "账户名已存在"
self.accounts[account_name] = BankAccount(account_name, password, initial_balance)
return "账户创建成功"
def deposit_to_account(self, account_name, amount):
if account_name not in self.accounts:
return "账户不存在"
return self.accounts[account_name].deposit(amount)
def withdraw_from_account(self, account_name, password, amount):
if account_name not in self.accounts:
return "账户不存在"
return self.accounts[account_name].withdraw(password, amount)
def get_account_balance(self, account_name):
if account_name not in self.accounts:
return "账户不存在"
return self.accounts[account_name].get_balance()
def list_accounts(self):
return list(self.accounts.keys())
# 示例使用
bank_system = BankSystem()
print(bank_system.create_account("Alice", "password123", 1000)) # 创建账户
print(bank_system.deposit_to_account("Alice", 500)) # 存款
print(bank_system.withdraw_from_account("Alice", "password123", 200)) # 取款
print(bank_system.get_account_balance("Alice")) # 查询余额
print(bank_system.list_accounts()) # 账户列表
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$