【C/C++笔试练习】DNS设置文件、应用层、Dos攻击、DNS服务、DNS、子网划分、http状态、路由设置、TCP连接、HTTP状态码、剪花布条、客似云来

本文主要是介绍【C/C++笔试练习】DNS设置文件、应用层、Dos攻击、DNS服务、DNS、子网划分、http状态、路由设置、TCP连接、HTTP状态码、剪花布条、客似云来,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • C/C++笔试练习
  • 选择部分
    • (1)DNS设置文件
    • (2)应用层
    • (3)Dos攻击
    • (4)DNS服务
    • (5)DNS
    • (6)子网划分
    • (7)http状态
    • (8)路由设置
    • (9)TCP连接
    • (10)HTTP状态码
  • 编程题 day33
    • 剪花布条
    • 客似云来

C/C++笔试练习

选择部分

(1)DNS设置文件

  /etc/resolv.conf的用途是

  A.邮件服务的设置文件
  B.DHCP的设置文件
  C.DNS解析的设置文件
  D.网络路由的设置文件

  答案:C

在这里插入图片描述

  

(2)应用层

  能够PING通同网段的节点,但却如PING不通其他网段的所有节点的最可能的原因()

  A.本机网关设置错误
  B.本机没有正确设置DNS
  C.对方运行的是不同的操作系统
  D.二层交换机故障

  答案:A

  A:ping是TCP/IP协议族的一部分,使用ICMP协议,ICMP底层使用IP协议。主要是用来检测网络是否通畅。如果要ping其他网段,则需要设置网关。

  B:和DNS没有关系,DNS设置错会影响访问公网服务器的域名,而不会影响内部子设备是否ping通。

  C:ping命令是跨操作系统的,windows主机能够ping通Linux主机。

  D:二层交换机如果出现故障那么同网段主机则不会ping通。

  

(3)Dos攻击

  常被提及的Dos攻击的是以下的行为()

  A.侵入目标服务器,获取重要数据
  B.采用穷举的方式获得登录账号
  C.发送无效的请求,使得正确的请求无法被响应
  D.利用微软DOS从操作系统图的各种漏洞达到攻击的目的

  答案:C

  Dos攻击被称之为“拒绝服务攻击”,其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络宽带攻击和连通性攻击。

  Dos攻击中并不包括侵入目标服务器或目标网络设备。

  Dos是指故意的攻击网络协议实现的缺陷或直接通过野蛮手段残忍地耗尽被攻击对象的资源。

  

(4)DNS服务

  以下不是DNS服务的作用的是()

  A.将主机名翻译到指定的IP地址
  B.将IP地址反解成主机名
  C.解析特定类型的服务的地址,如MX,NS
  D.将IP解析成MAC地址

  答案:D

  D选项:IP地址解析成为MAC地址,这个是ARP协议, 并且ARP协议是向子网内主机进行广播ARP请求,目标主机收到之后,回复ARP应答。

  

(5)DNS

  在小红书公司的局域网中,署队长的私人电脑可以查看到的同事的电脑,也成功了登录了QQ,但无法访问到公司的站点"http://www.xiaohongshu.com”,请协助署队长查找最有可能出现的问题的地方是()

  A.UDP
  B.DHCP
  C.DNS
  D.HTTP

  答案:C

  1.可以在私网当中查看到同事的电脑,说明在局域网内通信没有问题。

  2.能成功登录QQ,说明访问QQ服务器没有问题,换言之,访问外网(互联网)是通的。

  3.但是访问不了一个特定的域名,所以,问题出在了域名转换成为ip的过程,所以,出问题的点在于DNS。

  

(6)子网划分

  将一个C类网络划分20个子网,最适合的子网掩码是多少()

  A.255.255.255.240
  B. 255.255.255.248
  C.255.255.255.252
  D.255.255.255.255

  答案:B

  A类网络默认的子网掩码: 255.0.0.0

  B类网络默认的子网掩码:255.255.0.0

  C类网络默认的子网掩码: 255.255.255.0

  2 ^ 4<20<2 ^ 5
  如果划分20个子网,需要把子网掩码向后在使用5个比特位
  255.255.255.xxxxx000,即255.255.255.11111000

  11111000是二进制,将它转换成十进制是(0x2^ 0)+(0x2^ 1)+(0x2^ 2)+(1x2^ 3)+(1x2^ 4)+(1x2^ 5)+(1x2^ 6)+(1x2^ 7)=0+0+0+8+16+32+64+128=248所以子网掩码是255.255.255.248

  

(7)http状态

  以下哪种http状态下,浏览器会产生两次http请求()

  A.400
  B. 404
  C.302
  D.304

  答案:C

  302:临时性重定向(请求的资源被分配了新的URL,希望本次访问使用新的URL);由服务端告知浏览器资源在那个新的URL上,浏览器接收到应答后,则直接反问新的URL,所以,会产生两次HTTP请求

  304:客户端发送附带条件请求时,请求满足条件的情况下,服务器端允许访问资源并返回改状态码;

  400:请求报文中存在语法错误;

  404:服务器上无法找到请求资源,

  

(8)路由设置

  局域网的网络地址192.168.1.0/24,局域网络连接其他网络的网关地址是192.168.1.1。主机192.168.1.20访问172.16.1.0/24网络时,其路由设置正确的是()

  A. route add default 192.168.1.0 netmask 172.16.1.1 metric 1
  B. route add -net 172.16.1.0 gw 192.168.1.1 netmask 255.255.255.0 metric 1
  C. route add -net 192.168.1.0 gw 192.168.1.1 netmask 255.255.255.0 metric 1
  D. route add-net 172.16.1.0 gw 172.16.1.1 netmask 255.255.255.0 metric 1

  答案:B

  (1)路由信息组成部分:1.目的主机的网络地址 2.下一个跳转的地址 3.子网掩码

  (2)-net后面跟的是目标网络,gw就是gateway(网关入口),表示从哪个网关到哪个目标网络

  所以, 如题,因为主机要访问172.16.1.0/24网络,那么目标网络就是172.16.1.0/24。

  因此-net后面跟的就是172.16.1.0/24.排除AC选项。

  因为gw表示网关入口,那么gw后面跟的就是网关地址,即192.168.1.1.因此选B。

  

(9)TCP连接

  建立一条TCP连接需要()个步骤,关闭一个TCP连接需要()个步骤

  A.4,3
  B. 4,4
  C.3,4
  D.3,3

  答案:C

在这里插入图片描述

  

(10)HTTP状态码

  以下关于HTTP状态码的描述,错误的是()

  A.100,代表客户端应当继续发送请求
  B. 2xx,代表请求已成功被服务器接收、理解、并接受
  C.301,代表被请求的资源已永久移动到新位置,用于重定向
  D.4xx,代表服务器在处理请求的过程中有错误或者异常状态发生

  答案:D

在这里插入图片描述

            

编程题 day33

剪花布条

剪花布条

  C语言可以通过strstr函数找,用STL的string库可以通过find函数找,找到以后跳过一个T串的长度。例如:在abcacbcbcabscbc中找cbc,第一次找到了这个位置:abcacbcbcabscbc,找到这个下标后,会跳过整体cbc,也就是从这个位置继续找:abcacbcbcabscbc,否则如果你只跳一个字符,会导致cbcbc会被算成2次,而按照本题的题意,应该算一次。

#include <iostream>
#include <cstdio>
#include <string>
using namespace std;int cut(string s, string t) 
{int i = s.find(t);if (i == string::npos) {return 0;}return 1 + cut(s.substr(i + t.size()), t);
}int main() 
{string s, t;while (cin >> s >> t) {int ans = cut(s, t);printf("%d\n", ans);}
}

  

客似云来

客似云来

  老样子,先准备好斐波那契的数组,然后遍历那一段数组,求出他们的和即可。而第80项斐波那契数列是一个17位数,所以需要用long long来解决问题。

  然而这个题还有另一个更有意思的思路。斐波那契数列的的前n项和其实是有一个很有意思的公式,公式推导在这里https://blog.csdn.net/ftx456789/article/details/82348742,根据文章我们能知道,斐波那契数列的前n项和,就是第n+2项的值减1,例如前10项的和143,就是第12项的144 - 1的结果。所以,我们如果我们要第n项到第m项的和,那么只要求出前m项的和,减去前n - 1项的和,就能得到结果了。例如要求第3项到第5项的和,我们就只需要用前5项的和减去前2项的和,而公式中的减一在这个过程中抵消掉了,也就是结果直接就是第7项的值减去第4项的值,这样我们在操作的时候就更简单了。就数值而言,第7项是13,第4项是3,差值是10,而2+3+5也是10,结果是正确的。

#include <iostream>
#include <cstdio>
using namespace std;int main() 
{long long fib[80];fib[0] = 1;fib[1] = 1;for (int i = 2; i < 80; i++) {fib[i] = fib[i - 1] + fib[i - 2];}int from, to;while (cin >> from >> to) {long long count = 0;for (int i = from - 1; i <= to - 1; ++i) {count += fib[i];}printf("%lld\n", count);}
}

            

这篇关于【C/C++笔试练习】DNS设置文件、应用层、Dos攻击、DNS服务、DNS、子网划分、http状态、路由设置、TCP连接、HTTP状态码、剪花布条、客似云来的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/981086

相关文章

MySQL 多表连接操作方法(INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN)

《MySQL多表连接操作方法(INNERJOIN、LEFTJOIN、RIGHTJOIN、FULLOUTERJOIN)》多表连接是一种将两个或多个表中的数据组合在一起的SQL操作,通过连接,... 目录一、 什么是多表连接?二、 mysql 支持的连接类型三、 多表连接的语法四、实战示例 数据准备五、连接的性

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

MySQL中的分组和多表连接详解

《MySQL中的分组和多表连接详解》:本文主要介绍MySQL中的分组和多表连接的相关操作,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录mysql中的分组和多表连接一、MySQL的分组(group javascriptby )二、多表连接(表连接会产生大量的数据垃圾)MySQL中的

C#如何调用C++库

《C#如何调用C++库》:本文主要介绍C#如何调用C++库方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录方法一:使用P/Invoke1. 导出C++函数2. 定义P/Invoke签名3. 调用C++函数方法二:使用C++/CLI作为桥接1. 创建C++/CL

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

C++如何通过Qt反射机制实现数据类序列化

《C++如何通过Qt反射机制实现数据类序列化》在C++工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作,所以本文就来聊聊C++如何通过Qt反射机制实现数据类序列化吧... 目录设计预期设计思路代码实现使用方法在 C++ 工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作。由于数据类

springboot项目如何开启https服务

《springboot项目如何开启https服务》:本文主要介绍springboot项目如何开启https服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录springboot项目开启https服务1. 生成SSL证书密钥库使用keytool生成自签名证书将

Linux下如何使用C++获取硬件信息

《Linux下如何使用C++获取硬件信息》这篇文章主要为大家详细介绍了如何使用C++实现获取CPU,主板,磁盘,BIOS信息等硬件信息,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录方法获取CPU信息:读取"/proc/cpuinfo"文件获取磁盘信息:读取"/proc/diskstats"文

C++使用printf语句实现进制转换的示例代码

《C++使用printf语句实现进制转换的示例代码》在C语言中,printf函数可以直接实现部分进制转换功能,通过格式说明符(formatspecifier)快速输出不同进制的数值,下面给大家分享C+... 目录一、printf 原生支持的进制转换1. 十进制、八进制、十六进制转换2. 显示进制前缀3. 指

C++中初始化二维数组的几种常见方法

《C++中初始化二维数组的几种常见方法》本文详细介绍了在C++中初始化二维数组的不同方式,包括静态初始化、循环、全部为零、部分初始化、std::array和std::vector,以及std::vec... 目录1. 静态初始化2. 使用循环初始化3. 全部初始化为零4. 部分初始化5. 使用 std::a