Function Test Questions for Java/BlueJ

[Set I]
Time: 1 Hrs                                                                            Marks: 3x5 = 15
1. Write a program to accept a sentence and reverse each word in that sentence and print it. Program should also count number of palindrome word present in that sentence.
Define a class that has the following functions.
  String reverseWord ( String word) -> which reverse the word and return it.
  boolean isPalindrom ( String word) -> which check and return true if the word is palindrome else return false.
  public void main ( String Sentence) -> which print the sentence after reversing each word, and then print number of palindrome word present in it.
class palindromeCount
{
  String reverseWord ( String word)
  {
    String reverseWord = "";
    int l = word.length ( );
    for ( int i = l-1;i> = 0;i--)
    reverseWord  =  reverseWord + word.charAt ( i);
    return ( reverseWord);
  }
  boolean isPalindrom ( String word)
  {
    String w  =  reverseWord ( word);
    return ( word.equals ( w));
  }
  public void main ( String Sentence)
  {
    Sentence + =  " ";
    int p = 0, ctr = 0;
    while ( p<Sentence.length ( ))
    {
      int x = Sentence.indexOf ( ' ',p);
      String word  =  Sentence.substring ( p,x);
      System.out.print ( reverseWord ( word)+" ");
      if ( isPalindrom ( word) =  = true)
        ctr++;
      p = x+1;
    }
    System.out.println ( "\nNo of Palindrom Word : "+ctr);
  }
}
2. A number is called Armstrong number if the sum of cube of each digit of the number is equal to that number. ( e.g. 153 is a Armstrong number because 153 =  13 + 53 +33).
Define a class armStrong that has the following functions.
  private int sumOfDigit ( int N) -> which return the sum of cube of each digits present in N.
  public static void main ( int x, int y) -> which display all the arm strong number between the range x and y.
class armStrong
{
  private static int sumOfDigit ( int N)
  {
    int sum = 0;
    while ( N>0)
    {
      int digit = N%10;
      sum = sum+ ( digit*digit*digit);
      N = N/10;
    }
    return ( sum);
  }
  public static void main ( int x, int y)
  {
    for ( int number = x;number< = y;number++)
    {
      if ( number =  = sumOfDigit ( number))
        System.out.println ( "Armstrong Number is "+number);
    }
  }
}
3. Write a program to input a positive natural number N and output all combination of consecutive natural numbers which added up to give N
  Example: If the N is 15 then output should be
    1 2 3 4 5  =  15
    4 5 6  =  15
    7 8  =  15
Define a class consecutive that has the following functions.
  private static void printSet ( int i, int j) -> which print one line series of numbers starting from i to j, as mentioned in the above format.
  public static void main ( int N) -> which will print all number of possibilities upto N, as mentioned in the above example.
public class consecutive
{
  private static void printSet ( int i, int j)
  {
    int s = 0;
    for ( int k = i;k<j;k++)
    {
      s+ = k;
      System.out.print ( k+" ");
    }
    System.out.println ( " =  "+s);
  }
  public static void main ( int N)
  {
    int i,j,s;
    for ( i = 1;i<N;i++)
    {
      s = 0; j = i;
      while ( s<N)
      {
        s = s+j; j++;
      }
      if ( s =  = N)
      {
        printSet ( i,j);
      }
    }
  }
}
[Set II]
Time: 1 Hrs                                                                            Marks: 3x5 = 15
1. Write a program to accept a sentence then convert it to Title Case. That means first character of each word should be capital and remaining are small letter. ( e.g. MY NAME IS AMITABH become My Name Is Amitabh)
Define a class that has the following functions.
  private String properWord ( String word) -> which convert the word to proper case ( AMIT becomes Amit) and return it.
  public void main ( String Sentence) -> which print the given sentence to in the above mention format.
public class properSentence
{
  private String properWord ( String word)
  {
    word = word.toLowerCase ( );
    char firstChar = Character.toUpperCase ( word.charAt ( 0));
    String newWord = firstChar+word.substring ( 1);
    return ( newWord);
  }
  public void main ( String Sentence)
  {
    Sentence+ = " ";
    int p = 0;
    while ( p<Sentence.length ( ))
    {
      int x = Sentence.indexOf ( ' ',p);
      String word = Sentence.substring ( p,x);
      System.out.print ( properWord ( word)+" ");
      p = x+1;
    }
  }
}
2. Write a program to determine if the input number is a lucky number or not. A lucky number is a number whose digits when added ( till a single digit is obtained) it equals to 1. For example,
  4567  =  7+6+5+4  =  22 22 = 2+2 = 4 4 is not  =  1
    So 4567 is not a lucky number.
  4627  =  7+6+2+4  =  19 19 = 1+9 = 10 10 = 1+0 = 1
    So 4627 is a lucky number.
Define a class luckyNumber that has the following functions.
  private int sumOfDigit ( int N) -> which return the sum of digits present in N.
  public void isLucky ( int number) -> which check and display a proper message, if the given number is Lucky number or not.
class luckyNumber
{
  public int sumOfDigit ( int N)
  {
    int sum = 0;
    while ( N>0)
    {
      int digit = N%10;
      sum = sum+digit;
      N = N/10;
    }
    return ( sum);
  }
  public void isLucky ( int number)
  {
    int digit;
    while ( number>9)
    {
      number = sumOfDigit ( number);
    }
    if ( number =  = 1)
      System.out.println ( "Lucky Number");
    else
      System.out.println ( "Not Lucky Number");
  }
}
3. A class clock has following members:
Instance variable: hour and minute of integer type.
Member function/methods:
  public clock ( int,int) -> constructor to initialize hour and min.
  public void showTime ( ) -> to display the time.
  public void addTime ( clock,clock) -> to add to clock objects.
Write another class time with main ( ) function which create two different objects FT, ST print their sum using the above clock class function. If FT  =  6 Hrs 35 Min and ST  =  3 Hrs 45 Min then output 10 Hrs 20 Min.
class clock
{
  int hour, min;
  public clock ( int h,int m)
  {
    hour = h;
    min = m;
  }
  public void showTime ( )
  {
    System.out.println ( hour+" Hrs "+min+" Min");
  }
  public void addTime ( clock T1, clock T2)
  {
    min = ( T1.min+T2.min)%60;
    hour = ( T1.hour+T2.hour)+ ( T1.min+T2.min)/60;
  }
}
public class time
{
  public static void main ( )
  {
    clock FT = new clock ( 6,35);
    clock ST = new clock ( 3,45);
    clock output = new clock ( 0,0);
    output.addTime ( FT,ST);
    output.showTime ( );
  }
}
[Set III]
Time: 1 Hrs                                                                            Marks: 3x5 = 15
1. Convert each ward to Piglatin word in a sentence.
Define a class that has the following functions.
  private static int vowelPos ( String word) -> which find and return the first vowel position in the word.
  private static String Piglatin ( String word) -> which convert the word to Piglatin word and return it.
  public void main ( String Sentence) -> which print the sentence after converting each word to Piglatin word.
public class pigSentence
{
  private static int vowelPos ( String word)
  {
    for ( int i = 0;i<word.length ( );i++)
    {
      char c = word.charAt ( i);
      if ( c =  = 'A'||c =  = 'E'||c =  = 'I'||c =  = 'O'||c =  = 'U')
        break;
    }
    return ( i);
  }
  private static String Piglatin ( String word)
  {
    int p = vowelPos ( word);
    String newWord = "";
    if ( p =  = 0)
      newWord = word;
    else
      newWord = word.substring ( p)+word.substring ( 0,p)+"A";
    return ( newWord);
  }
  public static void main ( String Sentence)
  {
    Sentence+ = " ";
    int p = 0;
    while ( p<Sentence.length ( ))
    {
      int x = Sentence.indexOf ( ' ',p);
      String word = Sentence.substring ( p,x);
      System.out.print ( Piglatin ( word)+" ");
      p = x+1;
    }
  }
}
2. N is a perfect number if the sum of all factors of the number ( including 1 but excluding the number) is equal to N ( for e.g. 6 = 1+2+3). N is a prime number if it is divisible by 1 and itself.
Define a class numProblem that has the following functions.
  int nthPrime ( int N) -> which return the nth prime number ( first prime number is 2) ( e.g. 3rd prime number is 5)
  void perfectNosBelow ( int N) -> which first print out the nth prime number and then print out all perfect numbers less then the nth prime number.
public class numProblem
{
  public static int nthPrime ( int N)
  {
    int ctr = 0,Prime = 2;
    while ( true)
    {
      boolean flag = true;
      for ( int i = 2;i<Prime;i++)
      {
        if ( Prime%i =  = 0)
        {
          flag = false;
          break;
        }
      }
      if ( flag =  = true) ctr++;
      if ( ctr =  = N) break;
      Prime++;
    }
    return ( Prime);
  }
  public static void perfectNosBelow ( int N)
  {
    int X = nthPrime ( N);
    System.out.println ( N+"th Prime no. : "+X);
    for ( int i = 1;i<X;i++)
    {
      int sum = 0;
      for ( int j = 1;j<i;j++)
      {
        if ( i%j =  = 0)
        {
          sum+ = j;
        }
      }
      if ( sum =  = i)
      {
        System.out.println ( i);
      }
    }
  }
}
3. Your computer science teacher is trying to analyze the performance of the class in the previous exam. He has a class called performance that contains the marks of 50 students. These are not sorted. He wants to find two quantities. ( i) Mode - The most frequently occurring mark in the class. If two or more marks occur equally frequently then the highest of these marks is the mode. ( ii) Mode frequently - Frequency at mode. Important: You are not allowed to sort the marks.
Some of the instance variable and member functions of the performance class are given below.
  mark[] -> an array to store Marks of 50 students
  mode -> to store the Mode
  freqatmode -> the frequency at mode.
  void readmarks ( ) -> for reading the marks into the array.
  void calcmodeandFrequency ( ) -> a single function that calculates both mode and frequency at mode.
import java.io.*;
class performance
{
  int mark[] = new int[10];
  int mode = 0;
  int freqatmode = 0;
  public void readmark ( ) throws IOException
  {
    InputStreamReader isr  =  new InputStreamReader ( System.in);
    BufferedReader in = new BufferedReader ( isr);
    for ( int i = 0;i<10;i++)
    {
      System.out.print ( "Enter Marks : ");
      mark[i] =  Integer.parseInt ( in.readLine ( ));
    }
  }
  public void calcmodeandfrequency ( )
  {
    int f,i,j;
    for ( i = 0;i<10;i++)
    {
      f = 0;
      for ( j = 0;j<10;j++)
      {
        if ( mark[i] =  = mark[j])
          f++;
      }
      if ( f> = freqatmode && mark[i]> = mode)
      {
        mode = mark[i];
        freqatmode = f;
      }
    }
  }
  public void main ( ) throws IOException
  {
    readmark ( );
    calcmodeandfrequency ( );
    System.out.println ( "Marks : "+mode);
    System.out.println ( "Frequency : "+freqatmode);
  }
}
[Set IV]
Time: 1 Hrs                                                                            Marks: 3x5 = 15
1. Write a class MUHABRA to assign a proverbial sentence in a string variable using constructor. Then find and print the following using three different functions whose prototypes is given below:
i) No. of Words. void noOfWord ( )
ii) No. of Alphabets. void noOfAlphabets ( )
iii) No. of Special Characters. void noOfSpecialChar ( )
public class MUHABARA
{
  String n;
  MUHABARA ( )
  {
    n = "Minds are like Parachutes. They work best when open.";
  }
  void noOfWord ( )
  {
    int nw = 0;
    for ( int i = 0;i<n.length ( );i++)
    {
      char c = n.charAt ( i);
      if ( c =  = ' ')
        nw++;
    }
    System.out.println ( "No. of Words : "+ ( nw+1));
  }
  void noOfAlphabets ( )
  {
    int alph = 0;
    for ( int i = 0;i<n.length ( );i++)
    {
      char c = n.charAt ( i);
      if ( ( c> = 65 && c< = 90) || ( c> = 97 && c< = 122))
        alph++;
    }
    System.out.println ( "No. of Alphabet : "+alph);
  }
  void noOfSpecialChar ( )
  {
    int nd = 0,sl = 0,cl = 0,ns = 0;
    int l = n.length ( );
    for ( int i = 0;i<l;i++)
    {
      char c = n.charAt ( i);
      int asc = c;
      if ( asc> = 48 && asc< = 57)
        nd++;
      if ( asc> = 65 && asc< = 90)
        cl++;
      if ( asc> = 97 && asc< = 122)
        sl++;
      if ( c =  = ' ')
        ns++;
    }
    System.out.println ( "No. of Special Character : "+ ( l- ( nd+sl+cl+ns)));
  }
  public static void main ( )
  {
    MUHABARA m = new MUHABARA ( );
    m.noOfWord ( );
    m.noOfAlphabets ( );
    m.noOfSpecialChar ( );
  }
}
2. A class clock has following members:
Instance variable: hour and minute of integer type.
Member function/methods:
public clock ( int,int) -> constructor to initialize hour and min.
public void showTime ( ) -> to display the time.
public void addTime ( clock,clock) -> to add to clock objects.
Write another class time with main ( ) function which create two different objects FT, ST print their sum using the above clock class function. If FT  =  6 Hrs 35 Min and ST  =  3 Hrs 45 Min then output 10 Hrs 20 Min.
class clock
{
  int hour, min;
  public clock ( int h,int m)
  {
    hour = h;
    min = m;
  }
  public void showTime ( )
  {
    System.out.println ( hour+" Hrs "+min+" Min");
  }
  public void addTime ( clock T1, clock T2)
  {
    min = ( T1.min+T2.min)%60;
    hour = ( T1.hour+T2.hour)+ ( T1.min+T2.min)/60;
  }
}
public class time
{
  public static void main ( )
  {
    clock FT = new clock ( 6,35);
    clock ST = new clock ( 3,45);
    clock output = new clock ( 0,0);
    output.addTime ( FT,ST);
    output.showTime ( );
  }
}
3. A number is called Armstrong number if the sum of cube of each digit of the number is equal to that number. ( e.g. 153 is a Armstrong number because 153 =  13 + 53 +33).
Define a class armStrong with the following function definitions ( do not write main function).
private int sumOfCubeOfDigit ( int N) -> which return the sum of cube of each digits present in N.
public static void main ( int x, int y) -> which display all the arm strong number between the range x and y.
class armStrong
{
  private static int sumOfDigit ( int N)
  {
    int sum = 0;
    while ( N>0)
    {
      int digit = N%10;
      sum = sum+ ( digit*digit*digit);
      N = N/10;
    }
    return ( sum);
  }
  public static void main ( int x, int y)
  {
    for ( int number = x;number< = y;number++)
    {
      if ( number =  = sumOfDigit ( number))
        System.out.println ( "Armstrong Number is "+number);
    }
  }
}
4. Write a class ARRAY with void main ( ) function to assign numbers into matrix mat[3][4] ( using constructor) and compute the following using two separate functions, whose prototype is given below:
i) sum of each row. void sumOfRows ( )
ii) sum of each column. void sumOfColumn ( )
// sum of each row and column total in 2D array //
import java.io.DataInputStream;
import java.io.IOException;
public class ARRAY
{
  int a[][] = new int[3][4];
  public ARRAY ( ) throws IOException
  {
    DataInputStream x =  new DataInputStream ( System.in);
    int i,j;
    for ( i = 0;i<3;i++)
    {
      for ( j = 0;j<4;j++)
      {
        System.out.println ( "Enter Number : ");
        a[i][j] =  Integer.parseInt ( x.readLine ( ));
      }
    }
  }
  public void sumOfColumns ( )
  {
    int i,j;
    for ( i = 0;i<3;i++)
    {
      for ( j = 0;j<4;j++)
        System.out.print ( a[i][j]+" ");
      System.out.println ( );
    }
    int sum = 0;
    for ( j = 0;j<4;j++)
    {
      sum = 0;
      for ( i = 0;i<3;i++)
      {
        sum = sum+a[i][j];
      }
      System.out.println ( "Column "+ ( j+1)+" total is : "+sum);
    }
  }
  public void sumOfRows ( )
  {
    int i,j;
    for ( i = 0;i<3;i++)
    {
      for ( j = 0;j<4;j++)
        System.out.print ( a[i][j]+" ");
      System.out.println ( );
    }
    int sum = 0;
    for ( i = 0;i<3;i++)
    {
      sum = 0;
      for ( j = 0;j<4;j++)
      {
        sum = sum+a[i][j];
      }
      System.out.println ( "Row "+ ( i+1)+" total is : "+sum);
    }
  }
  public static void main ( ) throws IOException
  {
    ARRAY arr = new ARRAY ( );
    arr.sumOfRows ( );
    arr.sumOfColumns ( );
  }
}