KnowledgeBoat Logo
OPEN IN APP

Specimen 2024

Solved 2024 Specimen Paper ICSE Class 10 Computer Applications

Class 10 - ICSE Computer Applications Solved Question Papers



Section A

Question 1(i)

Name the feature of java depicted in the below picture.

  1. Encapsulation
  2. Inheritance
  3. Abstraction
  4. Polymorphism
Name the feature of java depicted in the picture. ICSE 2024 Specimen Computer Applications Solved Question Paper.

Answer

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).

Question 1(ii)

The expression which uses >= operator is known as:

  1. relational
  2. logical
  3. arithmetic
  4. assignment

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 ( >= )

Question 1(iii)

Ternary operator is a:

  1. logical operator
  2. arithmetic operator
  3. relational operator
  4. conditional operator

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.

Question 1(iv)

When primitive data type is converted to a corresponding object of its class, it is called:

  1. Boxing
  2. Unboxing
  3. explicit type conversion
  4. implicit type conversion

Answer

Boxing

Reason — Boxing is the conversion of primitive data type into an object of its corresponding wrapper class.

Question 1(v)

The number of bytes occupied by a character array of 10 elements.

  1. 20 bytes
  2. 60 bytes
  3. 40 bytes
  4. 120 bytes

Answer

20 bytes

Reason — A char data type occupies '2' bytes in the memory. Thus, 10 char type elements occupy (10 x 2) = 20 bytes in memory.

Question 1(vi)

The method of Scanner class used to accept a double value is:

  1. nextInt()
  2. nextDouble()
  3. next()
  4. nextInteger()

Answer

nextDouble()

Reason — The nextDouble() function reads the next token entered by the user as a double value.

Question 1(vii)

Among the following which is a keyword:

  1. every
  2. all
  3. case
  4. each

Answer

case

Reason — case is a keyword. It is used to define switch case construct.

Question 1(viii)

The output of Math.round(6.6) + Math.ceil(3.4) is:

  1. 9.0
  2. 11.0
  3. 10.0
  4. 11

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.

Question 1(ix)

Name the type of error, if any in the following statement:

System.out.print("HELLO")

  1. logical
  2. no error
  3. runtime
  4. syntax

Answer

syntax

Reason — The given statement is missing a terminator ( ; ) at the end. Thus, it has a syntax error.

Question 1(x)

Java statement to access the 5th element of an array is:

  1. X[4]
  2. X[5]
  3. X[3]
  4. X[0]

Answer

X[4]

Reason — Array indexes start from 0. So, X[4] refers to the 5th element of the array.

Question 1(xi)

The output of "Remarkable".substring(6) is:

  1. mark
  2. emark
  3. marka
  4. able

Answer

able

Reason — "Remarkable".substring(6) will extract a substring starting from the character at index 6 (i.e., 7th character of the string) which is 'a' till the end of the string. Hence the output is able.

Question 1(xii)

Which of the following is the wrapper class for the data type char?

  1. String
  2. Char
  3. Character
  4. Float

Answer

Character

Reason — Character is the wrapper class for the data type char.

Question 1(xiii)

Name the package that contains wrapper classes:

  1. java.lang
  2. java.util
  3. java.io
  4. java.awt

Answer

java.lang

Reason — Wrapper classes are present in java.lang package.

Question 1(xiv)

Constructor overloading follows which principle of Object Oriented programming?

  1. Inheritance
  2. Polymorphism
  3. Abstraction
  4. Encapsulation

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.

Question 1(xv)

Which of the following is a valid Integer constant:
i. 4
ii. 4.0
iii. 4.3f
iv. "four"

  1. Only i
  2. i and iii
  3. ii and iv
  4. i and ii

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.

Question 1(xvi)

The method compareTo() returns ............... when two strings are equal and in lowercase :

  1. true
  2. 0
  3. 1
  4. false

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.

Question 1(xvii)

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.

  1. Both Assertion (A) and Reason (R) are true and Reason (R) is a correct explanation of Assertion (A)
  2. Both Assertion (A) and Reason (R) are true and Reason (R) is not a correct explanation of Assertion (A)
  3. Assertion (A) is true and Reason (R) is false
  4. 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.

Question 1(xviii)

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?

  1. Information and operation
  2. Data members and Member methods
  3. Data members and information
  4. 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.

Question 1(xix)

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.

  1. Both Assertion (A) and Reason (R) are true and Reason (R) is a correct explanation of Assertion (A)
  2. Both Assertion (A) and Reason (R) are true and Reason (R) is not a correct explanation of Assertion (A)
  3. Assertion (A) is true and Reason (R) is false
  4. 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.

Question 1(xx)

What will be the output for:

System.out.print(Character.toLowerCase('1'));
  1. 0
  2. 1
  3. A
  4. true

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.

Question 2(i)

Write the Java expression for (p + q)2.

Answer

Math.pow((p + q) , 2)

Question 2(ii)

Evaluate the expression when the value of x = 2:

x = x++ + ++x + x

Answer

Output
10
Explanation

Initially, x = 2. The expression is calculated as follows:

x = x++ + ++x + x
x = 2 + ++x + x          (x = 3)
x = 2 + 4 + x               (x = 4)
x = 2 + 4 + 4               (x = 4)
x = 10

Question 2(iii)

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");	
Explanation
  1. boolean dh = True; — Here, True should be in lowercase as true.
  2. 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.

Question 2(iv)

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);	
}	
Explanation

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.

Question 2(v)

How many times will the following loop execute? What value will be returned?

int x = 2;
int y = 50;
do{
++x;
y -= x++;
}
while(x <= 10);
return y;

Answer

The loop will execute 5 times and the value returned is 15.

Explanation
IterationXYRemark
 250Initial values
1347x = 4 (3 + 1), y = 47 (50 - 3)
2542x = 6 (5 + 1), y = 42 (47 - 5)
3735x = 8 (7 + 1), y = 35 (42 - 7)
4926x = 10 (8 + 1), y = 26 (35 - 9)
51115x = 12 (11 + 1), y = 15 (26 - 11)
 1115Condition becomes false. Loop terminates.

Question 2(vi)

Write the output of the following String methods:

(a) "ARTIFICIAL".indexOf('I')

(b) "DOG and PUPPY".trim().length()

Answer

(a)

Output
3
Explanation

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)

Output
13
Explanation

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.

Question 2(vii)

Name any two jump statements.

Answer

Two jump statements are:

  1. break statement
  2. continue statement

Question 2(viii)

Predict the output of the following code snippet:

String a = "20";
String b = "23";
int p = Integer.parseInt(a); 
int q = Integer.parseInt(b); 
System.out.print(a + "*" + b);

Answer

Output
20*23
Explanation

Integer.parseInt() method will convert the strings a and b to their corresponding numerical integers — 20 and 23. In the statement, System.out.print(a + "*" + b); a, b, and "*" are strings so + operator concatenates them and prints 20*23 as the output.

Question 2(ix)

When there is no explicit initialization, what are the default values set for variables in the following cases?

(a) Integer variable

(b) String variable

Answer

(a) 0

(b) null

Question 2(x)

int P[ ] = {12, 14, 16, 18};
int Q[ ] = {20, 22, 24};

Place all elements of P array and Q array in the array R one after the other.

(a) What will be the size of array R[ ] ?

(b) Write index position of first and last element?

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

Question 3

Define 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:

PriceDiscount
1000 – 250005.0%
25001 – 570007.5 %
57001 – 10000010.0%
More than 10000015.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();
    }
}
Output
BlueJ output of Eshop.java

Question 4

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] + " ");
        }
    }
}
Output
BlueJ output of KboatSelectionSort.java

Question 5

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);
    }
}
Output
BlueJ output of KboatCountVowels.java

Question 6

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");
    }
}
Output
BlueJ output of KboatDDASpArr.java

Question 7

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");
        }
    }
}
Output
BlueJ output of KboatDuckNumber.java
BlueJ output of KboatDuckNumber.java
BlueJ output of KboatDuckNumber.java

Question 8

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);
        
    }
}
Output
BlueJ output of KboatMethodOverload.java
PrevNext