Solved 2024 Specimen Paper ICSE Class 10 Computer Applications
Solutions for Computer Applications, Class 10, ICSE
Section A
30 questionsAnswer:
Inheritance
Reason — The given picture shows the relationship of a parent (father) and child. Just like a child inherits some characteristics from his parents, inheritance enables new classes (derived class) to receive or inherit the properties and methods of existing classes (base class).
Answer:
relational
Reason — Relational expressions are constructed using relational operators — equal to ( == ), not equal to ( != ), less than ( < ), less than equal to ( <= ), greater than ( > ), greater than equal to ( >= )
Answer:
conditional operator
Reason — Ternary operator is a conditional operator as it evaluates the given condition. Its syntax is as follows:
condition? expression 1 : expression 2
If the condition is true then result of ternary operator is the value of expression 1. Otherwise the result is the value of expression 2.
Answer:
11.0
Reason — The given expression is evaluated as follows:
Math.round(6.6) + Math.ceil(3.4)
⇒ 7 + 4.0
⇒ 11.0
Math.round() rounds off its argument to the nearest mathematical integer and returns its value as an int or long type. Math.ceil method returns the smallest double value that is greater than or equal to the argument and is equal to a mathematical integer. In the addition operation, the type of result is promoted to a double as one operand is double. Hence, the result is 11.0.
Answer:
Polymorphism
Reason — In object-oriented programming, Polymorphism provides the means to perform a single action in multiple different ways and constructor overloading follows Polymorphism principle of Object Oriented programming wherein a constructor having the same name behaves differently with different arguments.
Answer:
Only i
Reason — Integer constants represent whole number values only. Thus, 4 is an integer constant. 4.0 is a double constant, 4.3f is a float constant while "four" is a String constant.
Answer:
0
Reason — compareTo() method compares two strings lexicographically and returns the difference between the ASCII values of the first differing characters in the strings. Here, the strings are equal so the difference is 0.
Assertion (A): In Java, statements written in lower case letter or upper case letter are treated as the same.
Reason (R): Java is a case sensitive language.
- Both Assertion (A) and Reason (R) are true and Reason (R) is a correct explanation of Assertion (A)
- Both Assertion (A) and Reason (R) are true and Reason (R) is not a correct explanation of Assertion (A)
- Assertion (A) is true and Reason (R) is false
- Assertion (A) is false and Reason (R) is true
Answer:
Assertion (A) is false and Reason (R) is true
Reason — In Java, statements written in lower case letter or upper case letter are treated differently as Java is a case sensitive language.
Read the following text, and choose the correct answer:
A class encapsulate Data Members that contains the information necessary to represent the class and Member methods that perform operations on the data member.
What does a class encapsulate?
- Information and operation
- Data members and Member methods
- Data members and information
- Member methods and operation
Answer:
Data members and Member methods
Reason — A class encapsulates state and behavior by combining data and functions into a single unit. The state of an object is represented by its member variables and behaviour is represented by member methods.
Assertion (A): Call by value is known as pure method.
Reason (R): The original value of variable does not change as operation is performed on copied values.
- Both Assertion (A) and Reason (R) are true and Reason (R) is a correct explanation of Assertion (A)
- Both Assertion (A) and Reason (R) are true and Reason (R) is not a correct explanation of Assertion (A)
- Assertion (A) is true and Reason (R) is false
- Assertion (A) is false and Reason (R) is true
Answer:
Both Assertion (A) and Reason (R) are true and Reason (R) is a correct explanation of Assertion (A)
Reason — Call by value is known as pure method as it does not modify the value of original variables. The original value of variable does not change as operation is performed on copied values.
Answer:
1
Reason — In Java, the Character.toLowerCase(char ch)
method is used to convert a given character to its lowercase equivalent, if one exists. If the character is already in lowercase or there is no lowercase equivalent, it will return the original character.
The following code segment should print "You can go out" if you have done your homework (dh) and cleaned your room (cr). However, the code has errors. Fix the code so that it compiles and runs correctly.
boolean dh = True;
boolean cr= true;
if (dh && cr)
System.out.println("You cannot go out");
else
System.out.println("You can go out");
Answer:
The corrected code is as follows:
boolean dh = true;
boolean cr= true;
if (dh && cr)
System.out.println("You can go out");
else
System.out.println("You cannot go out");
boolean dh = True;
— Here, True should be in lowercase as true.- println statements of if-else should be interchanged because if both dh (done homework) and cr (cleaned room) are true then the person can go out.
Sam executes the following program segment and the answer displayed is zero irrespective of any non zero values are given. Name the error. How the program can be modified to get the correct answer?
void triangle(double b, double h)
{
double a;
a = 1/2 * b * h;
System.out.println("Area=" + a);
}
Answer:
Logical error.
Modified program:
void triangle(double b, double h)
{
double a;
a = 1.0/2 * b * h;
System.out.println("Area=" + a);
}
The statement is evaluated as follows:
a = 1/2 * b * h;
a = 0 * b * h; (1/2 being integer division gives the result as 0)
a = 0 (Since anything multiplied by 0 will be 0)
To avoid this error, we can replace '1/2' with '1.0/2'. Now the expression will be evaluated as follows:
a = 1.0/2 * b * h;
a = 0.5 * b * h; (The floating-point division will result in result as as 0.5)
This will give the correct result for the given code.
Answer:
The loop will execute 5 times and the value returned is 15.
Iteration | X | Y | Remark |
---|---|---|---|
2 | 50 | Initial values | |
1 | 3 | 47 | x = 4 (3 + 1), y = 47 (50 - 3) |
2 | 5 | 42 | x = 6 (5 + 1), y = 42 (47 - 5) |
3 | 7 | 35 | x = 8 (7 + 1), y = 35 (42 - 7) |
4 | 9 | 26 | x = 10 (8 + 1), y = 26 (35 - 9) |
5 | 11 | 15 | x = 12 (11 + 1), y = 15 (26 - 11) |
11 | 15 | Condition becomes false. Loop terminates. |
Answer:
(a)
3
indexOf() returns the index of the first occurrence of the specified character within the string or -1 if the character is not present. First occurrence of 'I' in "ARTIFICIAL" is at index 3 (a string begins at index 0).
(b)
13
trim() removes all leading and trailing space from the string and length() returns the length of the string i.e., the number of characters present in the string. Thus, the output is 13.
Answer:
int R[ ] = {12, 14, 16, 18, 20, 22, 24};
(a) Size of array P[ ] = 4
Size of array Q[ ] = 3
Size of array R[ ] = 7 (4 + 3).
(b) Index position of first element is 0.
Index position of last element is 6.
Section B
6 questionsDefine a class called with the following specifications:
Class name: Eshop
Member variables:
String name: name of the item purchased
double price: Price of the item purchased
Member methods:
void accept(): Accept the name and the price of the item using the methods of Scanner class.
void calculate(): To calculate the net amount to be paid by a customer, based on the following criteria:
Price | Discount |
---|---|
1000 – 25000 | 5.0% |
25001 – 57000 | 7.5 % |
57001 – 100000 | 10.0% |
More than 100000 | 15.0 % |
void display(): To display the name of the item and the net amount to be paid.
Write the main method to create an object and call the above methods.
import java.util.Scanner;
public class Eshop
{
private String name;
private double price;
private double disc;
private double amount;
public void accept() {
Scanner in = new Scanner(System.in);
System.out.print("Enter item name: ");
name = in.nextLine();
System.out.print("Enter price of item: ");
price = in.nextDouble();
}
public void calculate() {
double d = 0.0;
if (price < 1000)
d = 0.0;
else if (price <= 25000)
d = 5.0;
else if (price <= 57000)
d = 7.5;
else if (price <= 100000)
d = 10.0;
else
d = 15.0;
disc = price * d / 100.0;
amount = price - disc;
}
public void display() {
System.out.println("Item Name: " + name);
System.out.println("Net Amount: " + amount);
}
public static void main(String args[]) {
Eshop obj = new Eshop();
obj.accept();
obj.calculate();
obj.display();
}
}

Answer:
Define a class to accept values in integer array of size 10. Sort them in an ascending order using selection sort technique. Display the sorted array.
import java.util.Scanner;
public class KboatSelectionSort
{
public static void main(String args[])
{
Scanner in = new Scanner(System.in);
int arr[] = new int[10];
System.out.println("Enter 10 integers: ");
for (int i = 0; i < 10; i++)
{
arr[i] = in.nextInt();
}
for (int i = 0; i < 9; i++)
{
int idx = i;
for (int j = i + 1; j < 10; j++)
{
if (arr[j] < arr[idx])
idx = j;
}
int t = arr[i];
arr[i] = arr[idx];
arr[idx] = t;
}
System.out.println("Sorted Array:");
for (int i = 0; i < 10; i++)
{
System.out.print(arr[i] + " ");
}
}
}

Answer:
Define a class to accept a string and convert it into uppercase. Count and display the number of vowels in it.
Input: robotics
Output: ROBOTICS
Number of vowels: 3
import java.util.Scanner;
public class KboatCountVowels
{
public static void main(String args[])
{
Scanner in = new Scanner(System.in);
System.out.print("Enter the string: ");
String str = in.nextLine();
str = str.toUpperCase();
str += " ";
int count = 0;
int len = str.length();
for (int i = 0; i < len - 1; i++)
{
char ch = str.charAt(i);
if(ch == 'A'
|| ch == 'E'
|| ch == 'I'
|| ch == 'O'
|| ch == 'U')
count++;
}
System.out.println("String : " + str);
System.out.println("Number of vowels : " + count);
}
}

Answer:
Define a class to accept values into a 3 × 3 array and check if it is a special array. An array is a special array if the sum of the even elements = sum of the odd elements.
Example:
A[ ][ ]={{ 4 ,5, 6}, { 5 ,3, 2}, { 4, 2, 5}};
Sum of even elements = 4 + 6 + 2 + 4 + 2 = 18
Sum of odd elements = 5 + 5 + 3 + 5 = 18
import java.util.Scanner;
public class KboatDDASpArr
{
public static void main(String args[])
{
Scanner in = new Scanner(System.in);
int arr[][] = new int[3][3];
long evenSum = 0, oddSum = 0;
System.out.println("Enter the elements of 3 x 3 DDA: ");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
arr[i][j] = in.nextInt();
}
}
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (arr[i][j] % 2 == 0)
evenSum += arr[i][j];
else
oddSum += arr[i][j];
}
}
System.out.println("Sum of even elements = " + evenSum);
System.out.println("Sum of odd elements = " + oddSum);
if (evenSum == oddSum)
System.out.println("Special Array");
else
System.out.println("Not a Special Array");
}
}

Answer:
Define a class to accept a 3 digit number and check whether it is a duck number or not.
Note: A number is a duck number if it has zero in it.
Example 1:
Input: 2083
Output: Invalid
Example 2:
Input: 103
Output: Duck number
import java.util.Scanner;
public class KboatDuckNumber
{
public static void main(String args[])
{
Scanner in = new Scanner(System.in);
System.out.print("Enter a number: ");
int num = in.nextInt();
int n = num;
int count = 0;
while (n != 0) {
count++;
n = n / 10;
}
if (count == 3)
{
n = num;
boolean isDuck = false;
while(n != 0)
{
if(n % 10 == 0)
{
isDuck = true;
break;
}
n = n / 10;
}
if (isDuck) {
System.out.println("Duck Number");
}
else {
System.out.println("Not a Duck Number");
}
}
else {
System.out.println("Invalid");
}
}
}



Answer:
Define a class to overload the method display as follows:
void display( ): To print the following format using nested loop
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
void display(int n): To print the square root of each digit of the given number.
Example:
n = 4329
Output – 3.0
1.414213562
1.732050808
2.0
import java.util.Scanner;
public class KboatMethodOverload
{
public void display()
{
for(int i = 1; i <= 5; i++)
{
for(int j = 1; j <= i; j++)
{
System.out.print(j + " ");
}
System.out.println();
}
}
public void display(int n)
{
while( n != 0)
{
int d = n % 10;
System.out.println(Math.sqrt(d));
n = n / 10;
}
}
public static void main(String args[])
{
KboatMethodOverload obj = new KboatMethodOverload();
Scanner in = new Scanner(System.in);
System.out.println("Pattern: ");
obj.display();
System.out.print("Enter a number: ");
int num = in.nextInt();
obj.display(num);
}
}
