选择
B
D
D
网络号最高才247开头
主机号全为0是网络号
D
28位网络号 则第四个字节是1111 0000(240) 按位与91得80(0101 0000)
最大就是后面四个主机号全为1即80+15=95而且是广播IP
或者全部拿来比一下网络号
B
首先发数据肯定从低到高发。网络中要转成大端字节序。
在x86平台上为小端存储在内存上由低到高位12 34 56 78,转为大端变成 78 56 34 12
所以顺序是78 56 34 12
A
主机号占九位 2^9=512 减网络号 广播 和网关设备 =509
D
子网掩码要是连续的
D
DNS用的UDP
A
D
需要六个子网 所以需要至少3位充当网络号 所以剩了5个比特位充当主机号(2^5>26)符合
所以第四个字节的前三个字节是1 1110 0000为224
编程
数据库连接池
cpp
#include <iostream>
#include <string.h>
#include <vector>
#include <string>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
string num,op;
int res=0;
int have=0;
for(int i=0;i<n;i++)
{
cin>>num>>op;
if(op=="connect")
{
if(have==0) res++;
else have--;
}
else
{
have++;
}
}
cout<<res<<endl;
}
return 0;
}
mkdir
cpp
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
vector<string>strs(n);
vector<bool>exist(n,true);
for(int i=0;i<n;i++)
{
// getline(cin,strs[i]);
// getline会把空格也识别上来 慎用
cin>>strs[i];
}
sort(strs.begin(),strs.end());
for(int i=0;i<n-1;i++)
{
if(strs[i]==strs[i+1])
{
exist[i]=false;
}
else if(strs[i]==strs[i+1].substr(0,strs[i].size()) && strs[i+1][strs[i].size()] == '/')
{
exist[i]=false;
}
}
string tmp="mkdir -p ";
for(int i=0;i<strs.size();i++)
{
if(exist[i])
{
cout<<tmp<<strs[i]<<endl;
}
}
cout<<endl;
}
return 0;
}