Solved 2023 Question Paper ICSE Class 10 Computer Applications
Solutions for Computer Applications, Class 10, ICSE
Section A
30 questionsAnswer:
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.
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
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:
Iteration | Value of i | Remark |
---|---|---|
1 | 5 | Initial value of i = 5 |
2 | 3 | i = 5 - 2 = 3 |
3 | 1 | i = 3 - 2 = 1 |
4 | -1 | i = 1 - 2 = -1 |
5 | -3 | i = -1 - 2 = -3 and so on... |
Since i will never be '0', the loop will execute infinitely.
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)
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.
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.
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.
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.
Answer:
Unboxing
Reason — When an object of a Wrapper class is converted to its corresponding primitive data type, it is called as unboxing.
Answer:
(a) Character.toUpperCase ('a')
A
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('#')
false
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.
Answer:
9
2
Step by step explanation of the code:
int n = 4279;
— Initializes the integern
with the value 4279.int d;
— Declares an integer variabled
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 whenn
is divided by 10 and stores it ind
. 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 ofd
. In the first iteration, it will print 9.n = n / 100;
— This line performs integer division ofn
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. Sincen
is no longer greater than 0, the loop terminates.
Section B
6 questionsDesign 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:
mks | stream |
---|---|
>= 300 | Science and Computer |
>= 200 and < 300 | Commerce and Computer |
>= 75 and < 200 | Arts and Animation |
< 75 | Try 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();
}
}

Answer:
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] + " ");
}
}
}

Answer:
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);
}
}

Answer:
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);
}
}

Answer:
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);
}
}
}

Answer:
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);
}
}
