当前位置:编程学习 > JAVA >>

要JAVA基础的一些练习题与参考答案

初学者想多看些例题
补充:主要学习一下编程思想,例如for循环的灵活应用,或者一些其他的,希望前辈多给一些开发思维的Java编程(基础)例题,初学者需要循序渐进。谢谢

答案:以Singleton为例子

Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
一般Singleton模式通常有几种种形式:
第一种形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。

public class Singleton {
private Singleton(){}
      //在自己内部定义自己一个实例
      //注意这是private 只供内部调用
      private static Singleton instance = new Singleton();
      //这里提供了一个供外部访问本class的静态方法,可以直接访问  
      public static Singleton getInstance() {
        return instance;   
      } 
    } 

    第二种形式: 
public class Singleton { 
  private static Singleton instance = null;
  public static synchronized Singleton getInstance() {
  //这个方法比上面有所改进,不用每次都进行生成对象,只是第一次     
  //使用时生成实例,提高了效率!
  if (instance==null)
    instance=new Singleton();
return instance;   } 

 


内部类的实现方式
package test;
public class  OuterClass
{
 private class InterClass
 {
  public InterClass()
  {
   System.out.println("InterClass Create");
  }
 }
 public OuterClass()
 {
  InterClass ic = new InterClass();
  System.out.println("OuterClass Create");
 }
 public static void main(String[] args)
 {
  OuterClass oc = new OuterClass();
 }
}
输出结果:
C:\>java test/OuterClass
InterClass Create
OuterClass Create

继承时候类的执行顺序问题
package test;
public class  FatherClass
{
    public FatherClass()
 {
  System.out.println("FatherClass Create");
 }
}
子类:
package test;
import test.FatherClass;
public class  ChildClass extends FatherClass
{
 public ChildClass()
 {
  System.out.println("ChildClass Create");
 }
 public static void main(String[] args)
 {
  FatherClass fc = new FatherClass();
  ChildClass cc = new ChildClass();
 }
}
输出结果:
C:\>java test.ChildClass
FatherClass Create
FatherClass Create
ChildClass Create


一、问答题
1、Java语言的数据类型有哪些?8
答:有byte(字节型)、char(字符型)、boolean(布尔型)、short(短整型)、int(整型)、long(长整型)、
浮点型:float(单精度)、double(双精度)。


2、写出算术运算符、关系运算符、逻辑运算符各自包含的运算符,写出条件运算符的形式,并简述其执行过程。10
答:
算术运算符:++、--、+、-、*、/、%
关系运算符:!=、>=、<=、>、<、==
逻辑运算符:!(逻辑非)、&&(逻辑与)、||(逻辑或)
条件运算符的形式:表达式1?表达式2:表达式3;

3、数组有怎样的特征?写出一维数组两种初始化的语法格式(可使用具体的实例)。10
答:数组特征:数组有若干个元素;
各元素有相同的数据类型;
按一定的顺序排列;
一维数组两种初始化的语法格式:
int a[]=new int[2];
a[0]=1;
a[1]=2;
或int a[];
a[]=new int[2];
a[0]=1;
a[1]=2;

int a[]={1,2};


4、比较顺序表、栈、队列的异同点,分别写出冒泡法排序的主要特点。12
答:都运用数组的知识,都运用了方法调用;
栈的特点是:
冒泡法排序的主要特点:
经过多轮循环,每一轮循环从最后一个元素依次与前面的元素比较大小,最终找到的最小元素排在第一位,第一轮循环终止;再依次进行下一轮循环。


二、编程题
1、规定一个工人工作时间一月160小时,每小时工资5元,加班的话,每小时增加4元,请编程计算此工人一个月的工资,工作时间由键盘输入。15
import jaimport java.io.*;
pubic class Qgrgz
{
   public static void main(String[] args)throws IOException
   {int x,result;
    InputStreamReader ir;
    BufferedReader in;
    ir=new InputStreamReader(System.in);
    in=new BufferedReader(ir);
    System.out.println("Shurugongrengongzuoshijian:");
    String s=in.readLine();
     x=Integer.parseInt(s);
     if(0<x&&x<=160)
     result=x*5;
     else
      result=(160*5+(x-160)*9);
     System.out.println("gongrenyuegongziwei:"+result);
    }
}

2、编程求解1—100中是7的倍数的数值的和。15
public class Qh
{
   public static void main(String[] args)
   {
     int sum=0;
     int i=1;
     while(i<100)
     {
     if(i%7==0)
     sum +=i;
     i++;
     }
    System.out.println("sum="+sum);
   }
}
   
   


3、输入3名学生4门课程的成绩,分别统计每个学生4门课程的平均成绩。15
import java.io.*;
public class Pjf
{
 public static void main(String[] args)throws IOException
 {
  InputStreamReader ir;
  BufferedReader in;
  ir=new InputStreamReader(System.in);
  in=new BufferedReader(ir);
           for(int i=1;i<=3;i++)
    {
       double v=0,sum=0;
   for(int j=1;j<=4;j++)
   {
    System.out.print("请输入第"+i+"个学生第"+j+"科成绩:");
    String a=in.readLine();
    int x=Integer.parseInt(a);
    sum=sum+x;
   }
   v=sum/4;
   System.out.println("总分是:"+sum);
   System.out.println("平均分是:"+v);
 }
}
}
   
   


4、运用方法调用求一维数组中的最大元素及下标,在main方法中输入数组元素。15
import java.io.*;
public class Qszzdys
{  int a[]=new int[10];
   public static void main(String[] args)throws IOException
   {
    int i;
    Qszzdys b=new Qszzdys();
    InputStreamReader ir;
    BufferedReader in;
    ir=new InputStreamReader(System.in);
    in=new BufferedReader(ir);
       for(i=0;i<10;i++)
     {
      System.out.println("请输入a["+i+"]:");
      String s=in.readLine();
     b.a[i]=Integer.parseInt(s);
     }
      b.d();
     }
 void d()
 {
  int max,x=0;
  max=a[0];
  for(int j=1;j<10;j++)
   if(a[j]>max)
  {
   max=a[j];
   x=j;
  }
  System.out.println("最大值是:"+max+";下标是:"+x);
 }
}
 

5、运用选择法对23,45,34,78,99,12,50,0这组数进行升序排列。(选做题,做了加分,没做不减分)15
public class Paixu
{  
 

上一个:帮我修改一下JAVA的聊天程序
下一个:如何用java搭建手机设计平台?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,