下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、0708 学年第一学期网络程序设计课程期末考试试卷(A 卷答案)一 、单选题(本题共 40 分,每小题 2 分) 1下列( C )不属于计算机网络硬件的组成部分。A)服务器 B )网卡 C )网络操作系统 D )通信介质2接口是指( A )之间交互的界面A)同一系统相邻层 B )不同系统同一层次C)不同系统相邻层 D )对等实体3TCP/IP 协议蔟共有( A )层。A) 4 B ) 5 C ) 6 D ) 74在 TCP/IP 协议簇中,(B )组属于应用层协议A)IP、TCP 和 UDP B) FTP、SMTP 和 TELNETC) ARP IP 和 UDP D)ICMP ARP 和 RA
2、RP 5以下 IP 地址( B )是广播地址 .A) 55 B ) 55 C ) 55 D ) 6网间进程通信与( D )无关A)协议 B )地址 C )端口 D )进程号7关于 UDP 协议,以下说法不正确的是(A )A) UDP 是面向无连接的互连层协议,它是无序,不可靠的协议。B) 使用 UDF 通信不需要建立连接也不需要释放连接。C) UDP 适合于短信息服务。D) 自身不提供流量控制机制。8. 在 main() 中若连续执行 i=fork() 。 j=fork() 。 k=fork() 。后,由此
3、引发( C )个进程 同时存在。A) 4 B ) 6 C ) 8 D ) 99.同一进程中的线程不能共享( D )A)全局变量 B )打开的文件描述符 C )当前工作目录 D) errno 变量 10将域名转换为十进制点分格式的IP 地址应使用( A )A) gethostbyname() B) gethostbyaddr()C) getservbyname() D) gethostname()11下列( B )信号是不能忽略的。A) SIGINT B ) SIGSTOP C) SIGQUIT D) SIGCHLD12下列说法( C )是不正确的A) 父进程应调用 wait()或 waitpi
4、d()释放其已终止的子进程的资源,否则终止的子进 程为僵死进程B) 管道是单工通信C) FIFO 只能在父子进程间通信D) 消息队列的访问本身具有锁机制13在 vi 编辑器使用中,末行命令 s/print/printf/g 的功能是 (C )A) 将当前行所有字符串 print 改为 printfB) 将当前行第一个字符串 print 改为 printfC) 将所有行所有字符串 print 改为 printfD) 将所有行第一个字符串 print 改为 printf14在 TCP 通信中,客户端用 connect 进行连接请求,正确的是( A )A) z_size= sizeof(sockad
5、dr_in) 。connect(fd,(sockaddr *)(&server),z_size);B)z_size= sizeof(sockaddr_in)。connect(fd,( sockaddr *)(&server),&z_size);C)z_size= sizeof(sockaddr_in)。connect(fd,( sockaddr *)(server),z_size) ;D)z_size= sizeof(sockaddr_in) 。connect(fd,( sockaddr *)(server),&z_size) ;15 close() 和 shu
6、tdown() 都可以用于关闭 socket 描述符,其中 close() 的功能是( C )A)可以只关闭接收端B )可以只关闭发送端C)同时关闭D)以上三种都可以16.按 IPV4 网络掩码规则,如没有进一步子网划分,IP 地址为 8 主机的网络 掩码是( B )A) B ) C)D)非法 IP 地址,无法确定网络掩码17.以下关于带外数据的说法错误的是 ( C )A) 带外数据是通信过程中优先得到服务的数据。B) 带外数据只有一个字节。C) read() 是不能接收带外数据的。D)通过带外数据实现心跳
7、信号的发送和接收,判断客户端是否与服务器失去联系。18.I/O 多路复用中, 建立需要监视的套接字描述符 confd 与描述符集合 fdset 的联系,使用( A )A) FD_SET(confd,&fdset) 。B ) select(maxfd+1,&fdset,NULL,NULL,NULL) 。C ) FD_ISSET(confd,&fdset) 。D) FD_CLR(confd,&fdset ) 。19.下列语句中,若 struct sockaddr_in adr_inet 。( C )能正确将点分十进制格式的IP 地址转换为地址结构变量中所需要的地址信
8、息。A) inet_aton( “202.113. 16.10”,&adr_inet.sin_addr.s_addr) 。B) adr_inet.sin_addr=inet_aton(“202.113. 16.10”)。C)adr_inet.sin_addr.s_addr=inet_addr( “202.113. 16.10”)。D) adr_inet.sin_addr=inet_addr(“202.113. 16.10”)。20.系统调用 alarm(5) 。 的功能是( A )A)设置定时信号的时间B)捕获定时信号并作出响应处理C)通知父进程,子进程已终止D )生成系统时间戳二、填
9、空题(本题共 20 分,每小题 2 分)1. 在网络中,某 ISP 拥有一批 IP 地址,但用户需求的 IP 数量已超过此个数,此时可以 采用当用户有连接请求时分配 IP 的方式(每次分配的 IP 可能不同),断开连接立即回收 此 IP,这种分配 IP 的方式称为(动态 IP 地址分配)。2.如果发现所编辑的程序第80 行有错误,先使 vi 编辑器进入命令模式,再打入( 80G )可将光标立即移动到第 80 行。3. 若当前目录有 C+源程序 my.h, abc.cpp、f1.cpp 和 f2.cpp,其中 abc.cpp 中含有main() ,且含有线程的相关操作,请用一条命令对它们编译、连
10、接并生成可执行文件 abc.exe,应使用(g+ abc.cpp f1.cpp f2.cpp -Ipthread- o abc.exe ).4. SOCK_STREA 套接字是基于(TCP )协议的。5. 若定义:pthread_t th1 。struct studentint num 。struct sockaddr_in addr 。STU。用( pthread_create(&th1,fun,(void *)&STU)。 )命令可以产生新线程,使新线程执行子函数 fun(), 其中 fun() 的原型为 void *fun(void *ac),ac 为形参,而 STU 为
11、调用fun() 时的实参。6. 互斥锁是提供( 线程同步 )的一种机制,用于保护线程代码中共享数据的完整性。7 .使用 Is - l aaa 命令,显示结果的第一列内容为prw-r,说明 aaa 是(管道 )类型的文件。8. msgctl(msgid,IPC_RMID,0) 。的功能是( 删除消息队列 msgid )。9.带外数据的发送和接收,可直接使用 send() 、recv()等系统调用中的参数指定,用命 令( send(sockfd, ” A”,1,MSG_OOB。) )可向套接字描述符sockfd 发送带外数据 A。10.若 struct sockaddr_in server_add
12、r。 初始化一个通配 IP 地址时(自动获得本机 IP 地址),应使用( server_addr.sin_addr.s_addr=ntohl(INADDR_ANY) 。 )。三、判断(本题共 20 分,每小题 2 分)1.( 对 )IPV4 地址占 4 个字节,网卡地址占 6 个字节2.(错)不同协议(如 TCP UDP 也不能使用相同的端口号。3.(对)在单一主机上进程间的通信(IPC)也可以使用 socket 技术实现。4.(对)在 UDP 通信 Client/Server模式中,必须客户端先发送数据,而在TCP 通信Client/Server 模式中,建立连接后,不要求客户端必须先发送数
13、据。5.( 错 )在进程通信过程中,有名管道只能用于具有共同祖先进程间的通信。6.( 对 )使用 kill() 可以向某一进程组发送信号。7.( 错 )用删除文件的方法可以删除消息队列。8.( 错 )出错信息函数 strerror() 基于 errno 当前值在标准错误上打印一条出错信 息。9.( 错 ) accept() 系统调用既可以用于服务器端也可以用于客户端。10. ( 对 ) vi 中使用 rx 将光标处字符替换为 x 。四、应用题(本题共 20 分,每小题 5 分) 1.写出多进程并发服务器循环接收多个连接的典型代码假设连接套接字为 confd ,侦听套接字为 lisfd, 客户地
14、址变量定义为 sockaddr_in cli 。 处理客户数据的子程序原型为: void fun(int fd,sockaddr_in client)(要求写出如何接收不同客户连接请求,创建子进程,父子进程代码等) 答: pid_t pid 。int len=sizeof(cli) 。while(1)confd=accept(lisfd,(sock_addr *)(&cli),&len)。if(pid=fork()0)close(confd) 。continue 。else if(pid=0) close(lisfd) 。fun(confd,cli) 。else cout ”f
15、ork error!n”。exit(0) 。 2 按要求写出程序片段:假设可执行程序名为procl,运行程序时通过命令行参数main(int argc,char *argv) 给出 IP 地址(8 )和端口号(9999),即./proc1 89999, 若定义 sockaddr_in server ;请写出初始化 server 成员的代码段。一答: memset(&server,0,sizeof(server)。/bzer o(&server,sizeof(server)。server.sin_family=AFNET。server.
16、s in _port=ht on s(atoi(argv2)。server.s in _addr.s_addr =in et_addr(argv1)。/in et_ato n(argv1,&server.sin_addr)。3写出客户端动态发送一维double 型数组(要求从键盘输入数组规模及各数组元素)给服务器端的函数:void fun(int confd)。答:#i nclude #include void fun (i nt confd)int size 。double *p 。cinsize 。sen d(c onfd,&size,sizeof(i nt),0)。p=new doublesize 。for(int i=0。i pi。sen d(c on fd,p,sizeof(i nt)*size,0)。delete p。4 程序完善:向消息队列发送消息#include . (
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年桦甸市总工会公开招聘工会社会工作者(6人)参考题库带答案解析
- 2026社工(初)《社会工作实务》考试题库带答案解析
- 2026中储粮储运有限公司招聘47人备考公基题库附答案解析
- 2026上海杨浦区复旦大学教师招聘30人笔试模拟试卷附答案解析
- 浙江国企招聘-2025年绍兴市城发阿波罗科技有限公司项目制产业人员第四批招聘3人历年真题汇编附答案解析
- 浙江国企招聘-2025杭州萧山云啸研究院科技有限公司工作人员(劳务派遣)招聘8人历年真题汇编及答案解析(夺冠)
- 2025广东深圳市宝安区鹏晖中英文学校诚聘初中数学教师历年真题汇编带答案解析
- 2025广东佛山市龙卷风研究中心招聘科研人员1人历年真题汇编带答案解析
- 2025年兴业银行长沙分行社会招聘笔试模拟试卷附答案解析
- 2026年陕西省选调生招录(面向中央民族大学)历年真题库附答案解析
- 经营部管理制度
- 钢结构加工安装合同 钢结构构件加工合同(3篇)
- 建水景点介绍
- GB/T 16674.1-2004六角法兰面螺栓小系列
- 小学语文人教五年级上册第三单元五年级上册第三单元《中国民间巧故事的群文阅读》课件
- 涡轮风扇发动机原理
- 解放思想实事求是课件
- 中药材的采收与产地加工课件
- 运动前评价课件
- 我国玉米深加工产业概述课件
- 个人资料模板1
评论
0/150
提交评论