(面试题)二维数组和方法(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("\n"); }
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]