【C++笔试强训】第三十一天

news/2025/2/14 6:07:27/

🎇C++笔试强训


  • 博客主页:一起去看日落吗
  • 分享博主的C++刷题日常,大家一起学习
  • 博主的能力有限,出现错误希望大家不吝赐教
  • 分享给大家一句我很喜欢的话:夜色难免微凉,前方必有曙光 🌞。

在这里插入图片描述


选择题

💦第一题

在 OSI 分层模型中,把传输的比特流划分为帧,是哪一层的功能()

A 物理层
B 网络层
C 数据链路层
D 传输层

在这里插入图片描述

这道题的答案是C


💦第二题

下面关于源端口地址和目标端口地址的描述中,正确的是( )

A 在TCP/UDP传输段中,源端口地址和目的端口地址是不能相同的
B 在TCP/UDP传输段中,源端口地址和目的端口地址必须是相同的
C 在TCP/UDP传输段中,源端口地址和目的端口地址是可以相同的
D 以上描述均不正确

基础概念:

数据的五元组信息:

  • 源ip:描述数据从哪个主机上产生
  • 目的ip:描述数据去往哪个主机
  • 源端口:描述数据从源主机的哪个进程产生
  • 目的端口:描述数据去往目的主机的哪个进程
  • 协议:双方网络通信使用的网络协议

这道题的答案是A


💦第三题

网段地址 154.27.0.0 的网络。若不做子网划分,能支持()台主机

A 254
B 1024
C 65534
D 16777206

216 - 1 - 1

在这里插入图片描述

这道题的答案是C


💦第四题

SNMP 使用 UDP 161 和 162 端口,则该协议属于 TCP/IP 模型中的()

A 网络层
B 数据链路层
C 应用层
D 传输层

在这里插入图片描述

这道题的答案是C


💦第五题

http 协议中,状态码 500 的意思为()

A 重定向
B 访问被拒绝
C 未找到请求的内容
D 服务器内部有错误

在这里插入图片描述

在这里插入图片描述
服务器处理请求出错,一般都是内部错误

这道题的答案是D


💦第六题

主机 A 向主机 B 连续发送了两个 TCP 报文段,其序号分包是 70 和 100 ,如果 A 发送的第一个报文段丢失了,但第二个报文段达到了 B , B 在第二个报文段到达后向 A 发送确认,那么这个确认号是多少?

A 100
B 101
C 70
D 71

在这里插入图片描述

这道题的答案是C


💦第七题

每个 IP 地址都可以有一个主机名,通过主机名得到该主机对应 ip 地址的过程叫()

A ip地址解析
B 域名解析
C 域名编译
D ip地址编译

实际上就是我们上网的访问过程,例如我们访问百度就是访问百度的ip,我们访问的域名会被转化为ip地址,称为域名解析

这道题的答案是B


💦第八题

以下说法不正确的是()

A HTTP是一种请求/响应式的协议
B HTTP请求消息中Accept表示浏览器可接受的MIME类型
C HTTP请求消息中Accept-Encoding表示浏览器能够进行解码的数据编码方式
D HTTP请求消息中Css表示初始URL中的主机和端口

在这里插入图片描述
在这里插入图片描述

这道题的答案是D


💦第九题

关于计算机网络,下列描述当中,正确的是()

A 在同一信道上同一时刻,可进行双向数据传送的通信方式是半双工
B TCP协议是无连接的;UDP协议是面向连接的
C 假设一个主机的ip地址为192.168.8.123,而子网掩码为255.255.255.248,那么该主机的网络号是 192.168.8.120
D 计算机网络中的OSI结构分别是:物理层,数据链路层,传输层,会话层,表示层,应用层

在这里插入图片描述

这道题的答案是C


💦第十题

下列关于 http 状态码描述正确的是()

A 404读取浏览器缓存,502错误网关
B 404找不到资源,403服务器错误
C 500服务器错误,304读取浏览器缓存
D 304服务器错误,200请求成功

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

这道题的答案是C


编程题

🔥第一题

题目:美国节日

和中国的节日不同,美国的节假日通常是选择某个月的第几个星期几这种形式,因此每一年的放假日期都不相同。具体规则如下:

  • 1月1日:元旦
  • 1月的第三个星期一:马丁·路德·金纪念日
  • 2月的第三个星期一:总统节
  • 5月的最后一个星期一:阵亡将士纪念日
  • 7月4日:美国国庆
  • 9月的第一个星期一:劳动节
  • 11月的第四个星期四:感恩节
  • 12月25日:圣诞节
    现在给出一个年份,请你帮忙生成当年节日的日期。

在这里插入图片描述
在这里插入图片描述

  • 题目解析

题目表述很明白,难点在于我们要求一个月第N个星期W。那么面对这个问题,我们拆解的思路是,首先,我们要想找到一个月第N个星期W,一定需要一个参照物,最好的目标当然是这个月的第一天。拿到参照物后,我要能得到参照物的星期数,然后就能得到结果了。所以这个题有两个难点:判断某个月的1号到底是周几,然后根据这个星期数得到这个月第N个星期W。这两个功能写成函数,即可通过反复调用拿到结果。

  • 解题思路

问题被拆解成如下:

  1. 如何根据(年、月、日)计算出这天是星期几
  2. 根据每月的1号是星期几,找到本月的第 n 个星期 X
  3. 根据 6月1日星期几,找到五月的最后一个星期一

最后,注意下输入输出的问题:

  1. 输入有多组
  2. 每组输出之后都需要跟一个空行
  • 代码演示
// write your code here cpp
#include <iostream>using namespace std;bool isLeapYear(int y)
{return y%400==0 || (y%100!=0 && y%4==0);
}int DAYS[] = {31,28,31,30,31,30,31,31,30,31,30,31};//求解ymd这一年过了多少天
int nDays(int y,int m,int d)
{int n = d;for(int i = 0;i < m - 1;i++){n += DAYS[i];}if (m > 2 && isLeapYear(y)){n++;}return n;
}//传入ymd,计算从基准日期,到待计算日期过了多少天。
//算出这个天数 MOD 7 的同余数
int diff(int y,int m,int d)
{return (y-1) + (y-1)/4 - (y-1)/100 + (y-1)/400 + nDays(y, m, d);
}//传入ymd,计算周几
int week(int y,int m,int d)
{int w = diff(y,m,d) % 7;if(w == 0)w = 7;return w;
}//已知当月1日是星期w,计算第n个星期e是几号
int m1(int w,int n,int e)
{return 1 + (n-1)*7 + (7-w+e)%7;
}//已知6月1是星期w,计算5月最后一个星期1
int m2(int w)
{int d = (w==1 ? 7 : w-1);return 32-d;
}int main()
{int y;while (cin >> y) {printf("%d-01-01\n", y);int w;w = week(y, 1, 1);printf("%d-01-%02d\n", y, m1(w, 3, 1));w = week(y, 2, 1);printf("%d-02-%02d\n", y, m1(w, 3, 1));w = week(y, 6, 1);printf("%d-05-%02d\n", y, m2(w));printf("%d-07-04\n", y);w = week(y, 9, 1);printf("%d-09-%02d\n", y, m1(w, 1, 1));w = week(y, 11, 1);printf("%d-11-%02d\n", y, m1(w, 4, 4));printf("%d-12-25\n\n", y);}return 0;
}

🔥第二题

题目:分解因数

在这里插入图片描述

在这里插入图片描述

  • 题目解析

注:题目中没有说明的是:如果出现了质数,需要打印成13 = 13的形式。

在这里插入图片描述

  • 解题思路

看到短除法后,我们很清楚的知道,要想求出它的每一个质因数,我们需要用质数去试除。90能被2整除,那就拿商继续除以2,除不尽就换3,一直到除到质数为止。基础代码框架类似判断质数,只是被判断的数字在过程中不断被除,最终循环结束的时候,那个被处理过的数字,就是最后一个质因数。以下代码注释以90为例。

  • 代码演示
// write your code here 
#include <iostream>
#include <vector>
#include <cmath>using namespace std;void factorization(int a,vector<int> &factors)
{factors.clear();for(int i = 2;a > 1 && i*i <= a;i++){while(a%i==0){factors.push_back(i);a = a/i;}}if (a > 1) {// 处理素数的情况factors.push_back(a);}
}int main()
{vector<int> factors;int a;while(cin >> a){factorization(a,factors);printf("%d = ",a);for(vector<int>::const_iterator p = factors.begin();p != factors.end();++p){printf("%d",*p);if(p != factors.end()-1)printf(" * ");}printf("\n");}return 0;
}


http://www.ppmy.cn/news/32127.html

相关文章

如何保证Redis缓存和数据库一致性?

想要保证缓存与数据库的双写一致&#xff0c;一共有4种方式&#xff1a; 先更新缓存&#xff0c;再更新数据库&#xff1b; 先更新数据库&#xff0c;再更新缓存&#xff1b; 先删除缓存&#xff0c;再更新数据库&#xff1b; 先更新数据库&#xff0c;再删除缓存。 我们需要做…

进程间通信IPC

进程间通信IPC (InterProcess Communication) 一、进程间通信的概念 每个进程各自有不同的用户地址空间&#xff0c;任何一个进程的全局变量在另一个进程中都看不到&#xff0c;所以进程之间要交换数据必须通过内核&#xff0c;在内核中开辟一块缓冲区&#xff0c;进程1把数据…

电子工程师必须掌握的硬件测试仪器,你确定你都掌握了?

目录示波器示例1&#xff1a;测量示波器自带的标准方波信号输出表笔认识屏幕刻度认识波形上下/左右移动上下/左右刻度参数调整通道1的功能界面捕获信号设置Menu菜单触发方式触发电平Cursor按钮捕捉波形HLEP按钮参考资料频谱分析仪器信号发生器示波器 示例1&#xff1a;测量示波…

ssh创建秘钥对

1. 使用ssh-keygen 生成秘钥对 [root6zix89b87qmvuv ~]# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): 按回车键或设置密钥的存储路径 Enter passphrase (empty for no passphrase): 按回车键或设置密钥的存…

到底什么是跨域,如何解决跨域(常见的几种跨域解决方案)?

文章目录1、什么是跨域2、解决跨域的几种方案2.1、JSONP 方式解决跨域2.2、CORS 方式解决跨域&#xff08;常见&#xff0c;通常仅需服务端修改即可&#xff09;2.3、Nginx 反向代理解决跨域&#xff08;推荐使用&#xff0c;配置简单&#xff09;2.4、WebSocket 解决跨域2.5、…

Elasticsearch使用——高级篇

1.数据聚合**聚合&#xff08;aggregations&#xff09;**可以让我们极其方便的实现对数据的统计、分析、运算。例如&#xff1a;什么品牌的手机最受欢迎&#xff1f;这些手机的平均价格、最高价格、最低价格&#xff1f;这些手机每月的销售情况如何&#xff1f;实现这些统计功…

人体姿态识别

自留记录论文阅读,希望能了解我方向的邻域前沿吧 粗读,持续更新 第一篇 ATTEND TO WHO YOU ARE: SUPERVISING SELF-ATTENTION FOR KEYPOINT DETECTION AND INSTANCE-AWARE ASSOCIATION 翻译:https://editor.csdn.net/md?not_checkout=1&spm=1001.2014.3001.5352&…

< CSS小技巧:那些不常用,却很惊艳的CSS属性 >

文章目录&#x1f449; 前言&#x1f449; 一. background-clip: text - 限制背景显示&#xff08;裁剪&#xff09;&#x1f449; 二. user-select - 控制用户能否选中文本&#x1f449; 三. :focus-within 伪类&#x1f449; 四. gap - 网格 / 弹性布局间隔设置&#x1f449;…