第五章:java循环结构测试题
1 选择题
题目1(单选):
下列代码的运行结果是( A )
public class test { public static void main(String[] args) { int sum = 0; int i=0; while (i<=5){ if(i % 2 != 0){ 第一次:i=0,0除任何数都是无余数 i++;i=1 第二次:i=1 不等于0 sum=0+1=1; i=2 sum += i; 第三次:i=2 取余等于0 i=3 } 第四次:i=3 取余不等于0 sum=1+3=4 i=4 i++; 第四次 i=4 取余为0 i=5 } 第五次 i=5 取余不为0 sum=4+5=9 i=6 运行结束 System.out.println("sum = " + sum); } }
选项:
A. sum = 9
B. sum = 6
C. sum = 15
D. sum = 0
题目2(单选):
以下代码片段执行后,控制台的输出结果为( A )
public static void main(String[] args) { int sum=0; int i=1; while(i<3){ sum+=i; i++; } System.out.print("sum="+sum); }
选项:
A. sum=3
B. sum=0
C. sum=6
D. sum=1
题目3(单选):
下列代码的运行结果是( B )
public class Test { public static void main(String[] args) { int sum = 0; for(int i = 0; i < 10; i++){ if (i % 3 != 0){ sum += i; } } System.out.println("sum = " + sum); } }
选项:
A. sum = 45
B. sum = 27
C. sum = 18
D. sum = 55
题目4(单选):
阅读代码,下面那些代码片段能够求1~10(包含1也包含10)之间偶数的和( A )
选项:
A.
int sum=0;
for(int i=1;i<=10;i++){
if(i%2==0){
sum+=i;
}
}
B.
int sum=0;
for(int i=1;i<10;i+=2){
sum+=i;
}
C.
int sum=0;
for(int i=1;i<10;i++){
if(i%2!=0){
sum+=i;
}
}
D.
int sum=0;
for(int i=0;i<=10;i+=2){
sum+=i;
}
题目5(单选):
关于for循环语句说法错误的是( A )
for (初始化语句; 循环判断表达式; 步进语句) {
①int a = 10;
②循环体;
}
选项:
A. 因为初始化语句在循环中只执行一次,所以循环过程中, 无法使用初始化语句中定义的变量.
B. 循环判断表达式的执行次数,会比循环体的执行次数多一次.
C. ①处定义的变量a,每一次进入循环,都会重新定义一个新的变量.
D. 循环体是否执行,需要根据[循环判断表达式]返回的true或false而定.
题目6(单选):
下列代码的运行结果是( D )
public static void main(String [] args){ int i = 1; while(i == 10){ ++i; System.out.println("执行循环啦"); } }
选项:
A.语法错误.
B.打印9次执行循环啦.
C.打印10次执行循环啦.
D.没有输出结果.
题目7(单选) :
下列代码的运行结果是( A )
public static void main(String[] args) { int count = 0; int i = 2; while( i < 7){ if (i % 2 == 1){ count++; } i++; } System.out.println(count); }
选项:
A.2
B.3
C.4
D.5
题目8(单选):
下面有关do...while循环的执行流程,那些描述是正确的( B )
选项:
A.do...while循环在循环条件成立的情况下,循环语句体才能被执行.
B.do...while循环的循环条件即使不成立,循环语句体也能被执行1次.
C.do...while循环的循环语句体只能被执行一次.
D.do...while是先判断循环条件是否成立,再执行循环语句体.
2 代码题
题目9:
在中国历法中有十二生肖年份,2019年是己亥猪年,请在控制台输出从1949年(包含)到2019年(包含)中所有是猪年的年份。
参考步骤:
定义for循环,1949到2019的年份是循环次数.
对每个年份逐个判断,如果年份和2019的差值是12的倍数,说明这年是猪年.
打印符合条件的年份.
参考答案:
作业:
1.for循环的使用
public class Test11 { public static void main(String[] args) { System.out.println("以下年份都是猪年:(1949年-2019年)"); for (int i = 2019; i >= 1949; i=i-12) { System.out.print(i); System.out.print("年"); System.out.print(" "); } } }
运行效果:
题目10:
中国使用的公历有闰年的说法,闰年的规则是:四年一闰,百年不闰,四百年再闰。(年份能够被4整除但不能被100整除算是闰年,年份能被400整除也是闰年).请打印出1988年到2019年的所有闰年年份。
参考步骤:
定义for循环,循环变量开始是1988,结束是2019.
在循环中对年份进行判断,判读条件为:可以被4整除,并且不可以被100整除,或者可以被400整除.
如果符合条件,输出该年份.
参考答案:
作业:
1.for循环嵌套if的使用
2.整除取余
public class Test12 { public static void main(String[] args) { System.out.println("以下年份都是闰年:"); for (int i = 2019; i >= 1988; i--) { //可以被4整除,并且不可以被100整除,或者可以被400整除. //解读:被4整除和不可被4整除要同时满足,或者就是或运算 if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) { System.out.print(i); System.out.print("年"); System.out.print(" "); } else { } } } }
运行效果:
第六章:java循环选择随机综合测试题
1 选择题
题目1(单选):
下列代码的运行结果是( C )
public static void main(String[] args) { int sum=0; for (int i = 1; i < 3; i++) { for (int j = 1; j < 3; j++) { sum+=i*j; } } System.out.println("sum="+sum); }
选项:
A.sum=3
B.sum=4
C.sum=9
D.sum=5
题目2(单选):
下列代码的运行结果是( B )
public static void main(String [] args){ for (int i = 0; i < 1; i++) { System.out.println("执行语句1"); for (int j = 0; j < 2; j++) { System.out.println("执行语句2"); } System.out.println("执行语句3"); } }
选项:
A.
没有输出结果
B.
执行语句1
执行语句2
执行语句2
执行语句3
C.
执行语句1
执行语句2
执行语句3
D.
执行语句1
执行语句2
执行语句2
执行语句3
执行语句1
执行语句2
执行语句2
执行语句3
题目3(单选):
分析以下代码片段,并按照下列两个问题在横线处补全代码,下列选项正确的是( C )
public class Test01 { public static void main(String[] args) { for(int x=1; x<=10; x++) { if(x % 3==0) { // 补全代码 __________ } System.out.println("我爱Java!"); } } }
问题:
① 在控制台输出2次:"我爱Java!" 横线处应该填写什么?
② 在控制台输出7次:"我爱Java!" 横线处应该填写什么?
选项:
A.
①continue ②break
B.
①continue ②continue
C.
①break ②continue
D.
①break ②break
题目4(单选):
下列代码的运行结果是( C )
public static void main(String[] args){ for(int i=1;i<=10;i++){ if(i%5==0){ System.out.println("hello"); break; } } }
选项:
A.输出5个hello
B.输出4个hello
C.输出1个hello
D.输出9个hello
题目5(单选):
下列关于break和continue说法正确的是( C )
选项:
A.break是跳出本次循环,执行break之后,循环还可以继续执行.
B.continue是跳出整个循环,一定会让这个循环终止.
C.break除了用于循环还可以用于swtich语句,在switch语句中表示跳出switch语句,在循环中表示终止当前循环.
D.continue除了用于循环还可以用于switch语句,都表示继续匹配的意思.
题目6(单选):
下列代码的运行结果是( B )
public static void main(String[] args) { int count = 0; for(int i = 1;i <= 10;i++) { if(i % 5 == 0) { break; } if (i == 3 || i == 7 || i == 9){ continue; } count++; } System.out.println(count); }
选项:
A.4
B.3
C.2
D.1
题目7(单选):
下列代码能够获取1到100(包含1和100)之间随机数的是( C )
选项:
A.
Random r = new Random();
int num = r.nextInt();
B.
Random r = new Random();
int num = r.nextInt(100);
C.
Random r = new Random();
int num = r.nextInt(100)+1;
D.
Random r = new Random(System.in);
int num = r.nextInt(100+1);
题目8(单选):
下列代码能够用于随机产生[1,99]包含1,包含99之间整数的是( B )
选项:
A.
public static void main(String[] args) {
Random r = new Random();
int num = r.nextInt(40)+59;
System.out.println(num);
}
B.
public static void main(String[] args) {
Random r = new Random();
int num = r.nextInt(99) + 1;
System.out.println(num);
}
C.
public static void main(String[] args) {
Random r = new Random();
int num = r.nextInt(99);
System.out.println(num);
}
D.
public static void main(String[] args) {
Random r = new Random();
int num = r.nextInt(100)-1;
System.out.println(num);
}
2 代码题
题目9:
有一个输出语句System.out.print("@"),表示输出一个"@",并且不换行,使用这个语句,在控制台打印出一个四行五列的长方形,效果如下:
@@@@@
@@@@@
@@@@@
@@@@@
参考步骤:
定义循环执行4次,代表一共4行.
在循环内部再次定义循环执行5次,代表每行输出5个符号.
在内层循环中输出符号,并且不换行.
每行符号打印结束之后,添加一个换行操作.
参考答案:.
作业:
1.for循环的嵌套使用
/**
* @Author 赵广陆
* @Date 2020/2/26 0026 15:35
* @Version 1.0
*/
/*
@@@@@
@@@@@
@@@@@
@@@@@
有一个输出语句有一个输出语句System.out.print("@"),表示输出一个"@",并且不换行,使用这个语句,在控制台打印出一个四行五列的长方形,
* */ public class Test { public static void main(String[] args) { for (int i = 0; i < 4; i++) { for (int j = 1; j <= 5; j++) { System.out.print("@"); } System.out.println(""); } } }
运行效果:
题目10:
有一个输出语句System.out.print("@"),使用这个语句,在控制台打印出一个五行的三角形,效果如下
@
@@
@@@
@@@@
@@@@@
参考步骤:
定义循环执行5次,循环变量从1到5,代表一共5行.
定义内层循环执行i次,代表每行打印的个数是i,这个i即为外层循环的循环变量.
在内层循环中输出符号,并且不换行.
每行符号打印结束之后,添加换行操作.
参考答案:
作业:
1.循环嵌套的应用
/**
* @Author 赵广陆
* @Date 2020/2/26 0026 15:35
* @Version 1.0
*/
/*
@
@@
@@@
@@@@
@@@@@
有一个输出语句System.out.print("@"),使用这个语句,在控制台打印出一个五行的三角形,效果如下
* */ public class Test { public static void main(String[] args) { for (int i = 0; i < 5; i++) { for (int j = 0; j <= i; j++) { System.out.print("@"); } System.out.println(""); } } }
运行效果:
第七章:java数组测试题
1 选择题
题目1(单选):
下列数组创建并初始化格式错误的是( C )
选项:
解析:数组不能即给定长度有付裕初值,画蛇添足!
A.int[] arr = new int[] {33,22,11};
B.int[] arr = new int[4];
C.double[] arr = new double[3]{5.2, 3.14, 6.18};
D.int[] arr = {11,22,33};
题目2(单选):
下列操作中能够正常编译运行的是( C )
选项:
A.
public static void main(String[] args){
int[] arr = {1,2,3};
int num = arr;
}
B.
public static void main(String[] args){
int[] arr = {1,2,3};
int num = arr0;
}
C.
public static void main(String[] args){
int[] arr = {1,2,3};
arr[1] = 5;
}
D.
public static void main(String[] args){
int[] arr = {1,2,3};
arr.[0] = 2;
}
题目3(单选):
代码如下,运行结果是7,则横线处应该填写的内容是( B )
public static void main(String[] args){ int[] arr = { 3,6,7,2,5,8 }; System.out.println(____________); }
选项:
A.arr[6]
B.arr[2]
C.arr[1]
D.arr[0]
题目4(单选):
下列代码的运行结果是( D )
public static void main(String[] args) { int arr[] = {1, 3, 5, 7, 9}; System.out.println("结果是:"+arr[1]); System.out.println("结果是:"+arr[arr.length-1]);//数组长度是5-1是4 然后索引是从0开始 }
选项:
解析:数组长度是从1~n,数组索引是从0~n-1长度,也就是索引指向0就是数组第一个元素!
A.结果是:1 结果是:9
B.结果是:1 结果是:7
C.结果是:3 结果是:7
D.结果是:3 结果是:9
题目5(单选):
下列代码中,有关数组的定义格式错误的是( C )
选项:
A.int[] arr = {1,2,3,4,5,6};
B.int[] arr = new int[3];
C.int[] arr = new int[6]{1,2,3,4,5,6};
D.int[] arr = new int[]{1,2,3,4,5,6};
题目6(单选):
下列代码能够正常运行的是( B )
选项
A.
public class Demo{
public static void main(String[] args){
int[] arr = {1,2,3,4,5,6,7};
for (int i = 0; i <= arr.length; i++) {
System.out.println(arr[i]);
}
}
}
B.
public class Demo{
public static void main(String[] args){
int[] arr = {1,2,3,4,5,6,7};
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
C.
public class Demo{
public static void main(String[] args){
int[] arr = {1,2,3,4,5,6,7};
int i = 0;
while(i < arr.length){
System.out.println(arr[i]);
}
}
}
D.
public class Demo{
public static void main(String[] args){
int[] arr = {1,2,3,4,5,6,7};
for (int i = 0; ; i++) {
System.out.println(arr[i]);
}
}
}
题目7(单选):
下列代码能够获取任意数组中元素最大值的是( C )
选项:
A.
public class Demo{
public static void main(String[] args){
int[] arr = {23,544,56,1,23,45,21,1,78};
for (int i = 1; i < arr.length; i++) {
int max = arr[0];
if(max < arr[i]){
max = arr[i];
}
System.out.println(max);
}
}
}
B.
public class Demo{
public static void main(String[] args){
int[] arr = {23,544,56,1,23,45,21,1,78};
int max = arr[0];
for (int i = 1; i < arr.length; i++) {
if(max > arr[i]){
max = arr[i];
}
}
System.out.println(max);
}
}
C.
public class Demo{
public static void main(String[] args){
int[] arr = {23,544,56,1,23,45,21,1,78};
int max = arr[0];
for (int i = 1; i < arr.length; i++) {
if(max < arr[i]){
max = arr[i];
}
}
System.out.println(max);
}
}
D.
public class Demo{
public static void main(String[] args){
int[] arr = {-23,-544,-56,-1,-23,-45,-21,-1,-78};
int max = 0;
for (int i = 0; i < arr.length; i++) {
if(max < arr[i]){
max = arr[i];
}
}
System.out.println(max);
}
}
题目8(单选):
下面代码用于获取数组的最大值,画横线区域处应填写代码正确的是( C )
public static void main(String[] args){ int[] arr = { 2,7,-1,6,3 }; _____(1)______ for(int i=1;i<arr.length;i++){ if(___(2)____){ ___(3)____ } } System.out.println("最大值是:" + max); }
选项:
A.
(1)int max = 0; (2)arr[i]<max; (3)arr[i] = max;
B.
(1)int max = 0; (2)arr[i] > max; (3)max = arr[i];
C.
(1)int max = arr[0]; (2)arr[i] > max; (3)max = arr[i];
2 代码题
题目9:
创建一个长度为6的整数数组,请编写代码,随机生成六个0(包含)-100(不包含)之间的整数存放到数组中,然后计算出数组中所有元素的和并打印。
参考步骤:
定义长度为6的int数组。
创建随机数Random类对象。
遍历数组,在循环中生成随机数并给数组元素赋值。
定义求和变量,初始化值为0。
遍历数组,获取每一个元素,累加。
遍历结束,打印结果。
参考答案:
作业:
1.随机数的使用
2.数组的遍历
import java.util.Random;
/**
* @Author 赵广陆
* @Date 2020/2/28 0026 17:35
* @Version 1.0
*/
/*
创建一个长度为6的整数数组,请编写代码,随机生成六个0(包含)-100(不包含)之间的整数存放到数组中,然后计算出数组中所有元素的和并打印。
* */ public class Test03 { public static void main(String[] args) { Random ran = new Random(); int[] arr = new int[6]; System.out.print("随机数:"); for (int i = 0; i < arr.length; i++) { int x = ran.nextInt(100); System.out.print(" " + x); arr[i] = x; } int a = 0; for (int i = 0; i < arr.length; i++) { a += arr[i]; } System.out.println("和为" + a); }
}
运行效果:
题目10:
请使用静态初始化的方式,创建一个长度为5的整数数组,并为数组中的元素赋值,遍历数组,在同一行打印所有元素,元素之间用空格隔开,比如:如果数组为{1,2,3,4,5}打印结果:1 2 3 4 5
参考步骤:
定义int数组,使用静态初始化方式为元素赋值。
使用for循环对数组进行遍历,循环索引从0开始,到数组的长度-1结束。
逐个打印数组元素,打印元素不换行,在输出元素的后面拼接空格。
参考答案:
作业:
1.静态数组的使用与遍历
/** * @Author 赵广陆 * @Date 2020/2/28 0026 17:50 * @Version 1.0 */ /* 请使用静态初始化的方式,创建一个长度为5的整数数组,并为数组中的元素赋值,遍历数组,在同一行打印所有元素,元素之间用空格隔开,比如:如果数组为{1,2,3,4,5}打印结果:1 2 3 4 5 * */ public class Test04 { public static void main(String[] args) { int[] arr = {1, 2, 3, 4, 5}; for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } } }
运行效果:
第八章:java方法入门测试题
1 选择题
题目1(多选):
下面关于方法的概述描述,正确的是(A B D )
选项 :
A: 方法定义的先后顺序无所谓
B: 方法的定义不能产生嵌套包含关系。
C: 方法可以让程序的执行效率更高 //我感觉执行效率由数据和数据结构与算法有关
D: 方法定义好了之后,不会执行的,如果要想执行,一定要进行方法的调用
题目2(多选):
以下选项中,关于方法定义的参数或返回值描述正确的是(A B D)
选项 :
A: 方法的参数可以有,可以没有,也可以有多个
B: 方法的参数就是定义一些变量,当方法被调用的时候,用来接收数据使用的
C: 一个方法执行完成之后可以有一个返回值 ,也可以有多个返回值
D: 方法的返回值是方法执行完成之后得到的结果
题目3(多选):
关于对方法的调用,正确的是(A D)
选项 :
A: 有具体返回值的方法, 可以直接调用, 赋值调用以及输出调用
B: 无具体返回值的方法, 可以直接调用和输出调用//如果这个对,viod能输出什么?
C: 有具体返回值的方法, 只能赋值调用和输出调用
D: 无具体返回值的方法, 只能直接调用
题目4(单选):
代码如下:
public static void main(String[] args){ ________________________________ } public static void method(){ System.out.println("我是程序员"); }
运行结果是:
我是程序员
横线处应该填写的正确代码是( C)
选项 :
A: method;
B: void v = method();
C: method();
D: method("我是程序员");
题目5(单选):
请观察以下代码,分别为第三行和第六行选出正确选项,保证可以在控制台上输出
public class Test08 { public static void main(String[] args){ _____①_____ } public _____②_____ print() { System.out.println("wo ai java"); } }
运行结果是:
wo ai java
横线处应该填写的正确代码是( B )
选项 :
A: ① void v = print(); ② static void
B: ① print(); ② static void
C: ① int v = print(); ② static int
D: ① print(); ② static
题目6(单选):
下列方法定义格式正确的是(B )
A:
public static void method1(){//方法嵌套
public static void method2(){
}
}
B:
public static void method1(){
}
C:
public static void method1(){//空方法不需要返回值
return 10;
}
D:
public static boolean method1(int n){//无返回值
if(n < 10){
return false;
}else if(n > 10){
return true;
}
}
选项 :
A: 选择A
B: 选择B
C: 选择C
D: 选择D
题目7(单选):
观察以下代码,请选出方法调用过程的正确顺序( D )
public static void main(String[] args) { System.out.println("开始执行"); //1 int a = print(10); //调用方法跳转至方法 //2 System.out.println(a); //3 } public static int print(int n){ //4 n += 10; //5 return n; //6 }
选项 :
A: 1,2,3,4,5,6
B: 1,2,4,6,5,3
C: 1,4,5,6,2,3
D: 1,2,4,5,6,3
题目8:
以下选项中,关于方法的调用过程描述正确的是 (A C D )
public class Demo{ public static void main(String[] args) { int a = 10; int b = 20; int sum = getSum(a,b); System.out.println(sum); isEquals(a, b); } public static int getSum(int a,int b){ int sum = a + b; return sum; } public static void isEquals(int a,int b){ boolean c = a == b; System.out.println(c); } }
选项 :
A: 由java虚拟机调用main方法,main方法先执行
B: 在main方法执行中,会定义a和b变量,并分别赋值10和20,然后先调用isEquals方法,再调用getSum方 法并输出结果
C: 调用getSum方法时,要先传入两个整数,否则编译失败。然后执行getSum方法内的代码,执行完成之后,将结果返回赋值给int类型的变量sum
D: 调用isEquals方法时,要先传入两个整数,否则编译失败。然后执行isEquals方法内的代码,执行完成之后,没有结果返回
2 代码题
题目9:
数字是有绝对值的,负数的绝对值是它本身取反,非负数的绝对值是它本身。请定义一个方法,方法能够得到小数类型数字的绝对值并返回。请定义方法并测试
训练提示
根据方法的功能描述,方法的参数应该接收一个double类型数据。
小数的绝对值也是double,所以返回值类型也是double类型。
操作步骤
定义一个小数变量num。
定义获取绝对值的方法,方法的参数是一个double类型,返回值类型是double。
在方法内部使用if..else..判断。
3.1. 如果是负数则对负数取反并返回。
3.2. 如果不是负数则直接返回数字本身。
在主方法中调用绝对值方法,传入参数num,并接受返回值。
打印返回的结果。
参考代码
作业
1.方法的使用
import java.sql.SQLOutput; import java.util.Scanner; /** * @Author 赵广陆 * @Date 2020/2/29 0029 15:45 * @Version 1.0 */ /* * 数字是有绝对值的,负数的绝对值是它本身取反,非负数的绝对值是它本身。 * 请定义一个方法,方法能够得到小数类型数字的绝对值并返回。请定义方法并测试 * */ public class Test05 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); double num = sc.nextDouble(); System.out.println(abs(num)); } public static double abs(double num) { if (num > 0) { num = num; } else { num = -num; } return num; } }
运行效果:
题目10:
定义一个方法,该方法能够找出三个整数中的最大值并返回。在主方法中调用方法测试执行。
训练提示
根据题意,方法中需要使用三个整数,所以方法参数应该是三个整数类型。
方法需要有返回值,返回值的类型也是整数类型。
解题方案
操作步骤
定义方法getMax(),方法的参数是三个int类型变量a,b,c,方法的返回值是int类型。
在方法中使用多分支if...else...判断出最大值并返回。
在主方法中调用getMax()方法并接受返回值。
在主方法中打印结果。
参考代码
作业:
1.方法调用
import java.util.Scanner; /** * @Author 赵广陆 * @Date 2020/2/29 0029 16:37 * @Version 1.0 */ public class Test06 { public static void main(String[] args) { System.out.println("请依次输入三个数字,空格隔开或回车依次输入:"); Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); int c = sc.nextInt(); int max = getMax(a, b, c); System.out.println("最大值是" + max); } //得到最大值的方法 public static int getMax(int a, int b, int c) { if (a > b && a > c) { return a; } else if (b > a && b > c) { return b; } else { return c; } } }
运行效果:
第九章:java方法重载测试题
1 选择题
题目1(单选):
有关方法重载下列描述正确的是( C )
选项 :
A: 在多个类中,两个或者两个以上方法的名称一样,参数列表不一样,返回值必须一样,这些方法称之为重载
B: 在同一个类中,两个或者两个以上方法的名称一样,参数列表不一样,返回值必须相同,这些方法称之为重载
C: 在同一个类中,两个或者两个以上方法的名称一样,参数列表不一样,和返回值无关,这些方法称之为重载
D: 在多个类中,两个或者两个以上方法的名称一样,参数列表必须一样,和返回值无关,这些方法称之为重载
题目2(单选):
下面关于方法的重载,描述错误的是( A )
选项 :
A: 方法重载,是指方法的名称相同,参数列表也相同的多个方法
B: 方法重载,可以减少对方法名称的命名次数
C: 方法重载,只能在同一个java类当中
D: 方法重载,返回值类型可以不相同
题目3(单选):
下面关于方法的参数传递正确的是( C )
选项 :
A: 方法的参数是基本数据类型, 形参的改变直接影响实参的值
B: 方法的参数是引用数据类型, 形参的改变不影响实参的值
C: 方法的参数是基本数据类型, 形参的改变不影响实参的值
D: 方法的参数是基本数据类型,传递的是地址值.方法的参数是引用数据类型, 传递的是数据值
题目4(单选):
以下选项中,不属于方法重载的是(B )
A:
public class Demo{
public int getSum(int a,byte b){
return a + b;
}
public int getSum(int a,int b){
return a + b;
}
}
B:
public class Demo{
public int getSum(int b,int a){
return a + b;
}
public void getSum(int a,int b){
System.out.println(a + b);
}
}
C:
public class Demo{
public long getSum(long a,int b){
return a + b;
}
public long getSum(int a,long b){
return a + b;
}
}
D:
public class Demo{
public void getSum(int a,int b){
System.out.println(a + b);
}
public int getSum(int a,int b,int c){
return a + b + c;
}
}
题目5(单选):
观察下面代码,最终在控制台显示 33 正确的方法调用格式是( C )
public static void main(String[] args){ //此处需要调用下面的某个方法,在控制台当中显示33 } public static void printData(int a,int b){ System.out.println(11); } public static void printData(int a){ System.out.println(22); } public static void printData(boolean b){ System.out.println(33); } public static void printData(){ System.out.println(44); }
选项 :
A: printData(10,20);
B: printData(333);
C: printData(true)
D: printData();
题目6(单选):
下面代码执行之后,控制台显示的结果是( B )
public static void main(String[] args){ int[] arr = { 11,22,33,44,55 }; method(arr); for(int i = 0 ; i < arr.length ; i++){ System.out.print(arr[i] + " "); } } public static void method(int[] arr){ for(int i = 0 ; i < arr.length ; i++){ if( i % 2 == 0 ){ arr[i] += 100; } } }
选项 :
A: 11 122 33 144 55
B: 111 22 133 44 155
C: 11 22 33 44 55
D: 111 122 133 144 155
题目7(单选):
下列代码的运行结果是(B )
public static void main(String[] args) { int arr[] = {1, 3, 5, 7, 9}; int num = 10; showArray(arr, num); System.out.println("arr[2]的结果是:"+arr[2]); System.out.println("num的结果是:"+num); } private static void showArray(int[] arr, int num) { arr[2] = 6; num = 1; }
选项 :
A: arr[2]的结果是:6
num的结果是:1
B: arr[2]的结果是:6
num的结果是:10
C: arr[2]的结果是:5
num的结果是:1
D: arr[2]的结果是:5
num的结果是:10
题目8(单选):
下列代码的运行结果是( C )
public static void main(String[] args) { int[] arr = {1,2,3,4,5}; changeArr(arr); for (int i = 0; i < arr.length; i++) { System.out.print(arr[i]+","); } } public static void changeArr(int[] arr) { for (int i = 0; i < arr.length; i++) { if(arr[i]%2==1) { arr[i] = 10; } } }
选项 :
A: 1,2,3,4,5,
B: 1,10,3,10,5,
C: 10,2,10,4,10,
D: 10,10,10,10,10,
2 代码题
题目9:
请定义一个方法,该方法可以实现对int类型的数组进行遍历,在控制台打印所有元素。实现方法后,请在主方法中调用方法,查看结果。例如,数组为{11, 22, 33},打印格式为:[11, 22, 33]
训练提示
1、首先明确方法的返回值和参数列表,该方法只需要在控制台输出,f返回值类型为void.要实现打印数组元素的功能,需要方法的调用者把想打印的数组传递过来,所以参数列表是int[] arr
2、方法实现之后,不调用的话会执行吗?该怎样调用?
操作步骤
1、定义方法,返回值类型为void,参数列表为int[] arr
2、在方法中,遍历数组,判断是否是最后一个元素,并且根据不同的情况输出不同的格式。
3、在主方法中定义一个数组,调用方法,将数组作为参数传递,查看运行结果。
参考代码
作业:
1.方法的使用
import java.util.Arrays;
/** * @Author 赵广陆 * @Date 2020/3/1 0001 15:34 * @Version 1.0 */ /* *请定义一个方法,该方法可以实现对int类型的数组进行遍历,在控制台打印所有元素。 * 实现方法后,请在主方法中调用方法,查看结果。例如,数组为{11, 22, 33},打印格式为:[11, 22, 33] * * */ public class Test07 { public static void main(String[] args) { int[] arr = {11, 22, 33}; tra(arr); } // 1、定义方法,返回值类型为void,参数列表为int[] arr private static void tra(int[] arr) { //2、在方法中,遍历数组,判断是否是最后一个元素,并且根据不同的情况输出不同的格式。 System.out.println("arr = " + Arrays.toString(arr)); } // 3、在主方法中定义一个数组,调用方法,将数组作为参数传递,查看运行结果。 }
运行效果:
题目10:
请定义一个方法,实现交换整数数组中两个索引上的元素值。并调用方法,查看运行效果。
例如,数组为{11, 22, 33, 44, 55, 66},交换索引1和索引5位置上的元素,结果为{11, 66, 33, 44, 55, 22}
训练提示
1、首先明确方法的返回值和参数列表,交换元素, 不需要具体返回值.我们要操作哪个数组,要交换哪两个索引上的元素,所以参数列表应该接收一个数组,和两个变量(代表的要交换的索引)
2、在方法中,如果交换两个数组中的元素, 需要根据索引进行交换
3、在主方法中,用void修饰的方法,如何调用?
操作步骤
1、定义方法,返回值void,参数列表 int[] arr, int index1, int index2。
2、在方法中,定义临时变量,交换两个索引上的元素值。
3、在主方法中,创建一个int数组,调用方法,将数组作为参数传递。然后遍历数组查看结果
参考代码
作业:
1.索引数据类型形式参数可以改变
import java.util.Arrays; /** * @Author 赵广陆 * @Date 2020/3/1 0001 16:01 * @Version 1.0 */ /* * 请定义一个方法,实现交换整数数组中两个索引上的元素值。并调用方法,查看运行效果。 例如,数组为{11, 22, 33, 44, 55, 66},交换索引1和索引5位置上的元素,结果为{11, 66, 33, 44, 55, 22} * */ public class Test08 { public static void main(String[] args) { int index1 = 1; int index2 = 5; int arr[] = {11, 22, 33, 44, 55, 66}; tra(arr, index1, index2); } // 1、定义方法,返回值void,参数列表 int[] arr, int index1, int index2。 private static void tra(int[] arr, int index1, int index2) { int a = arr[index1]; arr[index1] = arr[index2]; //2、在方法中,定义临时变量,交换两个索引上的元素值。 arr[index2] = a; //3、在主方法中,创建一个int数组,调用方法,将数组作为参数传递。然后遍历数组查看结果 System.out.println("arr = " + Arrays.toString(arr) + ", index1 = " + index1 + ", index2 = " + index2); } }
运行效果: