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;”,除了完成赋值操作之外,引起 系统额外要做的工作是_________。
  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);
相关文档
最新文档