(面试题)二维数组和方法(2019年10月11日)

二维数组和方法(2019年10月11日)
1.问:画星星
答:代码如下

//定义五行
int hs = 5;
for (int i = 1; i <= hs; i++) {
// 打印空格
for (int j = 1; j <= hs - i; j++) {
System.out.print(" ");
}
// 打印*号
for (int j = 1; j <= i + i - 1; j++) {
System.out.print("*");
}
System.out.print("
");
}

2.在main函数体中我们定义int a=1;然后再method函数中传入a;method函数中将a变为2
然后再method(a);的下一行打印a,问:a的结果是什么,为什么是这个
答:a的结果是1 对于a这种基本数据类型,a这个空间保存的是1这个值,也就是说传给method方法的也是一个值,虽然method 中将a变成了2,但是在main空间中i这个空间中存放的任然是1,所以打印的结果是1


3.同问题2 将1换成一个数组,在method中将第一个元素的值改为10请问输出什么结果?

答:数组i这个盒子中存放的是一个指向数组的地址,在method中将第一个元素改成了10,所 以他的结果会是10


4.问:写一个冒泡排序,将数组int a[]={12,22,45,23,78,451}从小到大排序
答:代码如下

int a[]={12,22,45,23,78,451};
for(int i=0;i<a.length;i++){
for(int j=0;j<a.length-1;j++){
if(a[j]>a[j+1]){
int max=a[j];
a[j]=a[j+1];    
a[j+1]=max;
}
}
}    
for(int c:a){
System.out.println(c);
}

如果要从大到小排序的话,就把a[j]>a[j+1]换成a[j]<a[j+1]

原文地址:https://www.cnblogs.com/Starlets/p/11679630.html