ICSE Computer Applications 2024

COMPUTER APPLICATIONS

Maximum Marks: 100
Time allowed: Two hours

Answers to this paper must be written on the paper provided separately.
You will not be allowed to write during the first 15 minutes.
This time is to be spent in reading the question paper.
The time given at the head of this paper is the time allowed for writing the answers.

This paper is divided into two sections.
Attempt all questions from Section A and any four questions from Section B.
The intended marks for questions or parts of questions are given in brackets [ ].

SECTION A (40 Marks)
(Attempt all questions from this section)

Question 1
Choose the correct answers to the questions from the given options.
(Do not copy the questions, write the correct answers only)
(i)
ICSE Computer Applications 2024 Diagram
Consider the above picture and choose the correct statement from the following:
(a) Polygon is the object and the pictures are classes.
(b) Both polygon and pictures are classes.
(c) Polygon is the class and the pictures are objects.
(d) Both polygon and the pictures are objects.

(ii) int x = 98; char ch = (char)x; What is the value in ch?
(a) b
(b) A
(c) B
(d) 97

(iii) The output of the statement “CONCENTRATION”.indexOf(‘T’) is:
(a) 9
(b) 7
(c) 6
(d) (-1)

(iv) The access specifier that gives least accessibility is:
(a) package
(b) public
(c) protected
(d) private

(v) The output of the statement “talent”.compareTo(“genius”) is:
(a) 11
(b) -11
(c) 0
(d) 13

(vi) Which of the following is an escape sequence character in Java?
(a) /n
(b) \t
(c) /t
(d) //n

(vii) if(a > b && b > c) then largest number is:
(a) b
(b) c
(c) a
(d) wrong expression

(viii) What is the output of Math.ceil(5.4) + Math.ceil(4.5)?
(a) 10.0
(b) 11.0
(c) 12.0
(d) 9.0

(ix) What is the method to check whether a character is a letter or digit?
(a) isDigit(char)
(b) isLetterOrDigit()
(c) isLetterOrDigit(char)
(d) isLETTERorDIGIT(char)

(x) The extension of a Java source code file is:
(a) exe
(b) obj
(c) jvm
(d) java

(xi) The number of bytes occupied by a character array of four rows and three columns are:
(a) 12
(b) 24
(c) 96
(d) 48

(xii) Which of the following data type cannot be used with switch case construct?
(a) int
(b) char
(c) String
(d) double

(xiii) Which of the following are entry-controlled loops?
1. for
2. while
3. do..while
4. switch
(a) only 1
(b) 1 and 2
(c) 1 and 3
(d) 3 and 4

(xiv) Method which reverses a given number is:
(a) Impure method
(b) Pure method
(c) Constructor
(d) Destructor

(xv) If the name of the class is “Yellow”, what can be the possible name for its constructors?
(a) yellow
(b) YELLOW
(c) Yell
(d) Yellow

(xvi) Invoking a method by passing the objects of a class is termed as:
(a) Call by reference
(b) Call by value
(c) Call by method
(d) Call by constructor

(xvii) The correct statement to create an object named mango of class fruit:
(a) Fruit Mango = new fruit();
(b) fruit mango = new fruit();
(c) Mango fruit = new Mango();
(d) fruit mango = new mango();

(xviii) Assertion (A): Static method can access static and instance variables.
Reason (R): Static variable can be accessed only by static method.
(a) Assertion and Reason both are correct.
(b) Assertion is true and Reason is false
(c) Assertion is false and Reason is true
(d) Assertion and Reason both are false

(xix) What is the output of the Java code given below?
String color[] = {“Blue”, “Red”, “Violet”};
System.out.println(color[2].length());
(a) 6
(b) 5
(c) 3
(d) 2

(xx) Which of the following mathematical methods returns only an integer?
(a) Math.ceil(n)
(b) Math.sqrt(n)
(c) Math.floor(n)
(d) Math.round(n)

Question 2
(i) Write Java expression for:
ICSE 2024 Computer Applications Mathematical Expression
Math.abs(a + b) / Math.sqrt(a * a + b * b)

(ii) Evaluate the expression when x is 4:
x += x++ * ++x % 2;
x = x + (x++ * ++x % 2);
x = 4 + (4 * 6 % 2)
x = 4 + (24 % 2)
x = 4 + 0
x = 4

(iii) Rewrite the following do while program segment using for:
x = 10; y = 20;
do{
x++;
y++;
}while(x <= 20);
System.out.println(x * y);

x = 10; y = 20;
for(;;){
x++;
y++;
if(x > 20)
break;
}
System.out.println(x * y);

(iv) Give the output of the following program segment. How many times is the loop executed?
for(x = 10; x > 20; x++)
System.out.println(x);
System.out.println(x * 2);
OUTPUT: 20
The loop executes 0 times.

(v) String s1 = “45.50”; String s2 = “54.50”;
double d1 = Double.parseDouble(s1);
double d2 = Double.parseDouble(s2);
int x = (int)(d1 + d2);
What is the value of x?
x = 100

(vi) Consider the following two-dimensional array and answer the questions given below:
int x[][] = {{4, 3, 2}, {7, 8, 2}, {8, 3, 10}, {1, 2, 9}};
(a) What is the order of the array?
(b) What is the value of x[0][0] + x[2][2]?
Order is 4 × 3.
x[0][0] + x[2][2] = 4 + 10 = 14

(vii) Differentiate between boxing and unboxing.
Autoboxing/boxing is the automatic conversion of primitive data types to their corresponding wrapper classes when needed. Unboxing is the automatic conversion of wrapper class objects to their corresponding primitive data types when needed.

(viii) The following code to compare two strings is compiled, the following syntax error was displayed – incompatible types – int cannot be converted to boolean. Identify the statement which has the error and write the correct statement. Give the output of the program segment.

void calculate(){
    String a = "KING", b = "KINGDOM";
    boolean x = a.compareTo(b);
    System.out.println(x);
}

The error is in line: boolean x = a.compareTo(b);
The correct statement is: int x = a.compareTo(b);
The output is: -3

(ix) Consider the given program and answer the questions given below:

class temp{
    int a;
    temp(){
        a = 10;
    }
    temp(int z){
        a = z;
    }
    void print(){
        System.out.println(a);
    }
    void main(){
        temp t = new temp();
        temp x = new temp(30);
        t.print();
        x.print();
    }
}

(a) What concept of OOPs is depicted in the above program with two constructors?
(b) What is the output of the method main()?
Due to constructor overloading, the OOP Polymorphism is depicted.
The output is:
10
30

(x) Primitive data types are built-in data types which are a part of the wrapper classes. These wrapper classes are encapsulated in the java.lang package. Non-primitive data types like Scanner class are a part of the utility package for which an object needs to be created.
(a) To which package the Character and Boolean classes belong?
(b) Write the statement to access the Scanner class in the program.
The Character and Boolean classes belong to the java.lang package.
The statement to access the Scanner class is: import java.util.Scanner;

SECTION B (60 Marks)
(Answer any four questions from this section)
The answers in this section should consist of the programs in either BlueJ environment or any program environment with Java as the base.
Each program should be written using variable description/mnemonic codes so that the logic of the program is clearly depicted.
Flowcharts and algorithms are not required.

Question 3
DTDC a courier company charges for the courier based on the weight of the parcel. Define a class with the following specifications:
class name: courier
Member variables:
name – name of the customer
weight – weight of the parcel in kilograms
address – address of the recipient
bill – amount to be paid
type – ‘D’ – domestic, ‘I’ international
Member methods:
void accept() – to accept the details using the methods of the Scanner class only.
void calculate() – to calculate the bill as per the following criteria:

Weight in KgsRate per Kg
First 5 KgsRs. 800
Next 5 KgsRs. 700
Above 10 KgsRs. 500

An additional amount of Rs. 1500 is charged if the type of the courier is I (International).
void print() – To print the details
void main() – to create an object of the class and invoke the methods.

import java.util.Scanner;
class courier{
    String name;
    double weight;
    String address;
    double bill;
    char type;
    public void accept(){
        Scanner in = new Scanner(System.in);
        System.out.print("Customer name: ");
        name = in.nextLine();
        System.out.print("Parcel weight in kg: ");
        weight = Double.parseDouble(in.nextLine());
        System.out.print("Address: ");
        address = in.nextLine();
        System.out.print("Parcel type: ");
        type = in.nextLine().charAt(0);
    }
    public void calculate(){
        if(weight <= 5)
            bill = weight * 800;
        else if(weight <= 10)
            bill = 4000 + (weight - 5) * 700;
        else
            bill = 7500 + (weight - 10) * 500;
        if(type == 'I' || type == 'i')
            bill += 1500;
    }
    public void print(){
        System.out.println("Customer name: " + name);
        System.out.println("Address: " + address);
        System.out.println("Parcel weight: " + weight);
        System.out.println("Parcel type: " + type);
        System.out.println("Bill = " + bill);
    }
    public static void main(String[] args){
        courier obj = new courier();
        obj.accept();
        obj.calculate();
        obj.print();
    }
}

Question 4
Define a class to overload the method perform() as follows:
double perform(double r, double h) – to calculate and return the value of curved surface area of cone.
ICSE 2024 Computer Applications Mathematical Expression 2
void perform(int r, int c) – use nested for loop to generate the following format:
r = 4, c = 5
Output:
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
void perform(int m, int n, char ch) – to print the quotient of the division of m and n if ch is Q else print the remainder of the division of m and n if ch is R.

class Overload{
    public double perform(double r, double h){
        double l = Math.sqrt(r * r + h * h);
        double csa = Math.PI * r * l;
        return csa;
    }
    public void perform(int r, int c){
        for(int i = 1; i <= r; i++){
            for(int j = 1; j <= 5; j++){
                System.out.print(j + " ");
            }
            System.out.println();
        }
    }
    public void perform(int m, int n, char ch){
        if(ch == 'Q')
            System.out.println("Quotient: " + (m / n));
        else if(ch == 'R')
            System.out.println("Remainder: " + (m % n));
    }
}

Question 5
Define a class to accept a number from user and check if it is an EvenPal number or not. The number is said to be EvenPal number when number is palindrome number (a number is palindrome if it is equal to its reverse) and sum of its digits is an even number.
Example: 121 is a palindrome number.
Sum of the digits = 1 + 2 + 1 = 4 which is even number.

import java.util.Scanner;
class EvenPal{
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        System.out.print("Enter the number: ");
        int n = Integer.parseInt(in.nextLine());
        int r = reverse(n);
        int s = sum(n);
        if(n == r && s % 2 == 0)
            System.out.println("EvenPal number!");
        else
            System.out.println("Not an EvenPal number.");
    }
    public static int reverse(int n){
        int rev = 0;
        for(int i = n; i != 0; i /= 10)
            rev = rev * 10 + i % 10;
        return rev;
    }
    public static int sum(int n){
        int s = 0;
        for(int i = n; i != 0; i /= 10)
            s += i % 10;
        return s;
    }
}

Question 6
Define a class to accept values into an integer array of order 4 × 4 and check whether it is a diagonal array or not. An array is diagonal if the sum of the left diagonal elements equals the sum of the right diagonal elements. Print the appropriate message.
Example:
3 4 2 5
2 5 2 3
5 3 2 7
1 3 7 1
Sum of the left diagonal elements = 3 + 5 + 2 + 1 = 11
Sum of the right diagonal elements = 5 + 2 + 3 + 1 = 11

import java.util.Scanner;
class Diagonal{
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        int mat[][] = new int[4][4];
        System.out.println("Enter matrix elements:");
        int left = 0;
        int right = 0;
        for(int i = 0; i < 4; i++){
            for(int j = 0; j < 4; j++){
                mat[i][j] = Integer.parseInt(in.nextLine());
                if(i == j)
                    left += mat[i][j];
                if(i + j == 3)
                    right += mat[i][j];
            }
        }
        if(left == right)
            System.out.println("Diagonal matrix!");
        else
            System.out.println("Not a diagonal matrix.");
    }
}

Question 7
Define a class pincode and store the given pin codes in a single dimensional array. Sort these pin codes in ascending order using the selection sort technique only. Display the sorted array.
110061, 110001, 110029, 110023, 110055, 110006, 110019, 110033

class pincode{
    public static void main(String[] args){
        int a[] = {110061, 110001, 110029, 110023, 110055, 110006, 110019, 110033};
        for(int i = 0; i < a.length; i++){
            int small = a[i];
            int pos = i;
            for(int j = i + 1; j < a.length; j++){
                if(small > a[j]){
                    small = a[j];
                    pos = j;
                }
            }
            int temp = a[i];
            a[i] = small;
            a[pos] = temp;
        }
        for(int i = 0; i < a.length; i++)
            System.out.print(a[i] + " ");
        System.out.println();
    }
}

Question 8
Define a class to accept the Gmail ID and check for its validity.
A Gmail ID is valid only if it has:
@
. (dot)
gmail
com
Example: icse2024@gmail.com is a valid Gmail ID.

import java.util.Scanner;
class Gmail{
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        System.out.print("Enter the Gmail ID: ");
        String gm = in.nextLine();
        boolean check = true;
        if(!gm.endsWith("@gmail.com"))
            check = false;
        else{
            String first = gm.substring(0, gm.lastIndexOf('@'));
            if(first.length() == 0)
                check = false;
            for(int i = 0; i < first.length(); i++){
                char ch = first.charAt(i);
                if(!Character.isLetterOrDigit(ch)){
                    check = false;
                    break;
                }
            }
        }
        if(check)
            System.out.println("Valid Gmail ID!");
        else
            System.out.println("Invalid Gmail ID.");
    }
}

24 thoughts on “ICSE Computer Applications 2024

  1. sir plz can you give me the question papers ( last 10 years)of computer application for class 10……. it would be very helpful for me plz try sir

  2. sir we dont need to do all that in the last question of the paper. we can simply write:
    if (gm.endsWith(“@gmail.com”))
    System.out.println(gm+ ” is a valid gmail ID”);
    else
    System.out.println(gm+ ” is not a valid gmail ID”);

    in this way sir the program is done. will the board give 15/15 if i write the program like this?

  3. Thank you so much sir for your tireless efforts taken in computing this and making the solution appear easy for us to access upon ☺️👍👍

Leave a Reply to Anuapama Awasthi Cancel reply

Your email address will not be published. Required fields are marked *