文章目录
C/C++笔试练习
选择部分
(1)IP地址
下面关于IP地址的论述中哪个是不正确的()
A.用户主机的IP地址可静态分配也可以动态分配
B. IP地址有单播地址,也有多播地址
C.一个用户主机只能有一个IP地址
D.在以太局域网中使用ARP协议查找与一IP地址对应的MAC地址
答案:C
A. 用户主机的IP地址可静态分配也可以动态分配静态分配IP地址。
动态分配:使用DHCP协议动态分配IP
B. IP地址有单播地址,也有多播地址:不但有单播地址,还有广播,多播地址。
C. 一个用户主机只能有一个IP地址: C选项:如果一个主机有多块网卡,可以拥有多个ip地址。
D. 在以太局域网中使用ARP协议查找与一IP地址对应的MAC地址。
(2)tcp套接字
tcp套接字中,不会阻塞的是哪一种操作()
A. read
B.write
C.accept
D.bind
答案:D
bind函数是不会阻塞执行流的。
(3)路由地址
以下几条路由,10.1.193.0/24, 10.1.194.0/24, 10.1.196.0/24, 10.1.198.0/24,如果进行路由汇聚,则能覆盖这几条路由地址的是()
A.10.1.192.0/22
B. 10.1.200.0/22
C.10.1.192.0/21
D.10.1.224.0/20
答案:C
这四类IP地址的前两位都是一样的,第三位不一样,所以将第三位化为二进制:
193—1100 0001
194—1100 0010
196—1100 0100
198—1100 0110
路由汇聚就是把相同的路由IP地址共同聚集成为一个总的IP地址相与得:11000000,可知前五位是相同的,所以网络号应为:8+8+5=21最后的路由地址为:10.1.192.0/21。
(4)MAC地址
当一台PC从一个网络移到另一个网络时,以下说法正确的是()
A.它的IP地址和MAC地址都会改变
B.它的IP地址会改变,MAC地址不会改变
C.它的MAC地址会改变,IP地址不会改变
D.它的MAC地址、IP地址都不会改变
答案:B
ip地址有可能会变,但是MAC地址不会改变,因为MAC地址是绑定网卡的,全球唯一。
(5)三次握手
在TCP/IP建立连接过程中,客户端或服务器的状态转移说法错误的是()
A.经历SYN_RECV状态
B.经历SYN_SEND状态
C.经历ESTABLISHED状态
D.经历TIME_WAIT状态
答案:D
(6)ping
ping命令是基于哪个协议()
A. ICMP
B. TCP
C. IP
D.UDP
答案:A
Ping是基于ICMP协议的。
(7)TCP
下面关于TCP的描述,错误的是()
A.TCP是一种面向连接的协议,给用户进程提供可靠的全双工的字节流
B. TCP客户端和服务器之间建立连接需要经过3次握手
C.只要有一方主动关闭连接后,这个TCP连接就结束了
D.TCP在传输数据过程中必须保持着连接,这个连接会给通信过程增加开销
答案:C
A. TCP是一种面向连接的协议,给用户进程提供可靠的全双工的字节流: 这个没有问题,是TCP协议的特性。
B. TCP客户端和服务器之间建立连接需要经过3次握手:三次握手也是正确的。
C. 只要有一方主动关闭连接后,这个TCP连接就结束了: 还需要被动断开连接方也断开连接,这个是四次挥手的过程。
D. TCP在传输数据过程中必须保持着连接,这个连接会给通信过程增加开销:因为需要维护连接,例如长时间没有应用层数据的收发,此时,tcp就需要用保活机制(心跳机制)来维护连接。也可以理解为维护连接的。
(8)子网划分
如果将网络IP段40.15.128.0/17划分成2个子网,则第一个子网IP段为40.15.128.0/18,则第二个子网为()
A.40.15.129.0/18
B. 40.15.128.128/18
C.40.15.192.0/17
D.40.15.192.0/18
答案:D
40.15.128.0/17
0010 1000.0000 1111.10000000.00000000,,原子网前17位为网络号
40.15.128.0/18
0010 1000.0000 1111.10000000.00000000,划分的一个子网前18位为网络号
1.这里分成了两个子网,也就只需要用一位来表示,也就是第18位,用0和1来区分子网就可以了
2.第一个地址的第十八位为0,第二个只能是1,这就可以得出答案40.15.192.0/18
0010 1000.0000 1111.11000000.00000000,划分的另一个子网前18位为网络号
(9)Host文件
下面对Host文件描述正确的是()
A.这个文件是批处理文件,用来指定域名的访问IP
B.一个DNS域名解析服务器文件,用于解析域名对应的IP地址
C.作用是网址域名与其对应的IP地址建立一个关联
“数据库”
D.当用户输入网址后,系统首先到DNS服务器中寻找对应的IP地址,如果不存在会到Host文件中确定最终访问地址
答案:C
host文件一个没有扩展名的系统文件,其作用就是用来存储一些常用的网络域名和与其对应的ip地址,当用户输入一个需要登录的网址时,系统就会先去host文件中查找,如果找到了就立即打开该网址,如果找不到就去DNS域名解析服务器中查找。
(10)IP地址
下列选项中,属于" 10.174.20.176/28 "该网段的有效IP地址是()
A.10.174.20.174
B. 10.174.20.186
C.10.174.20.191
D.10.174.20.192
答案:B
由题Y0.174.20.176/28,“/28”指的是当前网络使用28为比特位作为网络号,将10.174.20.176 最后一位分解成为分解成为二进制则:10.176.20.10110000
10.174.20.1011 0000~ 10.174.20.1011 1111
则该网络的范围为:10.174.20.176~ 10.174.20.191
其中10.174.20.176是网络号,10.154.20.191是广播号
有效的ip地址范围为:10.174.20.177~10.174.20.190
编程题 day36
Rational Arithmetic
解题思路:实现一个有理数类,将数据处理后重载一下加减乘除即可。处理数据的方法就是除一下mod一下的问题,加减乘除遵循基本的分数加减乘除原则,最后求一下最大公约数,做一下约分,再处理一下数据。
#pragma warning (disable:4996)
#include<iostream>
#include<algorithm>
#include<string>
#include<cstring>
using namespace std;
#define MAX 1000
long max_cmn_div(long nu, long de) /* 求最大公约数 */
{
for (long i = de; i >= 1; --i) {
if (nu % i == 0 && de % i == 0) {
return i;
}
}
return 1;
}
typedef struct frac_t {
int sign; /* 1 or -1 */
long iport;
long numer;
long deno;
char outform[MAX];
frac_t(int si, long ip, long nu, long de) :sign(si), iport(ip), numer(nu), deno(de) {
long cmn_div;
if (de != 0) {
iport = ip + nu / de;
numer = nu % de;
cmn_div = max_cmn_div(numer, deno);
numer /= cmn_div;
deno /= cmn_div;
char tmp[MAX];
(void)