【基础训练 || Test-1】
总言
主要内容:一些习题。
文章目录
- 总言
- 一、选择
- 1、for循环、操作符(逗号表达式)
- 2、格式化输出(转换说明符)
- 3、for循环、操作符(逗号表达式、赋值和判等)
- 4、if语句、操作符(自增自减、判等)
- 5、表达式求值(类型转换)
- 6、二维数组(数组初始化)
- 7、位操作符(按位或与非)
- 8、位移操作符、位操作符
- 9、运算符优先级
- 10、 指针概念理解
- 二、编程
- 2.1、组队竞赛
- 2.1.1、题目
- 2.1.2、题解:贪心
- 2.2、删除公共字符
- 2.2.1、题目
- 2.2.2、题解一:直接遍历查找删除
- 2.2.3、题解二:借助哈希
- Fin、共勉。
一、选择
1、for循环、操作符(逗号表达式)
以下for循环的执行次数是()
for (int x = 0, y = 0; (y = 123) && (x < 4); x++);A 是无限循环
B 循环次数不定
C 4次
D 3次
相关知识链接:操作符详解
回答:4次
2、格式化输出(转换说明符)
以下程序的运行结果是()
#include <stdio.h>
int main(void) {printf("%s , %5.3s\n", "computer", "computer");return 0;
}A computer , puter
B computer , com
C computer , computer
D computer , compu.ter
回答:computer , com
相关说明:
3、for循环、操作符(逗号表达式、赋值和判等)
下列main()函数执行后的结果为()
int func() {int i, j, k = 0;for (i = 0, j = -1; j = 0; i++, j++) {k++;}return k;
}
int main() {cout << (func());return 0;
}A -1
B 0
C 1
D 2
相关链接:for循环表达式
回答:i=j=k=0;
4、if语句、操作符(自增自减、判等)
下面程序输出是什么?
#include <stdio.h>
int main()
{int a = 1, b = 2, c = 3, d = 0;if (a == 1 && b++ == 2)if (b != 2 || c-- != 3)printf("%d,%d,%d\n", a, b, c);elseprintf("%d,%d,%d\n", a, b, c);elseprintf("%d,%d,%d\n", a, b, c);return 0;
}A 1,2,3
B 1,3,2
C 3,2,1
D 1,3,3
考察:
①if语句中,else匹配原则:相关链接。
②逻辑运算符中的短路现象:相关链接。
回答:a=1 b=3 c=3(短路) d=0
5、表达式求值(类型转换)
若有定义语句: int a=10
; double b=3.14
; 则表达式 'A'+a+b
值的类型是()
A char
B int
C double
D float
考察了隐式类型转换(整型提升、算术转换):相关链接
回答:C以下为寻常算术转换:(自下向上转换)
long double
double
float
unsigned long int
long int
unsigned int
int
6、二维数组(数组初始化)
下述p[1][2]的值是()
int p[][4] = {{1}, {3, 2}, {4, 5, 6}, {0}};A 1
B 0
C 6
D 2
考察了二维数组的创建与初始化:相关链接。
回答:0。四行四列,行可以省略时花括号区分,值不够时默认为0。
7、位操作符(按位或与非)
选择表达式 11|10
的结果(本题数值均为十进制)()
A 11
B 10
C 8
D 2
相关链接。
回答:11。
8、位移操作符、位操作符
fun(21)运行结果是()
int fun(int a) {a ^= (1 << 5) - 1;return a;
}A 10
B 5
C 3
D 8
相关链接。
回答:10。
9、运算符优先级
如下述定义语句,不能使变量 year
中的值增至 1010 的语句是()
int year=1009,*p=&year;A *p+=1;
B (*p)++;
C ++(*p);
D *p++;
主要考察前置自增、后置自增、解引用操作符优先级相关链接。
回答:D。
10、 指针概念理解
下面关于"指针"的描述不正确的是()
A 当使用free释放掉一个指针内容后,指针变量的值被置为NULL
B 32位系统下任何类型指针的长度都是4个字节
C 指针的数据类型声明的是指针实际指向内容的数据类型
D 野指针是指向未分配或者已经释放的内存地址
A
解释:实际上,使用 free() 函数释放一个指针所指向的内存时,指针本身的值并不会被自动置为 NULL。free() 只负责释放内存,而不会修改指针的值。 因此,指针仍然会指向之前分配的内存地址,但这个地址现在可能已经被操作系统用于其他目的,所以访问这个地址可能会导致未定义行为,比如程序崩溃。为了避免这种情况,一种常见的做法是在调用 free() 之后手动将指针设置为 NULL。
二、编程
2.1、组队竞赛
2.1.1、题目
题源:链接
牛牛举办了一次编程比赛,参加比赛的有3*n
个选手,每个选手都有一个水平值a_i
。现在要将这些选手进行组队,一共组成n
个队伍,即每个队伍3人。牛牛发现队伍的水平值等于该队伍队员中第二高水平值。
例如:
一个队伍三个队员的水平值分别是3,3,3
。那么队伍的水平值是3。
一个队伍三个队员的水平值分别是3,2,3
。那么队伍的水平值是3。
一个队伍三个队员的水平值分别是1,5,2
。那么队伍的水平值是2。
为了让比赛更有看点,牛牛想安排队伍使所有队伍的水平值总和最大。如样例所示:
如果牛牛把6个队员划分到两个队伍
如果方案为:team1:{1,2,5}
、team2:{5,5,8}
,这时候水平值总和为7
。
而如果方案为:team1:{2,5,8}
, team2:{1,5,5}
, 这时候水平值总和为10
。
没有比总和为10更大的方案,所以输出10。
2.1.2、题解:贪心
说明: ①既然涉及到取较大值,先将输入的数据排序处理;②其次,让每次选值尽量取当前最大两值(由于最大的数不可能是中位数,所以退而求其次,取每组中第二大的);③这样,最终获取到的所有组中的水平值总和最大。
举例:
1 2 3 4 5 6 7 8 9组1: 1 8 9 -->8;
组2: 2 6 7 -->6;
组3: 3 4 5 -->4;
中位数和:8、6、4.(当前最大)下标关系:arr[arr.length-2*(i+1)]
arr.length=9;
i=0时,arr[7]=8;
i=1时,arr[5]=6;
i=2时,arr[3]=4;
i根据n值而定。
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;int main() {//1、输入数据long long n;//n个队伍while (cin >> n) //OJ题,可能存在多组测试用例{ vector<int> arr(3 * n);//3*n个选手for (int i = 0; i < 3 * n; ++i){cin >> arr[i];}//2、排序std::sort(arr.begin(), arr.end());//3、找每组水平值long long sum = 0;//用于统计最后水平值总和。for (int i = 0; i < n; ++i) {sum += arr[arr.size() - (2 * (i + 1))];}cout << sum << endl;}return 0;
}
2.2、删除公共字符
2.2.1、题目
题源:链接
2.2.2、题解一:直接遍历查找删除
说明: 如下,根据s2中给定查找的字符串,遍历一遍s1,将满足s2中的字符删除。时间复杂度为 O ( M ∗ N 2 ) O(M*N^2) O(M∗N2) [ 遍历s1(n),erase挪位删除(n),遍历s2(m)。]
其它: 熟悉string类接口的使用。
#include <iostream>
#include <string>
using namespace std;int main()
{string s1, s2;getline(cin, s1);getline(cin, s2);int pos = 0;for (size_t i = 0; i < s2.size(); ++i){while ((pos = s1.find(s2[i])) != string::npos){s1.erase(pos, 1);}}cout << s1 << endl;return 0;
}
2.2.3、题解二:借助哈希
说明:字符串一共256个,可以建立一个char类型的长度固定的数组来做哈希映射,该数组用来统计s2字符串中出现的字母的个数。遍历s1与该哈希数组比较,该数组中存在的值说明在s2中出现过。
#include <iostream>
#include <string>
using namespace std;int main()
{string s1,s2;getline(cin,s1);getline(cin,s2);string ret;int hash[256] = {0};//使用哈希映射思想先统计s2中各字符出现的次数for(size_t i = 0; i < s2.size(); ++i){hash[s2[i]]++;}for(size_t i = 0; i < s1.size(); ++i){if(hash[s1[i]] == 0)ret += s1[i];}cout << ret << endl;return 0;
}
Fin、共勉。
相关文章:

【基础训练 || Test-1】
总言 主要内容:一些习题。 文章目录 总言一、选择1、for循环、操作符(逗号表达式)2、格式化输出(转换说明符)3、for循环、操作符(逗号表达式、赋值和判等)4、if语句、操作符ÿ…...

Python读取hbase数据库
1. hbase连接 首先用hbase shell 命令来进入到hbase数据库,然后用list命令来查看hbase下所有表,以其中表“DB_level0”为例,可以看到库名“baotouyiqi”是拼接的,python代码访问时先连接: def hbase_connection(hbase…...

LeetCode41题:缺失的第一个正数(python3)
这道题写的时候完全没有思路,看了很久的题解,才总结出来。 class Solution:def firstMissingPositive(self, nums: List[int]) -> int:nums_set set(nums)n len(nums)for i in range(1, n 1):if i not in nums_set:return ireturn n 1...
C# DataTable 对象操作
实现DataTable按字段进行分类、按列数据汇总、序列化对象数组、所有字段转小写、动态对象数组、数据分页 分类DataTableClassfiy实体: /// <summary>/// 单个分类表/// </summary>public class DataTableClassfiy{/// <summary>/// 分类名称/// &…...
web运行时安全
1.输入验证 对传递的数据的格式、长度、类型(前端和后端都要)进行校验。 对黑白名单校验:比如前端传递了一个用户名,可以搜索该用户是否在白名单或者黑名单列表。 针对黑名单校验,比如: // 手机号验证…...

FPGA 与 数字电路的关系 - 这篇文章 将 持续 更新 :)
先说几个逻辑:(强调一下在这篇文章 输入路数 只有 1个或2个,输出只有1个,N个输入M个输出以后再说) 看下面的几个图: 图一( 忘了 这是 啥门,不是门吧 :)也就…...

18 SpringMVC实战
18 SpringMVC实战 1. 课程介绍2. Spring Task定时任务1. 课程介绍 2. Spring Task定时任务 package com.imooc.reader.task...

Rocky Linux 运维工具 dnf
一、dnf的简介 dnf是用于在基于RPM包管理系统的包管理工具。用户可以通过 yum来搜索、安装、更新和删除软件包,自动处理依赖关系,它是yum的继任者,旨在提供更快速、更现代化的软件包管理体验。。 二、dnf 的参数说明 序号参数描述1in…...

浅谈 Linux fork 函数
文章目录 前言fork 基本概念代码演示示例1:体会 fork 函数返回值的作用示例2:创建多进程,加深对 fork 函数的理解 前言 本篇介绍 fork 函数。 fork 基本概念 pid_t fork(void) fork 的英文含义是"分叉",在这里就是 …...
golang 装饰器模式详解
前言 我一直以来对golang的装饰器模式情有独衷,不是因为它酷,而是它带给我了太多的好处。首先我不想说太多的概念,熟记这些概念对我的编程来说一点用处没有。我只知道它给我带来了好处,下面谈谈我的理解。 这种模式可以很轻松地…...
刷题笔记day27-回溯算法2
216. 组合总和 III 这个思路还是,三部曲: 终止条件处理单层节点回溯节点 题中说的是,1到9的数,不能有重复。 k个数,和为n。 那么只要 len(path) k 的时候,判断 n 为0,就可以入切片了。 fun…...

前端架构: 脚手架命令行交互核心实现之inquirer和readline的应用教程
命令行交互核心实现 核心目标:实现命令行行交互,如List命令行的交互呢比命令行的渲难度要更大,因为它涉及的技术点会会更多它涉及以下技术点 键盘输入的一个监听 (这里通过 readline来实现)计算命令行窗口的尺寸清屏光标的移动输出流的静默 …...

【C++初阶】内存管理
目录 一.C语言中的动态内存管理方式 二.C中的内存管理方式 1.new/delete操作内置类型 2.new和delete操作自定义类型 3.浅识抛异常 (内存申请失败) 4.new和delete操作自定义类型 三.new和delete的实现原理 1.内置类型 2.自定义类型 一.C语…...

《PyTorch深度学习实践》第十二讲循环神经网络基础
一、RNN简介 1、RNN网络最大的特点就是可以处理序列特征,就是我们的一组动态特征。比如,我们可以通过将前三天每天的特征(是否下雨,是否有太阳等)输入到网络,从而来预测第四天的天气。 我们可以看RN…...

蓝桥杯算法题汇总
一.线性表:链式 例题:旋转链表 二.栈: 例题:行星碰撞问题 三.队列 三.数组和矩阵 例题: 四.哈希表 五.二叉树 主要方法是递归 主要考察点是遍历:前序,中序,后序遍历,层…...

【MySQL】学习多表查询和笛卡尔积 - 副本
](https://img-blog.csdnimg.cn/21dd41dce63a4f2da07b9d879ad0120b.png#pic_center) ??个人主页: ??热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ??个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-N8PeTKG6uLu4bJuM {font-family:“trebuchet ms”,…...

C++设计模式_创建型模式_工厂方法模式
目录 C设计模式_创建型模式_工厂方法模式 一、简单工厂模式 1.1 简单工厂模式引入 1.2 简单工厂模式 1.3 简单工厂模式利弊分析 1.4 简单工厂模式的UML图 二、工厂方法模式 2.1 工厂模式和简单工厂模式比较 2.2 工厂模式代码实现 2.3 工厂模式UML 三、抽象工厂模式 3.1 战斗场景…...

matlab批量替换txt文本文件的特定行的内容
1.下图所示,我想要替换第14行。 2.运行代码后,第14行已经更改为需要的内容。 clc,clear; %%----------------------需要更改的地方------------------------------------ % 设置要操作的文本文件路径,替换为你自己的文件路径 path D:\paper_…...

Qt Creator配置MSVC编译环境、调试环境
在windows上开发,一般使用Qt Creator自带mingw编译器,编译和调试都很方便,安装Qt时勾选后,自动配置完毕。 但是有时候我们需要使用MSVC的编译器,这个时候我们没法直接使用,需要配置环境才能使用࿰…...
Linux系统运维命令:终止监听在 TCP端口80上的所有进程(使用lsof,grep,awk组合命令, 终止监听在 TCP某个端口上的所有进程)
目 录 一、需求 二、解决方法 1、解决思路 2、命令 三、实例演示和命令解释 1、实例演示 (1)查看目前有哪些在TCP端口80监听的进程 (2)、使用命令 (3)、查看效果 2、命令解…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...

有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...

初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...