当前位置: 代码迷 >> Java相关 >> 面试上机考试题
  详细解决方案

面试上机考试题

热度:704   发布时间:2012-01-11 07:34:11.0
面试上机考试题
【题目】
    本题程序使用级数来计算cos(x)的值,计算公式是:cos(x)=1-x**2/2!+x**4/4!-x**6/6!……
其中x**n表示x的n次方。
    实际计算时要求以从首项开始到绝对值大于等于e的项之和为cos(x)的近似值。本程序利用该级数求cos(pi/4)的值,e值为0.0000001。
   
【要求】
1、必须先将源程序录入到文件Myf1.java中,而后根据题目的要求以及程序中前后语句的逻辑关系,改正程序中的错误。
2、改错时不允许增加或删除任何语句。
3、改正后的程序文件保存在D盘姓名目录下。

【源程序】
class Cos
{
double cos;
Cos(double x, double e)
{
  int n=0;
  double sum=1;
  int sign=1;
  double term=1;
  while(Math.abs(term)>=e)
  {
   term=term*x*x/(n+1)(n+2);
   sum=sum+term*sign;
   sign=sign*(-1);
   n=n+2;
  }
  cos=sum;
}
}
class Myf1
{
public static void main(String args[])
{
  Cos obj=new Cos(Math.PI/4,0.0000001);
  System.out.println(cos);
}
}





【题目】
    本题程序的功能,找出10~100之间所有可以表示为两个平方数之和的奇数(如,奇数13可表示为平方式4和平方数9之和)。采用的算法是:遍历10~100之间的所有奇数,对于每个数判断其是否可以表示为两个平方数之和(即对于任意小于该奇数x的数i,如果i和x-i均为技术,则说明其可以表示为两个平方数之和)。最后将满足条件的所有数以形如“13=4+9”的形式输出。
   
【要求】
1、必须先将源程序录入到文件Myf2.java中,而后根据题目的要求以及程序中前后语句的逻辑关系,改正程序中的错误。
2、改错时不允许增加或删除任何语句。
3、改正后的程序文件保存在D盘姓名目录下。

【源程序】
public class Myf2
{
public static void main(String args[])
{
  int m;
  for(int j=11;j<=100;j+=2)
  {
   if(m=result(j)!=0)
    System.out.println(j+"="+m+"+"+(j-m));
  }
}
static int result(int x)
{
  int k;
  for(int i=1;i<x-1;i++)
  {
    k=x-i;
    if(isPfh(i)||isPfh(k))
     return i;
   }
   return 0;
}
static boolean isPfh(int y)
{
  boolean flag;
  for(int i=0;i<=Math.sqrt(y);i++)
  {
   if(i*i==y)
   {
    flag=true;
    break;
   }
  }
  return flag;
}
}




【题目】
    编程输出一个正整数的所有素数因子,该正整数由命令行参数给出。
   
【要求】
1、必须先将源程序录入到文件Myf3.java中,而后根据题目的要求以及程序中前后语句的逻辑关系,改正程序中的错误。
2、改错时不允许增加或删除任何语句。
3、改正后的程序文件保存在D盘姓名目录下。

【源程序】
class Myf3
{
public static void main(String args[])
{
  if(args.length<1)
  {
   System.err.println("请输入一个正整数!");
   System.exit(0);
  }
  int n=args[0];
  System.out.println(n+"的所有素数因子有:");
  for(int m=2;m<=n;m++)
  {
   if(n%m==0)
    if(isPrime(m))
     System.out.println(m);
  }
}

boolean isPrime(int b)
{
  boolean flag=true;
  if(b==2) return flag;
  int m=(int)(Math.ceil(Math.sqrt(b)));
  for(int i=2;i<=m;i++)
  {
   if(b%i!=0)
   {
    flag=false;
    break;
   }
  }
  return flag;
}
}



【题目】
    计算并输出一个字母字符串中每个字母出现的次数,不区分字母大小写。字符串由命令行参数传入。
   
【要求】
1、必须先将源程序录入到文件Myf4.java中,而后根据题目的要求以及程序中前后语句的逻辑关系,改正程序中的错误。
2、改错时不允许增加或删除任何语句。
3、改正后的程序文件保存在D盘姓名目录下。

【源程序】
class Myf4
{
public static void main(String args[])
{
  if(args.length!=1)
  {
   System.err.println("请向程序传递一个参数!");
   System.exit(-1);
  }
  String s=args[0];
  int[] letterCount=new int[26];
  String s2=s.toUpperCase();
  char[] letters=s.toCharArray();
  for(int count=0;count<=letters.length;count++)
  {
   char lett=letters[count];
   if((lett>='A')&(lett<='Z'))
   {
    letterCount[lett-'A']++;
   }
  }
  
  System.out.println("字符串s中每个字母出现的次数是:");
  for(char count='A';count<='Z';count++)
   System.out.print(count+":"+letterCount[count]+"\t");
  System.out.println();
}
}



【题目】
    本题程序建立了一个Judgment,模拟裁判小组给选手打分。该类包括:
(1)私有成员变量:double[] a:存储各位裁判给一位选手打的分。数组长度为裁判人数。
(2)成员方法:有3个:
    构造方法 Judgment(double[] fa):用裁判给的分数创建Judgment对象。裁判给的分数由fa传递。
方法double ave():返回选手得分。裁判所给的分数中的最高分和最低分去掉,剩余分数的平均值为选手最后得分。
    方法int getNumber():返回裁判总人数。
   
    建立好Judgment类后,编写了一个测试类,创建一个Judgment对象,在main方法中用数据{8.7,9.5,9.0,9.3,9.8,9.4,9.2,9.4,8.3}作为9名裁判给一名选手打的分数,将形式为:
裁判人数:*
运动员得分:****
的信息在屏幕中输出。
   
【要求】
1、必须先将源程序录入到文件Myf5.java中,而后根据题目的要求以及程序中前后语句的逻辑关系,填充程序中的空行。
2、填空时注意一个空行只允许填入一个java语句。
3、改正后的程序文件保存在D盘姓名目录下。

【源程序】
class Myf5
{
public static void main(String args[])
{
  double[] ra={8.7,9.5,9.0,9.3,9.8,9.4,9.2,9.4,8.3};
  ________________________________
  System.out.println("裁判人数:"+j.getNumber());
  System.out.println(____________________________);  
}
}
class Judgment
{
private double[] a;
Judgment(double[] fa)
{
  __________________________
}
double ave()
{
  double max=a[0];
  double min=a[0];
  double sum=0;
  for(int i=0;i<a.length;i++)
  {
   if(a[i]>max) max=a[i];
   if(a[i]<min) min=a[i];
   _____________________________
  }
  _____________________________________
}
int getNumber()
{
  return a.length;
}
}



【题目】
    本题程序建立了一个类PhoneCard(电话卡),实现电话接通一次扣除电话卡余额0.5元的功能。该类包括:
(1)成员变量:private int password:代表电话卡密码;
   long cardNumber:代表电话卡卡号;
   double balance:代表电话卡余额;
   boolean connected:代表电话是否接通。
(2)成员方法:有4个:
    构造方法 PhoneCard()。
    方法boolean performConnection(long cn, int pw):实现接入电话操作,cn电话卡号,pw密码。当参数cn为当前电话卡的卡号并且参数pw为当前电话卡的密码,则认为电话接通,返回true,否则认为电话未接通,返回false。
    方法double getBalance():返回电话卡余额。如电话接通,则返回电话卡余额;如电话未接通,则返回数值-1。
    方法void performDial():电话接通,电话卡余额扣除0.5元。
   
    建立好PhoneCard类后,编写了一个测试类,在main方法中建立了一个PhoneCard对象(卡号:12345,密码:123,卡上余额:30),在屏幕中输出接通一次后电话卡余额。
      
【要求】
1、必须先将源程序录入到文件Myf6.java中,而后根据题目的要求以及程序中前后语句的逻辑关系,填充程序中的空行。
2、填空时注意一个空行只允许填入一个java语句。
3、改正后的程序文件保存在D盘姓名目录下。

【源程序】
class Myf6
{
public static void main(String args[])
{
  PhoneCard pc=new PhoneCard(12345,123,30);
  __________________________________
  pc.performDial();
  System.out.println(pc.getBalance());
}
}
class PhoneCard
{
private int password;
long cardNumber;
double balance;
boolean connected;

public PhoneCard(long cn, int pw, double bal)
{
  cardNumber=cn;
  password=pw;
  balance=bal;
  ______________________________
}
boolean performConnection(long cn, int pw)
{
  __________________________________
  {
   connected=true;
  }
  else
  {
   connected=false;
  }
  __________________________________
}
double getBalance()
{
  if(connected) return balance;
  else return -1;
}
void performDial()
{
  if(connected)
   ______________________________
}
}



【题目】
    本题程序建立了一个用于分析文本的类:WordAnalysis。该类包括:
(1)成员变量:StringBuffer sb:存储一段文本。
(2)成员方法:有3个:
    构造方法 WordAnalysis():将从键盘输入的一段英文文本中存入成员变量sb。要求输入的文本中单词之间只以一个空格分隔,整个文本以“#”结束。存入sb的内容不包括“#”。
方法int getWordNum():返回sb中的单词数。
    方法int getCharNum():返回sb中的字符数(不包括空格)。
   
    建立好WordAnalysis类后,编写了一个测试类,建立了一个WordAnalysis对象,调用方法getWordNum()和getCharNum()获取了文本中的单词数与字符数。
   
【要求】
1、必须先将源程序录入到文件Myf7.java中,而后根据题目的要求以及程序中前后语句的逻辑关系,填充程序中的空行。
2、填空时注意一个空行只允许填入一个java语句。
3、改正后的程序文件保存在D盘姓名目录下。

【源程序】
import java.util.Scanner;
class Myf7
{
public static void main(String args[])
{
  Scanner scanner = new Scanner(System.in);
  String line=scanner.nextLine();
  (____________________)
  System.out.println("输入文本中的单词数为 "+obj.getWordNum());
  System.out.println("输入文本中的字符数为 "+obj.getCharNum());
}
}
class WorldAnalysis
{
StringBuffer sb;
WorldAnalysis(String line)
{
  if(line.charAt(line.length()-1)=='#')
   (__________________________)
  sb=new StringBuffer(line);
}
int getWordNum()
{
  int count;
  char ch;
  (________________)
  for(int i=0;i<sb.length();i++)
  {
   ch=sb.charAt(i);
   if(ch==' ')
   {
    count ++;
   }
   }
   (____________________)
   return count;
}
int getCharNum()
{
  int count;
  count=0;
  char ch;
  for(int i=0;i<sb.length();i++)
  {
   ch=sb.charAt(i);
   (______________________)
   {
    count++;
   }
   }
   return count;
}
}



【题目】
    本题程序建立了一个书类:Book,用于模拟图书馆的图书借阅情况。该类包括:
(1)成员变量:
String author:存储作者名。
String title:存储书名。
private int status:存储书的借阅情况,0表示在馆内,1表示已借出。初始值为0.
(2)构造方法:
public Book(String n, String t):创建一个Book类的对象,将参数n和t的值分别赋给成员变量author和title。
(3)公有成员方法:有3个:
public int getStatus():返回变量status的值。
public void setStatus(int s):将参数s的值赋给变量status。
public String show():以字符串“… by … is …”的形式返回书的名称、作者和借阅情况(根据变量status的值来输出是“在馆内”或“已借出”),例如“狂人日记 by 鲁迅 is 在馆内”。

建立好Book类后,编写了一个测试类,建立两个Book类的对象b1和b2,它们的参数分别是“巴金”,“家”和“易中天”,“品三国”。然后将b2对象的借阅情况设为“已借出”状态,最后调用各自的show方法输出b1和b2的相关信息。
   
【要求】
1、必须先将源程序录入到文件Myf8.java中,而后根据题目的要求以及程序中前后语句的逻辑关系,填充程序中的空行。
2、填空时注意一个空行只允许填入一个java语句。
3、改正后的程序文件保存在D盘姓名目录下。

【源程序】
class Myf8
{
public static void main(String args[])
{
  Book b1=new Book("巴金","家");
  Book b2=new Book("易中天","品三国");
  (__________________________________)
  System.out.println(b1.show());
  System.out.println(b2.show());
}
}
class Book
{
String author;
String title;
private int status;

Book(String n, String t)
{
  author=n;
  title=t;
  (____________________)
}
public int getStatus()
{
  return status;
}
(_____________________________)
{
  status=s;
}
public String show()
{
  String statusstr="";
  (___________________________)
  (___________________________)
   statusstr+=" is 已借出";
  else
   statusstr+=" is 在馆内";
  return statusstr;
}
}


某公司上机考试用的,谁能解决下

[ 本帖最后由 mh034008 于 2012-1-11 07:37 编辑 ]
搜索更多相关的解决方案: 绝对值  考试题  double  class  计算  

----------------解决方案--------------------------------------------------------
谁会填写?面试题
----------------解决方案--------------------------------------------------------
Myf8
程序代码:
public class Myf8 {

    public static void main(String[] args) {
        Book b1 = new Book("巴金", "家");
        Book b2 = new Book("易中天", "品三国");
        b2.setStatus(1);    //(__________)
        System.out.println(b1.show());
        System.out.println(b2.show());
    }
}

class Book {
    String author;
    String title;
    private int status;

    Book(String n, String t) {
        author = n;
        title = t;
        //(____________________)
    }
   
    public int getStatus() {
        return status;
    }
   
    public void setStatus(int s) //(__________)
    {
        status = s;
    }
   
    public String show() {
        String statusstr="";
        statusstr += title + " by " + author;    //(__________)
        if(status == 1)     //(__________)
            statusstr += " is 已借出";
        else
            statusstr+=" is 在馆内";
        return statusstr;
    }
}


----------------解决方案--------------------------------------------------------
Myf7
程序代码:
import java.util.Scanner;

class Myf7 {
    public static void main(String args[]) {
        Scanner scanner = new Scanner(System.in);
        String line = scanner.nextLine();
        WorldAnalysis obj = new WorldAnalysis(line);    //(____________________)
        System.out.println("输入文本中的单词数为 " + obj.getWordNum());
        System.out.println("输入文本中的字符数为 " + obj.getCharNum());
    }
}

class WorldAnalysis {
    StringBuffer sb;
   
    WorldAnalysis(String line) {
        if(line.charAt(line.length() - 1) == '#')
            line = line.substring(0, line.length() - 1);    //(__________________________)
        sb = new StringBuffer(line);
    }
   
    int getWordNum() {
        int count;
        char ch;
        count = 0;    //(________________)
        for(int i = 0; i < sb.length(); i++) {
            ch = sb.charAt(i);
            if(ch == ' ') {
                count ++;
            }
        }
        count ++;    //(____________________)
        return count;
    }
   
    int getCharNum() {
        int count;
        count = 0;
        char ch;
        for(int i=0;i<sb.length();i++) {
            ch=sb.charAt(i);
            if(ch != ' ')    //(______________________)
            {
                count++;
            }
        }
        return count;
    }
}


----------------解决方案--------------------------------------------------------
Myf6
程序代码:
class Myf6
{
    public static void main(String args[])
    {
        PhoneCard pc = new PhoneCard(12345, 123, 30);
        pc.performConnection(12345, 123);    //__________________________________
        pc.performDial();
        System.out.println(pc.getBalance());
    }
}

class PhoneCard
{
    private int password;    //密码
    long cardNumber;        //卡号
    double balance;            //余额
    boolean connected;        //电话是否接通

    public PhoneCard(long cn, int pw, double bal)
    {
        cardNumber = cn;
        password = pw;
        balance = bal;
        //______________________________
    }
   
    boolean performConnection(long cn, int pw)
    {
        if(cn == this.cardNumber && pw == this.password)    //__________________________________
        {
            connected = true;
        }
        else
        {
            connected = false;
        }
        return connected;         //__________________________________
    }
   
    double getBalance()
    {
        if(connected) return balance;
        else return -1;
    }
   
    void performDial()
    {
        if(connected)
            balance -= 0.5;    //______________________________
    }
}


----------------解决方案--------------------------------------------------------
谁来做下?
----------------解决方案--------------------------------------------------------
回复 3楼 yhlvht
book的构造函数里面第三行status=0不是注释
----------------解决方案--------------------------------------------------------
是的
----------------解决方案--------------------------------------------------------
  相关解决方案