Section A
Question 1(i)
A mechanism where one class acquires the properties of another class:
- Polymorphism
- Inheritance
- Encapsulation
- Abstraction
Answer
Inheritance
Reason — Inheritance enables new classes to receive or inherit the properties and methods of existing classes.
Question 1(ii)
Identify the type of operator &&
:
- ternary
- unary
- logical
- relational
Answer
logical
Reason — Logical operators operate only on boolean operands and are used to construct complex decision-making expressions. Logical AND &&
operator evaluates to true only if both of its operands are true.
Question 1(iii)
The Scanner class method used to accept words with space:
- next()
- nextLine()
- Next()
- nextString()
Answer
nextLine()
Reason — nextLine() reads the input till the end of line so it can read a full sentence including spaces.
Question 1(iv)
The keyword used to call package in the program:
- extends
- export
- import
- package
Answer
import
Reason — import keyword is used to import built-in and user-defined packages into our Java program.
Question 1(v)
What value will Math.sqrt(Math.ceil(15.3))
return?
- 16.0
- 16
- 4.0
- 5.0
Answer
4.0
Reason — Math.ceil method returns the smallest double value that is greater than or equal to the argument and Math.sqrt method returns the square root of its argument as a double value. Thus the given expression is evaluated as follows:
Math.sqrt(Math.ceil (15.3))
= Math.sqrt(16.0)
= 4.0
Question 1(vi)
The absence of which statement leads to fall through situation in switch case statement?
- continue
- break
- return
- System.exit(0)
Answer
break
Reason — The absence of break statement leads to fall through situation in switch case statement.
Question 1(vii)
State the type of loop in the given program segment:
for (int i = 5; i != 0; i -= 2)
System.out.println(i);
- finite
- infinite
- null
- fixed
Answer
infinite
Reason — The given loop is an example of infinite loop as for each consecutive iteration of for loop, the value of i will be updates as follows:
Iteration | Value of i | Remark |
---|---|---|
1 | 5 | Initial value of i = 5 |
2 | 3 | i = 5 - 2 = 3 |
3 | 1 | i = 3 - 2 = 1 |
4 | -1 | i = 1 - 2 = -1 |
5 | -3 | i = -1 - 2 = -3 and so on... |
Since i will never be '0', the loop will execute infinitely.
Question 1(viii)
Write a method prototype name check() which takes an integer argument and returns a char:
- char check()
- void check (int x)
- check (int x)
- char check (int x)
Answer
char check (int x)
Reason — The prototype of a function is written in the given syntax:
return_type method_name(arguments)
Thus, the method has the prototype given below:
char check (int x)
Question 1(ix)
The number of values that a method can return is:
- 1
- 2
- 3
- 4
Answer
1
Reason — A method can return only one value.
Question 1(x)
Predict the output of the following code snippet:
String P = "20", Q ="22";
int a = Integer.parseInt(P);
int b = Integer.valueOf(Q);
System.out.println(a + " " + b);
- 20
- 20 22
- 2220
- 22
Answer
20 22
Reason — The values of strings P and Q are converted into integers using the Integer.parseInt()
method and stored in int
variables a and b, respectively.
When the statement System.out.println(a + " " + b)
is executed, first the operation a + " "
is performed. Here, int variable a is converted to a string and a space is concatenated to it resulting in "20 "
.
After this, the operation "20 " + b
is performed resulting in 20 22
which is printed as the output.
Question 1(xi)
The String class method to join two strings is:
- concat(String)
- <string>.joint(string)
- concat(char)
- Concat()
Answer
concat(String)
Reason — concat() method is used to join two strings. Its syntax is as follows:
String1.concat(String2)
Question 1(xii)
The output of the function "COMPOSITION".substring(3, 6):
- POSI
- POS
- MPO
- MPOS
Answer
POS
Reason — The substring() method returns a substring beginning from the startindex and extending to the character at endIndex - 1. Since a string index begins at 0, the character at index 3 is 'P' and the character at index 5 (6-1 = 5) is 'S'. Thus, "POS" is extracted.
Question 1(xiii)
int x = (int)32.8; is an example of ............... typecasting.
- implicit
- automatic
- explicit
- coercion
Answer
explicit
Reason — In explicit type conversion, the data gets converted to a type as specified by the programmer. Here, the float value 32.8 is being converted to int type by the programmer, explicitly.
Question 1(xiv)
The code obtained after compilation is known as:
- source code
- object code
- machine code
- java byte code
Answer
java byte code
Reason — Java compiler converts Java source code into an intermediate binary code called Bytecode after compilation.
Question 1(xv)
Missing a semicolon in a statement is what type of error?
- Logical
- Syntax
- Runtime
- No error
Answer
Syntax
Reason — Syntax Errors occur when we violate the rules of writing the statements of the programming language. Missing a semicolon in a statement is a syntax error.
Question 1(xvi)
Consider the following program segment and select the output of the same when n = 10 :
switch(n)
{
case 10 : System.out.println(n*2);
case 4 : System.out.println(n*4); break;
default : System.out.println(n);
}
- 20
40 - 10
4 - 20, 40
- 10
10
Answer
20
40
Reason — Since n = 10, case 10 will be executed. It prints 20 (10 * 2) on the screen. Since break statement is missing, the execution falls through to the next case. Case 4 prints 40 (10 * 4) on the screen. Now the control finds the break statement and the control comes out of the switch statement.
Question 1(xvii)
A method which does not modify the value of variables is termed as:
- Impure method
- Pure method
- Primitive method
- User defined method
Answer
Pure method
Reason — A method which does not modify the value of variables is termed as a pure method.
Question 1(xviii)
When an object of a Wrapper class is converted to its corresponding primitive data type, it is called as ............... .
- Boxing
- Explicit type conversion
- Unboxing
- Implicit type conversion
Answer
Unboxing
Reason — When an object of a Wrapper class is converted to its corresponding primitive data type, it is called as unboxing.
Question 1(xix)
The number of bits occupied by the value ‘a’ are:
- 1 bit
- 2 bits
- 4 bits
- 16 bits
Answer
16 bits
Reason — A char data type occupies 2 bytes in the memory.
1 byte = 8 bits
2 bytes = 8 * 2 = 16 bits
Question 1(xx)
Method which is a part of a class rather than an instance of the class is termed as:
- Static method
- Non static method
- Wrapper class
- String method
Answer
Static method
Reason — Method which is a part of a class rather than an instance of the class is termed as Static method.
Question 2(i)
Write the Java expression for (a + b)x.
Answer
Math.pow(a + b, x)
Question 2(ii)
Evaluate the expression when the value of x = 4:
x *= --x + x++ + x
Answer
The given expression is evaluated as follows:
x *= --x + x++ + x (x = 4)
x *= 3 + x++ + x (x = 3)
x *= 3 + 3 + x (x = 4)
x *= 3 + 3 + 4 (x = 4)
x *= 10 (x = 4)
x = x * 10 (x = 4)
x = 4 * 10
x = 40
Question 2(iii)
Convert the following do…while loop to for loop:
int x = 10;
do
{
x––;
System.out.print(x);
}while (x>=1);
Answer
for(int x = 9; x >= 0; x--)
{
System.out.print(x);
}
Question 2(iv)
Give the output of the following Character class methods:
(a) Character.toUpperCase ('a')
(b) Character.isLetterOrDigit('#')
Answer
(a) Character.toUpperCase ('a')
Output
A
Explanation
In Java, the Character.toUpperCase(char ch)
method is used to convert a given character to its uppercase equivalent, if one exists. So, the output is uppercase 'A'.
(b) Character.isLetterOrDigit('#')
Output
false
Explanation
Character.isLetterOrDigit() method returns true if the given character is a letter or digit, else returns false. Since, hash (#) is neither letter nor digit, the method returns false.
Question 2(v)
Rewrite the following code using the if-else statement:
int m = 400;
double ch = (m>300) ? (m / 10.0) * 2 : (m / 20.0) - 2;
Answer
int m = 400;
double ch = 0.0;
if(m > 300)
ch = (m / 10.0) * 2;
else
ch = (m / 20.0) - 2;
Question 2(vi)
Give the output of the following program segment:
int n = 4279; int d;
while(n > 0)
{ d = n % 10;
System.out.println(d);
n = n / 100;
}
Answer
Output
9
2
Explanation
Step by step explanation of the code:
int n = 4279;
— Initializes the integern
with the value 4279.int d;
— Declares an integer variabled
without initializing it. It will be used to store the individual digits.
Now, let's go through the loop:
The while
loop continues as long as n
is greater than 0:
d = n % 10;
— This line calculates the remainder whenn
is divided by 10 and stores it ind
. In the first iteration,d
will be 9 because the remainder of 4279 divided by 10 is 9.System.out.println(d);
— This line prints the value ofd
. In the first iteration, it will print 9.n = n / 100;
— This line performs integer division ofn
by 100. In the first iteration,n
becomes 42. (Remember, it is integer division so only quotient is taken and fractional part is discarded.)
The loop continues, and in the second iteration:
d = n % 10;
—d
will now be 2 because the remainder of 42 divided by 10 is 2.System.out.println(d);
— It prints 2.n = n / 100;
—n
becomes 0 because 42 divided by 100 is 0. Sincen
is no longer greater than 0, the loop terminates.
Question 2(vii)
Give the output of the following String class methods:
(a) "COMMENCEMENT".lastIndexOf('M')
(b) "devote".compareTo("DEVOTE")
Answer
(a) "COMMENCEMENT".lastIndexOf('M')
Output
8
Explanation
The lastIndexOf('M')
method searches for the last occurrence of the character 'M' in the string "COMMENCEMENT." In this string, the last 'M' appears at the index 8, counting from 0-based indexing. So, the method returns the index 8 as the output, indicating the position of the last 'M' in the string.
(b) "devote".compareTo("DEVOTE")
Output
32
Explanation
compareTo() method compares two strings lexicographically. It results in the difference of the ASCII codes of the corresponding characters. The ASCII code for 'd' is 100 and the ASCII code for 'D' is 68. The difference between their codes is 32 (100 - 68).
Question 2(viii)
Consider the given array and answer the questions given below:
int x[ ] = {4, 7, 9, 66, 72, 0, 16};
(a) What is the length of the array?
(b) What is the value in x[4]?
Answer
(a) 7
(b) 72
Question 2(ix)
Name the following:
(a) What is an instance of the class called?
(b) The method which has same name as that of the class name.
Answer
(a) Object.
(b) Constructor.
Question 2(x)
Write the value of n after execution:
char ch ='d';
int n = ch + 5;
Answer
The value of n is 105.
Explanation
char ch = 'd';
assigns the character 'd' to the variablech
. In ASCII, the character 'd' has a decimal value of 100.int n = ch + 5;
adds 5 to the ASCII value of 'd', which is 100. So,100 + 5
equals105
.
Therefore, the value of n
will be 105
.
Section B
Question 3
Design a class with the following specifications:
Class name: Student
Member variables:
name — name of student
age — age of student
mks — marks obtained
stream — stream allocated
(Declare the variables using appropriate data types)
Member methods:
void accept() — Accept name, age and marks using methods of Scanner class.
void allocation() — Allocate the stream as per following criteria:
mks | stream |
---|---|
>= 300 | Science and Computer |
>= 200 and < 300 | Commerce and Computer |
>= 75 and < 200 | Arts and Animation |
< 75 | Try Again |
void print() – Display student name, age, mks and stream allocated.
Call all the above methods in main method using an object.
import java.util.Scanner;
public class Student
{
private String name;
private int age;
private double mks;
private String stream;
public void accept()
{
Scanner in = new Scanner(System.in);
System.out.print("Enter student name: ");
name = in.nextLine();
System.out.print("Enter age: ");
age = in.nextInt();
System.out.print("Enter marks: ");
mks = in.nextDouble();
}
public void allocation()
{
if (mks < 75)
stream = "Try again";
else if (mks < 200)
stream = "Arts and Animation";
else if (mks < 300)
stream = "Commerce and Computer";
else
stream = "Science and Computer";
}
public void print()
{
System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println("Marks: " + mks);
System.out.println("Stream allocated: " + stream);
}
public static void main(String args[]) {
Student obj = new Student();
obj.accept();
obj.allocation();
obj.print();
}
}
Output
Question 4
Define a class to accept 10 characters from a user. Using bubble sort technique arrange them in ascending order. Display the sorted array and original array.
import java.util.Scanner;
public class KboatCharBubbleSort
{
public static void main(String args[])
{
Scanner in = new Scanner(System.in);
char ch[] = new char[10];
System.out.println("Enter 10 characters:");
for (int i = 0; i < ch.length; i++) {
ch[i] = in.nextLine().charAt(0);
}
System.out.println("Original Array");
for (int i = 0; i < ch.length; i++) {
System.out.print(ch[i] + " ");
}
//Bubble Sort
for (int i = 0; i < ch.length - 1; i++) {
for (int j = 0; j < ch.length - 1 - i; j++) {
if (ch[j] > (ch[j + 1])) {
char t = ch[j];
ch[j] = ch[j + 1];
ch[j + 1] = t;
}
}
}
System.out.println("\nSorted Array");
for (int i = 0; i < ch.length; i++) {
System.out.print(ch[i] + " ");
}
}
}
Output
Question 5
Define a class to overload the function print as follows:
void print() - to print the following format
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
5 5 5 5
void print(int n) - To check whether the number is a lead number. A lead number is the one whose sum of even digits are equal to sum of odd digits.
e.g. 3669
odd digits sum = 3 + 9 = 12
even digits sum = 6 + 6 = 12
3669 is a lead number.
import java.util.Scanner;
public class KboatMethodOverload
{
public void print()
{
for(int i = 1; i <= 5; i++)
{
for(int j = 1; j <= 4; j++)
{
System.out.print(i + " ");
}
System.out.println();
}
}
public void print(int n)
{
int d = 0;
int evenSum = 0;
int oddSum = 0;
while( n != 0)
{
d = n % 10;
if (d % 2 == 0)
evenSum += d;
else
oddSum += d;
n = n / 10;
}
if(evenSum == oddSum)
System.out.println("Lead number");
else
System.out.println("Not a lead number");
}
public static void main(String args[])
{
KboatMethodOverload obj = new KboatMethodOverload();
Scanner in = new Scanner(System.in);
System.out.println("Pattern: ");
obj.print();
System.out.print("Enter a number: ");
int num = in.nextInt();
obj.print(num);
}
}
Output
Question 6
Define a class to accept a String and print the number of digits, alphabets and special characters in the string.
Example:
S = "KAPILDEV@83"
Output:
Number of digits – 2
Number of Alphabets – 8
Number of Special characters – 1
import java.util.Scanner;
public class KboatCount
{
public static void main(String args[])
{
Scanner in = new Scanner(System.in);
System.out.println("Enter a string:");
String str = in.nextLine();
int len = str.length();
int ac = 0;
int sc = 0;
int dc = 0;
char ch;
for (int i = 0; i < len; i++) {
ch = str.charAt(i);
if (Character.isLetter(ch))
ac++;
else if (Character.isDigit(ch))
dc++;
else if (!Character.isWhitespace(ch))
sc++;
}
System.out.println("No. of Digits = " + dc);
System.out.println("No. of Alphabets = " + ac);
System.out.println("No. of Special Characters = " + sc);
}
}
Output
Question 7
Define a class to accept values into an array of double data type of size 20. Accept a double value from user and search in the array using linear search method. If value is found display message "Found" with its position where it is present in the array. Otherwise display message "not found".
import java.util.Scanner;
public class KboatLinearSearch
{
public static void main(String args[])
{
Scanner in = new Scanner(System.in);
double arr[] = new double[20];
int l = arr.length;
int i = 0;
System.out.println("Enter array elements: ");
for (i = 0; i < l; i++)
{
arr[i] = in.nextDouble();
}
System.out.print("Enter the number to search: ");
double n = in.nextDouble();
for (i = 0; i < l; i++)
{
if (arr[i] == n)
{
break;
}
}
if (i == l)
{
System.out.println("Not found");
}
else
{
System.out.println(n + " found at index " + i);
}
}
}
Output
Question 8
Define a class to accept values in integer array of size 10. Find sum of one digit number and sum of two digit numbers entered. Display them separately.
Example:
Input: a[ ] = {2, 12, 4, 9, 18, 25, 3, 32, 20, 1}
Output:
Sum of one digit numbers : 2 + 4 + 9 + 3 + 1 = 19
Sum of two digit numbers : 12 + 18 + 25 + 32 + 20 = 107
import java.util.Scanner;
public class KboatDigitSum
{
public static void main(String args[])
{
Scanner in = new Scanner(System.in);
int oneSum = 0, twoSum = 0, d = 0;
int arr[] = new int[10];
System.out.println("Enter 10 numbers");
int l = arr.length;
for (int i = 0; i < l; i++)
{
arr[i] = in.nextInt();
}
for (int i = 0; i < l; i++)
{
if(arr[i] >= 0 && arr[i] < 10 )
oneSum += arr[i];
else if(arr[i] >= 10 && arr[i] < 100 )
twoSum += arr[i];
}
System.out.println("Sum of 1 digit numbers = "+ oneSum);
System.out.println("Sum of 2 digit numbers = "+ twoSum);
}
}