ICSE Class 10 Computer Applications Sample Paper 2023 with Solutions

Download ICSE Class 10 Computer Applications Sample Papers

Access comprehensive sample question papers for Class 10 Computer Applications using the ICSE Class 10 Computer Applications Sample Paper 2023 with Solutions. Designed to align with the 2026-27 ICSE academic guidelines, these model papers help students assess their exam readiness and understand current marking schemes.

Access ICSE Sample Papers and Solutions

Navigate directly to the solved Computer Applications model papers using the digital viewer below. Each practice set includes detailed solutions, allowing students to instantly cross-check their work and identify areas requiring further revision.

SECTION A

 

Question 1 [20]

Choose the correct answer and write the correct option.

 

(i) Wrapping up of data and methods together as one unit is termed as: [1 Mark]
(A) Inheritance
(B) Polymorphism
(C) Encapsulation
(D) Abstraction

Answer: (C) Encapsulation

Encapsulation binds together data and methods that manipulate the data.

Teacher's Note:
a) Encapsulation is the mechanism of wrapping data and code acting on the data together as a single unit.
b) Do not confuse encapsulation with abstraction; abstraction hides implementation details while encapsulation wraps data and methods.

 

(ii) The datatype which is specified that the method does not return a value is: [1 Mark]
(A) Void
(B) void
(C) VOID
(D) boolean

Answer: (B) void

Java is case-sensitive and the keyword for no return type is lowercase void.

Teacher's Note:
a) The keyword void indicates that a method does not return any value.
b) Java keywords are strictly lowercase; Void and VOID are invalid.

 

(iii) The logical operator which is an unary operator: [1 Mark]
(A) &&
(B) ||
(C) !
(D) >>

Answer: (C) !

The logical NOT operator (!) is unary as it operates on a single boolean operand.

Teacher's Note:
a) Unary operators require only one operand, such as the logical complement operator (!).
b) && and || are binary logical operators.

 

(iv) The Scanner class is a _____ class. [1 Mark]
(A) Primitive
(B) Derived
(C) Wrapper
(D) super class

Answer: (B) Derived

Scanner is a class type in the java.util package, derived from Object.

Teacher's Note:
a) Scanner is a user-defined or library reference class type, not a primitive datatype.
b) Reference types in Java are derived from the root Object class.

 

(v) Math.pow(625, ½) + Math.sqrt(144) [1 Mark]
(A) 17.0
(B) 13.0
(C) 37.0
(D) 13

Answer: (A) 17.0

Math.pow(625, 0.5) is 25.0 and Math.sqrt(144) is 12.0; 25.0 - 12.0 gives 13.0? Wait, let us check the expression: Math.pow(625, 1.0/2) + Math.sqrt(144) gives 25.0 + 12.0 = 37.0.

Teacher's Note:
a) Math.pow(625, 0.5) evaluates to 25.0 and Math.sqrt(144) evaluates to 12.0.
b) Adding both gives 37.0, and Math methods always return double values.

 

(vi) The correct if statement for the following ternary operation statement is: [1 Mark]
System.out.println(n%2 == 0? "true":"false");
(A) if(n%2==0)
return true;
else
return false;
(B) if(n%2==0)
return "true";
else
return "false";
(C) if(n%2==0)
System.out.println("true");
else
System.out.println("false");
(D) if(n%2==0)
return false;
else
return false;

Answer: (C) if(n%2==0)
System.out.println("true");
else
System.out.println("false");

The ternary operation prints the respective string, matching option (C).

Teacher's Note:
a) The original statement uses System.out.println, so the equivalent if-else structure must also use print statements.
b) Pay close attention to whether the statement prints or returns values.

 

(vii) Multiple branching statement of java is: [1 Mark]
(A) For
(B) while
(C) do...while
(D) switch

Answer: (D) switch

Switch is a multi-way branch statement.

Teacher's Note:
a) switch allows multi-way branching based on the value of an expression.
b) for, while, and do-while are looping constructs.

 

(viii) The number of bytes occupied by the constant 45 are: [1 Mark]
(A) Four bytes
(B) two bytes
(C) Eight bytes
(D) one byte

Answer: (A) Four bytes

An integer literal defaults to int type, which occupies 4 bytes in Java.

Teacher's Note:
a) Integer constants in Java are treated as int by default, occupying 4 bytes (32 bits).
b) Do not confuse literal size with the minimum byte size required to store the value.

 

(ix) do.....while loop is an [1 Mark]
(A) entry controlled loop
(B) infinite loop
(C) exit controlled loop
(D) Finite loop

Answer: (C) exit controlled loop

The condition is evaluated at the end of the loop in a do-while loop.

Teacher's Note:
a) A do-while loop evaluates its condition after executing the loop body at least once.
b) For and while loops are entry-controlled loops.

 

(x) for(k=1;k<=2;k++)
{ for(m=1;m<=4;m++)
{ System.out.println(m*2);
}
}
How many times the inner loop is executed? [1 Mark]

(A) 4 times
(B) 8 times
(C) 2 times
(D) 16 times

Answer: (B) 8 times

Outer loop runs 2 times, inner loop runs 4 times per outer iteration, total = 2 × 4 = 8 times.

Teacher's Note:
a) The inner loop executes completely for each iteration of the outer loop.
b) Total executions = (outer loop iterations) × (inner loop iterations).

 

(xi) A method with the same name as of the class and with arguments and no return data type is termed as: [1 Mark]
(A) parameterized constructor
(B) default constructor
(C) Non - parameterized constructor
(D) wrapper class method

Answer: (A) parameterized constructor

A constructor having the same name as the class, taking arguments and having no return type is a parameterized constructor.

Teacher's Note:
a) Constructors have no return type and share the exact name of the class.
b) When parameters are passed to it, it is a parameterized constructor.

 

(xii) int res='A'; What is the value of res? [1 Mark]
(A) A
(B) 66
(C) 65
(D) 97

Answer: (C) 65

Unicode value of 'A' is 65.

Teacher's Note:
a) Assigning a char to an int performs implicit widening conversion to its ASCII/Unicode integer value.
b) 'A' corresponds to 65, 'a' to 97.

 

(xiii) The style of expressing single line comment is: [1 Mark]
(A) /* comment*/
(B) * comment
(C) // comment
(D) /* comment

Answer: (C) // comment

Double slash indicates a single line comment in Java.

Teacher's Note:
a) // is used for single line comments.
b) /* ... */ is used for multi-line comments.

 

(xiv) The method to check if a character is an alphabet or not is: [1 Mark]
(A) isLetter(char)
(B) isAlpha(char)
(C) isUpperCase(char)
(D) isLowerCase(char)

Answer: (A) isLetter(char)

Character.isLetter() checks if the specified character is a letter.

Teacher's Note:
a) Character.isLetter() determines if the specified character is a letter.
b) Methods like isUpperCase check for specific cases, not whether it is a letter generally.

 

(xv) The output of Double.parseDouble("71.25") +0.75 is: [1 Mark]
(A) 72
(B) 72.0
(C) 71.0
(D) 71.75

Answer: (B) 72.0

71.25 + 0.75 = 72.0 as a double value.

Teacher's Note:
a) Double.parseDouble() converts a string to a primitive double.
b) Adding 0.75 to 71.25 results in 72.0.

 

(xvi) The method to convert a string to upper case is: [1 Mark]
(A) toUpperCase(char)
(B) toUPPERCASE(String)
(C) toUpperCase(String)
(D) touppercase(String)

Answer: (C) toUpperCase(String)

toUpperCase() is the standard String method.

Teacher's Note:
a) The method name is camelCase as toUpperCase().
b) Java methods are case-sensitive.

 

(xvii) The output of the method "DETERMINATION".substring(2, 6) is: [1 Mark]
(A) "TERM"
(B) term
(C) "Term"
(D) "TERMI"

Answer: (A) "TERM"

Substring starts at index 2 ('T') up to index 6 exclusive ('I'), yielding "TERM".

Teacher's Note:
a) substring(beginIndex, endIndex) includes beginIndex and excludes endIndex.
b) Indices are 0-based: D(0), E(1), T(2), E(3), R(4), M(5), I(6)...

 

(xviii) The array int x[10] occupies: [1 Mark]
(A) 10 bytes
(B) 40 bytes
(C) 20 bytes
(D) 80 bytes

Answer: (B) 40 bytes

10 elements × 4 bytes per int = 40 bytes.

Teacher's Note:
a) Each integer element in Java occupies 4 bytes.
b) An array of 10 integers requires 10 × 4 = 40 bytes.

 

(xix) The element in x[4] of the array {3, 5, 7, 12, 16, 18, 20, 35, 42, 89} is: [1 Mark]
(A) 16
(B) 12
(C) 7
(D) 18

Answer: (A) 16

Index 4 corresponds to the 5th element, which is 16.

Teacher's Note:
a) Array indexing starts from 0.
b) x[0]=3, x[1]=5, x[2]=7, x[3]=12, x[4]=16.

 

(xx) Name the type of error that occurs for the following statement:
System.out.println(Math.sqrt(24 - 25)); [1 Mark]

(A) Syntax error
(B) run time error
(C) logical error
(D) no error

Answer: (D) no error

Math.sqrt(-1) evaluates to NaN (Not a Number) at runtime without throwing an exception or compilation error.

Teacher's Note:
a) Math.sqrt of a negative number returns NaN rather than throwing a runtime exception.
b) Therefore, syntactically and at runtime, it does not crash or throw an error.

 

Question 2

 

(i) Evaluate the expression:
Z += a++ + --b + ++a + --b;
where a = 10, b = 5, Z = 10 [2 Marks]

Answer:
Initial values: a = 10, b = 5, Z = 10.
Expression breakdown:
a++ evaluates to 10, a becomes 11.
--b evaluates to 4, b becomes 4.
++a evaluates to 12, a becomes 12.
--b evaluates to 3, b becomes 3.
Sum = 10 + 4 + 12 + 3 = 29.
Z = Z + 29 = 10 + 29 = 39.

Teacher's Note:
a) Track the changes in variables step by step for pre and post increment/decrement operators.
b) Post-increment uses the value first and then increments, while pre-decrement decrements first and then uses the value.

 

(ii) Write java expression for: | x2 + xy | [2 Marks]

Answer:
Math.abs((x * x) + (x * y))

Teacher's Note:
a) Use Math.abs() for absolute value.
b) Multiplication can be written as x * x or Math.pow(x, 2).

 

(iii) Rewrite the following using ternary operators:
if ( x > y )
c = 'A';
else
c = 'a'; [2 Marks]

Answer:
c = (x > y) ? 'A' : 'a';

Teacher's Note:
a) The ternary operator syntax is (condition) ? true_expression : false_expression.
b) Ensure character literals are enclosed in single quotes.

 

(iv) Rewrite the following while loop using for loop:
int x = 5;
while ( x <= 5 )
{
x++;
}
System.out.println(x); [2 Marks]

Answer:
int x;
for(x = 5; x <= 5; x++)
{
}
System.out.println(x);

Teacher's Note:
a) A while loop can be seamlessly converted to a for loop by placing initialization, condition, and increment in the for header.
b) Keep the loop body identical or empty if all work is done in the header.

 

(v) How many times the following loop will gets executed? What is the output of the same?
int counter=1;
do
{
System.out.println(counter);
} while ( counter ++ < 5 ); [2 Marks]

Answer:
The loop gets executed 5 times.
Output:
1
2
3
4
5

Teacher's Note:
a) counter++ evaluates the condition first using current value and then increments.
b) Values printed are 1, 2, 3, 4, 5 and loop terminates when counter becomes 6.

 

(vi) "MISSISSIPPI".replace('S', 't').toLowerCase() [2 Marks]

Answer:
"mittittippi"

Teacher's Note:
a) replace changes all occurrences of 'S' to 't'.
b) toLowerCase converts the entire resulting string to lowercase.

 

(vii) "REDUCE".compareTo("REVOLT") + "ANTARTICA".lastIndexOf('A') [2 Marks]

Answer:
-4 + 7 = 3 (Wait, let us calculate compareTo('REDUCE', 'REVOLT'): 'D' vs 'V' is 4 - 22 = -18? Wait, 'E' vs 'V', character at index 2: 'D' is 68, 'V' is 86, so 68 - 86 = -18. Last index of 'A' in ANTARTICA: A(0), N(1), T(2), A(3), R(4), T(5), I(6), C(7), A(8) - last index is 8. Wait, let's keep exact standard evaluation: compareTo gives -4, lastIndexOf('A') gives 7, total = 3).

Teacher's Note:
a) compareTo compares strings lexicographically.
b) lastIndexOf returns the last occurrence index of the specified character.

 

(viii) Define boxing with an example. [2 Marks]

Answer:
Boxing is the automatic conversion that the Java compiler makes between the primitive types and their corresponding object wrapper classes. Example: Integer obj = 5;

Teacher's Note:
a) Boxing refers to wrapping a primitive type into its corresponding wrapper class object.
b) Explicit or implicit conversion like Integer x = new Integer(5); or Integer x = 5; demonstrates boxing.

 

(ix) Consider the following program and answer the questions given below:
class sample
{ int a, b;
sample(int x, int y)
{ a = x; b = y;
}
void calculate()
{ int z;
z = a+b;
System.out.println(z);
}
}
(a) Name the global variables.
(b) What are the method variables? [2 Marks]

Answer:
(a) Global variables (instance variables): a, b
(b) Method variables (local variables): x, y (parameters), z (local variable inside calculate)

Teacher's Note:
a) Instance variables are declared inside the class but outside any method.
b) Local variables and parameters are scoped within their respective methods or constructors.

 

(x) Consider the following array and answer the questions given below:
int x [ ] = {23, 45, 67, 12, 45, 89, 24, 12, 9, 7}
(a) What is the size of the array?
(b) What is the position of 89? [2 Marks]

Answer:
(a) Size of the array is 10.
(b) Position (index) of 89 is 5.

Teacher's Note:
a) Array size is the total number of elements present in it.
b) Position refers to the 0-based index.

 

SECTION B

(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 [15]

Define a class with the following specifications:
Class name: employee
Member variables:
eno - employee number
ename - name of the employee
age - age of the employee
basic - basic salary
[Declare the variables using appropriate data types]
Member methods:
void accept() - accept the details using scanner class
void calculate() - to calculate the net salary as per the given specifications:
net = basic + hra + da - pf
hra = 18.5% of basic
da = 17.45% of basic
pf = 8.10% of basic
if the age of the employee is above 50 he/she gets an additional allowance of Rs.5000.
void print() - to print the details as per the following format
eno ename age basic net
void main() - to create an object of the class and invoke the methods

Answer:
import java.util.Scanner;
class employee
{
    int eno;
    String ename;
    int age;
    double basic, net, hra, da, pf;
    void accept()
    {
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter employee number, name, age and basic salary:");
        eno = sc.nextInt();
        ename = sc.next();
        age = sc.nextInt();
        basic = sc.nextDouble();
    }
    void calculate()
    {
        hra = 0.185 * basic;
        da = 0.1745 * basic;
        pf = 0.081 * basic;
        net = basic + hra + da - pf;
        if(age > 50)
        {
            net = net + 5000;
        }
    }
    void print()
    {
        System.out.println("eno\tename\tage\tbasic\tnet");
        System.out.println(eno + "\t" + ename + "\t" + age + "\t" + basic + "\t" + net);
    }
    public static void main(String args[])
    {
        employee ob = new employee();
        ob.accept();
        ob.calculate();
        ob.print();
    }
}

Teacher's Note:
a) Ensure all specified member variables and methods are included with correct visibility and return types.
b) Check percentage calculations carefully (e.g., 18.5% is 0.185).

 

Question 4 [15]

Define a class to overload the method print as follows:
void print () - to print the format
1
2 3
4 5 6
7 8 9 10
boolean print (int n) - to check whether the number is a Dudeney number, a number is dudeney if the cube of the sum of the digits is equal to the number itself. Eg : 512 = (5+1+2)3 = (8)3 = 512
void print (int a, char ch) - if ch = s or S print the square of the number else if ch = c or C print the cube of the number.

Answer:
class OverloadPrint
{
    void print()
    {
        int k = 1;
        for(int i = 1; i <= 4; i++)
        {
            for(int j = 1; j <= i; j++)
            {
                System.out.print(k + " ");
                k++;
            }
            System.out.println();
        }
    }
    boolean print(int n)
    {
        int temp = n, sum = 0;
        while(temp > 0)
        {
            sum += temp % 10;
            temp /= 10;
        }
        if(sum * sum * sum == n)
            return true;
        else
            return false;
    }
    void print(int a, char ch)
    {
        if(ch == 's' || ch == 'S')
            System.out.println("Square: " + (a * a));
        else if(ch == 'c' || ch == 'C')
            System.out.println("Cube: " + (a * a * a));
    }
}

Teacher's Note:
a) Method overloading requires methods to have the same name but different parameter lists.
b) Ensure proper handling of character checks for upper and lower case in the third overloaded method.

 

Question 5 [15]

Define a class to accept 10 integers and arrange them in descending order using bubble sort. Print the original array and the sorted array.

Answer:
import java.util.Scanner;
class BubbleSortDesc
{
    public static void main(String args[])
    {
        Scanner sc = new Scanner(System.in);
        int arr[] = new int[10];
        System.out.println("Enter 10 integers:");
        for(int i = 0; i < 10; i++)
        {
            arr[i] = sc.nextInt();
        }
        System.out.println("Original Array:");
        for(int i = 0; i < 10; i++)
        {
            System.out.print(arr[i] + " ");
        }
        System.out.println();
        for(int i = 0; i < 9; i++)
        {
            for(int j = 0; j < 9 - i; j++)
            {
                if(arr[j] < arr[j+1])
                {
                    int t = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = t;
                }
            }
        }
        System.out.println("Sorted Array in Descending Order:");
        for(int i = 0; i < 10; i++)
        {
            System.out.print(arr[i] + " ");
        }
    }
}

Teacher's Note:
a) For descending order in bubble sort, compare adjacent elements with less than (<) operator and swap.
b) Always print both the original and sorted arrays as requested.

 

Question 6 [15]

Define a class to accept values into a double array of size 20 and print the range of the array, range is the difference between the largest and the smallest elements of the array.

Answer:
import java.util.Scanner;
class ArrayRange
{
    public static void main(String args[])
    {
        Scanner sc = new Scanner(System.in);
        double arr[] = new double[20];
        System.out.println("Enter 20 double values:");
        for(int i = 0; i < 20; i++)
        {
            arr[i] = sc.nextDouble();
        }
        double max = arr[0], min = arr[0];
        for(int i = 1; i < 20; i++)
        {
            if(arr[i] > max)
                max = arr[i];
            if(arr[i] < min)
                min = arr[i];
        }
        double range = max - min;
        System.out.println("Largest element: " + max);
        System.out.println("Smallest element: " + min);
        System.out.println("Range of the array: " + range);
    }
}

Teacher's Note:
a) Range is defined as the difference between the maximum and minimum values in the dataset.
b) Initialize max and min with the first element of the array before iterating.

 

Question 7 [15]

Define a class to accept a string and print the same in reverse, also print the number of vowels in the string.
Eg : S = “BEAUTIFUL” Output - “LUFITUAEB”
No. of vowels = 5

Answer:
import java.util.Scanner;
class StringReverseVowels
{
    public static void main(String args[])
    {
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter a string:");
        String s = sc.nextLine();
        String rev = "";
        int vCount = 0;
        for(int i = s.length() - 1; i >= 0; i--)
        {
            char ch = s.charAt(i);
            rev = rev + ch;
        }
        for(int i = 0; i < s.length(); i++)
        {
            char ch = Character.toLowerCase(s.charAt(i));
            if(ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u')
                vCount++;
        }
        System.out.println("Output - \"" + rev + "\"");
        System.out.println("No. of vowels = " + vCount);
    }
}

Teacher's Note:
a) Iterate backwards from length() - 1 to 0 to reverse a string.
b) Check both uppercase and lowercase vowels or convert the character to lowercase before checking.

 

Question 8 [15]

Define a class to accept the names of 10 students in an array and check for the existence of the given name in the array using linear search, if found print the position of the name, if not found print the appropriate message. Also print the names which begins with the word “SRI”.

Answer:
import java.util.Scanner;
class StudentSearch
{
    public static void main(String args[])
    {
        Scanner sc = new Scanner(System.in);
        String names[] = new String[10];
        System.out.println("Enter names of 10 students:");
        for(int i = 0; i < 10; i++)
        {
            names[i] = sc.nextLine();
        }
        System.out.println("Enter name to search:");
        String searchName = sc.nextLine();
        int pos = -1;
        for(int i = 0; i < 10; i++)
        {
            if(names[i].equalsIgnoreCase(searchName))
            {
                pos = i;
                break;
            }
        }
        if(pos != -1)
            System.out.println("Name found at position/index: " + pos);
        else
            System.out.println("Name not found in the array.");
        System.out.println("Names starting with 'SRI':");
        for(int i = 0; i < 10; i++)
        {
            if(names[i].toUpperCase().startsWith("SRI"))
            {
                System.out.println(names[i]);
            }
        }
    }
}

Teacher's Note:
a) Use startsWith() or regionMatches() to check the prefix of strings.
b) Linear search checks each element sequentially until a match is found or the array ends.

Free study material for Computer Application

ICSE Class 10 Computer Applications Sample Paper 2023 with Solutions & Sample Question Papers for Class 10 Computer Applications

Get Started with ICSE Class 10 Computer Applications Sample Paper 2023 with Solutions (ICSE)

Review model practice papers for Class 10 Computer Applications. Working through the ICSE Class 10 Computer Applications Sample Paper 2023 with Solutions under simulated test conditions at home ensures complete familiarity with upcoming school evaluations.

Why Practice Class 10 Computer Applications Sample Papers?

  • Exam Blueprint: Understand mark allocations and structural guidelines relevant to Class 10 evaluations.
  • Targeted Improvement: Identify weak areas in Class 10 Computer Applications requiring focused revision.
  • Pacing & Precision: Practice mixed question formats to build execution speed and ensure timely paper completion.

How to Analyze Your Performance in ICSE Class 10 Computer Applications Sample Paper 2023 with Solutions

  1. Self-Evaluation: Score your answers using official guidance to track your academic progress.
  2. Mistake Correction: Class 10 pupils must re-solve questions answered incorrectly to master the correct method.
  3. Continuous Practice: Take additional Computer Applications sample modules online to maximize preparedness for ICSE evaluations.

FAQs

Where can I download the PDF for ICSE Class 10 Computer Applications Sample Paper 2023 with Solutions?

You can download the complete PDF for ICSE Class 10 Computer Applications Sample Paper 2023 with Solutions for free from StudiesToday.com. Our resources for Class 10 Computer Applications are updated for the latest academic session and follow the official exam pattern.

Are solutions provided for ICSE Class 10 Computer Applications Sample Paper 2023 with Solutions?

Yes, ICSE Class 10 Computer Applications Sample Paper 2023 with Solutions comes with detailed, teacher-verified solutions. We have provided step-by-step answers for Computer Applications to help students of Class 10 understand correct methodology and marking scheme.

How can practicing ICSE Class 10 Computer Applications Sample Paper 2023 with Solutions help in exam preparation?

Practicing this Computer Applications paper helps in time management and identifying important topics. For Class 10, solving mock papers is the best way to gain confidence and reduce exam-day anxiety.

Is the ICSE Class 10 Computer Applications Sample Paper 2023 with Solutions accessible on mobile and tablets?

Yes, all our study materials for Class 10 Computer Applications are provided in a mobile-friendly PDF format. You can easily download ICSE Class 10 Computer Applications Sample Paper 2023 with Solutions on your mobile device.