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.
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.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
{
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
{
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.
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.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 ( );
}
}