2021年中国人民公安大学 826《计算机网络和 C 语言程序设计》硕士研究生考研试题及答案

 您现在的位置: 考博信息网 >> 文章中心 >> 考研复习 >> 专业课 >> 正文 2021年中国人民公安大学 826《计算机网络和 C 语言程序设计》硕士研究生考研试题及答案

考研试卷库
2021年中国人民公安大学 826《计算机网络和 C 语言程序设计》硕士研究生考研试题及答案

2021年中国人民公安大学硕士研究生考研试题及答案

第一部分 计算机网络

一、单项选择题:下列每题给出的四个选项中,只有一个选项是符合题目要求的。每小

1 分,共 10 分。

1. 为实现一个局域网内的主机互连互通,最常使用的组网设备是()。

A.集线器 B.交换机 C.路由器 D.中继器

2. 网络体系结构可以定义为()。

A.网络层次结构模型与各层次协议的集合

B.由国际标准化组织制定的一个协议标准

C.执行计算机数据处理的软件模块

D.一种计算机网络的具体实现方法

3.下列对 IPv6地址 FE01:0:0:050D:23:0:0:03D4的简化表示中,错误的是( )。

A.FE01::050D:23:0:0:03D4

B.FE01:0:0:050D:23::03D4

C.FE01:0:0:50D:23::03D4

D.FE01::050D:23::03D4

4. 以下关于防火墙技术的描述,错误的是()。

A.可以对进出内部网络的分组进行过滤

B.可以部署在内网与外网之间

C.可以查杀病毒、木马

D.可以对用户使用的服务进行控制

5.在已获取 IP地址的 DHCP客户上执行ipconfig/release”后,其 IP地址和子网掩

码分别为()。

A.169.254.161.12和 255.255.0.0

B.0.0.0.0和 0.0.0.0

C.127.0.0.1和 255.255.255.255

D.127.0.0.1和 255.0.0.0

8


 

6.校园网内的一台计算机可以使用 IP地址但无法使用域名地址访问互联网服务,上述

故障原因不可能是()。

A.该计算机的默认 DNS服务器没有提供正常域名解析服务

B.提供被访问服务器名字解析的 DNS服务器有故障

C.该计算机与 DNS服务器不在同一子网

D.该计算机发起的目的端口为 53的访问请求被限制

7.下列对 VLAN描述错误的是()。

A. VLAN以交换式网络为基础

B. VLAN工作在 OSI参考模型的网络层

C. 每个 VLAN都是一个独立的逻辑网段

D. VLAN之间通信必须通过三层交换机或路由器

8.组建家庭局域网时,ISP只提供了一个连接到网络的接口,且只为其分配了一个有效

IP地址。那么在组建家庭局域网时可选用的网络设备是()。

A.无线路由器 B.无线接入点 C.无线网桥 D.局域网交换机

9.在 WWW 服务的超链接中,用来确定信息所在位置的技术是()。

A.超媒体技术 B.URL C.HTTP协议 D.HTML语言

10.互联网的 IP协议提供的服务是()。

A.可靠的无连接服务

B.不可靠的无连接服务

C.可靠的面向连接服务

D.不可靠的面向连接服务

二、简答题:共 4小题,每小题 5分,共 20分。

1. 简述五层协议网络体系结构的层次划分及各层主要功能。

2. 简述交换机的工作原理,区别交换机、集线器、路由器、网关。

3. 对比分析 RIP和 OSPF路由协议的特征。

4. 与对称密钥密码体制比较,分析公钥密码体制的特点?

三、综合应用题:共 3 小题,共 45 分。

1.计算并填写下表(10分):

IP地址 191.23.181.13

子网掩码 255.255.192.0

地址类别 [1]

网络地址 [2]

直接广播地址 [3]

主机号 [4]

子网内的最后一个可用 IP地 [5]

2.某公司从 ISP申请到的网络前缀是 30.138.128/23,其网络布局如图 1所示,共分三

个局域网,LAN1~LAN3 主机数分别为 250,120,120。

9


 

LAN1 250台主机

R2

m1 m0

 R1

m0

 m1

m3

LAN2 120台主机

m2

互联网的

其他部分

LAN3 120台主机

网络 30.138.128/23

1 公司网络拓扑

1)请按子网顺序号给每一个局域网分配网络地址,说明理由或给出必要的计算过程

8分)。

2)请给出 R1的路由表,使其明确包括到 LAN1~LAN3的路由和默认路由(8分)。

3)请采用路由聚合技术,给出 R2的路由表(4分)。

参考:路由表结构为

目的网络 IP 地址 子网掩码 下一跳 接口

3.下图是用户主机在发送电子邮件时用 Wireshark捕获的数据包。请根据图中信息回答

下列问题。

2 Wireshark屏幕截图

1)该主机的 MAC地址、IPv4地址、邮件服务器的 IPv4地址分别是什么?(3分)

2)DNS服务器的 IPv6地址、端口地址是什么?分析 Wireshark分组 1和 2的含义?

4分)

10


 

3)分析 Wireshark分组 3-5的含义,画图简述 TCP 运输连接建立的过程。(3分)

4)分析用户的电子邮件是使用浏览器发送还是邮件客户端软件发送?分析图中 DNS、

TCP和 SMTP协议的关联关系?(5分)

第二部分 C语言程序设计

一、单项选择题:下列每题给出的四个选项中,只有一个选项是符合题目要求的(每小

2分,共 20 分)。

1.以下选项中,能用作用户标识符的是()。

A.void B.6_6 C._0_ D.unsigned

2.已知 int j,i=1; 则执行 j=-i++; i 和 j 的值为()。

A.1,-1 B.1,1 C.2,-1 D.2,1

3.有以下程序,程序运行后的输出结果是()。

main() {

int a=1,b=0;

printf("%d,",b=a+b);

printf("%d",a=2*b); }

A.0,0 B.1,0 C.3,2 D.1,2

4.设有定义: int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是()。

A.if(a>b) c=a,a=b,b=c; B.if(a>b){c=a,a=b,b=c;}

C.if(a>b) c=a;a=b;b=c; D.if(a>b){c=a;a=b;b=c;}

5.有以下定义语句,编译时会出现编译错误的是()。

A. char a='a'; B.char a='\n';

C. char a='aa'; D.char a='*';

6.有以下程序,已知字母 A 的 ASCII 码为 65,程序运行后的输出结果是 ()。

main() {

char c1,c2;

c1='A'+'8'-'4';

c2='A'+'8'-'5';

printf("%c,%d\n",c1,c2); }

A.E,68 B.D,69 C.E,D D.输出无定值

7.有以下程序,若要使程序的输出值为 2,则应该从健盘给 n 输入的值是______。

main() {

int s=0,a=1,n;

scanf("%d",&n);

do {s+=1; a=a-2;}

while(a!=n);

printf("%d\n",s); }

A. -1 B.-3 C. -5 D. 0

8.若有定义: int a[ ][4];则 a[i][j]前有______个元素。

A. j*4+i B.i*4+j C.i*4+j-1 D. i*4+j+1

9.下面有关 for 循环的正确描述是: ()。

A. for 循环只能用于循环次数已经确定的情况

B. for 循环是先执行循环体语句,后判断表达式

C.for 循环中,可以用 break 语句跳出循环体

D. for 循环中,可以包含 if 语句,但必须用花括号括起来

10.以下不正确的描述是: ()。

A. continue 语句的作用是结束本次循环的执行

B. break 语句只能在 switch 语句体内使用

C.在循环体内使用 break 语句或 continue 语句的作用完全不同

11


 

D.从多层循环嵌套中退出时,可以使用 goto 语句

二、程序填空题(每小题 2分,共 10分)。

1.若程序运行后的输出结果是1,3,7”,请填空。

int main() {

int i,n[5]={0};

for(i=1;i<4;i++){

n[i]= ;

printf("%d\n", );

} }

2.若程序的运行结果是 10,请填空。

int a=3,b=5;

int max(int a,int b) {

int c;

? a:b; return(c);

}

main() {

int a=10;

int max(int a,int b);

printf("%d", );

}

3.函数 fun 的功能是使字符串 str 按逆序存放,请填空。

void fun (char str[]) {

char m; int i, j;

for (i=0, j=strlen(str); i< ; i++, j--)

{

m = str[i];

str[i] = str[j-1];

str[j-1] = m; }

printf("%s\n",str);

}

三、读程序写结果题(每小题 5分,共 15分)

1.程序运行后的输出结果是( )。

main() {

int a=1,b=7;

do{ b=b/2;a+=b;

} while (b>1);

printf("%d\n",a);

}

12


 

2.程序运行时,若输入 1 2 3 4 5 0<回车>,则输出结果是( ) 。

main() {

int s;

main(){

scanf("%d",&s);

char ch[2][5]={“6937”,”8254”},*p[2];

while(s>0) {

int i,j,s=0;

switch(s) {

for(i=0;i<2;i++)

case 1:printf("%d,",s+5);

p[i]=ch[i];

case 2:printf("%d,",s+4); break;

for(i=0;i<2;i++)

case 3:printf("%d,",s+3);

for(j=0;p[i][j]>’\0’;j+=2)

default:printf("%d,",s+1);break; }

 s=10*s+p[i][j]-‘0’;

scanf("%d",&s);

printf(“%d\n”,s);

}

}

}

3.有如下程序

main() {

char ch[2][5]={“6937”,“8254”},*p[2];

int i,j,s=0;

for(i=0;i<2;i++)

p[i]=ch[i];

for(i=0;i<2;i++)

for(j=0;p[i][j]>\0’;j+=2)

 s=10*s+p[i][j]-‘0’;

printf(“%d\n”,s);

}

该程序的输出结果是()。

四、编程题(每题 15分,共 30分)。

1.所谓“水仙花数”是指一个 3 位数,其各位数字立方和等于该数本身。例如,153

一个水仙花数,因为 153=13+53+33。编写 C 语言程输出所有的水仙花数并求所有水 仙花

数之和。

2.在主函数中输入 10个字符串,用另一个函数对它们排序。然后在主函数输出这 10

个排好序的字符串。

.参 考 答 案

第一部分 计算机网络

一、单项选择题(每小题 1 分,共 10 分)

1.B 2.A 3.D 4.C 5.B

6.C 7.B 8.A 9.B 10.B

二、简答题(共 4 小题,每小题 5 分,共 20 分)

1.答:五层网络体系结构模型从下至上为物理层、数据链路层、网络层、运输层、

应用层。各层的主要功能:物理层的任务就是透明传送比特流。数据链路层的任务是在

13


 

两个相邻结点间的线路上无差错地传送以帧(frame)为单位的数据,每一帧包括数据

和必要的控制信息。网络层的任务就是要选择合适的路由,使发送站的运输层所传下来

的分组能够正确无误地按照地址找到目的站,并交付给目的站的运输层。运输层的任务

是向上一层的进行通信的两个进程之间提供一个可靠的端到端服务,使它们看不见运输

层以下的数据通信的细节。应用层规定应用进程在相互通信时所遵循的协议。

(每层名称和功能各 1分。)

2.答:交换机工作在数据链路层。其工作原理是(1)通过自学习方式建立转发表,

登记收到的数据帧的源地址和进入端口;(2)根据收到的数据帧的目的 MAC地址查找交

换机转发表,按表中给出的端口进行转发。物理层中继系统:转发器(repeater)。数据

链路层中继系统:网桥或桥接器(bridge)。网络层中继系统:路由器(router)。网桥和路

由器的混合物:桥路器(brouter)。网络层以上的中继系统:网关(gateway)。 转发器只

能放大电信号;网桥可以互联不同协议的局域网;路由器可以互联局域网-广域网、局

域网-局域网、广域网-广域网;网关可以互联运输层不同协议的网络。

(工作原理 2分,比较 3分。)

3.答: RIP是基于距离向量的路由协议(1分);OSPF是基于链路状态的路由协议

1 分)。RIP 仅和相邻路由器交换信息;OSPF 使用洪泛法广播(1 分)。RIP 交换的信

息是当前本路由器所知道的全部信息,即自己的路由表;OSPF 发送的信息就是与本路

由器相邻的所有路由器的链路状态(1分)。RIP按固定的时间间隔交换路由信息;OSPF

只有当链路状态发生变化时,路由器才使用洪泛法向所有路由器发送此信息。(1分)

4.答:对称密钥密码体制又称单钥密码体制,加密和解密使用相同的密钥(1分),

因此仅适用于在通信信道上可以进行一对一的双向保密通信。保密通信仅限于持有此密

钥的双方(1 分)。公钥密码体制又称双钥密码体制,使用公开密钥加密信息,则必须

用私有密钥解密,实现了保密通信(1 分);当使用私有密钥加密信息时,必须用公开

密钥解密,实现了数字签名(1 分)。在使用公开密钥时,在通信信道上可以是多对一

的单向保密通信(1分)。

三、综合应用题(共 3 小题,共 45 分)

1.10分,每小题 2分

[1] B

[2] 191.23.128.0

[3] 191.23.191.255

[4] 0.0.53.13

[5] 191.23.191.254

2.(1)8分

LAN1:30.138.128/24

LAN2:30.138.129/25

LAN3:30.138.129.128/25

2)8分

R1 的路由表结构为:

目的网络 IP 地址 子网掩码 下一跳 接口

30.138.128.0 255.255.255.0 Direct m0

30.138.129.0 255.255.255.128 Direct m1

30.138.129.128 255.255.255.128 Direct m2

14


 

0.0.0.0 0.0.0.0 R2 m3

3)4分

R2 的路由表结构为:

目的网络 IP 地址 子网掩码 下一跳 接口

30.138.128.0 255.255.254.0 R1 m0

0.0.0.0 0.0.0.0 Direct m1

3.(1)3分

主机的 MAC地址:f8:28:19:dd:e3:21

主机的 IPv4地址:192.168.1.31

邮件服务器的 IPv4地址:202.108.6.242

2)4分

DNS服务器的 IPv6地址:fe80::1

DNS服务端口:53

分组 1是主机向 DNS服务器发起域名解析请求(请求域名 smtp.sina.com对应的 IP地

址);分组 2是 DNS服务器向主机发出的域名解析应答。

3)3分

分组 3-5分别是 TCP连接的三握手报文,

A 的 TCPB 发出连接请求报文段,其首部中的同步位 SYN=1,并选择序号 seq=x,

表明传送数据时的第一个数据字节的序号是 x。

B 的 TCP 收到连接请求报文段后,如同意,则发回确认。B 在确认报文段中应使 SYN=

1,使 ACK = 1,其确认号 ack = x+1,自己选择的序号 seq = y。

A 收到此报文段后向 B 给出确认,其 ACK =1,确认号 ack = y+1。A 的 TCP 通知上

层应用进程,连接已经建立。B 的 TCP 收到主机 A 的确认后,也通知其上层应用进程:TCP

连接已经建立。

4)5分

用户使用邮件客户端软件发送电子邮件。

邮件客户端软件使用 SMTP协议发送电子邮件。

因为互 联网 通信 需按照 IP 地址寻 址, 所以 当邮 件客户 端软 件使 用域 名地址

mail.sina.com访问邮件服务器时,主机需先向 DNS服务器发出域名解析请求(分组 1),收

到应答信息(分组 2),即得到邮件服务器域名对应的 IP地址 202.108.6.242。

SMTP协议使用运输层面向连接的服务。需要先建立 TCP连接(分组 3-5)。

15


 

第二部分 C语言程序设计

一、单项选择题:(20分)

1.C;2.C;3.D4.C;5.C

6.A;7.B;8.B9.C;10.B

二、程序填空题:(10分)

1. n[i-1]*2+1 n[i]

2. c=a>b max(a,b)

3. j/2

三、读程序写结果题:(15分)

1. 5

2. 6,5,6,6,4,5,6,

3. 6385

四、编程题:(30分)

1.参考答案

main() {

int i,j,k,n ,sum=0 ;

for(n=100;n<1000;n++){

i=n/100;

j=n/10-i*10;

k=n%10;

if(n= =i*i*i+j*j*j+k*k*k )

{ printf("flower is= %d \n",n) ;

sum=sum+n;} }

printf("the number is =%d",sum); }

16


 

2.参考答案

#include<stdio.h>

#include<string.h>

int main(){

void sort(char *[]);

int i;

char *p[10],str[10][10];

 for(i=0;i<10;i++)

 p[i]=str[i];

print(“input 10 strings:\n”);

 for(i=0;i<10;i++)

 scanf(“%s”,p[i]);

 sort(p);

printf(“the sorted strings:\n”);

for(i=0;i<10;i++)

printf(“%s\n”,p[i]);

void sort(char *s[])

{

int i,j;

char *tp;

for(i=0;i<9;i++)

for(j=0;j<9-i;j++)

if(strcmp(*(s+j), *(s+j+1))>0)

 {tp=*(s+j); *(s+j)= *(s+j+1); *(s+j+1)=tp;}

}

 

考博咨询QQ 135255883 考研咨询QQ 33455802 邮箱:customer_service@kaoboinfo.com
考博信息网 版权所有 © kaoboinfo.com All Rights Reserved
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载或引用的作品侵犯了您的权利,请通知我们,我们会及时删除!