热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【笔试刷题训练】day_10

我想说每天坚持一点点,坚持带来大改变今天是刷题的第_10天,加油!一、选择题C中不可以被重载的运算符:成员访问运算符&#x




我想说

每天坚持一点点,坚持带来大改变
今天是刷题的第_10天,加油!




一、选择题

在这里插入图片描述



C++中不可以被重载的运算符:


  • 成员访问运算符:.,用于访问类成员
  • 成员的指针访问运算符: .* 用于访问类成员的指针 ,如obj.*a:访问的是成员a的地址
  • 域作用限定符:::
  • 三目运算符:?:
  • 长度运算符sizeof


在这里插入图片描述



MyClass[5]:创建一个5个对象的数组,所以调用5次构造函数
MyClass* b[6] :创建一个指针数组,数组每一个元素是MyClass* 类型,所以不会调用构造函数
所以答案选 B



在这里插入图片描述



初始化列表的初始化顺序 取决于 成员变量的声明顺序
题目中a先声明,b后声明。所以初始化列表中无论a和b谁写在前,都是a先初始化,b后初始化
所以一直都输出"ab" ,选C



在这里插入图片描述



对于空类,并不是0字节,在主流的编译器中(VS系列,gcc系列等),将空类的大小设置为1,用于标识该类创建的对象是存在的!
对于非主流编译器,是不一定的。



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


二、编程题

1. 井字棋

👉 题目链接

井字棋(N*N)赢的规则就是:


  • 某一行都是1
  • 某一列都是1
  • 主对角线都是1
  • 副对角线都是1

只要满足其中一种情况,就是赢

所以很简单,只需要依次取检查 行、列、主对角线、副对角线即可

class Board {
public:
bool checkWon(vector<vector<int> > board) {
// write code here
//赢的规则&#xff1a;一横排 || 一竖排 || 主对角线 || 副对角线 全是1 那么就赢了
size_t row &#61; board.size();
//检查行
for (size_t i &#61; 0; i < row; &#43;&#43;i) {
int sum &#61; 0;
for (size_t j &#61; 0; j < row; &#43;&#43;j) {
sum &#43;&#61; board[i][j];
}
if (sum &#61;&#61; row) {
return true;
}
}
//检查列
for (size_t i &#61; 0; i < row; &#43;&#43;i) {
int sum &#61; 0;
for (size_t j &#61; 0; j < row; &#43;&#43;j) {
sum &#43;&#61; board[i][j];
}
if (sum &#61;&#61; row) {
return true;
}
}
//主对角线
int sum &#61; 0;
for (size_t i &#61; 0; i < row; &#43;&#43;i) {
sum &#43;&#61; board[i][i];
}
if (sum &#61;&#61; row) return true;
//副对角线
sum &#61; 0;
for (size_t i &#61; 0; i < row; &#43;&#43;i) {
sum &#43;&#61; board[i][row - i];
}
if (sum &#61;&#61; row) return true;
return false;
}
};

2.密码强度等级

&#x1f449; 题目链接

这题根据题目意思来即可&#xff0c;没什么难度

#include
#include
using namespace std;
int main()
{
//输入
string password;
cin >> password;

int points &#61; 0;
int num_cnt &#61; 0;
int alpha_cnt &#61; 0;
int Uper_cnt &#61; 0;
int symbol_cnt &#61; 0;
//遍历
for(auto i : password)
{
//小写字母
if(i>&#61;&#39;a&#39; && i<&#61;&#39;z&#39;) &#43;&#43;alpha_cnt;
//大写字母
if(i>&#61;&#39;A&#39; && i<&#61;&#39;Z&#39;) &#43;&#43;Uper_cnt;
//数字字符
if(isdigit(i)) &#43;&#43;num_cnt;
//符号字符
if(i>&#61;0x21 && i<&#61;0x2F ||
i>&#61;0x3A && i<&#61;0x40 ||
i>&#61;0x5B && i<&#61;0x60 ||
i>&#61;0x7B && i<&#61;0x7E)
&#43;&#43;symbol_cnt;
}

//评分//
//长度评分
if(password.size()>&#61;8)
{
points&#43;&#61;25;
}
else if(password.size()>&#61;5)
{
points&#43;&#61;10;
}
else
{
points &#43;&#61; 5;
}
//数字评分
if(num_cnt &#61;&#61;1)
{
points&#43;&#61;10;
}
else if(num_cnt >1)
{
points&#43;&#61;20;
}
//字母评分
if(alpha_cnt >0 && Uper_cnt>0)
{
points&#43;&#61;20;
}
else if(alpha_cnt>0 || Uper_cnt>0)
{
points&#43;&#61;10;
}
//符号评分
if(symbol_cnt&#61;&#61;1)
{
points&#43;&#61;10;
}
else if(symbol_cnt>1)
{
points&#43;&#61;25;
}

//奖励
if(num_cnt>0 && alpha_cnt>0 && symbol_cnt>0 && Uper_cnt>0) points&#43;&#61;5;
else if(num_cnt>0 && symbol_cnt>0 && (alpha_cnt>0 || Uper_cnt>0)) points&#43;&#61;3;
else if(num_cnt >0 && (alpha_cnt>0 || Uper_cnt>0)) points&#43;&#61;2;

//评判
if(points >&#61; 90) cout << "VERY_SECURE"<<endl;
else if(points>&#61;80) cout << "SECURE"<<endl;
else if(points>&#61;70) cout << "VERY_STRONG"<<endl;
else if(points>&#61;60) cout << "STRONG"<<endl;
else if(points>&#61;50) cout << "AVERAGE"<<endl;
else if(points>&#61;25) cout << "WEAK"<<endl;
else cout << "VERY_WEAK"<<endl;


return 0;
}








推荐阅读
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 题目Link题目学习link1题目学习link2题目学习link3%%%受益匪浅!-----&# ... [详细]
  • 本题探讨了一种字符串变换方法,旨在判断两个给定的字符串是否可以通过特定的字母替换和位置交换操作相互转换。核心在于找到这些变换中的不变量,从而确定转换的可能性。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本文探讨了 C++ 中普通数组和标准库类型 vector 的初始化方法。普通数组具有固定长度,而 vector 是一种可扩展的容器,允许动态调整大小。文章详细介绍了不同初始化方式及其应用场景,并提供了代码示例以加深理解。 ... [详细]
  • 本文详细探讨了KMP算法中next数组的构建及其应用,重点分析了未改良和改良后的next数组在字符串匹配中的作用。通过具体实例和代码实现,帮助读者更好地理解KMP算法的核心原理。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • C++实现经典排序算法
    本文详细介绍了七种经典的排序算法及其性能分析。每种算法的平均、最坏和最好情况的时间复杂度、辅助空间需求以及稳定性都被列出,帮助读者全面了解这些排序方法的特点。 ... [详细]
  • 深入理解C++中的KMP算法:高效字符串匹配的利器
    本文详细介绍C++中实现KMP算法的方法,探讨其在字符串匹配问题上的优势。通过对比暴力匹配(BF)算法,展示KMP算法如何利用前缀表优化匹配过程,显著提升效率。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
author-avatar
酸葡萄洗澡她_606
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有