KnowledgeBoat Logo
OPEN IN APP

2023

Solved 2023 Question Paper ICSE Class 10 Computer Applications

Class 10 - ICSE Computer Applications Solved Question Papers



Section A

Question 1(i)

A mechanism where one class acquires the properties of another class:

  1. Polymorphism
  2. Inheritance
  3. Encapsulation
  4. 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 &&:

  1. ternary
  2. unary
  3. logical
  4. 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:

  1. next()
  2. nextLine()
  3. Next()
  4. 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:

  1. extends
  2. export
  3. import
  4. 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?

  1. 16.0
  2. 16
  3. 4.0
  4. 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?

  1. continue
  2. break
  3. return
  4. 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);
  1. finite
  2. infinite
  3. null
  4. 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:

IterationValue of iRemark
15Initial value of i = 5
23i = 5 - 2 = 3
31i = 3 - 2 = 1
4-1i = 1 - 2 = -1
5-3i = -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:

  1. char check()
  2. void check (int x)
  3. check (int x)
  4. 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. 1
  2. 2
  3. 3
  4. 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);
  1. 20
  2. 20 22
  3. 2220
  4. 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:

  1. concat(String)
  2. <string>.joint(string)
  3. concat(char)
  4. 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):

  1. POSI
  2. POS
  3. MPO
  4. 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.

  1. implicit
  2. automatic
  3. explicit
  4. 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:

  1. source code
  2. object code
  3. machine code
  4. 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?

  1. Logical
  2. Syntax
  3. Runtime
  4. 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);
}
  1. 20
    40
  2. 10
    4
  3. 20, 40
  4. 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:

  1. Impure method
  2. Pure method
  3. Primitive method
  4. 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 ............... .

  1. Boxing
  2. Explicit type conversion
  3. Unboxing
  4. 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. 1 bit
  2. 2 bits
  3. 4 bits
  4. 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:

  1. Static method
  2. Non static method
  3. Wrapper class
  4. 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:

  1. int n = 4279; — Initializes the integer n with the value 4279.
  2. int d; — Declares an integer variable d 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 when n is divided by 10 and stores it in d. 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 of d. In the first iteration, it will print 9.
  • n = n / 100; — This line performs integer division of n 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. Since n 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

  1. char ch = 'd'; assigns the character 'd' to the variable ch. In ASCII, the character 'd' has a decimal value of 100.
  2. int n = ch + 5; adds 5 to the ASCII value of 'd', which is 100. So, 100 + 5 equals 105.

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:

mksstream
>= 300Science and Computer
>= 200 and < 300Commerce and Computer
>= 75 and < 200Arts and Animation
< 75Try 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
BlueJ output of Student.java

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
BlueJ output of KboatCharBubbleSort.java

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
BlueJ output of KboatMethodOverload.java

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
BlueJ output of KboatCount.java

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
BlueJ output of KboatLinearSearch.java

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