热门标签 | 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;
}








推荐阅读
  • PHP 过滤器详解
    本文深入探讨了 PHP 中的过滤器机制,包括常见的 $_SERVER 变量、filter_has_var() 函数、filter_id() 函数、filter_input() 函数及其数组形式、filter_list() 函数以及 filter_var() 和其数组形式。同时,详细介绍了各种过滤器的用途和用法。 ... [详细]
  • 开发笔记:9.八大排序
    开发笔记:9.八大排序 ... [详细]
  • 深入理解Redis的数据结构与对象系统
    本文详细探讨了Redis中的数据结构和对象系统的实现,包括字符串、列表、集合、哈希表和有序集合等五种核心对象类型,以及它们所使用的底层数据结构。通过分析源码和相关文献,帮助读者更好地理解Redis的设计原理。 ... [详细]
  • 本文详细介绍了Java中的输入输出(IO)流,包括其基本概念、分类及应用。IO流是用于在程序和外部资源之间传输数据的一套API。根据数据流动的方向,可以分为输入流(从外部流向程序)和输出流(从程序流向外部)。此外,还涵盖了字节流和字符流的区别及其具体实现。 ... [详细]
  • 给定一个整数数组arr,找到min(b)的总和,其中b的范围为arr的每个(连续)子数组。由于答案可能很大,因此返回答案模10^9+7。classSolution{publicin ... [详细]
  • C# LiNQ 查询 join连接
    C# LiNQ 查询 join连接 ... [详细]
  • 不确定性|放入_华为机试题 HJ9提取不重复的整数
    不确定性|放入_华为机试题 HJ9提取不重复的整数 ... [详细]
  • Java 数组及其常用操作
    本文详细介绍了 Java 中的数组类型、定义方法以及常见操作,帮助开发者更好地理解和使用 Java 数组。 ... [详细]
  • 本文详细介绍了Python中列表的创建、访问、修改、排序及遍历等基本操作,帮助初学者快速掌握列表这一重要数据结构。 ... [详细]
  • 本题探讨了在一个有向图中,如何根据特定规则将城市划分为若干个区域,使得每个区域内的城市之间能够相互到达,并且划分的区域数量最少。题目提供了时间限制和内存限制,要求在给定的城市和道路信息下,计算出最少需要划分的区域数量。 ... [详细]
  • 本文详细探讨了HTML表单中GET和POST请求的区别,包括它们的工作原理、数据传输方式、安全性及适用场景。同时,通过实例展示了如何在Servlet中处理这两种请求。 ... [详细]
  • 深入解析Redis内存对象模型
    本文详细介绍了Redis内存对象模型的关键知识点,包括内存统计、内存分配、数据存储细节及优化策略。通过实际案例和专业分析,帮助读者全面理解Redis内存管理机制。 ... [详细]
  • 本文探讨了如何在iOS开发环境中,特别是在Xcode 6.1中,设置和应用自定义文本样式。我们将详细介绍实现方法,并提供一些实用的技巧。 ... [详细]
  • 本问题探讨了在特定条件下排列儿童队伍的方法数量。题目要求计算满足条件的队伍排列总数,并使用递推算法和大数处理技术来解决这一问题。 ... [详细]
  • 深入解析for与foreach遍历集合时的性能差异
    本文将详细探讨for循环和foreach(迭代器)在遍历集合时的性能差异,并通过实际代码示例和源码分析,帮助读者理解这两种遍历方式的不同之处。文章内容丰富且专业,旨在为编程爱好者提供有价值的参考。 ... [详细]
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社区 版权所有