数据结构 每日一练 :选择 + 编程

2023-11-03

目录

选择

编程 


选择

A.  正确            B.  不正确

答案:A

解析:多维数组是一维数组的扩展,也就是数组的数组,例如二维数组可以看作是一维数组作为数据元素构成的一维数组,三维数组可以看作二维数组作为元素构成的一维数组。数组与线性表的关系:数组是线性表的推广。一维数组可视为一个线性表;二维数组可视为其元素也是定长线性表的线性表,以此类推。多维数组和广义表可以看作线性表的扩展,即他们的数据元素构成线性表,而数据元素本身又是一个线性结构。

A.  *(*(a+1)+2)          B.  *(a+1+2)          C.  (&a[0]+1)[2]          D.  *(a[0]+1)

答案:A

解析:

p=&a;

 指针有三个值:
 p:    指针p,存放的是a的地址  指向目标的地址
*p:    p指向目标的内容
&p:存放的也是地址,是指针的地址

理解:

1. p本身存的是a的地址。

2. 解引用 * 就像打开盒子一样,盒子里面装的是a的操作地址 当我打开这个操作地址 我就找到a了。

3.对*p的操作其实就是对a的操作。

 A:

a → 数组首地址

a+1 → 第二行首地址

*a → a[0][0]的地址

*(a+1) → a[1][0]的地址

*(a+1)+2 → a[1][2]的地址

*(*(a+1)+2) → a[1][2]的值

B:

*(a+1+2) = *(a+3)→ 第四行的地址(不存在第四行,所以打印的时候是乱码)

C:

a[0] → a[0][0]的地址

&a[0] → 又变回了数组的首地址

&a[0]+1 → 第二行地址

(&a[0]+1)[0] = &a[0]+1

(&a[0]+1)[2] → 从第二行开始,下二行首地址,即第四行首地址

*(&a[0]+1) → a[1][0]的地址

(*(&a[0]+1) )[2] → a[1][2]的值

D:

a[0]+1 → a[0][1]的地址

*(a[0]+1) →  a[0][1]的值

A.  4 5                        B.  4 3                    C.  3 5                      D.  3 4   

答案:A

解析:有了第二题的分析就很容易知道:A表示数组的首地址;A+1表示第二行的首地址;*(A+1)表示A[1][0]的地址;*(A+1)+1表示A[1][2]的地址;*(*(A+1)+1)表示A[1][2]的值,即5。

 A.  rear-front+1    B.  rear-front-1    C.  (rear-front+n)%n    D.  (rear-front)%n

答案:C

解析:

队头指针为front,队尾指针为rear;队列中元素的最大个数MaxSize

入队时队尾指针加1取模:(rear+1)%MaxSize

出队时队头指针加1取模:(front+1)%MaxSize

队列长度(元素个数):(rear-front+MaxSize)%MaxSize

队满条件:(rear+1)%MaxSize==front

队空条件:front == rear
 

A.  front=front+1   B.  front=(front+1)%(m-1)   C.  front=(front-1)%m   D.  front=(front+1)%m

 答案:D

解析:

队头指针为front,队尾指针为rear;队列中元素的最大个数MaxSize

入队时队尾指针加1取模:(rear+1)%MaxSize

出队时队头指针加1取模:(front+1)%MaxSize

队列长度(元素个数):(rear-front+MaxSize)%MaxSize

队满条件:(rear+1)%MaxSize==front

队空条件:front == rear

编程 

描述

给出一个整型数组 numbers 和一个目标值 target,请在数组中找出两个加起来等于目标值的数的下标,返回的下标按升序排列。

(注:返回的数组下标从1开始算起,保证target一定可以由数组里面2个数字相加得到

要求:空间复杂度 O(n),时间复杂度 O(nlogn)

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param numbers int整型一维数组
 * @param numbersLen int numbers数组长度
 * @param target int整型
 * @return int整型一维数组
 * @return int* returnSize 返回数组行数
 */
#include <stdlib.h>
int* twoSum(int* numbers, int numbersLen, int target, int* returnSize ) {
    int i,j;
    int * result;
    result=(int *)malloc(sizeof(int)*2); //申请空间
    for(i=0;i<numbersLen-1;i++){
        for(j=i+1;j<numbersLen;j++){
            if(numbers[i]+numbers[j]==target){
                //给数组赋值
                result[0]=i+1;//因为题目要求数组下标从1开始,所以加一
                result[i]=j+1;
                *returnSize=2;//修改数组长度
                return result;
            }
        }
    }
    return 0;
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据结构 每日一练 :选择 + 编程 的相关文章

  • Open3D 手动裁剪点云

    目录 一 概述 1 主要函数 2 基础操作 二 代码实现 三 结果展示 四 相关链接 一 概述 Open3d中的VisualizerWithEditing类提供了图形用户交互功能 draw geometries with editing p
  • Java 线程创建方法

    除了继承Thread 实现Runnable Callable三种创建线程方式外的第四种创建方式 实现java util concurrent ThreadFactory接口 实现newThread Runnable r 方法 这种方式应用于
  • 线上CPU飙升排查

    背景 cpu idle下降50 full gc触发线上报警 处理 1 top命令 查看所有进程占用CPU的排序 第一个就是我们的java服务进程 或者jps命令直接查看java服务进程 2 top Hp 46845 查看进程下所有线程占用C

随机推荐

  • 区块链入门之windows 安装以太坊 ethereum 客户端 (win7-64)

    以太坊 Ethereum 是一个运行智能合约的去中心化平台 Platform for Smart Contract 平台上的应用按程序设定运行 不存在停机 审查 欺诈 第三方人为干预的可能 以太坊平台由 Golang C Python 等多
  • Tomcat部署服务器添加多个<Host>就加载多次项目问题《解决方案》

    如题 项目部署到阿里云服务器之后 配置tomcat一个域名同时又可以使用IP直接访问项目 配置是如下
  • vue-router详解 - 从使用到扩展

    1 认识路由 1 1 后端路由 早期的网站开发整个HTML页面是由服务器来渲染的 服务器直接生产渲染好对应的HTML页面 返回给客户端进行展示 但是 一个网站 这么多页面服务器如何处理呢 一个页面有自己对应的网址 也就是URL URL会发送
  • Pychram:踩坑记录/窍门分享

    Debug Console 当使用PyCharm的Debug模式时 最好用的莫过于Debug Console 它与断点相配合可以实现类似于Jupyter Notebook的逐块运行代码的效果 但是今天我突然发现Debug Console无法
  • 用户体验式UI设计

    用户体验式UI设计 1 什么是用户体验式设计 产品的业务化和易用性始终是我们追求的目标 随着 Net Framework 3 0的推出 Windows Presentation Foundation WPF 组件库把用户UI
  • openGL之API学习(三十七)如何从FBO中读取颜色、深度信息

    方法一 保存成图片 QImage img new QImage WINDOW WIDTH WINDOW HEIGHT QImage Format ARGB32 uchar tmpBIT img gt bits 从颜色缓冲区中读取数据 int
  • C++整型(short,int,long,longlong)

    C 整型数据类型 整型就是没有小数部分的 C 基本整型有char short int long long long 由于char 类型比较特殊 下面只关于char int long long long 1 整型short int long
  • 使用verilog实现4选1数据选择器的几种方法

    第一种方法module mux d1 d2 d3 d4 se1 se2 dout input d1 input d2 input d3 input d4 input se1 input se2 output dout reg dout al
  • 一目了然凉哥为大家倾力打造的付费专栏

    写在前面 大家好 我是几何心凉 欢迎来到我的付费专栏系列 本专栏将深入介绍 Vue 3 和 Vite 以及如何在 TypeScript 的帮助下构建现代化的 Web 应用程序 Vue 是一个流行的 JavaScript 框架 它允许开发人员
  • 【AntDesign】图片自定义上传组件 超详细含代码及解读~

    技术栈 AntDesign 版本 3x 效果图如下 官网示例给的是标准上传模式 此处用的是自定义上传模式 customRequest 代码 子组件代码 import React useState useImperativeHandle fr
  • 初识微服务框架ServiceComb

    https blog csdn net zengdongwen article details 93486257 后续跟进学习 转载于 https www cnblogs com chaojizhengui p 11586398 html
  • C#变量初始化问题:字段初始值无法引用非静态字段、方法或属性

    问题 字段初始值设定项无法引用非静态字段 方法或属性的问题 下面代码出错的原因 在类中定义的字段为什么不能用 public class Test public Test public int Age 23 public int temp A
  • 隐马尔科夫模型 (HMM) 算法介绍及代码实现

    Table of Contents Hidden Markov Model 隐马尔科夫模型 定义 基本问题 前向算法 算法流程 实现代码 后向算法 算法流程 实现代码 Viterbi算法 算法流程 实现代码 Baum Welch 算法 单观
  • 网络布线的基础知识

    目录 网络布线的基础知识 1 信号 1 1什么是信号 1 2信号的分类 1 3数字信号的优势 2 双绞线 2 1双绞线 2 2双绞线标准与分类 3 光纤概述 3 1光纤的特点 3 2光纤分类 3 3光纤的优点 4 传输介质的连接与布线 4
  • 各种代理IP背后的原理

    讲解各种代理IP背后的原理 知道代理IP的人越来越多了 不管是单纯的换IP 还是进行大量的数据采集 或者是游走于灰色之中 都是离不开代理IP这个工具的 但是很少人会关注各种代理IP背后的原理 今天就听小编来给大家普及下吧 一 代理类型代理I
  • Python 数组教程 – 定义、索引、方法

    在本文中 您将学习如何使用 Python 数组 您将了解如何定义它们以及对它们执行操作常用的不同方法 本文介绍了您通过导入array module 我们不会在这里讨论 NumPy 数组 目录 什么是 Python 数组 Python 列表和
  • 【单目标优化算法】杂草优化算法(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 杂草算法代码简单 易于实现 具有较强的自适
  • postman系列-使用变量

    事先声明 以下内容 均来自于postman官网 仅做学习会用 侵删 如果想系统的学习postman 也推荐官网直接学习 谢谢 作用 在请求中和脚本中 使用变量可以存储值和重用值 将值存储在变量中 就可以在collections enviro
  • 静态变量与非静态变量的区别

    静态变量的类型说明符是static 非静态变量反而类型说明符就不是static了 本文主要介绍静态和非静态变量的区别 希望对你有帮助 一起来看 AD 静态变量 静态变量使用 static 修饰符进行声明在所属类被装载时创建通过类进行访问所属
  • 数据结构 每日一练 :选择 + 编程

    目录 选择 编程 选择 A 正确 B 不正确 答案 A 解析 多维数组是一维数组的扩展 也就是数组的数组 例如二维数组可以看作是一维数组作为数据元素构成的一维数组 三维数组可以看作二维数组作为元素构成的一维数组 数组与线性表的关系 数组是线