ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:41.80KB ,
资源ID:12010341      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/12010341.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(java经典基础练习题及参考答案.docx)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

java经典基础练习题及参考答案.docx

1、 1. 写一个函数,计算一个整数数组的平均值 import java.util.Random; public class javaSevenDayLianXi { public static void main(String[] args) { int arr[] = new int[10]; Random score = new Random(); float sum = 0.0f; System.out.print("这组数为:"); for (int i = 0; i < arr.length; i++) { arr[i] = score.

2、nextInt(101); sum += arr[i]; System.out.print(arr[i] + " "); } System.out.println(); System.out.println("数组arr的平均值为:" + sum / arr.length); } } 2. 自定义一个整数数组a,读入一个整数n,如果n 在数组中存在,则输出n 的下标;如果 不存在,则输出-1。 Scanner sca = new Scanner(System.in); int []a = {0,1,2,3,4,5,6,7,8,9}; S

3、ystem.out.print("请输入一个数:"); int shuJu = sca.nextInt(); boolean bool = true; for(int i=0;i

4、 []a = {12,34,563,2,45,778,554,4421,4456,6786}; Arrays.sort(a); int min=a[0]; int max=a[a.length-1]; System.out.println("数组中最小的数为:"+min+",最大的数为:"+max); 4. *给定一个数组,把这个数组中所有元素顺序进行颠倒。 import java.util.Random; public class javaSevenDayLianXi { public static void main(String[] args) {

5、 int arr[] = new int[10]; int shu=0; Random score = new Random(); System.out.print("颠倒前的arr组数值为:"); for (int i = 0; i < arr.length; i++) { arr[i] = score.nextInt(101); System.out.print(arr[i] + " "); } for(int i=0;i<=(arr.length-1)/2;i++){ shu=arr[i]; arr[i]=arr[

6、arr.length-1-i]; arr[arr.length-1-i]=shu; } System.out.println(); System.out.print("颠倒后的arr数组值为:"); for(int i :arr) System.out.print(i+" "); } } 5. *数组的扩容。 给定一个数组,要求写一个expand 函数,把原有数组的长度扩容一倍,并保留原有数 组原有的内容。 例如,给定一个数组int[] a = {1,2,3},则扩容之后,a 数组为:{1,2,3,0,0,0} public class j

7、avaNineDay { public static void main(String[] args) { int[] arr = { 1, 2, 3, 4, 5, 6, 7, 8 }; arr = setArrays(arr); for (int term : arr) System.out.print(term + " "); } public static int[] setArrays(int[] arr) { int[] arrays = new int[arr.length * 2]; System.arraycopy(arr, 0

8、 arrays, 0, arr.length); return arrays; } } 6. *数组的插入和删除 写两个函数,一个函数为delete 函数,声明如下: public static void delete(int pos) 该函数表示删除数组pos 位置上的元素。 第二个函数为insert 函数,声明如下: public static void insert(int pos, int value) 该函数表示在数组pos 位置上插入value 值。 为了能在多个函数中使用同一个数组,需要把这个数组写在函数的外面,类的里面,并 使用static 修饰

9、 为了方便,还应该定义一个index 变量,用来保存数组的有效元素的个数。 例如下面的代码: public class TestInsertDelete{ static int[] a = {1,3,2,5,7}; //多个函数可以直接操作该数组 static int index = 5; public static void main(String args[]){ delete(2); //1 3 5 7 insert(1, 4); //1 4 3 5 7 insert(0, 6); //6 1 4 3 5 7 } public static void delete

10、int pos){ … } public static void insert(int pos, int value){ … } } 实现方式: 1. delete 方法:把数组pos 位后的所有元素向前移动1 位 2. insert 方法:把数组pos 位以及之后的元素向后移动1 位,然后设置value。 要注意的是,insert 时有可能需要数组扩容。 有效元素的个数的含义:对于a 数组,调用一次delete 之后,a 数组的长度不变, 长度依然为5,然而有效元素的个数为4 个。 Tips: insert 方法中,如何判断是否需要扩容:比较有效元素的个数和数组

11、的长度,如果这 两者一致,则需要扩容。 public class javaNineDay { static int[] arr = { 1, 2, 3, 4, 2, 5, 6, 7, 2, 8, 9 }; static int index = arr.length; public static void main(String[] args) { System.out.print("初始数组为:"); for(int term:arr) System.out.print(term+" "); System.out.print("\n删除2后的数组为:"

12、" "); delete(2); System.out.print("\n插入100后的数组为:"+" "); insert(5, 100); } public static void delete(int pos) { int num = index; for (int i = 0; i < index; i++) { if (arr[i] == pos && i < index - 1) { System.arraycopy(arr, i + 1, arr, i, index - 1 - i); arr[--num]

13、 0; } else if (arr[i] == pos && i == index - 1) { arr[--num] = 0; } } index = num; for (int term : arr) { if (term > 0) { System.out.print(term + " "); } } } public static void insert(int pos, int value) { int arrays[]; if (index == arr.length) {

14、 arrays = new int[index + 1]; System.arraycopy(arr, 0, arrays, 0, index); } else arrays = arr; System.arraycopy(arrays, pos, arrays, pos + 1, index - pos); arrays[pos] = value; index++; for (int term : arrays) { if (term > 0) { System.out.print(term + " "); }

15、} } } 7. *完成数组的冒泡排序算法:给定一个数组:int[] a = {1,3,2,7,5},利用冒泡排序对其按照 从小到大的顺序排序,然后输出结果。 public class javaSevenDayLianXi { public static void main(String[] args) { int[] arr = { 1, 3, 2, 7, 5 }; int term = 0; for (int i = 0; i < arr.length - 1; i++) { for (int j = i + 1; j < arr.length

16、 j++) { if (arr[i] > arr[j]) { term = arr[j]; arr[j] = arr[i]; arr[i] = term; } } } System.out.print("按冒泡排序后的结果为:"); for (int i : arr) System.out.print(i + " "); } } 8. *使用第二种算法对数组进行排序 import java.util.Arrays; public class javaSevenDayLianXi { pu

17、blic static void main(String[] args) { int[] arr = { 1, 3, 2, 7, 5 }; Arrays.sort(arr); System.out.print("用第二种方法给数组排序后的结果为:"); for (int i : arr) System.out.print(i + " "); } } 杨辉三角的特点: 1. 第i 行有i 个元素 2. 每一行的第一个元素和最后一个元素都为1 3. 除了1 之外,每个元素的值,都等于上一行同位置的元素以及前一个元素的和。 例如: 1 4 6 4 1

18、 的下一行 1 a1 a2 a3 a4 1 a1 = 4 + 1 = 5 a2 = 6 + 4 = 10 a3 = 4 + 6 = 10 a4 = 1 + 4 = 5 依次类推。 要求:读入一个整数n,输出杨辉三角的前n 行 import java.util.Scanner; public class javaSevenDayLianXi { public static void main(String[] args) { Scanner sca = new Scanner(System.in); System.out.print("请输入杨辉三角的行数:")

19、 int row = sca.nextInt(); int arr[][] = getArrays(row); for (int[] a : arr) { for (int term : a) System.out.print((term> 0 ? term : "") + " "); System.out.println(); } } public static int[][] getArrays(int row) { int arr[][] = new int[row][row]; for (int i = 0

20、 i < arr.length; i++) { arr[i][0] = 1; arr[i][i] = 1; } for (int i = 1; i < arr.length; i++) { for (int j = 1; j <= i; j++) { arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1]; } } return arr; } } 9. *数学黑洞6174 已知:一个任意的四位正整数。将数字重新组合成一个最大的数和最小的数相减,重复 这个过程,最多七步, 必得6

21、174。即:7641-1467=6174。将永远出不来。 求证:所有四位数数字(全相同的除外),均能得到6174。输出掉进黑洞的步数。 import java.util.Arrays; import java.util.Scanner; public class javaSixDay { public static void main(String[] args) { Scanner sca = new Scanner(System.in); int shu, max = 0, min = 0, result = 0, biaoShi = 0; int[] arr =

22、 new int[4]; while (true) { boolean bool = true; int count = 0; if (biaoShi == 0) System.out.print("请输入一个四位数(全相同的除外):"); shu = sca.nextInt(); if (shu >= 1000 && shu <= 9999) { result = shu; do { arr[0] = result / 1000; arr[1] = result / 100 % 10;

23、 arr[2] = result / 10 % 10; arr[3] = result % 10; if (arr[0] == arr[1] && arr[1] == arr[2] && arr[2] == arr[3]) { System.out.print("请重新输入一个四位数:"); bool = false; biaoShi=1; break; } else biaoShi = 0; max = setResult(arr, 0); m

24、in = setResult(arr, 1); result = max - min; count++; } while (result != 6174); if (bool) System.out.println(shu + "运行了" + count + "次后,结果变为6174。"); }else biaoShi=0; } } // 计算最大值,最小值 public static int setResult(int[] shu, int biaoshi) { int result = 0

25、 j; Arrays.sort(shu); if (biaoshi == 0) { j = 0; for (int i : shu) { result += (int) (i * Math.pow(10, j));// 获取最大值 j++; } } if (biaoshi == 1) { j = 3; for (int i : shu) { result += (int) (i * Math.pow(10, j));// 获取最小值 j--; } } return re

26、sult; } } 10. *筛选法求质数:输入一个整数n,求小于这个整数的所有质数。 算法:定义一个长度为n 的boolean 数组,true 表示是质数,false 表示不是质数。初始 均为true。之后从2 开始循环: 1. 找到第一个值为true 的下标i 2. 把所有下标为i 的倍数的值置为false。 直到扫描完数组中的所有数值。 最后遍历数组,如果下标i 的值为true,则说明i 为质数。 import java.util.Scanner; public class javaSevenDayLianXi { public static void mai

27、n(String[] args) { Scanner sca = new Scanner(System.in); System.out.print("请输入一个大于2的整数:"); int n = sca.nextInt(); int count = 0; boolean[] bool = new boolean[n]; if (true) { bool[2] = true; for (int i = 3; i < n; i++) { if (i % 2 == 0) bool[i] = false; else

28、 bool[i] = true; } for (int i = 3; i <= n / 2; i++) { for (int j = i; j < n; j += 2) { if (j % i == 0 && j != i) bool[j] = false; } } System.out.print("小于" + n + "的所有质数为:"); for (boolean lean : bool) { if (lean) System.out.print(count + "

29、"); count++; } } else System.out.println("输入的数不大于2!"); } } 11. **定义一个奇数阶二维数组,把每个元素顺序填入不同的自然数,要求行列和对角线元素 相加的结果相等 算法: 1. 第一个数字填在第一行正中间 2. 如果可以填在斜上方,则数字尽量填在斜上方 3. 如果斜上方出了上边界,则数字填入下一列最下端 4. 如果斜上方出了右边界,则数字填入上一行最左端 5. 如果既出了右边界,又出了上边界,则数字填入上一个数字的下方的 6. 如果斜上方已经被填过,则数字填入上一个数字的下方

30、 要求:读入一个奇数n,按照上述规则,输出n*n 的方阵。 import java.util.Scanner; public class javaEightDayLianXi { public static void main(String[] args) { Scanner sca = new Scanner(System.in); int num, count = 0; int rowSub = 0, listSub = 0; while (true) { System.out.print("请输入一个奇数:"); num = sca

31、nextInt(); if (num % 2 != 0) break; } int arr[][] = new int[num][num]; listSub = num / 2; while (count < num * num) { count++; arr[rowSub][listSub] = count; if (rowSub == 0 && listSub < num - 1) { rowSub = num - 1; listSub++; } else if (rowSub > 0 && l

32、istSub < num - 1 && arr[rowSub - 1][listSub + 1] == 0) { rowSub--; listSub++; } else if (rowSub > 0 && listSub == num - 1) { rowSub--; listSub = 0; } else if (rowSub > 0 && listSub < num - 1 && arr[rowSub - 1][listSub + 1] != 0) { rowSub++; } else if

33、rowSub == 0 && listSub == num - 1) { rowSub++; } } for (int[] score : arr) { for (int term : score) System.out.print(term + "\t"); System.out.println(""); System.out.println(""); } } } 12. **十五个猴子围成一圈选大王,依次1-7 循环报数,报到7 的猴子被淘汰,直到最后一 只猴子成为大王。问,哪只猴子最后能成为大王? 总

34、数 要输入 ,从哪一只开始要输入,点到几要输入 public class javaSevenDay { public static void main(String[] args) { int all = 15, start = 1, end = 7, num; System.out.print("出局的猴子有:"); int[] monkey = new int[all + 1]; num = all + 1; monkey[0] = 0; for (int i = 1; i < monkey.length; i++) monkey[i] = 1

35、 for (int i = 1; i <= end; i++) { if (all == 1) break; else if (i == end) { all--; i = 0; monkey[start] = 0; System.out.print(start + " "); } do { start++; start = start % num; } while (monkey[start] != 1); } System.out.println(); S

36、ystem.out.print("猴王为第" + start + "只猴子。"); } } 13. **螺旋填数 读入两个整数m,n,输出一个m 行n 列的矩阵,这个矩阵是1~m*n 这些自然数按照右、 下、左、上螺旋填入的结果。 例如:读入4, 5, 则输出 1 2 3 4 5 14 15 16 17 6 13 20 19 18 7 12 11 10 9 8 import java.util.Scanner; public class javaEightDay { public static void main(String[] args) { Scan

37、ner sca = new Scanner(System.in); System.out.print("请输入矩阵的行数"); int row = sca.nextInt(); System.out.print("\n请输入矩阵的列数:"); int list = sca.nextInt(); int[][] arr = new int[row][list]; int count = 0; //数组存储的值。 int rowSub = 0, listSub = 0;//数组的行下标和列下标 final int up = 1, down = -1,

38、 left = 2, right = -2;//螺旋时的四个状态 int start = right;//初始状态 int circle = 1; //第一圈 while (count < row * list) { count++; arr[rowSub][listSub] = count; switch (start) { case right: if (listSub < list - circle) listSub++; else { start = down; rowSub+

39、 } break; case down: if (rowSub < row - circle) rowSub++; else { start = left; listSub--; } break; case left: if (listSub > circle - 1) listSub--; else { start = up; rowSub--; } break; case up: if (rowSub > circle) rowSub--; else { circle++; start = right; listSub++; } break; } } for (int[] score : arr) { //输出数组 for (int term : score) System.out.print(term + " "); System.out.println(); } } }

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服