文章目錄
- 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庫可以通過?nd函數找,找到以后跳過一個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);}
}
????????????