java数组与异常处理复习题

更新时间:2023-04-24 09:09:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数组,异常处理,常用类。

第五、六章习题

一、选择题

1.下列关于数组的定义形式,哪些是错误的?( ABC )

A.int[ ]c=new char[10]; B.int[ ][3]=new int[2][ ];

C.int[ ]a; a=new int; D.char b[ ]; b=new char[80];

2.执行String[] s=new String[10];语句后,哪些结论是正确的?( BC )

A.s[0] 为 未定义 B.s.length 为10

C.s[9] 为 null D.s[10] 为 ""

3.下列关于Java语言的数组描述中,错误的是( D )。

A.数组的长度通常用length表示 B.数组下标从0开始

C.数组元素是按顺序存放在内存的 D.数组在赋初值和赋值时都不判界

4.下面的表达式哪些是正确的? ( ACE )

A.String s="你好";int i=3; s+=i;

B.String s="你好";int i=3; if(i==s){ s+=i};

C.String s="你好";int i=3; s=i+s;

D.String s="你好";int i=3; s=i+;

E. String s=null; int i=(s!=null)&&(s.length()>0)?s.length():0;

5.public class T18 {

static int arr[] = new int[10];

public static void main(String a[]) {

System.out.println(arr[1]);

}

}

哪个语句是正确的?( C )

A.编译时将产生错误 B.编译时正确,运行时将产生错误

C.输出零 D.输出空

6.若String s = "hello"; String t = "hello"; char c[] = {'h','e','l','l','o'} ; 则下列哪些表达式返回true?( AB )

7.指出正确的表达式有( AB )。

A.double a=2.0; B.Double a=new Double(2.0);

C.byte A= 350; D.Byte a = 120;

8.System类在哪个包中?( B )

A.java.awt B.ng C.java.util D.java.io

9.关于Float,下列说法正确的是( ACD )。

A.Float在ng包中 B.Float a=1.0是正确的赋值方法

C.Float是一个类 D.Float a= new Float(1.0)是正确的赋值方法

10.ava中用来抛出异常的关键字是A

A.try

B.catch

C.throw

D.finally

11.关于异常,下列说法正确的是A

数组,异常处理,常用类。

A.异常是一种对象

B.一旦程序运行,异常将被创建

C.为了保证程序运行速度,要尽量避免异常控制

D.以上说法都不对

12.(C)类是所有异常类的父类。

A.Throwable

B.Error

C.Exception

D.AWTError

13.java语言中,下列哪一子句是异常处理的出口A

A.try{ }子句

B.catch{ }子句

C.finally{ }子句

D.以上说法都不对

14.下列程序的执行,说法正确的是D

class MultiCatch

{

public static void main(String args[])

{

try

{

int a=args.length;

int b=42/a;

int c[]={1};

c[42]=99;

System.out.println(“b=”+b);

}

catch(ArithmeticException e)

{

System.out.println(“除0异常:”+e);

}

catch(ArrayIndexOutOfBoundsException e)

{

System.out.println(“数组超越边界异常:”

}

}

}

A.程序将输出第15行的异常信息

B.程序第10行出错

C.程序将输出“b=42”

D.程序将输出第19行的异常信息

15.下列程序的执行,说法正确的是D

class ExMulti

{ +e);

数组,异常处理,常用类。

static void procedure()

{

try

{

int c[]={1};

c[42]=99;

}

catch(ArrayIndexOutOfBoundsException e)

{

System.out.println(“数组超越界限异常:”+e);

}

}

public static void main(String args[])

{

try

{

procedure();

int a=args.length;

int b=42/a;

System.out.println(“b=”+b);

}

catch(ArithmeticException e)

{

System.out.println(“除0异常:”+e);

}

}

}

A.程序只输出第12行的异常信息

B.程序只输出第26行的异常信息

C.程序将不输出异常信息

D.程序将输出第12行和第26行的异常信息

16.下面程序抛出了一个“异常”并捕捉它。请在横线处填入适当内容完成程序。

class TrowsDemo

{

static void procedure() throws IllegalAccessExcepton

{

System.out.println(“inside procedure”);

throw___new

____IllegalAccessException(“demo”);

}

public static void main(String args[])

{

try

数组,异常处理,常用类。

{

procedure();

}

____catch(IllegalAccessException e)

{

System.out.println(“捕获:”+e);

}

}

二、填空题

1.catch子句都带一个参数,该参数是某个异常的类及其变量名,catch用该参数去与___抛出异常____对象的类进行匹配。

2.java虚拟机能自动处理____运行___异常。

3.变量属性是描述变量的作用域,按作用域分类,变量有局部变量、类变量、方法参数和___异常处理参数____

同一段程序可能产生不止一种异常。可以放置多个_______子句,其中每一种异常类型都将被检查,第一个与之匹配的就会被执行。

4.捕获异常要求在程序的方法中预先声明,在调用方法时用try-catch-__finally____语句捕获并处理。

5.java语言认为那些可预料和不可预料的出错称为____异常_____

6.按异常处理不同可以分为运行异常、捕获异常、声明异常和__抛出异常____几种。

7.抛出异常的程序代码可以是____java应用程序____或者是JDK中的某个类,还可以是JVN.

8.抛出异常、生成异常对象都可以通过___throw______语句实现。

9.捕获异常的统一出口通过____finally_____语句实现。

10.java语言的类库中提供了一个____Throwable______类,所有的异常都必须是它的实例或它子类的实例。

11.Throwable类有两个子类:_____Error_____类和Exception类。

12.对程序语言而言,一般有编译错误和______运行______错误两类。

13.下面程序定义了一个字符串数组,并打印输出,捕获数组超越界限异常。请在横线处填入适当的内容完成程序。

public class HelloWorld

{

int i=0;

String greetings[]=

{

“Hello world!”,

“No,I mean it!”,

“HELLO WORLD!!”

};

while(i<4)

{

______try______

数组,异常处理,常用类。

}

System.out.println(greeting[i]);

}

_________catch________(ArrayIndexOutOfBoundsException e) {

System.out.println(“Re-setting Index Value”);

i=-1;

finally

{

System.out.println(“This is always printed”);

}

i++;

}

}

}

三、判断题

1.String str="abcdefghi"; char chr=str.charAt(9); ( × )

2.char[] chrArray={ 'a', 'b', 'c', 'd', 'e', 'f', 'g'}; char chr=chrArray[6]; ( √ )

3.int i,j; boolean booleanValue=(i==j); ( × )

4.int intArray[]={0,2,4,6,8}; int length=int Array.length();( × )

5.String str="abcedf"; int length=str.length; ( × )

6.int[] intArray[60]; ( × )

7.char[] str="abcdefgh"; ( × )

8.说明或声明数组时不分配内存大小,创建数组时分配内存大小。( √ )

9.Integer i = (Integer.valueOf("926")).intValue();( √ )

10.String s = (Double.valueOf("3.1415926")).toString(); ( √ )

11.Integer I = Integer.parseInt("926");( √ )

12.Arrays类主要对数组进行操作。( √ )

四、程序分析题

1.分析下面的程序,写出运行结果。

public class Exercises5_1 {

String str = new String("Hi !");

char[] ch = { 'L', 'i', 'k', 'e' };

public static void main(String args[]) {

Exercises5_1 ex = new Exercises5_1();

ex.change(ex.str, ex.ch);

System.out.print(ex.str + " ");

System.out.print(ex.ch);

}

数组,异常处理,常用类。

public void change(String str, char ch[]) {

str = "How are you";

ch[1] = 'u';

}

}

运行结果是:( Hi ! Luke )

2. 分析下面的程序,写出运行结果:

public class Exercises5_3 {

public static void main(String args[]) {

String str1 = new String();

String str2 = new String("String 2");

char chars[] = { 'a', ' ', 's', 't', 'r', 'i', 'n', 'g' }; String str3 = new String(chars);

String str4 = new String(chars, 2, 6);

byte bytes[] = { 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39 };

String str5 = new String(bytes);

StringBuffer strb = new StringBuffer(str3);

System.out.println("The String str1 is " + str1); System.out.println("The String str2 is " + str2); System.out.println("The String str3 is " + str3); System.out.println("The String str4 is " + str4); System.out.println("The String str5 is " + str5); System.out.println("The String strb is " + strb); }

}

运行结果是:( )

The String str1 is

The String str2 is String 2

The String str3 is a string

The String str4 is string

The String str5 is 0123456789

The String strb is a string

五、改错题

1.找出下面代码的错误部分,说明错误类型及原因,并更正。 public int m1 (int number[20]){

number = new int[20];

for(int i=0;i<number.length;i++)

number[i] = number[i-1] + number[i+1];

return number;

}

改正后程序:

public int[] m1(int number[]) {

// number = new int[20];

数组,异常处理,常用类。

for (int i = 1; i < number.length - 1; i++) number[i] = number[i - 1] + number[i + 1]; return number; }

本文来源:https://www.bwwdw.com/article/r1xq.html

Top