java基础及练习题
1.1基本数据类型和引用数据类型的传递参数区别:
基本数据类型传递的参数是值; 引用数据类型传递的参数是地址; 如:public static void main(String[] args) { // TODO Auto-generated method stub int a=9; int[] arr={1,2}; int w; System.out.println("第一"+a+","+arr[0]+","+arr[1]);//9,1,2 chuandi(a,arr); System.out.println("第二"+a+","+arr[0]+","+arr[1]);//9,1,100 } public static void chuandi(int a,int[] arr){ a=a+2; arr[1]=100; System.out.println(a+","+arr[0]+","+arr[1]);//11,1,100 } }
2.. private 是一个权限修饰符
private 是一个权限修饰符,可以用来修饰成员变量和成员方法,被private修饰的成员,只能在本类中被访问 。 常见的应用:把成员变量使用private修饰,然后对外界提供getXxx()和setXxx()方法; 如果一个类的无参和有参构造都被private修饰,则该类将无法创建对象,可将本类中的方法使用static修饰,使用 类名.方法名(); 来访问. class Animal{ private Animal () {} private Animal (数据类型 变量名) {.....} public static void method(....){....} } 如外界想访问此Animal类中的method方法,可通过Animal.method(...)
3.编制程序要求输入整数a的平方和b的平方,若大于100,则输出百位以上的数字,否则输出两数之和。
package oracle.zibo.exam; public class Demo { public static void main(String[] args) {//客户端 // TODO Auto-generated method stub System.out.println(method(12,8)); } public static String method(int a,int b){ if((a*a+b*b)>100){ return "百位以上的数"+(a*a+b*b)/100; }else{ return "两数之和:"+(a+b); } }
4.实现字符串的反转,如"hgy123"可得到"132ygh"
package oracle.zibo.exam; public class TestDemo { public static void main(String[] args) { method1(); } public static void method1(){ String str="hgy123";
for(int i=str.length()-1;i>=0;i--){ char c=str.charAt(i); System.out.print(c); } } }
5.对任意函数x,返回y的值。
package oracle.zibo.exam; import java.util.Scanner; public class Test { public static void main(String[] args) { fun3(); } public static void fun3(){ Scanner sc=new Scanner(System.in); System.out.println("请输入x的值:"); int x=sc.nextInt(); int y=0; if(x<=1){ y=x*x+x*2; System.out.println("y的值是:"+y); }else if(x>1){ y=(int) Math.sqrt(x*x+1); //Math.sqrt();取数的根次方 System.out.println("y的值是:"+y); } } }
6.5 数组元素逆序
5.数组元素逆序 public class Total1 { public static void main(String[] args) { int[] arr={1,2,3,4,5}; int start=0,end=arr.length-1; for (int j = 0; j < arr.length; j++) { int tmp = arr[start]; arr[start] = arr[end]; arr[end] = tmp; start++; end--; if(start>end){ break; } } for (int j = 0; j < arr.length; j++){ System.out.println(arr[j]); } } }
7.4 利用for循环打印 9*9 表?
public class Total1 { public static void main(String[] args) { for(int i=0;i<9;i++){ for(int j=0;j<i+1;j++){ System.out.print((j+1)+"×"+(i+1)+"\t"); } System.out.println(""); } } }
8.3 利用for循环打印ABCDEFG...XYZ,26个大写字母与26个小写字母
public class Total1 { public static void main(String[] args) { char da='A'; char xiao='a'; for(int i=0;i<26;i++){ System.out.println("大写字母是:"+da+"小写字母是:"+xiao); da++; xiao++; //注意输出语句在++(在后面时)前后的区别 //System.out.println("大写字母是:"+da+"小写字母是:"+xiao); } } }
9.2 输出所有的水仙花数,所谓水仙花数是指一个数3位数,其每位数字立方和等于其 本身,如153 = 1*1*1 + 3*3*3 + 5*5*5
public class Total1 { public static void main(String[] args) { int ge=0,shi=0,bai=0; for(int i=100;i<1000;i++){ ge=i%10; shi=i/10%10; bai=i/100; if((ge*ge*ge+shi*shi*shi+bai*bai*bai)==i){ System.out.println(i); } } } }