C++笔试训练day_2

文章目录

  • 选择题
    • 7.
  • 编程题
    • 1.
    • 2.

选择题

在这里插入图片描述
(6)因为p2被const修饰所以p2不可以被改变,但是p2的指向可以被改变
(7)因为指针p3被const修饰,所以p3的指向不能被改变,但是*p3可以被改变

int main()
{
    int a = 10;
    int b = 5;
    const int* p1 = &a;
    int* const p2 = &a;
    p1 = &b;
    cout << "*p1:" << *p1 << endl;
    //*p1 = 8;//不能修改
    //p2 = &b;//不能修改
    *p2 = 8;
    cout << "*p2:" << " " << *p2 << endl;
    cout << "a:" << " " << a << endl;
    return 0;
}

在这里插入图片描述
常量指针和指针常量的区别:
常量指针,指针所指空间的值不能发生改变,不能通过指针解引用修改指针所指空间的值,但指针所指空间可以发生改变
常量指针,该指针是一个常量,可以通过解引用改变指针所指空间的值,但是指针的指向不能发生改变
3.
在这里插入图片描述
A:acx和acy都是字符数组,是在栈上开辟的空间,内容可以被修改
B:szx和szy都是指针字符串,在常量区开辟的空间,且字符串相同,因此他们指向同一块空间
C:acx是字符串初始化字符数组,字符串结尾默认有一个\0,因此acx占用空间比acy大
D:szx内容修改实际是指针的指向发生了改变,字符串常量本身并不会被修改
5.
在这里插入图片描述
A:宏定义是没有类型安全检测的
B:因为宏定义是在编译阶段进行傻瓜式的替换的,不能被调试,因此我们要尽量使用const常量,而避免使用宏定义
D:相对于函数调用,宏定义可以提高程序的运行效率,宏定义没有创建函数栈帧和函数压栈的开销

7.

在这里插入图片描述
A: 存放的是10个int类型的指针的数组,指针数组
B:一个指针指向的是大小为10的int类型的数组,数组指针,因为[ ]优先级高于所以这里添加了()
C:指向一个参数为一个int类型的函数指针
D:是有10个指向参数为一个int类型的指针数组
注意区分:
指针数组和数组指针:
指针数组: int
p[10],本质是一个数组,数组里面存放的是指针
数组指针:
int (p)[10],本质是一个指针,指针指向的是一个数组
int (p[10])[5],p是一个数组,数组中存放的类型是int ( * )[5]
判断类型的方法:去掉第一个和p结合的,产生的是p的类型,而剩下的是指向的类型
例如:
int
p的含义是p先和
结合说明p是一个指针,剩下的是int,所以p是一个指向int类型的指针

int (p)[10]:p先和结合说明p是一个指针,指向的是一个含有10个int类型的数组int [10]

数组指针和函数指针
数组指针:int (*p)[10]
函数指针:int (*p)(int, int)
9.
在这里插入图片描述
这题主要考察的是位段:
什么是位段,位段的作用是做什么?
位段的作用是用来减少空间开辟的
结构体内如果类型为int,unsigned int或char类型就可采用位段来进行存储
位段的定义:类型后面定义变量,变量后面加冒号:,冒号后面加上该类型存放所需要的比特位,注意这里最后的结果也要进行内存对齐。具体请查看博客文章C语言三万字总结
10.
在这里插入图片描述

int main()
{
	int a[4] = { 1,2,3,4 };
	cout << &a << endl;
	cout << &a + 1 << endl;
	cout << &a[0] << endl;
	cout << &a[0] + 1 << endl;

	cout << endl;

	int b[][3] = { 1,2,3,4,5,6 };
	cout << &b << endl;
	cout << &b + 1 << endl;
	cout << &b[0] << endl;
	cout << &b[0] + 1 << endl;

	return 0;
}

在这里插入图片描述

&a + 1加的是整个数组的大小
对于一维数组&a[0] + 1加的是一个元素的大小
对于二维数组&a[0] + 1加的是一行数组的大小

编程题

1.

在这里插入图片描述

在这里插入图片描述
思路:先让字符串整体逆序,再对每个单词进行逆序

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

int main() {
    string s;
    getline(cin, s);
    //先整体逆置
    reverse(s.begin(), s.end());
    //再对每个单词进行逆置
    auto begin = s.begin();
    auto end = s.begin();
    while(begin != s.end())
    {
        while(*end != ' ' && end != s.end())
        {
            ++end;
        }
        reverse(begin, end);

        //如果end = s.end(),就不能让begin = end + 1了,加了的话会出现越界
        if(end != s.end())
        {
            begin = end + 1;
            end = begin;
        }
        else {
            begin = end;
        }
        
        
    }
    cout << s << endl;
    return 0;
}
// 64 位输出请用 printf("%lld")

2.

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
理解题意:本题意思就是这个无序序列,在不被改动的情况下,最少可以被分为几个非递增或非递减序列,比如1,2,2,3,2,3,3,1就可以被分为1,2,2,3,和2,3与1这三个序列

#include <iostream>
#include <vector>

using namespace std;

int main() {
    int n = 0;
    cin >> n;
    vector<int> v(n, 0);
    for (int i = 0; i < n; i++) {
        cin >> v[i];
    }

    int count = 0;
    int j = 0;
    while(j < n)
    {
        if(j + 1 == n)
        {
            count ++;
            break;
        }

        if (v[j] < v[j + 1]) {
            while (j < n && v[j] <= v[j + 1]) {
                j++;
            }
            j++;
            count++;
        } else if (v[j] > v[j + 1]) {
            while (j < n && v[j] >= v[j + 1]) {
                j++;
            }
            j++;
            count++;
        } else {
            j++;
        }
    }

    cout << count << endl;
    return 0;

}
// 64 位输出请用 printf("%lld")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/267214.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【基于激光雷达的路沿检测用于自动驾驶的真值标注】

文章目录 概要主要贡献内容概述实验小结 概要 论文地址&#xff1a;https://arxiv.org/pdf/2312.00534.pdf 路沿检测在自动驾驶中扮演着重要的角色&#xff0c;因为它能够帮助车辆感知道可行驶区域和不可行驶区域。为了开发和验证自动驾驶功能&#xff0c;标注的数据是必不可…

ansible的控制语句

本章内容主要介绍 playbook 中的控制语句 使用when判断语句block-rescue判断循环语句 一个play中可以包含多个task&#xff0c;如果不想所有的task全部执行&#xff0c;可以设置只有满足某个条件才执行这个task&#xff0c;不满足条件则不执行此task。本章主要讲解when 和 blo…

婚庆婚礼策划服务网站建设的效果如何

品牌效应越来越重要&#xff0c;婚庆行业在多年的发展下&#xff0c;部分区域内也跑出了头部品牌&#xff0c;连锁门店也开了很多家&#xff0c;无论新品牌还是老品牌在新的区域开店总归少不了线上线下的宣传&#xff0c;虽然几乎每个人都会接触婚庆服务&#xff0c;但因为市场…

【并发编程篇】源码分析,手动创建线程池

文章目录 &#x1f6f8;前言&#x1f339;Executors的三大方法 &#x1f354;简述线程池&#x1f386;手动创建线程池⭐源码分析✨代码实现&#xff0c;手动创建线程池&#x1f388;CallerRunsPolicy()&#x1f388;AbortPolicy()&#x1f388;DiscardPolicy()&#x1f388;Dis…

1.倒排索引 2.逻辑斯提回归算法

1.倒排索引 https://help.aliyun.com/zh/open-search/retrieval-engine-edition/introduction-to-inverted-indexes 倒排索引&#xff08;Inverted Index&#xff09;是一种数据结构&#xff0c;用于快速查找包含某个特定词或词语的文档。它主要用于全文搜索引擎等应用&#…

c#委托学习笔记1

委托三步骤 第一步&#xff1a;定义委托 //第一步&#xff1a;1 声明委托(定义委托) //对于声明委托的解释如下&#xff1a; //解释a&#xff1a;函数指针 //解释b&#xff1a;委托就是定义函数的形状&#xff08;形态&#xff09; // 即&#xff1a;返回值类型&#x…

代码随想录刷题题Day21

刷题的第二十一天&#xff0c;希望自己能够不断坚持下去&#xff0c;迎来蜕变。&#x1f600;&#x1f600;&#x1f600; 刷题语言&#xff1a;C Day21 任务 ● 216.组合总和III ● 17.电话号码的字母组合 1 组合总和III 216.组合总和III 思路&#xff1a; 在[1,2,3,4,5,6,…

数据孤岛:一场数据的独立战争

在当今数字化的时代&#xff0c;数据已成为企业和组织最宝贵的资产之一。然而&#xff0c;尽管数据的价值被广泛认可&#xff0c;但数据的分散和孤立问题却仍然存在&#xff0c;这就是所谓的数据孤岛。本文将重点分析什么是数据孤岛、数据孤岛的危害以及解决数据孤岛的传统和创…

C语言课程设计_运动会管理系统

本次课程设计利用《C语言程序设计》课程中所学到的编程知识和编程技巧&#xff0c;完成具有一定难度和工作量的程序设计题目&#xff0c;帮助学生掌握编程、调试的基本技能&#xff0c;独立完成所布置的任务。 要求 1、对系统进行功能需求分析 2、设计合理的数据结构和系统框…

分类预测 | Matlab实现MTF-CNN-Mutilhead-Attention基于马尔可夫转移场-卷积神经网络融合多头注意力多特征数据分类预测

分类预测 | Matlab实现MTF-CNN-Mutilhead-Attention基于马尔可夫转移场-卷积神经网络融合多头注意力多特征数据分类预测 目录 分类预测 | Matlab实现MTF-CNN-Mutilhead-Attention基于马尔可夫转移场-卷积神经网络融合多头注意力多特征数据分类预测分类效果基本描述程序设计参考…

HarmonyOS4.0系统性深入开发03UIAbility组件详解(中)

UIAbility组件基本用法 UIAbility组件的基本用法包括&#xff1a;指定UIAbility的启动页面以及获取UIAbility的上下文UIAbilityContext。 指定UIAbility的启动页面 应用中的UIAbility在启动过程中&#xff0c;需要指定启动页面&#xff0c;否则应用启动后会因为没有默认加载…

2024华为OD机试真题指南宝典—持续更新(JAVAPythonC++JS)【彻底搞懂算法和数据结构—算法之翼】

PC端可直接搜索关键词 快捷键&#xff1a;CtrlF 年份关键字、题目关键字等等 注意看本文目录-快速了解本专栏 文章目录 &#x1f431;2024年华为OD机试真题&#xff08;马上更新&#xff09;&#x1f439;2023年华为OD机试真题&#xff08;更新中&#xff09;&#x1f436;新…

Python字符串处理全攻略(三):常用内置方法轻松掌握

目录 引言Python字符串常用内置方法str.index()功能介绍语法注意事项总结 str.startswith()功能介绍语法示例注意事项 str.expandtabs()功能介绍语法示例注意事项总结 str.splitlines()功能介绍语法示例注意事项总结 str.swapcase()功能介绍语法示例注意事项 结束语 引言 欢迎…

XUbuntu22.04之跨平台容器格式工具:MKVToolNix(二百零三)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

【Hadoop】Zookeeper是什么?怎么理解它的工作机制?

Zookeeper是什么Zookeeper工作机制 Zookeeper是什么 Zookeeper是一个开源的分布式的&#xff0c;为别的分布式矿建提供协调服务的Apache项目。分布式简单地理解就是多台机器共同完成一个任务。 Zookeeper工作机制 从设计模式的角度来理解&#xff0c;是一个基于观察者模式设…

css学习笔记6(盒子模型)

CSS盒子模型 五、CSS盒子模型1.CSS长度单位2.元素的显示模式3.总结各元素的显示模式4.修改元素显示模式5.盒子模型的组成6.盒子内容区&#xff08;content&#xff09;7.关于默认宽度8.盒子内边距&#xff08;padding&#xff09;9.盒子边框&#xff08;border&#xff09;10.盒…

深度学习入门(python)考试速成均方误差

均方误差 表示神经网络的输出&#xff0c;表示监督数据&#xff0c;表示数据的维度。 这里神经网络的输出y是softmax函数的输出 数组元素的索引从第一个开始依次对应数组“0”&#xff0c;“1”&#xff0c;“2”&#xff0c;...... 由于softmax函数的输出可理解为概率 由此…

指针的含义

我们还取前面图片解释的道理&#xff1a; pa表示的意思就是这个地址&#xff0c;并不会显示出10这个数字 *pa就是指针&#xff0c;最后指向了a10&#xff0c;所以他最后程序输出是10 &pa这个含义就是取pa的地址&#xff0c;那么pa是一个虚拟的地址&#xff0c;只是简单的…

概率中的50个具有挑战性的问题[02/50]:连续获胜

一、说明 我最近对与概率有关的问题产生了兴趣。我偶然读到了弗雷德里克莫斯特勒&#xff08;Frederick Mosteller&#xff09;的《概率论中的五十个具有挑战性的问题与解决方案》&#xff08;Fifty Challenge Problems in Probability with Solutions&#xff09;一书。我认为…

python实现图像的几何变换——冈萨雷斯数字图像处理

1、 实现图像的平移。 原理: 图像的平移是一种基本的图像处理操作&#xff0c;它将图像中的每个像素沿着指定的方向和距离移动&#xff0c;以创建一个新的平移后的图像。平移的原理很简单&#xff0c;通常涉及到以下几个步骤&#xff1a; 确定平移的距离和方向&#xff1a;首先…