数组
一、选择
1.下列数组声明的语法格式不正确的是( C )
A. int[] array;
B. int array[];
C. char[];
D. String[] strArray;
2.已知一个长度为10的数组b,数组b的第三个元素表示为?( C )
A. b[3] B. b(3) C. b[2] D. b(2)
3.当数组下标越界时,会发生( D、C、A )
A. 系统崩溃
B. 直接跳过
C. 抛出异常
D. 中止程序
4.下面代码的运行结果为:( A )
A. 55,8,5, B. 5,8,55, C. 8,5,55 D. 5,8,55
5、 下面代码的运行结果为:( D )
A. 4 B. 12 C. 0 D. 13
6.下面程序的运行结果是?( A )
A. 30 B. 60 C. 50 D. 20
7.以下关于二维数组创建对象的语法,错误的是?(多选) ( A、D)
A. char[][] ch=new char[][] ;
B. char ch[][]=new char[3][5];
C. char[] ch[]=new char[3][];
D. char[][] ch=new char[][5];
8.下列哪个选项是给二维数组的第一行第一列的元素赋值的。( D )
A. sum[][] = 3;
B. num[1][] = 3;
C. num[1][1] = 3;
D. sum[0][0] = 3;
9.以下代码的输出结果为?(A)
A. 2 4 B. 3 4 C. 3 3 D. 4 4
10.下列数组有几行几列(D)
A. 三行五列
B. 五行五列
C. 三行三列
D. 五行三列
二、编程
1.求数组中能被3整除的元素并打印输出。
数组内容:
public class ArrayDemo {
public static void main(String[] args) {
int[] arr={2,3,5,6,8,9,15,17,18,21,25,28};
int i=0;
for(int n:arr){
if(n%3==0){
System.out.println(n+" ");
i++;
if(i>arr.length){
break;
}
}
}
}
}
2.在一个二维数组中存放了三名学生的语文和数学的成绩,分别求语文和数学的总成绩及平均分并输出。
public class ScoreDemo{
public static void main(String[] args){
/int[][] intArray;
double ywzcj,ywpjf,sxzcj,sxpjf;
ywzcj=0;ywpjf=0;sxzcj=0;sxpjf=0;
intArray = new int[][]{{88,98},{75,88},{95,85}};
for(int i=0;i<intArray.length;i++){
for(int j=0;j<intArray[i].length;j++){
if(j==0){
ywzcj+=intArray[i][j];
ywpjf=ywzcj/intArray.length;
}
if(j==1){
sxzcj+=intArray[i][j];
sxpjf=sxzcj/intArray.length;
}
}
}
System.out.println("语文总成绩:"+ywzcj);
System.out.println("语文平均成绩:"+ywpjf);
System.out.println("数学总成绩:"+sxzcj);
System.out.println("数学平均成绩:"+sxpjf);
}
}
方法
一、选择
-
下列代码的运行结果为: ( C )
A. 没有任何输出 B. 编译错误 C. 晓明今年7岁了 D. 晓明
-
下列代码运行的结果是( B )
A. Hello,My name is Tom. B. Hello,My name is Peter. C. Hello,My name is Peter.My name is Tom. D. My name is Peter.
-
下列语句的执行结果为( C )
A. 运行异常 B. 运行错误 C. 我的英文名字叫Tom D. 什么都不输出
-
下面这段程序的执行结果为: ( C )
A. 12 B. a+b+c=12 C. a+b+c=16 D. 16
-
已知如下代码,则位置(1)处正确的方法调用代码为? ( A )
A. method.display(arr); B. method.display(arr[0]); C. method.display(a); D. method.display(a[0]);
-
已知方法的定义形式如下:
public void plus(int a,int b){}
下列选项中哪两个是合法的重载方法?(多选) (A、C)A. public int plus(int a){} B. public int plus1(int m,int n){} C. public void plus(float a,float b){} D. public int plus(int a,int b){}
-
下列代码,前者与后者是重载关系的是:( A )
A. public void show(){}和public void show(int num){} B. public void show(){}和public void print(int num){} C. public void show(){}和public int show(){} D. public void show(int a){}和 public void show1(int b){}
-
以下代码的输出结果是什么? ( D )
A. 40 B. 8 C. 4 D. 10
-
以下代码的输出结果是什么? ( D )
A. 2 B. 3 C. 4 D. 6
-
关于可变参数列表的描述正确的是 ( B、C )
~~~
A. 当可变参数列表作为方法参数时,不能将数组传递给可变参数列表
B. 一个方法中,只能有一个可变参数列表作为参数
C. 重载的方法中,可变参数列表作为参数的重载方法不会优先被调用
D. 数组作为方法参数时,可以将多个值同时传递给数组
~~~
二、编程
-
定义一个方法,根据商品总价,计算出对应的折扣并输出。折扣信息如下:
- 总价<100,不打折
- 总价在100到199之间,打9.5折
- 总价在200以上,打8.5折
任务:
1、定义一个方法,根据商品总价输出折后总价
2、在主方法中定义对象
3、使用对象调用定义的方法
public class Fun {
public double discountPrice(double x){
double y=0;
if(x<100){
y=x;
}else if(x<200){
y=0.95*x;
}else{
y=0.85*x;
}
return y;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
double z=156d;
Fun p = new Fun();
double price=p.discountPrice(z);
System.out.println("折后商品总价:"+price);
}
}
~~~
- 编写方法,求数组元素的平均值。
任务:
1、定义一个方法,求数组的平均值
2、在主方法中定义对象,并初始化一个float类型的数组,调用方法求数组元素的平均值,并将平均值打印输出
public class AverageDemo {
public float plus(float[] a){
float sum=0;
float average=0;
for(float n:a){
sum+=n;
average=sum/a.length;
}
return average;
}
public static void main(String[] args) {
AverageDemo sum=new AverageDemo();
float[] arr={15,25,65,80};
float average=sum.plus(arr);
System.out.println("数组元素的平均值:"+average);
}
}
- 定义两个重载的方法,分别求圆和长方形的面积。
任务:
1、 定义两个求面积的重载方法,圆周率可以使用Math.path
这个常量代替
2、在主方法中调用方法并输出
public class AreaDemo {
public double area(double a,double b){
double getArea=a*b;
return getArea;//返回语句
}
public double area(double r){
double getArea=Math.PI*r*r;
return getArea;
}
public static void main(String[] args) {
AreaDemo rc = new AreaDemo();
double r1=5;
double x=5.5,y=15;
double area=rc.area(r1);
double area1=rc.area(x,y);
System.out.println("圆形的面积为:"+area);
System.out.println("长方形的面积为:"+area1);
}
}