数组练习题

知识点

数组

题目1

请创建一个长度为6的整数数组,并为数组中的元素赋值。遍历数组,打印所有元素,元素之间用空格隔开。比如:

数组为:{1,2,3,4,5}
打印结果:1 2 3 4 5 

训练提示

1、数组中的元素有索引,开始索引和结束索引分别是什么?使用循环语句,依次通过索引获取元素即可遍历数组。

2、在打印数组元素时,是以空格分隔,并且不换行,该怎样输出?

解题方案

for循环遍历数组

操作步骤

1、定义int数组,使用静态初始化方式为元素赋值。

2、使用for循环对数组进行遍历,循环索引从0开始,到数组的长度-1结束。

3、逐个打印数组元素,打印元素不换行,在输出元素的后面拼接空格。

答案

package test;
​
public class test1 {public static void main(String[] args) {int arr[] = {1,2,3,4,5,6};for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}
​System.out.println("");
​System.out.println("^^");}
}
​

题目2

现有一个小数数组{12.9, 53.54, 75.0, 99.1, 3.14}。请编写代码,找出数组中的最小值并打印。

训练提示

1、数组的元素是小数,需要定义小数类型数组。

2、找最值需要先定义一个参考值,然后依次拿每个值与参考值比较即可。

解题方案

将数组的第一个值作为参考值,遍历数组,依次比较,记录更小值。

操作步骤

1、定义double类型数组并存入元素。

2、定义double类型变量min代表最小值,初始化为数组第一个值。

3、遍历数组,用每个元素依次和变量min对比。

4、如果发现有元素小于min,则把该元素赋值给min。

5、遍历结束之后min记录的就是最小值,打印结果。

答案

package test;
​
public class test2 {public static void main(String[] args) {double arr[] = {12.9, 53.54, 75.0, 99.1, 3.14};double min = arr[0];for (int i = 1; i < arr.length; i++) {
​if (arr[i] < min){min = arr[i]; // 随笔: 这是赋值,arr[ran] = arr[i]才是交换,说的这些跟这题没关系,只是联想到了打乱数组元素的知识点}
​}System.out.println(min);
​System.out.println("^^");}
}
​

题目3

创建一个长度为6的整数数组。请编写代码,随机生成六个0(包含)-100(不包含)之间的整数存放到数组中,然后计算出数组中所有元素的和并打印。

训练提示

1、数组有6个元素,那么就要生成6次随机数。

2、要求所有元素的和,首先需要定义变量来存储求和结果,然后再获取所有元素,依次累加就可以了。

解题方案

定义求和变量,遍历数组,累加元素值。

操作步骤

1、定义长度为6的int数组。

2、创建随机数Random类对象。

3、遍历数组,在循环中生成随机数并给数组元素赋值。

4、定义求和变量,初始化值为0。

5、遍历数组,获取每一个元素,累加。

6、遍历结束,打印结果。

答案

package test;
​
import java.util.Random;
​
public class test3 {public static void main(String[] args) {int arr[] = new int[6];Random random = new Random();int sum = 0;for (int i = 0; i < arr.length; i++) {
​int ran = random.nextInt(100);arr[i] = ran;sum = sum + arr[i];
​}System.out.println(sum);
​System.out.println("^^");}
}
​

题目4

现有一个整数数组,数组中的每个元素都是[0-9]之间的数字,从数组的最大索引位置开始到最小索引位置,依次表示整数的个位、十位、百位。。。依次类推。请编写程序计算,这个数组所表示的整数值。例如:

数组:{2, 1, 3, 5, 4}
表示的整数为:21354 // 注:是整数类型的两万一千三百五十四,不是字符串拼起来的。

训练提示

1、首先肯定要获取数组的每一个元素,需要遍历。

2、根据题目分析,个位元素本身就可以表示值,十位是元素乘以10来表示值,百位就是元素乘以100来表示值。。。它们之间有什么规律呢?从左至右,每一位所表示的值是下一位的十倍。根据此规律,怎样编写算法实现呢?

解题方案

遍历数组,与求和的思路相似,但算法不同,累加时需要将高位*10再累加。

操作步骤

1、定义int类型数组,使用静态初始化,将数字存入数组。

2、定义变量num用来存储最终的数值。

3、对数组进行遍历,遍历开始索引是0,结束索引是arr.length-1。

4、在循环中,把num的值乘10再加上元素的值,赋值给num变量。

5、循环上面的步骤,num的值即为所求,打印结果。

答案

package test;
​
public class test4 {public static void main(String[] args) {int arr[] = {1,6,5,2,5};int num = 0;for (int i = 0; i < arr.length; i++) {
​num = num * 10 + arr[i];
​}
​System.out.println(num);System.out.println("^^");}
}
//按着操作步骤一步一步做,有点心虚的感觉,怪怪的,感觉不是自己做的一样...

题目5

定义一个数组来存储10个学生的成绩,例如:{72, 89, 65, 87, 91, 82, 71, 93, 76, 68}。计算并输出学生的平均成绩。

训练提示

1、要操作数组的每一个元素,需要遍历。

2、怎样求平均数?其实只要求和之后也就知道了平均数。

解题方案

使用数组的遍历操作完成。

操作步骤

  1. 定义保存学生成绩的数组arr。

  2. 定义变量sum用来存储和。

  3. 对数组进行遍历,求和。

  4. 和除以元素个数得到平均数。

  5. 打印结果。

答案

package test;
​
public class test5 {public static void main(String[] args) {//这题不按操作步骤做了
​//定义一个数组来存储10个学生的成绩,//例如:{72, 89, 65, 87, 91, 82, 71, 93, 76, 68}。//计算并输出学生的平均成绩。
​//求和int sum = 0;//计算平均成绩int avg = 0;
​//定义一个数组来存储10个学生的成绩int arr[]={1,2,3,4,5,1,2,3,4,5};//写数组题第二步一定是遍历,第一步一定是定义,反正我现在是这样理解的for (int i = 0; i < arr.length; i++) {
​//求和sum = sum + arr[i];
​}//计算平均成绩avg = sum / arr.length;//输出平均成绩System.out.println(avg);
​System.out.println("^^");}
}
​

题目6(很难)

有一个数组,其中有十个元素从小到大依次排列 {12,14,23,45,66,68,70,77,90,91}。再通过键盘录入一个整数数字。要求:把数字放入数组序列中,生成一个新的数组,并且数组的元素依旧是从小到大排列的。执行效果如下:

请输入一个整数数字:
50
生成的新数组是:12 14 23 45 50 66 68 70 77 90 91

训练提示

  1. 数组的长度是不能改变的,所以增加一个元素需要定义一个新数组。

  2. 数组元素是从小到大排列的,如何找到新元素存放的位置?

解题方案

使用数组的遍历,用元素依次和数字作比较,找到正确的存放位置。

操作步骤

  1. 定义原数组arr,和一个比原数组长度大1的新数组brr。->把原数组的值放到新数组中

  2. 通过键盘录入的方式输入变量num的值。

  3. 定义变量index用于记录num存放的索引位置。

  4. 遍历数组,小于或等于num的元素直接存放到原来的位置,大于num的元素往后移动一个位置。

  5. 存放结束之后,中间会空出一个位置,在遍历时用index记录这个位置。把num放在这个索引处。

  6. 最终遍历新数组打印结果。

答案

package test;
​
import java.util.Scanner;
​
public class test6_6_6_6 {public static void main(String[] args) {//有一个数组,//其中有十个元素从小到大依次排列//{12,14,23,45,66,68,70,77,90,91}。//再通过键盘录入一个整数数字。//要求:把数字放入数组序列中,生成一个新的数组,//并且数组的元素依旧是从小到大排列的。执行效果如下://请输入一个整数数字://50//生成的新数组是:12 14 23 45 50 66 68 70 77 90 91
​//键盘录入Scanner scanner = new Scanner(System.in);int sc = scanner.nextInt();//定义数组int arr[] = {1,2,4,5,6,};//1 2 3 4 5 6//定义新数组int brr[] = new int[6];//定义index记录sc的索引int index = 0;//遍历数组for (int i = 0; i < arr.length; i++) {
​if (arr[i] <= sc) {brr[i] = arr[i];index = i + 1; //->服了,就一直卡在这里,一直以为是放在else里面,太困了,搞得脑子都蒙了} else {brr[i+1] = arr[i];}
​}for (int i = 0; i < brr.length; i++) {brr[index] = sc;System.out.println(brr[i]);}
​System.out.println("^^");}
}
​

题目7(很难)

定义一个数组其中包含多个数字。用自己的方式最终实现,奇数放在数组的左边,偶数放在数组的右边。(可以创建其他数组,不必须在原数组中改变)

训练提示

  1. 要找奇数和偶数只需要判断对2取余即可。

  2. 找到一个奇数或偶数之后,把它放在哪个索引处?

解题方案

  1. 定义一个新数组。把原数组的奇数放在新数组的左边,把原数组的偶数放在新数组的右边。

  2. 不定义新数组。找到左边的偶数,和右边的奇数互换位置。

    以下以方案1为准

操作步骤

  1. 定义出原数组arr,其中包含多个数字。

  2. 定义新数组brr,和arr的长度一样。

  3. 定义变量left,初始值是0准备从左边放元素,定义变量right,初始值是arr.length-1准备从右边放元素。

  4. 对原数组arr进行遍历。->会不会是单独遍历,然后进行下一步(是的)

  5. 如果元素是奇数,则放在新数组brr的左边,left变量加一。->会不会不是两个遍历嵌套,是我搞错了?(是的)

  6. 如果元素是偶数,则放在新数组brr的右边,right变量减一。

  7. 遍历新数组brr打印最终结果。

答案

package test;
​
public class test7_7_7_7 {public static void main(String[] args) {//定义一个数组其中包含多个数字。//用自己的方式最终实现,奇数放在数组的左边,偶数放在数组的右边。//(可以创建其他数组,不必须在原数组中改变)->建议创建其他数组
​//定义一个数组其中包含多个数字int arr[] = {1,2,3,4,5,6};//1 3 5 6 4 2//定义一个新数组int brr[] = new int[6];//奇数放在数组的左边int left = 0;//偶数放在数组的右边int right = arr.length-1;for (int i = 0; i < arr.length; i++) {  //这三个东西是已经规定好了的,循环改变的只是里面的东西
​if (arr[i] % 2 == 1) {//奇数放左边brr[left] = arr[i];//左边数自增left++;} else {//偶数放右边brr[right] = arr[i];//右边数自减right--; }
​}for (int i = 0; i < brr.length; i++) {System.out.print(brr[i] + " ");}
​System.out.println("");
​System.out.println("^^");}
}
​注:题目来源于黑马课程

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hivesql的基础知识点

目录 一、各数据类型的基础知识点 1.1 数值类型 整数 小数 float double(常用) decimal(针对高精度) 1.2 日期类型 date datetime timestamp time year 1.3 字符串类型 char varchar / varchar2 blob /text tinyblob / tinytext mediumblob / mediumtext lon…

CentOS7虚拟机设置静态IP

虚拟机上ip是有时效性的&#xff0c;过期后会自动更换&#xff0c;因此如果想让ip不变&#xff0c;就得手动设置静态ip。 第一步&#xff1a;先查看主机的子网掩码 1.1、windows命令ipconfig&#xff0c;如下图&#xff1a; 第二步&#xff1a;查看虚拟机的网关、ip区间的设…

单臂路由实验(华为)

思科设备参考&#xff1a; 单臂路由实验&#xff08;思科&#xff09; 一&#xff0c;实验目的 在路由器的一个接口上通过配置子接口的方式&#xff0c;实现相互隔离的不同vlan之间互通。 ​ 二&#xff0c;设备配置 Switch1 <Huawei>sys [Huawei]vlan batch 10 20…

nuxt.js中使用axios以及二次封装

nuxtjs中使用axios 有两种方法&#xff1a; 1. 普通的方式&#xff1a; 1.1&#xff1a; npm或者yarn安装依赖包 npm install axios -S 普通使用方式网上查询&#xff0c;这里不再过多叙述。 2. 集成的方式&#xff1a; 2.1:首先安装 nuxtjs/axios npm install nuxtjs/axi…

备考蓝桥杯每日一题——C++分支结构“ABC”

今天在洛谷上遇到了一道很有意思的题 题目&#xff1a; 【题目描述】 三个整数分别为 A,B,C。这三个数字不会按照这样的顺序给你&#xff0c;但它们始终满足条件&#xff1a;A<B<C。为了看起来更加简洁明了&#xff0c;我们希望你可以按照给定的顺序重新排列它们。 【输入…

【C++】类与对象(三)—运算符重载|const成员函数|取地址及const取地址操作符重载

前言 运算符重载&#xff0c;自增自减运算符重载&#xff0c;const成员函数&#xff0c;取地址及const取地址操作符重载 文章目录 一、运算符重载自增和自减运算符重载 二、const 成员函数三、取地址及const取地址操作符重载&#xff08;了解即可&#xff09; 一、运算符重载 运…

网络开发的隐形壁垒:如何巧妙解决跨域难题?

什么是跨域 跨域是浏览器受同源&#xff08;协议、域名、端口&#xff09;策略的限制&#xff0c;不允许不同源的站点之间进行某些操作&#xff08;如发送ajax请求&#xff0c;操作dom&#xff0c;读取cookie&#xff09;&#xff0c;如果不进行特殊配置是不能操作成功的&…

Linux中多路IO复用

首先要明白为什么要使用 多路IO复用 单进程/单线程要处理多个阻塞事件的时候会面临抉择&#xff0c;设置阻塞还是非阻塞呢&#xff1f;阻塞的话消息可能得不到及时的处理&#xff0c;就像排队买饭前边的饭卡丢了一堆人等他找饭卡&#xff0c;找到后才能接着打饭&#xff0c;非…

【MySQL】深入理解隔离性

深入理解隔离性 一、数据库并发的场景二、多版本并发控制&#xff08; MVCC &#xff09;三、三个前提知识1、3个记录隐藏字段2、undo日志 四、快照的概念五、Read View六、隔离级别RR与RC的本质区别 一、数据库并发的场景 数据库并发的场景总共有三种&#xff1a; 读-读&…

JVM中一次完整的GC回收流程

JVM堆内存结构简述 JVM堆内存结构图 堆初体验 所有的对象实例以及数组都要在堆上分配&#xff0c;堆是垃圾收集器管理的主要区域&#xff0c;也被称为“GC 堆”&#xff0c;也是我们优化最多考虑的地方。因为在一个项目中&#xff0c;会不断地创建对象&#xff0c;都是在堆里…

DevOps 教程 (4) - CI/CD 整合

在本第四章的"DevOps 教程"系列中&#xff0c;我们将介绍CI/CD整合的概念和实践。我们会介绍DevOps所带来的好处&#xff0c;包括团队协作、开发效率和产品交付速度的显著提升。 我们还将讨论在DevOps中的不同角色&#xff0c;并理解每个角色在持续集成和持续交付中的…

微调实操一: 增量预训练(Pretraining)

1、前言 《微调入门篇:大模型微调的理论学习》我们对大模型微调理论有了基本了解,这篇结合我们现实中常见的场景,进行大模型微调实操部分的了解和学习,之前我有写过类似的文章《实践篇:大模型微调增量预训练实践(二)》利用的MedicalGPT的源码在colab进行操作, 由于MedicalGPT代…

RAG +milvus示例

GitHub - NVIDIA/DeepLearningExamples: State-of-the-Art Deep Learning scripts organized by models - easy to train and deploy with reproducible accuracy and performance on enterprise-grade infrastructure. Towhee GitHub Zilliz GitHub

【交流】IGBT及驱动电路

最近要设计一款IGBT的驱动IC&#xff0c;学习了大部分的驱动电路。偶有心得&#xff0c;总结如下&#xff1a; 1、IGBT工作于大电流大电压的状态&#xff0c;这就要求其开关特性要好。尽量让IGBT工作在这种状态&#xff0c;I*V最小。换句话说&#xff0c;当有大电流时&#xf…

【LeetCode】216. 组合总和 III(中等)——代码随想录算法训练营Day25

题目链接&#xff1a;216. 组合总和 III 题目描述 找出所有相加之和为 n 的 k 个数的组合&#xff0c;且满足下列条件&#xff1a; 只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次&#xff0c;组合可以以任何顺序返回…

浅压缩、深压缩、双引擎、计算机屏幕编码……何去何从?

专业视听领域尤其显示控制和坐席控制领域&#xff0c;最近几年最激动人心的技术&#xff0c;莫过于分布式了。 分布式从推出之日就备受关注&#xff1a;担心稳定性的&#xff0c;质疑同步性能的&#xff0c;怀疑画面质量的…… 诚然&#xff0c;我们在此前见多了带着马赛克的…

2024美赛数学建模问题D题思路模型分析——大湖水问题

问题 D: 大湖水问题 背景 美国和加拿大的五大湖是世界上最大的淡水湖群。这五个湖泊及其相连的水道构成了一个庞大的排水盆地&#xff0c;在这两个国家有许多大型城市&#xff0c;气候各异&#xff0c;局部天气条件各异。 湖泊的水被用于许多用途&#xff08;捕鱼、娱乐、发电…

【C++】类和对象1:类的定义、访问限定符、作用域及对象大小

前言 本文主要是简单的介绍一下类是什么、如何使用 类的定义 class className { // 类体&#xff1a;由成员函数和成员变量组成 };// 一定要注意后面的分号class为定义类的关键字&#xff0c;ClassName为类的名字&#xff0c;{}中为类的主体&#xff0c;注意类定义结束时后面…

智慧文旅:驱动文化与旅游融合发展的新动力

随着科技的快速发展和人们生活水平的提高&#xff0c;文化和旅游的融合成为了时代发展的必然趋势。智慧文旅作为这一趋势的引领者&#xff0c;通过先进的信息技术手段&#xff0c;推动文化与旅游的深度融合&#xff0c;为产业的发展注入新的活力。本文将深入探讨智慧文旅如何成…

【ASP.NET Core 基础知识】--身份验证和授权--使用Identity进行身份验证

一、Identity的基础知识 1.1 Identity的组成 在ASP.NET Core中&#xff0c;Identity是一个用于处理用户身份验证和授权的框架。它包含了一系列组件&#xff0c;用于管理用户、角色、声明等身份相关的功能。以下是ASP.NET Core Identity的主要组成部分&#xff1a; User Mana…