自考教材《java语言程序设计》习题解答

上传人:宝路 文档编号:21577400 上传时间:2017-11-24 格式:DOC 页数:18 大小:175.56KB
返回 下载 相关 举报
自考教材《java语言程序设计》习题解答_第1页
第1页 / 共18页
自考教材《java语言程序设计》习题解答_第2页
第2页 / 共18页
自考教材《java语言程序设计》习题解答_第3页
第3页 / 共18页
自考教材《java语言程序设计》习题解答_第4页
第4页 / 共18页
自考教材《java语言程序设计》习题解答_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《自考教材《java语言程序设计》习题解答》由会员分享,可在线阅读,更多相关《自考教材《java语言程序设计》习题解答(18页珍藏版)》请在金锄头文库上搜索。

1、第四章习题解答4.1 举例说明如何声明、创建和初始化一维数组。声明一维数组有两种格式:数组元素类型 数组名; 或者 数组元素类型 数组名例如 String subStr1; int aa;创建一维数组有三种方法:先声明后创建 先用前面的两种方式声明数组,然后使用:数组名字new 数组元素类型元素个数; 创建例如 int aa;aa=new int6;在声明时创建 数组元素类型 数组名( 或者是:数组元素类型 数组名) new 数组元素类型元素个数;例如 int aa=new int6;直接赋值创建 例如 int aa=2,3,4,5,6,7;4.2 举例说明如何声明、创建和初始化多维数组。声明

2、二维数组:类型 数组名 类型 数组名 类型 数组名 例如:声明 Sting subStr ; String subStr; String subStr ;创建 (1)String subStr =new String35;(直接分配,平衡数组)(2)String subStr =new String3 ;(从最高维开始对每一维分配不等长空间,非平衡数组)subStr0=new String4;/第 1 个子数组有 4 个元素subStr1=new String5;/第 2 个子数组有 5 个元素 subStr2=new String2;/第 3 个子数组有 2 个元素 (3)int x=5,6

3、,7,8,9,10,11,18,19,10,10,2,98;/直接赋值创建初始化:数组创建后,如果没有初始化,则根据类型 java 会自动赋予默认值。一般用循环语句对其动态初始化,例如,以下循环给三维整型数组 aa 初始化为三角数组。int a=new int5;int aaa=new int 433;for (int i=0;in)achange-zero=value+;/对a10,a,a,a,a,a赋值else/偶数轮,即对应第2 、 4轮:5-9,17-25if(jn)a-zerochange=value+;n+;/变量n增1change+;/变量change增1zero=0;/zero

4、恢复为0String out=;for(int i=0;ilen2)/确定使str3字符串的长度小于或等于Str4的长度 len3=len1;len1=len2;len2=len3;str3=str2;str4=str1; elsestr3=str1;str4=str2;for( i=len1;i=0;i-)/通过这个for嵌套循环找出一个最长相同字符列,注意i是从大到小循环的for( j=0;jt3.length()/如果刚才取出的两个串相等并且长度大于前轮已经取出的串(放在t3中)长度,则将其赋值给前面已经取出的串(即t3)t3=t1;/保证t3中存放的是最长的相同字符串System.ou

5、t.println(两字符串 为 :+str1+n+str2);System.out.println(两字符串中最 长的相同字符列代 码是: );/System.out.println(两字符串中最长的相同字符列代码是:+t3);/根据上一个循环确定的最 长相同字符列的长度找出两字符串中所有的最长相同字符列。请同学们思考一下,为什么还要用循环输出,直接输出上面求出的t3串行不行?为什么?for(i=len1;i=0;i-) for( j=0;j0)same = temp;if(longSame.length() =0;i-)ci=ai+bi+carry; if(ci10000)/大于5 位数则

6、进位ci=ci-10000;carry=1; elsecarry=0; return c;public static int subtract(int a,int b)/减法实现 int borrow=0;/借位int c=new inta.length; for(int i=c.length-1;i=0;i-) if(a0=0) borrow=0; elseborrow=1;ci=ci+10000; return c; public static int multi(int a,int b)/乘法实现 int carry=0;/进位int c=new inta.length+b.length

7、;/两数相乘会使结果数组长度变长 int d=new intc.length;int r,s;for(r=c.length-1,s=a.length-1;r=c.length-a.length;r-,s-) dr=as; int i,j,k,t;for(i=c.length-1;i=c.length-a.length-1 ;i-) for(k=i,t=i;k=0;k-) for( j=b.length-1;j=0;j-) int temp=dk*bj+carry; if(t=0)break;ct=(ct+temp)%10000; carry=(ct+temp)/10000; t=t-1; re

8、turn c;public static void getBigNumber(int x)/输出大整数 int j=0;while(xj=0)/当数组中第一个不为0 的元素左边有0的元素时,不输出0if(j=x.length-1)/当循环已到数组最后一个元素时,退出循环break; j+;for(int i=j; ij) if(xi10)System.out.print(000+xi); else if(xi100)System.out.print(00+xi);else if(xi1000)System.out.print(0+xi); elseSystem.out.print(String

9、.valueOf(xi); if(i=j)System.out.print(String.valueOf(xi); public static void main(Stringargs) System.out.println(以数组形式显示两个大整数,如果两个数 长度不等时,在短数前补0使两数 长度相等 ); int a=665,2468,9999,5698; int b=321,1211,87,7896;System.out.println(两个大整数: );for (int i=0;ia.length;i+)if(ai10)System.out.print(000+ai); else if

10、(ai100)System.out.print(00+ai);else if(ai1000)System.out.print(0+ai); elseSystem.out.print(ai);System.out.println();for (int i=0;ib.length;i+)if(bi10)System.out.print(000+bi); else if(bi100)System.out.print(00+bi);else if(bi1000)System.out.print(0+bi); elseSystem.out.print(bi);System.out.println();i

11、nt c1=BigNumber.add(a,b); System.out.println(两者相加: );BigNumber.getBigNumber(c1); System.out.println();int c2=BigNumber.subtract(a,b); if(a0b0)System.out.print(-); System.out.println(两者相减: );BigNumber.getBigNumber(c2);System.out.println();int c3=BigNumber.multi(a,b); System.out.println(两者相乘: );BigNumber.getBigNumber(c3); System.out.println();

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号