《Python程序设计》第9次作业
一、单选题(共3题,24.9分)
1、为避免下标访问键不存在时抛出异常导致程序中止,字典对象提供了一个get()方法用来返回指定键的值,该方法允许指定当键不存在时返回的值。
格式:字典.get(<键>[,d])
功能:若<键>在字典中,返回<键>所对应的值,若键不存在且指定了d则返回d,否则无返回。
已知 x = {1:2, 2:3},那么表达式 x.get(2, 4) 的值为______。
A、 1
B、 2
C、 3
D、 4
正确答案:
2、为避免下标访问键不存在时抛出异常导致程序中止,字典对象提供了一个get()方法用来返回指定键的值,该方法允许指定当键不存在时返回的值。
格式:字典.get(<键>[,d])
功能:若<键>在字典中,返回<键>所对应的值,若键不存在且指定了d则返回d,否则无返回。
已知 x = {10:20, 20:30},那么表达式 x.get(2, 4) 的值为______。
A、 1
B、 2
C、 3
D、 4
正确答案:
3、Python提供了两个级别访问的网络服务: 低级别的网络服务和高级别的网络服务。
低级别为( ),高级别为( )。
A、 TCP,UDPr
B、 Socket,SocketServer
C、 API,OSI
D、 FTP,POP3
正确答案:
解析:Python 提供了两个级别访问的网络服务:
·
二、多选题(共7题,58.5分)
1、 网络编程中有两个主要的问题,一个是( ),另一个就是( )。
A、 如何准确的定位网络上一台或多台主机
B、 如何准确的编写网络应用程序
C、 找到主机后,如何可靠高效的进行数据传输交换。
D、 如何输出传输结果。
正确答案:
解析:
2、socket编程技术是常用的网络编程技术。
所谓socket,通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程 序通常通过"套接字"向网络发出请求或者应答网络请求。
套接字有两种不同的类型:( )和( )。
A、 流套接字
B、 数据报套接字
C、 文本接字
D、 二进制接字
正确答案:
解析:接字可以根据通信性质分类,这种性质对于用户是可见的。应用程序一般仅在同一类的 套接字间进行通信。不过只要底层的通信协议允许,不同类型的套接字间也照样可以通信。套 接字有两种不同的类型:流套接字和数据报套接字。
3、套接字工作原理:
要通过互联网进行通信,至少需要一对套接字,其中一个运行于客户机端,我们称之为 ClientSocket,另一个运行于服务器端,我们称之为ServerSocket。
根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个 步骤:( ),( ),( )。
A、 服务器监听
B、 客户端请求
C、 服务器与客户端等待
D、 连接确认
正确答案:
4、下面叙述正确的是( )。
A、所谓服务器监听,是服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态。
B、所谓客户端请求,是指由客户端的套接字提出连接请求,要连接的目标是服务器端的套接 字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的 地址和端口号,然后就向服务器端套接字提出连接请求。
C、所谓客户端请求,是指由客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的客户端的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。
D、所谓服务器监听,是服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的 状态,实时监控网络状态。
正确答案:
5、阅读下面程序:
import socket #导入 套接字Socket模块
try:
s = socket.socket() #创建 socket 对象
host =socket.gethostname() # 获主机IP,例,本机ip: host = '127.0.0.1'
port = 2345 #端口号 如:8080
s.bind((host, port)) # ( )
s.listen() # ( )。
print(host," 服务器在监听...")
while True: #开启永真循环
c= s.accept()[0] #( )
d=c.recv(1024) #( )
d=d.decode() #数据模式转换
d="Hi,我是HX小信,你发送的信息是:"+d
d=d.encode() #数据模式转换
c.send(d) #( )
c.close() # 关闭套接字
s.close() # 关闭套接字对象
except Exception as e:
print(e)
关于Socket常用方法,下面哪些备注叙述是正确的( )。
A、s.bind((host, port)) #绑定地址(host,port)到套接字, 在AF_INET下,以元组(host,port)的形式表示地址。
B、s.listen() # 开始TCP监听。backlog指定在拒绝连接之前,操作系统可以挂起的最大连接数量。该值至少为1,大部分应用程序设为5就可以了。
C、c= s.accept()[0] #被动接受TCP客户端连接,(阻塞式)等待连接的到来
D、d=c.recv(1024) #接收TCP数据,数据以字符串形式返回,bufsize指定要接收的最大数据量。
c.send(d) #发送TCP数据,将string中的数据发送到连接的套接字。返回值是要发送的字节数量。
正确答案:
解析:
6、阅读下面代码:
#(2) 客户端程序
import socket # ( )
input("按任意键开始连接服务器...")
try:
s =socket.socket() #创建 socket 对象
host = socket.gethostname() # 获主机IP,例,本机ip: host = '127.0.0.1'
port = 2345 #端口号 如:8080
s.connect((host, port)) #( )
d=input("输入要发送的字符串:")
d=d.encode() #数据模式转换
s.send(d) #( )
d=s.recv(1024) # ( )
d=d.decode() #数据模式转换
print(d)
s.close() #关闭套接字
except Exception as e:
print(e)
下面哪些备注叙述是正确的( )。
A、 import socket # 导入套接字Socket模块
B、s.connect((host, port)) #主动初始化TCP服务器连接,一般address的格式为元组(hostname,port),如果连接出错,返回socket.error错误。
C、s.send(d) #发送TCP数据,将string中的数据发送到连接的套接字。返回值是要发送的字节数量。
D、 d=s.recv(1024) #接收TCP数据,数据以字符串形式返回,bufsize指定要接收的最大数据量。
正确答案:
解析:
7、 下面关于协议的叙述,正确的是( )。
A、 HTTP协议的端口号是80。
B、 用于文件传输的协议是FTP。
C、 用于接收邮件的协议是POP3。
D、 用于发送邮件的协议是SMTP。
正确答案:
三、判断题(共2题,16.6分)
1、网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯。
目前较为流行的网络编程模型是客户机/服务器(C/S)结构。即通信双方一方作为服务器等待客户提出请求并予以响应。
客户则在需要服务时向服务器提出申请。服务器一般作为 守护进程始终运行,监听网络端口,一旦有客户请求,就会启动一个服务进程来响应该客 户,同时自己继续监听服务端口,使后来的客户也能及时得到服务。
正确答案:
2、UDP协议是面向无连接的协议。
使用UDP协议时,不需要建立链接,只需要知道对方的
IP地址和端口号,就可以直接发数据包。
正确答案:

