JAVA 练习题第4章数组字符串和向量

合集下载

java语言基础---数组向量字符串分析

java语言基础---数组向量字符串分析

}
2018年 10月21日星期 } 日
NCEPU
一维数组
2018年10月21日星期 日
NCEPU
一维数组
2018年10月21日星期 日
NCEPU
一维数组
2018年10月21日星期 日
NCEPU
数组边界
数组类中有唯一的一个成员变量:length,用来表示数组的 长度,即数组元素的个数。 在Java中,数组的下标从0开始,到length-1结束,即数组 a的第一个元素是a[0],最后一个元素是a[length-1]。
该程序因使用了多个变量而变得混乱,并且占用了过多的命
名空间。
每个变量都是独立的,而其实它们应当是某一个日期的组成
部分,这样定义无法体现整体的联系。
2018年10月21日星期 日
NCEPU
复合数据类型
复合数据类型由程序员在源程序中定义,把描述整个 对象各个不同方面的变量放到一个定义中,建立该模
一维数组的创建

<数组名> = new <类型> [<长度>];
所有的引用类型都需要用 new 来初始化 2018年10月21日星期

Java中没有静态定义的数组,数组的内存都是通过 此时系统创建了具体的数 a 0x03456789 a[0] 0 0 new动态分配的。 a[1] 组对象,为每个数组元素 a[2] 分配了具体的内存单元, 0 a[3] 0 并进行了默认的初始化 a[4] 0
数组创建后就不能改变其大小,但是可以使用相同的引用变量指 a = new int [6]; 向一个全新的数组。本例中,第一个数组实际上丢失了,除非还 有其他引用指向它
2018年10月21日星期 日

java程序设计第1-4章练习题参考答案 (1)

java程序设计第1-4章练习题参考答案 (1)

一、选择题1.下面供选字符序列中,不属于...Java语言关键字的是( A ) A.goto B.null C.false D.native2.以下是关于Java语言关键字的叙述,其中正确的是( C )A.关键字可以用来描述类的成员类型,但是不能描述普通变量B.关键字由字母(包括英文字母、下划线字符、美元字符、文字字符)和数字组成C.关键字不可以用作变量、方法、类或标号的标识符D.break和main都是Java语言的关键字3.下述字符组合不能作为Java程序标识符的是(D)A.Aa12 B.XC.y D.5x4.在下述字符串中,不属于...Java语言关键字的是( C )A.float B.newC.java D.return5.下列字符组合不能作为Java整型常量的是( A )A.078B.0x3ACBC.5000D.0x3ABC6.设有如下程序:public class Test {public static void main(String[] args) {String foo=args[1];String bar=args[2];String baz=args[3];System.out.println("baz= "+baz);}}下述哪一行命令可以使得执行该程序的输出为baz= 2 ( C )A) java Test 2222 B) java Test 1 2 3 4C) java Test 4 2 4 2 D) java Test 4 3 2 17.在Java语言中,int类型数据的长度是( C )A.1个字节B.2个字节C.4个字节D.8个字节8. 用Java虚拟机执行类名为Hello的应用程序的正确命令是( D )。

A) java Hello.class B) Hello.class C) java Hello.java D) java Hello9.执行以下代码,输出结果是( B )int x=5,y=7,u=9,v=6;System.out.println(x>y ? x+2:u>v ? u-3:v+2);A.8B.6C.7D.true10.下列修饰符中与访问控制无关的是(C)。

JAVA第四章练习题

JAVA第四章练习题

第四章 习题课

1.设有数组定义:int MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70}; 则执行以 下几个语句后的输出结果是 。
int s = 0 ; for (int i = 0 ; i < MyIntArray.length ; i + + ) if ( i % 2 = = 1 ) s += MyIntArray[i] ; System.out.println(s); 答案为
12、关于下面的程序Test.java说法正确的是
13、应用程序的main方法中有以下语句, 则输出的结果是 ( )。 int b[][]={{1, 1, 1}, {2,2}, {3}}; int sum=0; for(int i=0; i<b.length; i++) { for(int j=0; j<b[i].length; j++) { sum+=b[i][j]; 答案为 A } } System.out.println("sum="+sum); A) 10 B)6 C) 9 D) 13


答案为 A

9、应用程序的main方法中有以下语句,则
输出的结果是 ( )。 int b[][]={{1}, {2,2}, {2,2,2}}; int sum=0; for(int i=0;i<b.length;i++) { for(int j=0;j<b[i].length;j++) { sum*=b[i][j]; } 答案为 A } System.out.println("sum="+sum); A) 32 B)11 C) 2 D) 3

第4章 java课后作业_数组

第4章 java课后作业_数组

第4张课后作业_数组知识点:一维数组、二维数组一、填空及选择:1.数组元素的小标总是从___0___开始。

2.对于数组int[][]={{1,2,3},{4,5,6}}来说,t.length等于__2____,t[0].length等于___3__。

3.已知数组a的定义为“int a[]={1,2,3,4,5};”,则a[2]=__3__,数组b的定义为“int b[]=newint[5];”,则b[2]=__ 0___,数组c的定义为“Object [] c=new Object[5];”,则c[2]=_____。

4.调用数组元素时,用__数组名__和__元素下标___来唯一确定数组中的元素。

5.下列___C__语句有错误A.int [] a;B.int [] b=new int[10];C. int []c=new int[];D.int d[]=null;6.下列___D__语句有错误A.int a[][]=new int[5][5];B.int [][] b=new int[5][5];C.int []c[]=new int[5][5];D.int [][]d=new int[5,5];7.关于下面的程序,正确的结论是___A__public class Demo1{public static void main(String [] args){int a[]=new int[5];boolean b[]=new boolean[5]; //布尔值自动初始化为falseSystem.out.println(a[1]);System.out.println(b[2]);}}A.运行结果为0 falseB.运行结果为1 trueC.程序无法编译D.可以通过编译但结果不确定二、编程题:1.定义一个整数定义的数组,求奇数个数和偶数个数。

2.用20个整数初始化数组,只是输出前10个数。

用break控制3.计算10~20的整数的平方值,将结果保存在一个数组中。

Java程序设计 第4章习题参考答案[2页]

Java程序设计 第4章习题参考答案[2页]

第4章习题参考答案一、简答题1.Java提供了哪些数据类型,全部写出来。

整型:byte,short,int,long数值型浮点型:float,double基本数据类型字符型:char数据类型布尔型:boolean类:class复合数据类型字符串:String接口:interface2.如何进行数据类型的转换?有2种方式:自动类型转换:运算时,不同类型的数据先转换成同一类型后再参与运算,转换的原则是位数少的类型转换成位数多的类型,由系统自动处理。

强制类型转换:当位数多的类型向位数少的类型进行转换时,需要用户明确说明要转换的类型,需要用户在程序中指明。

3.类的修饰符有哪些?有什么区别?类的修饰符包括访问控制修饰符、静态修饰符static、最终说明符final。

访问控制修饰符包括4种类型:privat、default、protected、public。

用static声明的成员变量被视为类的成员变量,而不能当成实例对象的成员变量,也就是说,静态变量是类固有的,可以被直接引用,而其它成员变量声明后,只有生成对象时才能被引用。

4.public的类和abstract的类有什么不一样?public的类是公共类,可以被继续,可以实例化,可以被其他包访问。

abstract的类是抽象类,其中一定含有抽象方法,abstract class的子类在继承它时,对非抽象方法既可以直接继承,也可以覆盖;而对抽象方法,可以选择实现,也可以通过再次声明其方法为抽象的方式,无需实现,留给其子类来实现,但此类必须也声明为抽象类。

5.什么是最终类?如何声明?最终类不能被继承,也没有子类。

final类中的方法默认是final的。

final方法不能被子类的方法覆盖,但可以被继承。

final成员变量表示常量,只能被赋值一次,赋值后值不再改变。

声明方法:final class ClassName。

二、操作题1.创建一个学生类Student,包括学号no、姓名name、年龄age、性别sex四个属性以及学习study、实践practice两个方法。

数据机构第四章——java语言描述 第4章 串与数组 习题参考答案..

数据机构第四章——java语言描述 第4章 串与数组 习题参考答案..

习题四参考答案一、选择题1.下面关于串的叙述中,哪一个是不正确的?(B )A.串是字符的有限序列B.空串是由空格构成的串C.模式匹配是串的一种重要运算D.串既可以采用顺序存储,也可以采用链式存储2.串的长度是指( A )A. 串中包含的字符个数B. 串中包含的不同字符个数C. 串中除空格以外的字符个数D. 串中包含的不同字母个数3.设有两个串p和q,其中q是p的子串,求q在p中首次出现的位置的算法称为( C )A.求子串B.联接C.模式匹配D.求串长4.设主串的长度为n,模式串的长度为m,则串匹配的KMP算法时间复杂度是( C )。

A. O(m)B. O(n)C. O(n + m)D. O(n×m)5. 串也是一种线性表,只不过( A )。

A. 数据元素均为字符B. 数据元素是子串C. 数据元素数据类型不受限制D. 表长受到限制6.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主进行存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为( B )。

A. 13B. 33C. 18D. 407. 有一个二维数组A[1..6, 0..7] ,每个数组元素用相邻的6个字节存储,存储器按字节编址,那么这个数组占用的存储空间大小是(D )个字节。

A. 48B. 96C. 252D. 2888.设有数组A[1..8,1..10],数组的每个元素占3字节,数组从内存首地址BA开始以列序为主序顺序存放,则数组元素 A[5,8]的存储首地址为( B )。

A. BA+141B. BA+180C. BA+222D. BA+2259. 稀疏矩阵的三元组存储表示方法( B )A. 实现转置操作很简单,只需将每个三元组中行下标和列下标交换即可B. 矩阵的非零元素个数和位置在操作过程中变化不大时较有效C. 是一种链式存储方法D. 比十字链表更高效10. 用十字链表表示一个稀疏矩阵,每个非零元素一般用一个含有( A )域的结点表示。

Java新教材第四章面试题

Java新教材第四章面试题

第4章数组和字符串操作 (63)4.1 数组 (63)4.1.1 为什么使用数组 (63)4.1.2 数组的基本概念 (64)●什么是数组?答案:数组是编程语言中非常常见的一种数据结构,它用来存储一组相同数据类型数据。

4.1.3 一维数组的创建和使用 (64)●下面哪一项是正确的定义一维数组的方式?答案:两种方式都正确。

4.1.4 一维数组的应用 (70)4.1.5 多维数组 (76)●什么是多维数组?答案:Java中支持多维数组,也就是“数组的数组”。

多维数组的声明是通过每一维一组方括号的方式来实现的。

●如何把一段逗号分割的字符串转换成一个数组?答案:如果不查jdk api,我很难写出来!我可以说说我的思路:用正则表达式,代码大概为:String [] result = orgStr.split(“,”);用StingTokenizer ,代码为:StringTokenizer tokener = StringTokenizer(orgStr,”,”);String [] result = new String[tokener .countTokens()];Int i=0;while(tokener.hasNext(){result[i++]=toker.nextToken();}●数组有没有length()这个方法?答案:数组没有length()这个方法,有length的属性。

String有有length()这个方法。

4.2 String字符串 (77)●请问数组和String有没有length()这个方法或length的属性。

·VI · 答案:数组没有length()这个方法,但有length 的属性。

String 有length()这个方法。

● 什么是字符串?答案:字符串是一系列字符组成的序列。

4.2.2 如何使用String 字符串....................................................................................77 ● String 字符串对象建立后,还能修改吗,为什么?答案:不能,因为String 类是字符串常量类,该类对象建立后不能修改。

第4章:数组和字符串

第4章:数组和字符串
【真题练习】设有以下代码: String s l="123"; String s2="123"; String s3=new String("123"); 则表达式s1==s2和s1==s3的值分别是( A.true,true B.false,false C.true,false D.false,true )
4.1.1一维数组
2. 创建一维数组
创建一维数组就是为数组分配存储空间,需指定数组长度。 数组创建后,数组名就标识用于存储数组元素的存储空间(引用)。 创建一维数组的3种方法:
(1) 先声明后创建
数组元素类型 数组名[]; 数组名 = new 数组元素类型[元素个数] ; 如:int intArray []; intArray = new int[5];4.2.3 字符串基本操作
字符串比较的注意事项:
表达式 str1.equals(str2)与表达式 str1==str2 的差异 在于:
• 前者表示所引用的两个字符串的内容是否相同, • 后者表示str1 与 str2是否引用同一个对象。 【实战编程技巧:如何避免潜在的空指针异常】
练习题
4.1 数组
4.2 字符串
4.1 数组
数组是将一组相同类型的数据顺序存储,组成的一 种复合数据类型。 数组的特点:
数组中的所有元素的数据类型相同。 数组中的元素连续顺序存储。 数组中每个元素按存储顺序对应一个下标,下标从0开始顺序编号 ,引用数组元素通过数组名和它的下标确定。 数组有一维数组和多维数组之分,数组元素的下标个数确定数组的 维数。
练习题
【真题练习】设有数组a和b的定义如下: int[]a={1,2,3}; int[]b={4,5,6} …… 执行以下代码“a=b;”,除了完成赋值操作之外,引起 系统额外要做的工作是_________。

Java程序设计习题附答案(四)

Java程序设计习题附答案(四)

第四部分数组、字符串、向量和哈希表1、下面关于向量的描述正确的是(ABCD)A、向量在功能上与数组类似,只是其元素个数可以改变,并且向量元素必须是引用类型;B、他们都有成员域实际元素个数size和容量capacty;C、数组的存储大小不能改变,而向量的存储能力可以改变;D、数组的容量成员为length,而向量的容量为capacity。

2、下面正确声明一个一维数组的是(A B)。

A、String [] aB、String a[]C、char a[][]D、String a[10]3、执行完以下代码int [ ] x = new int[10];后,以下哪项说明是正确的(A)A.x[9]为0 B.x[9]未定义C.x[10]为0 D.x[0]为空4、关于以下程序段,正确的说法是(C)1.String s1=“a”+“b”;2. String s2=new String(s1);3. if(s1= =s2)4. = is succeeded”);5. if (s2))6. is su cceeded”);A.行4与行6都将执行B.行4执行,行6不执行C.行6执行,行4不执行C.行4、行6都不执行5、有整型数组:int[] x={2,33,88,5,10};, 则调用方法 (x) 后,数组x中的元素值依次是(B)。

A、B、C、D、6、下列数组初始化形式正确的是(A)。

A. int t1[][]={{1,2},{3,4},{5,6}};B. int t2[][]={1,2,3,4,5,6};C. int t3[3][2]={1,2,3,4,5,6};D. int t4[][]; t4={1,2,3,4,5,6};7、关于以下程序段,正确的说法是(C)1.String s1=”abc”+”def”;2. String s2=new String(s1);3. if(s1= =s2)4.= succeeded”);5. if (s2))6.succeeded”);A、行4与行6都将执行B、行4执行,行6不执行C、行6执行,行4不执行C、行4、行6都不执行8、下面的程序段执行后输出的结果是(C)。

考试酷java第四章

考试酷java第四章

第四章1. 关于内部类,下列说法不正确的是()。

内部类不能有自己的成员方法和成员变量2. 有一个类B,下面为其构造方法的声明,正确的是()。

B(int x) {}3. 为AB类定义一个无返回值的方法f,使得使用类名就可以访问该方法,该方法头的形式为()static void f()4. 在Java语言中,哪一个包中的类是自动导入的?()ng5. 定义外部类时不能用到的关键字是()。

protected6. 下列哪种类成员修饰符修饰的变量只能在本类中被访问?()private7. 定义一个公有double型常量PI,哪一条语句最好?()public final static double PI=3.14;8. 下面关于方法的说法,不正确的是()。

如果一个类定义了构造方法,也可以用该类的默认构造方法9. 下面关于类的说法,不正确的是()。

类就是对象10. 给出下面的程序代码:public class X4_1_3 {private float a;public static void m ( ){ }}如何使成员变量a被方法m( )访问()将private float a改为static float a11. 给出下面程序代码:byte[] a1, a2[];byte a3[][];byte[][] a4;下列数组操作语句中哪一个是不正确的?()a2 = a112. 下面代码运行后的输出结果为()。

public class X6_1_5 {public static void main(String[] args) {AB aa = new AB();AB bb;bb = aa;System.out.println(bb.equals(aa));}}class AB{ int x = 100; }true13. 设有下列数组定义语句:int a[] = {1, 2, 3};则对此语句的叙述错误的是()。

Java数组练习题(带答案)培训讲学

Java数组练习题(带答案)培训讲学

J a v a数组练习题(带答案)1)数组的元素通过下标来访问,数组Array的长度为 Array.length 。

2)数组复制时,"="将一个数组的引用传递给另一个数组。

3)JVM将数组存储在栈 (堆或栈)中。

4)数组的二分查找法运用的前提条件是数组已经排序。

5)Java中数组的下标的数据类型是整型。

6)数组最小的下标是 0 。

7)arraycopy()的最后一个参数指明复制元素的个数。

8)向方法传递数组参数时,传递的是数组的引用。

9)数组初始化包括数组的申明,创建和初始化。

10)数组下标访问超出索引范围时抛出数组越界异常11)浮点型数组的默认值是 0.0f 。

12)数组创建后其大小不能改变。

二选择题1.下面错误的初始化语句是_ABD__A. char str[]="hello";B. char str[100]="hello";C. char str[]={'h','e','l','l','o'};D. char str[]={'hello'};2.定义了一维int型数组a[10]后,下面错误的引用是_B__3. A. a[0]=1; B. a[10]=2; C. a[0]=5*2; D. a[1]=a[2]*a[0];4.下面的二维数组初始化语句中,正确的是____5. A. float b[2][2]={0.1,0.2,0.3,0.4}; B. int a[][]={{1,2},{3,4}};6. C. int a[2][]= {{1,2},{3,4}}; D. float a[2][2]={0};7.引用数组元素时,数组下标可以是_D___8. A. 整型常量 B. 整型变量 C. 整型表达式 D. 以上均可9.定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为____A. 24B. 25C. 18D. 1710.下列初始化字符数组的语句中,正确的是__B__11.A. char str[5]="hello"; B. char str[]={'h','e','l','l','o','\0'};12.C. char str[5]={"hi"}; D. char str[100]="";13.数组在Java中储存在 C 中14.A. 栈 B. 队列 C. 堆D. 链表15.下面程序的运行结果是____main() {int a[][]={{1,2,3},{4,5,6}};System.out.printf("%d", a[1][1]);}A. 3B. 4C. 5D. 616.下面程序的运行结果是_C___int x=30;int[] numbers=new int[x];x=60;System.out.println(numbers.length);}A. 60B. 20C. 30D. 5018.下面程序的运行结果是__BDF__19.main() {20.char s1[]="ABCDEF".toCharArray();21.int i=0;22.while(s1[i++]!='\0')System.out.println(s1[i++]);}A. ABCDEFB. BDFC. ABCDED. BCDE23.下面不是创建数组的正确语句C24. A.float f[][]=new float[6][6]; B.float f[]=new float[6];25. C.float f[][]=new float[][6]; D.float [][]f=new float[6][];26.下面不是数组复制方法的是(C)A. 用循环语句逐个复制数组B. 用方法arraycopyC. 用"="进行复制D. 用clone方法27.数组a的第三个元素表示为DA. a(3)B. a[3]C.a(2)D. a[2]28.当访问无效的数组下标时,会发生BA. 中止程序B. 抛出异常C. 系统崩溃D. 直接跳过29.使用arraycopy()方法将数组a复制到b正确的是AA. arraycopy(a,0,b,0,a.length)B. arraycopy(a,0,b,0,b.length)C.. arraycopy(b,0,a,0,a.length)D. arraycopy(a,1,b,1,a.length)30.关于数组默认值,错误的是 BA. char--'"u0000'B. Boolean--trueC. float--0.0fD. int-- 031.关于数组作为方法的参数时,向方法传递的是 AA. 数组的引用B. 数组的栈地址C. 数组自身D. 数组的元素32.关于数组复制,下列说法错误的是ACA. "="可以实现数组复制B. 运用循环语句进行数组复制必须两个数组长度相同C. arraycopy()方法没有给目标数组分配内存空间D. 数组复制是数组引用的传递33.下列语句会造成数组new int[10]越界是DA. a[0] += 9;B. a[9]=10;C. —a[9]D. for(int i=0;i<=10;i++) a[i]++;34.在JDK环境下编译JAVA源程序使用的命令是(B )A.javaB.javacC.jvmD.tomcatD. 子类不能使用父类的构造方法35.main方法是java Application 程序执行的入口点。

java语言程序设计第4章-习题参考答案

java语言程序设计第4章-习题参考答案

第4章习题解答1.声明一个数组,保存一个学生的数学、语文、英语、物理、化学等课程的成绩,编写一个程序,计算5门课程的平均成绩,精确到0.1分,成绩值从键盘录入。

import java.util.Scanner;public class XT_1_score {public static void main(String[] args) {// TODO Auto-generated method stubdouble score[] = new double[5];System.out.println("请分别输入数学、语文、英语、物理、化学的成绩(数字之间用空格格开):");double sum = 0, average = 0;Scanner in = new Scanner(System.in);int i;for (i = 0; i < 5; i++)score[i] = in.nextDouble();for (i = 0; i < 5; i++)sum += score[i];average = sum / 5;System.out.println("平均成绩为:" + String.format("%.1f", average));}2.编程实现统计50名学生的百分制成绩中各分数段的学生人数,即:分别统计出100分、90-99分、80-89分、70-79分、60-69分、不及格的学生人数。

import java.util.Scanner;public class XT_2_score_sore {public static void main(String[] args) {// TODO Auto-generated method stubdouble score[] = new double[50];int a = 0, b = 0, c = 0, d = 0, e = 0, f = 0, i;System.out.println("请依次输入50名学生的成绩(用空格隔开):");Scanner br = new Scanner(System.in);for (i = 0; i < 50; i++)score[i] = br.nextDouble();for (i = 0; i < 50; i++) {if (score[i] == 100)a++;if (score[i] >= 90 && score[i] <= 99)b++;if (score[i] >= 80 && score[i] <= 89)c++;if (score[i] >= 70 && score[i] <= 79)d++;if (score[i] >= 60 && score[i] <= 69)e++;if (score[i] < 60)f++;}System.out.println("成绩为100分的个数:" + a);System.out.println("成绩为90-99分的个数:" + b);System.out.println("成绩为80-89分的个数:" + c);System.out.println("成绩为70-79分的个数:" + d);System.out.println("成绩为60-69分的个数:" + e);System.out.println("成绩为不及格的个数:" + f);}}3.编写一个程序,实现打印输出字符串数组中最大值和最小值。

自考教材《JAVA语言程序设计(一)》第四章习题解答

自考教材《JAVA语言程序设计(一)》第四章习题解答

4.2 举例说明如何声明、创建和初始化多维数组。
声明二维数组:类型 数组名[ ][ ] 类型[ ][ ]数组名 类型[ ]数组名[ ] 例如: 声明 Sting subStr[ ][ ]; String [ ] [ ] subStr; String[ ] subStr[ ]; 创建 (1)String subStr[ ][ ]=new String[3][5];(直接分配,平衡数组) (2)String subStr[ ][ ]=new String[3][ ];(从最高维开始对每一维分配不等长空间,非 平衡数组) subStr[0]=new String[4];//第 1 个子数组有 4 个元素 subStr[1]=new String[5];//第 2 个子数组有 5 个元素 subStr[2]=new String[2];//第 3 个子数组有 2 个元素 (3)int[ ][ ] x={{5,6,7},{8,9,10,11},{18,19,10,10},{2,98}};//直接赋值创建 初始化:数组创建后,如果没有初始化,则根据类型 java 会自动赋予默认值。一般用循环 语句对其动态初始化,例如,以下循环给三维整型数组 aa 初始化为三角数组。 int a[]=new int[5]; int aaa[][][]=new int [4][3][3]; for (int i=0;i<a.length;i++) { a[i]=i+1; } for (int i=0;i<aaa.length;i++) { for (int j=0;j<aaa[i].length;j++) { for (int k=0;k<aaa[i][j].length;k++) { aaa[i][j][k]=(i+j+1)*(k+1);} } }

java每章经典练习题

java每章经典练习题

java每章经典练习题Java是一种面向对象的编程语言,具有良好的可移植性和跨平台性,被广泛应用于软件开发和网络编程。

对于学习Java的人来说,经典的练习题可以帮助他们巩固所学的知识并提升编程能力。

本文将为大家介绍一些Java每章经典练习题,以供学习者参考。

1. 第一章练习题1.1 编写一个程序,输出"Hello, World!"。

1.2 编写一个程序,计算1到100之间所有偶数的和。

1.3 编写一个程序,将一个字符串反转。

2. 第二章练习题2.1 编写一个程序,输入两个整数,输出它们的和。

2.2 编写一个程序,输入一个字符串,统计其中的字母个数。

2.3 编写一个程序,实现两个字符串的比较。

3. 第三章练习题3.1 编写一个程序,输入一个数字n,输出n的阶乘。

3.2 编写一个程序,输入一个数字n,输出n以内的所有质数。

3.3 编写一个程序,实现两个整数数组的合并。

4. 第四章练习题4.1 编写一个程序,输入一个字符串,判断其是否为回文字符串。

4.2 编写一个程序,输入一个字符串,统计其中的单词个数。

4.3 编写一个程序,实现二维数组的转置。

5. 第五章练习题5.1 编写一个程序,输入一个正整数,输出其二进制表示。

5.2 编写一个程序,输入一个字符串,将其中的每个单词首字母大写。

5.3 编写一个程序,实现矩阵的乘法。

通过完成以上练习题,学习者可以逐渐掌握Java编程的基本知识和技巧。

同时,在实践中解决问题,培养了解决实际编程难题的思维能力。

在编写程序时,学习者需要注意代码的简洁性和可读性,合理利用面向对象的思想,提高代码的重用性和可维护性。

总结:本文介绍了一些Java每章经典练习题,涵盖了从基本的输出到复杂的矩阵运算等多个知识点。

通过完成这些练习题,学习者可以巩固所学的知识,提高编程能力,为日后的Java开发和应用奠定基础。

希望本文能够对Java学习者有所帮助。

java4数组字符串向量(1)

java4数组字符串向量(1)
• 类 String
– 共有 个构造方法,其中两个不被赞成使用 共有11个构造方法, 个构造方法 (deprecated) – 参见 参见docs\index.html
创建String对象常用的三种方法
• String( ): 初始化一个新的 初始化一个新的String对象 对象 String s1=new String( ); s1=“您好”; 您好” 您好 • String(String value):初始化一个新的 对象, :初始化一个新的String对象,使 对象 其包含与参数字符串相同的字符序列 String s2; s2=“您好”; 您好” 您好 以上两句常合并为一句: 以上两句常合并为一句: String s2=“您好”; 您好” 您好 • String(char[ ] value): 分配一个新的 分配一个新的String对象,使它 对象, 对象 代表字符数组参数包含的字符序列 char c[]={‘您’, ‘好’}; 您 好 String s3=new String( c );
// allocate rows // allocate row 0 // allocate row 1
三维数组
• 思维的扩展 一维数组 思维的扩展: • 示例: 示例 二维数组 三维数组
class J_Fill3DArray { public static void main (String args[]) { int[ ][ ][ ] M = new int[4][5][3]; for (int row=0; row < 4; row++) { for (int col=0; col < 5; col++) { for (int ver=0; ver < 3; ver++) { M[row][col][ver] = row + col + ver; } // 内部 循环结束 内部for循环结束 } // for循环结束 循环结束 } // 外部 循环结束 外部for循环结束 } // 方法 方法main结束 结束 } // 类J_Fill3DArray结束 结束

Java程序设计第1-4章练习题参考答案完整版

Java程序设计第1-4章练习题参考答案完整版

一、选择题1.下面供选字符序列中,不属于...Java语言关键字的是( A ) A.goto B.null C.false D.native2.以下是关于Java语言关键字的叙述,其中正确的是( C )A.关键字可以用来描述类的成员类型,但是不能描述普通变量B.关键字由字母(包括英文字母、下划线字符、美元字符、文字字符)和数字组成C.关键字不可以用作变量、方法、类或标号的标识符D.break和main都是Java语言的关键字3.下述字符组合不能作为Java程序标识符的是(D)A.Aa12 B.XC.y D.5x4.在下述字符串中,不属于...Java语言关键字的是( C )A.float B.newC.java D.return5.下列字符组合不能作为Java整型常量的是( A )A.078B.0x3ACBC.5000D.0x3ABC6.设有如下程序:public class Test {public static void main(String[] args) {String foo=args[1];String bar=args[2];String baz=args[3];System.out.println("baz= "+baz);}}下述哪一行命令可以使得执行该程序的输出为baz= 2 ( C )A) java Test 2222 B) java Test 1 2 3 4C) java Test 4 2 4 2 D) java Test 4 3 2 17.在Java语言中,int类型数据的长度是( C )A.1个字节B.2个字节C.4个字节D.8个字节8. 用Java虚拟机执行类名为Hello的应用程序的正确命令是( D )。

A) java Hello.class B) Hello.class C) java Hello.java D) java Hello9.执行以下代码,输出结果是( B )int x=5,y=7,u=9,v=6;System.out.println(x>y ? x+2:u>v ? u-3:v+2);A.8B.6C.7D.true10.下列修饰符中与访问控制无关的是(C)。

java第4章习题答案

java第4章习题答案

2. 数 3. 4.
一个整型数组可以容纳的元素类型有哪些。 答:整型和字符型,byte 型 若有一个声明为“int[] a=new int[10]”的整型数组,可以引用的最小下标和 最大下标是多少? 答:最大下标为 0,最小下标为 9 若有一个声明为“int[] a=new int[10]”的整型数组,其每个元素的初始值是 多少? 答:初始值为 0 以下能对二维数组进行正确初始化的语句是( BC ) 。 A.int[][] a=new int[2][]{{1,2},{3,4}}; B. int[][] a=new int[][]{{1,2},{3,4}}; C. int[][ ] a={{1,2},{3,4}}; D. int[2][2] a={{1,2}下面程序的运行结果 class Happy { public static void main(String args[]) { int index=1; int a[] =new int[3]; int bas =a[index]; int baz =bas + index System.out.println( a[baz] ); } } 答:0
第四章 答案
1. 一个字符型数组,其有 5 个元素,初始值分别为'a','b','c','d','e',写出 可能的声明及初始化语句。 答 :(1)char[] ch={'a','b','c','d','e'}; (2) char[] ch=new char[5]; ch[0]='a'; ch[1]='b'; ch[2]='c'; ch[3]='d'; ch[4]='e'; (3) char[] ch=new char[]{'a','b','c','d','e'}; 获得一个数组可以容纳的元素个数的方法是什么? 答:利用数组型变量的一个整型属性 length,其表示数组可以容纳的元素个

Java数组练习题(带答案)

Java数组练习题(带答案)

一填空题1)数组的元素通过下标来访问,数组Array 的长度为Array.length。

2)数组复制时, "=" 将一个数组的引用传递给另一个数组。

3)JVM 将数组存储在栈(堆或栈 )中。

4)数组的二分查找法运用的前提条件是数组已经排序。

5)Java中数组的下标的数据类型是整型。

6)数组最小的下标是0。

7)arraycopy()的最后一个参数指明复制元素的个数。

8)向方法传递数组参数时,传递的是数组的引用。

9)数组初始化包括数组的申明,创建和初始化。

10)数组下标访问超出索引范围时抛出数组越界异常11)浮点型数组的默认值是0.0f。

12)数组创建后其大小不能改变。

二选择题1.下面错误的初始化语句是 _ABD__A. char str[]="hello";B. char str[100]="hello";C. char str[]={'h','e','l','l','o'};D. char str[]={'hello'};2.定义了一维 int 型数组 a[10] 后,下面错误的引用是 _B__A. a[0]=1;B. a[10]=2;C. a[0]=5*2;D. a[1]=a[2]*a[0];3.下面的二维数组初始化语句中,正确的是____A. float b[2][2]={0.1,0.2,0.3,0.4};B. int a[][]={{1,2},{3,4}};C. int a[2][]= {{1,2},{3,4}};D. float a[2][2]={0};4.引用数组元素时,数组下标可以是_D___A. 整型常量B. 整型变量C. 整型表达式D. 以上均可5.定义了 int 型二维数组 a[6][7] 后,数组元素a[3][4] 前的数组元素个数为 ____A. 24B. 25C. 18D. 176.下列初始化字符数组的语句中,正确的是__B__A. char str[5]="hello";B. char str[]={'h','e','l','l','o','\0'};C. char str[5]={"hi"};D. char str[100]="";7.数组在 Java中储存在 C 中A. 栈B.队列C.堆D.链表8.下面程序的运行结果是 ____main() {int a[][]={{1,2,3},{4,5,6}};System.out.printf("%d", a[1][1]);}A.3B.4C.5D.69.下面程序的运行结果是 _C___main() {int x=30;int[] numbers=new int[x];x=60;System.out.println(numbers.length);}A. 60B. 20C. 30D. 5010.下面程序的运行结果是 __BDF__main() {char s1[]="ABCDEF".toCharArray();int i=0;while(s1[i++]!='\0')System.out.println(s1[i++]);}A. ABCDEFB. BDFC. ABCDED. BCDE11.下面不是创建数组的正确语句 CA.float f[][]=new float[6][6];B.float f[]=new float[6];C.float f[][]=new float[][6];D.float [][]f=new float[6][];12. 下面不是数组复制方法的是(C)A. 用循环语句逐个复制数组B. 用方法 arraycopyC. 用 "=" 进行复制D. 用 clone 方法13.数组 a 的第三个元素表示为 DA. a(3)B. a[3]C.a(2)D. a[2]14. 当访问无效的数组下标时,会发生BA. 中止程序B. 抛出异常C. 系统崩溃D. 直接跳过15.使用 arraycopy()方法将数组 a 复制到 b 正确的是 AA. arraycopy(a,0,b,0,a.length)B. arraycopy(a,0,b,0,b.length)C.. arraycopy(b,0,a,0,a.length)D. arraycopy(a,1,b,1,a.length)16.关于数组默认值,错误的是BA. char--'"u0000'B. Boolean--trueC. float--0.0fD. int-- 017.关于数组作为方法的参数时,向方法传递的是AA. 数组的引用B. 数组的栈地址C. 数组自身D. 数组的元素18.关于数组复制,下列说法错误的是ACA."=" 可以实现数组复制B.运用循环语句进行数组复制必须两个数组长度相同C.arraycopy()方法没有给目标数组分配内存空间D.数组复制是数组引用的传递19. 下列语句会造成数组new int[10] 越界是 DA. a[0] += 9;B. a[9]=10;C. —a[9]D. for(int i=0;i<=10;i++) a[i]++;20.在 JDK环境下编译 JAVA源程序使用的命令是 (B )A.javaB.javacC.jvmD.tomcatD.子类不能使用父类的构造方法21.main 方法是 java Application 程序执行的入口点。

第四章练习答案

第四章练习答案

4.在下述Java语言语句中,错误..的创建数组的方法是( )A.int intArray [ ];intArray=new int[5];B.int intArray [ ]=new int[5];C.int [ ] intArray ={1,2,3,4,5};D.int intArray [5]={1,2,3,4.5};4.以下是关于字符串运算的代码,执行该代码段的输出结果是( )String s=″0123456789″,sl,s2;sl=s.substring(2);s2=s.substring(2,5);System.out.println(s1+s2);A.0122345 B.234567892345C.012234 D.234567892344.设有以下代码:String s l="123";String s2="123";String s3=new String("123");则表达式s1==s2和s1==s3的值分别是( )A.true,trueB.false,falseC.true,falseD.false,true4.需要分析字符串,并将字符串分解成可被独立使用的单词,可使用java. util包中的类是()A.String B.StringBufferC.StringTokenizer D.stringTokenizer14.Java语言提供了两个用于处理字符串的类,它们是__StringBuffer __ String ______。

14.设有两个字符串对象str1和str2,则表达式“strl==str2”的意义是判别字符串strl和str2__是否引用同一个对象____。

14.设有字符串定义:String s="ABCDABCD";则表达式s.indexOf("B")的值是 1 。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
练习题—第四章数组向量字符串
2、设有下列数组定义语句:




int a[] = {1, 2, 3}; 则对此语句的叙述错误的是( )。 A.定义了一个名为a的一维数组 B.a数组有3个元素 C.a数组元素的下标为1~3 D.数组中每个元素的类型都是整数 【解析】数组元素的下标是从0开始的。
答案为 120
7. import java.io.* ; public class abc { public static void main(String args[ ]) { int i, s = 0 ; int a[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 ,
90 };

for ( i = 0 ; i < a.length ; i ++ ) if ( a[i]%3 = = 0 ) s += a[i] ; System.out.println("s="+s); } }
答案为 s=180
8、给出下面代码,关于该程序以下哪个说法是正确
答案为 C
10.以下程序的输出结果为 class StringTest1 {





public static void main(String[] args) { String s1="hello"; String s2=new String("hello"); if(s1.equals(s2)){ System.out.println("相等"); }else{ System.out.println("不相等"); } 答案为 相等 }
答案为 A
13、
应用程序的main方法中有以下 语句,则输出的结果是 ( )。
String s1=new String("abc");
String s2=new String("abc"); boolean b1=s1.equals(s2); boolean b2=(s1==s2); System.out.print(b1+" "+b2); A)true false B) false true C) true true D)false false






的?( ) public class Person{ static int arr[] = new int[5]; public static void main(String a[]) { System.out.println(arr[0]); } } A、编译时将产生错误 B、编译时正确,运行时将产生错误 C、输出零 D、输出空
答案为 C
3、执行语句:int[] x = new int[20];后,下面哪个



说法是正确的?( ) A.x[19]为空 B.x[19]未定义 C.x[19]为0 D.x[0]为空 【解析】此语句定义了x数组后,x[0]~x[19]的值 全部为0。
答案为 C
5.下面代码运行后的输出结果为( )。 public class X6_1_5 { public static void main(String[] args) { AB aa = new AB(); AB bb; bb = aa; System.out.println(bb.equals(aa)); } } class AB{ int x = 100; } A.true B.false C.编译错误 D.100 【解析】同一个类的两个对象可以相互赋值,赋值后 两个对象具有相同的存储空间,因此是相同的。
答案为 D
16、程序Test.java编译运行后输出的结果是(
)。
public class Test { String s1="java"; public static void main(String args[]) { int z=2; Test t=new Test(); System.out.println(t.s1+z); } } A) java2 B)2 C)没有输出结果 D)java
答案为 A
3、求1-1/2+1/3-1/4……..+1/99-1/100的值
import java.io.* ;



public class ABC { public static void main(String args[ ]) { int i,sign=1; double s=0; double a[]=new double[100]; for ( i = 0 ; i < a.length ; i ++ ) { a[i]=(1.0/(i+1))*sign; s=s+a[i]; sign=(-1)*sign; } System.out.println("s="+s); } }
}
比较值
11.在Java中定义一个字符串类型的变量str的语句
是: 语句是:
,定义一个具有10个元素的整型数组a的 。
11.在Java中定义一个字符串类型的变量str的语句是:
(String str;) ,定义一个具有10个元素的整型数组a 的语句是:(int [] arr = new int[10];) 。





Hale Waihona Puke 答案为 A 15、应用程序的main方法中有以下语句,则执行后输
出的结果是 ( )。 int[] x={125,21,5,168,98}; int max=x[0]; for(int i=1;i<x.length;i++){ if(x[i]> max) max =x[i]; } System.out.println(max); A) 125 B) 5 C) 98 D) 168
12.下列程序段执行后的结果是( )。 String s = new String("abcdefg"); for (int i=0; i<s.length(); i+=2){ } A) aceg B) ACEG
System.out.print(s.charAt(i)); C) abcdefg D) abcd

答案为 A
6.设有数组定义:int MyIntArray[ ] = { 10 , 20 , 30 ,
40 , 50 , 60 , 70}; 则执行以下几个语句后的输出结果是 。


int s = 0 ; for (int i = 0 ; i < MyIntArray.length ; i + + ) if ( i % 2 = = 1 ) s += MyIntArray[i] ; System.out.println(s);
相关文档
最新文档