Java练习题

/*
 * 设有一个字符数组,现对数组中的元音字母做一个统计
 */

package first;
public class aquery {

	 char [] c={'a','e','i','o','u','w','g','a','r','t','t'};
	 int sum=0;
	 
  public void   aquery(){
		 
		 for(int i=0;i<c.length;i++){
			 
			 if(c[i]=='a' ||c[i]=='i'||c[i]=='o'||c[i]=='u'||c[i]=='e'){
				 System.out.print(c[i]+"    ");
				 sum=sum+1;
				 }
		 } 
		 System.out.println();
		 System.out.println("元音字母的个数为:"+sum);
	 }
    
}

/*
 * 设计一个Java程序,设有一个给定的int类型数组并有一批数据,现让你用二种以上的方法对其进行升或降序排列。
 */

package second;
import java.util.Arrays;
public class Test {  
    //2.    设计一个Java程序,设有一个给定的int类型数组并有一批数据,  
    //      现让你用二种以上的方法对其进行升或降序排列。  
    public static void main(String[]args){  
        int[] ary={1,3,6,3,2,3,4,5,6,6,7,6,5};  
        ary = selectionSort(ary);  
        //ary = bubleSort(ary);  
        //ary = insertSort(ary);  
        //ary = insertSortBest(ary);  
        //输出  
        String s = Arrays.toString(ary);  
        System.out.print(s);  
    }  
    //选择排序  
    public static int[] selectionSort(int[] ary){  
        for(int i=0;i<ary.length-1;i++){  
            for(int j = i+1;j<ary.length;j++){  
                if(ary[i]>ary[j]){  
                    int temp = ary[i];  
                    ary[i] = ary[j];  
                    ary[j] = temp;   
                }  
            }  
        }  
        return ary;  
    }  
    //冒泡排序  
    public static int[] bubleSort(int[] ary){  
        for(int i=0;i<ary.length-1;i++){  
            for(int j=0;j<ary.length-i-1;j++){  
                if(ary[j]>ary[j+1]){  
                    int temp = ary[j];  
                    ary[j]=ary[j+1];  
                    ary[j+1]=temp;  
                }  
            }  
        }  
        return ary;  
    }  
    //插入排序  
    public static int[] insertSort(int[] ary){  
        for(int i = 0;i<ary.length;i++){  
            int temp = ary[i];  
            int j;  
            for(j=i-1;j>=0;j--){  
                if(temp<ary[j]){  
                ary[j+1]=ary[j];  
                }else{  
                    break;//找到插入位置  
                }  
            }  
            ary[j+1]=temp;//插入元素  
        }  
        return ary;  
    }  
    //插入排序的优化  
public static int[] insertSortBest(int[] ary){  
        for(int i = 0;i<ary.length;i++){  
            int temp = ary[i];  
            int j;  
            for(j=i-1;j>=0&&temp<ary[j];j--){  
                ary[j+1]=ary[j];  
            }  
            ary[j+1]=temp;//插入元素  
        }  
        return ary;  
    }  
}  


  
  
  <pre name="code" class="java">/*
 * 4.设计一个方法接收一个int数,然后返回它的反转字符串。如n=12345,则输出:54321
 */
package fourth;
public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
      int []num=new int[]{1,2,3,4,5};
      for(int i=num.length-1;i>=0;i--){
    	  System.out.print(num[i]);
    	  
      }
      
	}

}

 
/*
 * 5.设计一个方法接收一个三位的整数,如果是一个水仙花数,此方法返回一个布尔true值,否则是false值。再设计一个方法遍历100至999,
 *     对每个数都借用刚才的方法判断其是否是水仙花数,如果是打印出来,否则就是下一个。所谓水仙花数,是一个3位数,其各位的立方和等该数
 *     自身。如:153=1的三次方*5的三次方*3的三次方
 */
package other;
import java.util.*;
public class fiveth {
   public void bijiao(int n){
	   
	   int num=n;
	   int g=num%10;
	   int b=num/100;
	   int s=(num%100)/10;
	   
   if((b*b*b+s*s*s+g*g*g)==num){
	   System.out.print("true");
   }else{
	   
	   System.out.println("false");
   }
}
   
   public void bianli(){
	   
	   for(int num=100;num<=999;num++){
		   int g=num%10;
		   int b=num/100;
		   int s=(num%100)/10;
		
		   if((b*b*b+s*s*s+g*g*g)==num){
			   
			   System.out.println("水仙花数为:"+num+"   ");
		   }
		   
	   }
   }
}
/*
 * 6.设计一个方法,接收一个四位整数,然后此方法判断这个4位数的
 *  9倍是该4位数的反序数。如:4位数的1089的9倍是9801。9801
 *  是1089的反序数。最后把具有这种特性的4位数全都打印出来。
 */

package sixth;
public class S {
  
	int num;
	int q,b,s,g;
	public void reception(int num){
		this.num=num;
		
        q=num/1000;
        g=num%10;
        b=(num%1000)/100;
        s=((num%1000)%100)/10;
        
        int num1=g*1000+s*100+b*10+q;
        
        if(num*9==num1){
        	System.out.println(num);
        	
        }
	}
}
package sixth;

public class Test6 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
        S s=new S();
        s.reception(1089);
	}

}
/*
 * 8.设计一个方法要求检查一个指定字符是否允许作为 Java 标识符中的首字符,并测试。
 */

package eigth;
public class query {
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
      char ch='f';
      queryJ('f');
	}
   public static void queryJ(char ch){
	   
	  if(ch=='j'||ch=='J'){
		  System.out.print(ch+"   不能作为首关键字");
	  }else{
		  System.out.print(ch+"能作为关键字");
	  }
   }
}





初学java的可以边学边练,效果盛佳! 3 编程题(改代码,写代码) 3.1 下拉列表实现 使用ajax技术完成下拉列表对应显示内容。 当选择下拉列表某项时: 显示对应内容: 参考答案: 1)ActionServlet copytextpop-up package web; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ActionServlet extends HttpServlet { public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); String uri = request.getRequestURI(); String path = uri.substring(uri.lastIndexOf("/"), uri.lastIndexOf(".")); response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); if(path.equals("/prod")){ String name = request.getParameter("name"); System.out.println("name:" + name); if(name.equals("qq")){ out.println("性价比高"); }else if(name.equals("bmw")){ out.println("驾驶性能出众"); }else{ out.println("好车,也贵"); } } out.close(); } } package web; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ActionServlet extends HttpServlet { public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); String uri = request.getRequestURI(); String path = uri.substring(uri.lastIndexOf("/"), uri.lastIndexOf(".")); response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); if(path.equals("/prod")){ String name = request.getParameter("name"); System.out.println("name:" + name); if(name.equals("qq")){ out.println("性价比高"); }else if(name.equals("bmw")){ out.println("驾驶性能出众"); }else{ out.println("好车,也贵"); } } out.close(); } } 2)product.jsp copytextpop-up <%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <html> <head> <title>Insert title here</title> <style> #d1{ background-color:#fff8dc; width:220px; } </style> <script type="text/javascript" src="js/prototype-1.6.0.3.js"> </script> <script type="text/javascript"> function getXmlHttpRequest(){ var xhr = null; if((typeof XMLHttpRequest)!='undefined'){ xhr = new XMLHttpRequest(); }else { xhr = new ActiveXObject('Microsoft.XMLHttp'); } return xhr; } function change(v1){ var xhr = getXmlHttpRequest(); xhr.open('get','prod.do?name='+v1,true); xhr.onreadystatechange=function(){ if(xhr.readyState == 4){ var txt = xhr.responseText; $('d1').innerHTML = txt; } } xhr.send(null); } </script> </head> <body style="font-size:30px;"> <select style="width:120px;" id="s1" onchange="change(this.value);"> <option value="qq">QQ</option> <option value="bmw">宝马</option> <option value="ff">法拉利</option> </select> <div id="d1"></div> </body> </html>
数组章节作业 1、将一个数组中的元素倒排过来,不能新开一个数组的临时存储空 间,只能在原数组上改。 2、写一个类用来模拟栈这种数据结构,要求底层 使用数组存储数据, 并给出相应的进栈和出栈的方法。MyStack int arr[]; int count;//栈中元素个数 public MyStack(int n){ arr = new int[n]; } boolean push(int num){ if(count==arr.length){} arr[count++]=num; } int pop(){ if(count==0){ return -1;} return arr[--count]; } 3、实现在一个数组指定位置添加元素和删除元素的功能。 1、数组容量问题? 2、添加元素前后数组中元素的变化 3、删除元素前后数组中元素的变化 面向对象章节作业 1,写一个类,名为Animal,该类有两个私有属性, name(代表动物的名),和legs(代表动物的腿的条 数)。并提供个两构造方法,一个无参,默认给name 赋值为AAA,给legs赋值为4;另一个需要两个参数, 分别用这两个参数给私有属性赋值。该类还有两个重载的move()方法,其中一个无参,在屏幕上输出一行文: XXX Moving!!(XXX为该动物的名);另一个需要一个int参数n,在屏幕上输出n次 XXX Moving!! 2,写一个类Person,包含以下属性:String name; int age; boolean gender; Person partner。 为Person类写一个marry(Person p)方法,代表当前 对象和p结婚,如若可以结婚,则输出恭贺信息, 否则输出不能结婚原因。要求在另外一个类中写一 个主方法,来测试以上程序。(下列情况不能结婚: 结婚年龄,男<24,女<22;3,某一方已婚) 3,写一个类,名为Animal,该类有两个私有属性,name(代表动物的名),和legs(代表动物的腿的条数);要求为两个私有属性提供public 的访问方法。并提个两构造方法,一个无参,默认给name赋值为AAA,给legs赋值为4;另一个需要两个参数,分别用这两个参数给私有属性赋值。要求在第一个构造方法中调用第二个构造方法。该类还有两个重载的move()方法,其中一个无参,在屏幕上输出一行文: XXX Moving!!(XXX为该动物的名);另一个需要一个int参数n,在屏幕上输出n次 XXX Moving!! 4,写一个类Fish,继承自Animal类,并提供一个构造方法,该构造方法需要一个参数name,并给legs赋默认值0;该类还要求覆盖Animal类中的无参move()方法,要求输出:XXX Swimming!! 5,写一个类Bird,继承自Animal类,并提供一个构造方法,该构造方法需要一个参数name,并给legs赋默认值2;该类还要求覆盖Animal类中的无参move()方法,要求输出:XXX Flying!! 6,写一个类Zoo,要求分别生成若干个Animal,Fish和Bird。并调用他们的属性和方法。 7,写Shape类,要求如下: 1.int类型属性x和y,分别表示图形的中心点坐标 2.无参构造器 3.构造器,对x和y进行初始化 4.draw()方法,输出"Shape draw" 写Circle类,继承Shape类,要求如下 1.double类型属性r,表示圆的半径 2.无参构造器,将r初始化为1.0 3.构造器,对r进行初始化 4.构造器,对x、y、r进行初始化 5.draw()方法,输出"draw in circle"和x,y,r的值 写Rectangle类,继承Shape类,要求如下 1.double类型属性height和width,表示矩形的高和宽 2.无参构造器,将height和width都初始化为1.0 3.构造器,对height和width进行初始化 4.构造器,对x、y、height、width进行初始化 5.draw()方法,输出"draw in rectangle"和x,y,height,width的值 使用ShapeTest类测试以上代码。 8,某公司的雇员分为以下若干类: Employee:这是所有员工总的父类,属性:员工的姓名,员工的生日月份。方法:getSalary(int month) 根据参数月份来确定工资,如果该月员工过生日,则公司会额外奖励100元。 SalariedEmployee:Employee的子类,拿固定工资的员工。属性:月薪 HourlyEmployee:Employee的子类,按小时拿工资的员工,每月工作超出160小时的部分按照1.5倍工资发放。属性:每小时的工资、每月工作的小时数 SalesEmployee:Employee的子类,销售人员,工资由月销售额和提成率决定。属性:月销售额、提成率 BasedPlusSalesEmployee:SalesEmployee的子类,有固定底薪的销售人员,工资由底薪加上销售提成部分。属性:底薪。 写一个程序,把若干各种类型的员工放在一个Employee数组里,写一个函数,打印出某月每个员工的工资数额。注意:要求把每个类都成完全封装,不允许非私有化属性。 容器类章节作业 1、写MyStack类,实现栈功能。在类中使用ArrayList保存数据。 2、使用TreeSet和Comparator,写TreeSetTest1 要求:对TreeSet中的元素"HashSet"、"ArrayList"、"TreeMap"、"HashMap"、"TreeSet"、"LinkedList"进行升序和倒序排列 3、使用TreeSet和Comparator,写TreeSetTest2 要求:对TreeSet中的元素1,2,3,4,5,6,7,8,9,10进行排列,排序逻辑为奇数在前偶数在后,奇数按照升序排列,偶数按照降序排列 4、使用TreeSet和Comparator,写TreeSetTestInner 要求: 对TreeSet中的元素"HashSet"、"ArrayList"、"TreeMap"、"HashMap"、"TreeSet"、"LinkedList"进行升序和倒序排列 1. 使用匿名内部类实现 2. 使用静态内部类实现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值