Previous Year Question Paper 2024 | Fully Solved CBSE Computer Science

Section - A

  1. State True or False: While defining a function, the positional parameters in the function header must always be written after the default parameters.

    Answer: False

  2. The SELECT statement when combined with __ clause, returns records without repetition.

    (a) DISTINCT (b) DESCRIBE (c) UNIQUE (d) NULL

    Answer: (a) DISTINCT

  3. What will be the output of the following statement:

    print(16*5/4*2/5-8)

    (a) -3.33 (b) 6.0 (c) 0.0 (d) -13.33

    Answer: (c) 0.0

  4. What possible output from the given options is expected to be displayed when the following Python code is executed?

    import random
    Signal = ['RED', 'YELLOW', 'GREEN']
    for K in range (2, 0, -1):
        R = random.randrange(K)
        print(Signal[R], end='#')
    

    (a) YELLOW # RED #

    (b) RED # GREEN #

    (c) GREEN # RED #

    (d) YELLOW # GREEN #

    Answer: (a) YELLOW # RED #

  5. In SQL, the aggregate function which will display the cardinality of the table is:

    (a) sum() (b) count(*) (c) avg() (d) sum(*)

    Answer: (b) count(*)

  6. Which protocol out of the following is used to send and receive emails over a computer network?

    (a) PPP (b) HTTP (c) FTP (d) SMTP

    Answer: (d) SMTP

  7. Identify the invalid Python statement from the following :

    (a) d = dict()

    (b) e = {}

    (c) f = []

    (d) g = dict{}

    Answer: (d) g = dict{}

  8. Consider the statements given below and then choose the correct output from the given options:

    myStr="MISSISSIPPI"
    print(myStr[:4]+"#"+myStr[-5:])
    

    (a) MISSI#SIPPI (b) MISS#SIPPI

    (c) MISS#IPPIS (d) MISSI#IPPIS

    Answer: (b) MISS#SIPPI

  9. Identify the statement from the following which will raise an error:

    (a) print("A" *3) (b) print(5*3)

    (c) print("15" + 3) (d) print("15" + "13")

    Answer: (c) print("15" + 3)

  10. Select the correct output of the following code:

    event="G20 Presidency@2023"
    L=event.split(' ')
    print (L[::-2])
    

    (a) 'G20' (b) ['Presidency@2023']

    (c) ['G20'] (d) Presidency@2023

    Answer: (b) ['Presidency@2023']

  11. Which of the following options is the correct unit of measurement for network bandwidth ?

    (a) KB (b) bit (c) Hz (d) Km

    Answer: (b) bit

  12. Observe the given Python code carefully:

    a=20
    def convert(a):
        b=20
        a=a+b
    convert(10)
    print(a)
    

    (a) 10 (b) 20 (c) 30 (d) Error

    Answer: (b) 20

  13. State whether the following statement is True or False:

    While handling exceptions in Python, name of the exception has to be compulsorily added with except clause.

    Answer: False

  14. Which of the following is not a DDL command in SQL?

    (a) DROP (b) CREATE (c) UPDATE (d) ALTER

    Answer: (c) UPDATE

  15. Fill in the blank:

    _____ is a set of rules that needs to be followed by the communicating parties in order to have a successful and reliable data communication over a network.

    Answer: Protocol

  16. Consider the following Python statement : F=open('CONTENT.TXT')

    Which of the following is an invalid statement in Python?

    (a) F.seek(1, 0) (b) F.seek(0, 1)

    (c) F.seek(0, -1) (d) F.seek(0, 2)

    Answer: (c) F.seek(0, -1)

Q. 17 and 18 are ASSERTION (A) and REASONING (R) based questions.

Mark the correct choice as

(a) Both (A) and (R) are true and (R) is the correct explanation for (A).

(b) Both (A) and (R) are true and (R) is not the correct explanation for (A).

(c) (A) is true but (R) is false.

(d) (A) is false but (R) is true.

  1. Assertion (A) : CSV file is a human readable text file where each line has a number of fields, separated by comma or some other delimiter.

    Reason (R): writerow() method is used to write a single row in a CSV file.

    Answer: (b)

  2. Assertion (A) : The expression "HELLO".sort() in Python will give an error.

    Reason (R) : sort() does not exist as a method/function for strings in Python.

    Answer: (a)

Section - B

  1. (A) (i) Expand the following terms:

    XML, PPP

    (ii) Give one difference between circuit switching and packet switching.

    Answer: (i) XML: eXtensible Markup Language; PPP: Point-to-Point Protocol

    (ii) Circuilt Switching needs a dedicated path from the source to the destination before the transmission of data can begin, while in Packet Switching data is divided into packets and transmitted over the network without having a dedicated path, i.e. they just know the address of the next point to hop to.

    OR

    (B) (i) Define the term web hosting.

    (ii) Name any two web browsers.
    

    Answer: (i) Web hosting is the process of placing hypertext documents on a web server.

    (ii) Google Chrome and Mozilla Firefox

  2. The code given below accepts five numbers and displays whether they are even or odd: Observe the following code carefully and rewrite it after removing all syntax and logical errors:

    Underline all the corrections made.

    def EvenOdd()
        for i in range (5):
        num=int(input("Enter a number")
        if num/2==0:
            print("Even")
        else:
        print("Odd")
    
    EvenOdd()
    

    Answer:

    Corrected code

  3. Write a user defined function in Python named showGrades(S) which takes the dictionary S as an argument. The dictionary, S contains Name: [Eng, Math, Science] as key: value pairs. The function displays the corresponding grade obtained by the students according to the following grading rules:

    Average of Eng,Math,Science Grade
    >=90 A
    <90 but >=60 B
    <60 C

    For example: Consider the following dictionary

    S={"AMIT": [92,86,64], "NAGMA" : [65,42,43], "DAVID": [92,90,88]}

    The output should be:

    AMIT - B
    NAGMA - C
    FDAVID - A
    

    Answer:

    def showGrades(S):
        for k,v in S.items():
            avg = sum(v)/len(v)
    
            if avg > 90:
                print(k, "-", "A")
            elif avg >=60:
                print(k, "-", "B")
            else:
                print(k, "-", "C")
    

    OR

    (B) Write a user defined function in Python named Puzzle(W,N) which takes the argument W as an English word and N as an integer and returns the string where every Nth alphabet of the word W is replaced with an underscore ("_").

    For example: if W contains the word "TELEVISION" and N is 3, then the function should return the string "TE_EV_SI_N". Likewise for the word "TELEVISION" if N is 4, then the function should return "TEL_VIS_ON".

    Answer:

    def Puzzle(W,N):
        ns = ""
        for c, index in enumerate(W):
            if (index+1)%N==0:
                ns += "_"
            else:
                ns += c
    
        return ns
    
  4. Write the output displayed on execution of the following Python code:

    LS=["HIMALAYA", "NILGIRI", "ALASKA", "ALPS"]
    D={}
    
    for S in LS:
        if len(S)%4 == 0:
            D[S] = len(S)
    
    for K in D:
        print(K, D[K], sep = "#")
    

    Answer:

    HIMALAYA#8
    ALPS#4
    
  5. (A) Write the Python statement for each of the following tasks using built-in functions/methods only:

    (i) To remove the item whose key is "NISHA" from a dictionary named Students. For example, if the dictionary Students contains {"ANITA": 90, "NISHA": 76, "ASHA": 92}, then after removal the dictionary should contain {"ANITA" : 90, "ASHA" : 92}

    (ii) To display the number of occurrences of the substring "is" in a string named message. For example if the string message contains "This is his book", then the output will be 3.

    Answer: (i) Students.pop("NISHA") (ii) message.count("is")

OR

(B) A tuple named subject stores the names of different subjects. Write the Python commands to convert the given tuple to a list and thereafter delete the last element of the list.

Answer:

subject = list(subject)
subject.pop()

  1. (A) Ms. Veda created a table named Sports in a MySQL database, containing columns Game_id, Age and G_name.

    After creating the table, she realized that the attribute, Category has to be added. Help her to write a command to add the Category column. Thereafter, write the command to insert the following record in the table:

    Game_id: G42

    P_Age: Above 18

    G_name : Chess

    Category : Senior

    Answer:

    # add category column
    ALTER TABLE Sports
    ADD Category VARCHAR(50);
    
    # insert given record
    INSERT INTO Sports(Game_id, P_Age, G_name, Category) 
    VALUES ("G42", "Above 18", "Chess", "Senior");
    

    OR

(B) Write the SQL commands to perform the following tasks: (i) View the list of tables in the database, `Exam`. (ii) View the structure of the table, `Term1`.
Answer: 
(i)

USE Exam;
SHOW TABLES;
(ii)
DESC Term1;
  1. Predict the output of the following code:

    def callon(b=20, a=10):
        b=b+a
        a=b-a
        print(b, "#", a)
        return b
    
    x=100
    y=200
    x=callon(x,y)
    print(x, "@", y)
    y=callon(y)
    print(x, "@", y)
    

    Answer:

    300#100
    300@200
    210#200
    300@210
    

Section - C

  1. Write the output on execution of the following Python code:

    S="Racecar Car Radar"
    L=S.split()
    
    for W in L:
        x = W.upper()
        if x==x[::-1]:
            for I in x:
                print(I,end="*")
        else:
            for I in W:
                print(I,end="#")
        print()
    

    Answer:

    R*A*C*E*C*A*R*
    C#a#r#
    R*A*D*A*R*
    
  2. Consider the table ORDERS given below and write the output of the SQL queries that follow:

    ORDNO ITEM QTY RATE ORDATE
    1001 RICE 23 120 2023-09-10
    1002 PULSES 13 120 2023-10-18
    1003 RICE 25 110 2023-11-17
    1004 WHEAT 28 65 2023-12-25
    1005 PULSES 16 110 2024-01-15
    1006 WHEAT 27 55 2024-04-15
    1007 WHEAT 25 60 2024-04-30

    (i) SELECT ITEM, SUM(QTY) FROM ORDERS GROUP BY ITEM;

    (ii) SELECT ITEM, QTY FROM ORDERS WHERE ORDATE BETWEEN '2023-11-01' AND '2023-12-31';

    (iii) SELECT ORDNO, ORDATE FROM ORDERS WHERE ITEM = 'WHEAT' AND RATE >= 60;

    Answer:

    (i)

    ITEM SUM(QTY)
    RICE 48
    PULSES 29
    WHEAT 80

    (ii)

    ITEM QTY
    RICE 25
    WHEAT 28

    (iii)

    ORDNO ORDATE
    1004 2023-12-25
    1007 2024-04-30
  3. Write a user defined function in Python named showInLines() which reads contents of a text file named STORY.TXT and displays every sentence in a separate line.

    Assume that a sentence ends with a full stop (.), a question mark (?), or an exclamation mark (!).

    For example, if the content of file STORY.TXT is as follows:

    Our parents told us that we must eat vegetables to be healthy. And it turns out, our parents were right!. So, what else did our parents tell?

    The following content should be displayed:

    Our parents told us that we must eat vegetables to be healthy.
    And it turns out, our parents were right!
    So, what else did our parents tell?
    

    Answer:

    def showInLines():
        f = open('STORY.TXT')
        content = f.read()
    
        for c in content:
            if c in '.?!':
                print(c)
            else:
                print(c, end='')
    
        f.close()
    
**OR** (B) Write a function, `c_words()` in Python that separately counts and displays the number of uppercase and lowercase alphabets in a text file, `Words.txt`. Answer:
def c_words():
    with open("Words.txt") as f:
        content = f.read()
        count_ucase = 0
        count_lcase = 0

        for c in content:
            if c.isalpha() and c.isupper():
                count_ucase += 1
            elif c.isalpha() and c.islower():
                count_lcase += 1

    print("count uppercase", count_ucase)
    print("count lowercase", count_lcase)
  1. Consider the table Projects given below:

    P_id Pname Language Startdate Enddate
    P001 School Management System Python 2023-01-12 2023-04-03
    P002 Hotel Management System C++ 2022-12-01 2023-02-02
    P003 Blood Bank Python 2023-02-11 2023-03-02
    P004 Payroll Management System Python 2023-03-12 2023-06-02

    Based on the given table, write SQL queries for the following:

    i. Add the constraint, primary key to column P_id in the existing table Projects.

    ii. To change the language to Python of the project whose id is P002.

    iii. To delete the table Projects from MySQL database along with its data.

    Answer:

    i.

    ALTER TABLE Projects
    ADD PRIMARY KEY(P_id);
    

    ii.

    UPDATE Projects
    SET Language = 'Python'
    WHERE P_id = 'P002';
    

    iii.

    DROP TABLE Projects;
    
  2. Consider a list named Nums which contains random integers.

    Write the following user defined functions in Python and perform the specified operations on a stack named BigNums.

    (i) PushBig() : It checks every number from the list Nums and pushes all such numbers which have 5 or more digits into the stack, BigNums.

    (ii) PopBig() : It pops the numbers from the stack, BigNums and displays them. The function should also display "Stack Empty" when there are no more humbers left in the stack.

    For example: If the list Nums contains the following data :

    Nums = [213,10025,167,254923,14,1297653,31498,386,92765]
    

    Then on execution of PushBig(), the stack BigNums should store:

    [10025, 254923, 1297653, 31498, 92765]
    

    And on execution of PopBig() , the following output should be displayed:

    92765
    31498
    1297653
    254923
    10025
    Stack Empty
    

    Answer:

    (i)

    def PushBig():
        for num in Nums:
            if len(str(num)) >= 5: # alternate: num >= 10000
                BigNums.append(num)
    

    (ii)

    def PopBig():
        while len(BigNums) > 0:
            print(BigNums.pop())
    
        print("Stack Empty")
    

Section - D

  1. Consider the tables Admin and Transport given below:

    Table: Admin

    S_id S_name Address S_type
    S001 Sandhya Rohini Day Boarder
    S002 Vedanshi Rohtak Day Scholar
    S003 Vibhu Raj Nagar NULL
    S004 Atharva Rampur Day Boarder

    Table: Transport

    S_id Bus_no Stop_name
    S002 TSS10 Sarai Kale Khan
    S004 TSS12 Sainik Vihar
    S005 TSS10 Kamla Nagar

    Write SQL queries for the following:

    i. Display the student name and their stop name from the tables Admin and Transport.

    ii. Display the number of students whose S_type is not known.

    iii. Display all details of the students whose name starts with 'V'.

    iv. Display student id and address in alphabetical order of student name, from the table Admin.

    Answer:

    i.

    SELECT S_name, Stop_name
    FROM Admin NATURAL JOIN Transport;
    

    ii.

    SELECT COUNT(*)
    FROM Admin
    WHERE S_type IS NULL;
    

    iii.

    SELECT * FROM Admin
    WHERE S_name LIKE 'V%';
    

    iv.

    SELECT S_id, Address
    FROM Admin
    ORDER BY S_name;
    

    1. Sangeeta is a Python programmer working in a computer hardware company. She has to maintain the records of the peripheral devices. She created a csv file named Peripheral.csv, to store the details. The structure of Peripheral.csv is :

      [P_id, P_name, Price]

      where:

      P_id is Peripheral device ID (integer)

      P_name is Peripheral device name (String)

      Price is Peripheral device price (integer)

      Sangeeta wants to write the following user defined functions:

      Add_Device() : to accept a record from the user and add it to a csv file, Peripheral.csv.

      Count_Device() : To count and display number of peripheral devices whose price is less than 1000.

      Answer:

      def Add_Device():
          import csv
      
          p_id = int(input("device id:"))
          p_name = input("device name:")
          p_price = int(input("device price:"))
      
          with open("Peripheral.csv", "a") as f:
              writer = csv.writer(f)
              writer.writerow([p_id, p_name, p_price])
      
      def Count_Device():
          import csv
      
          f = open("Peripheral.csv")
          reader = csv.reader(f)
      
          count = 0
          for row in reader:
              if int(row[2]) < 1000:
                  count += 1
      
          print("number of devices priced less than 1000:", count)
          f.close()
      

Section - E

  1. Infotainment Ltd. is an event management company with its prime office located in Bengaluru. The company is planning to open its new division at three different locations in Chennai named as - Vajra, Trishula and Sudershana.

    You, as a networking expert need to suggest solutions to the questions in part (i) to (v), keeping in mind the distances and other given parameters.

    Diagram showing offices

    Distances between various locations:

    • Vajra to Trishula - 350 m
    • Trishula to Sudershana - 415 m
    • Sudershana to Vajra - 300m
    • Bengaluru Office to Chennai - 2000km

      Number of computers installed at various locations:

    • Vajra - 120

    • Sudershana - 75
    • Trishula - 65
    • Bengaluru Office - 250

      i. Suggest and draw the cable layout to efficiently connect various locations in Chennai division for connecting the digital devices.

      ii. Which block in Chennai division should host the server? Justify your answer.

      iii. Which fast and effective wired transmission medium should be used to connect the prime office at Bengaluru with the Chennai division ?

      iv. Which network device will be used to connect the digital devices within each location of Chennai division so that they may communicate with each other?

      v. A considerable amount of data loss is noticed between different locations of the Chennai division, which are connected in the network. Suggest a networking device that should be installed to refresh the data and reduce the data loss during transmission to and from different locations of Chennai division.

      Answer:

      i. TODO

      ii. Vajra, because it has the largest number of computers in Chennai division.

      iii. Optical Fiber

      iv. Hub / Switch

      v. Repeater

  2. (A) (i) Differentiate between 'w' and 'a' file modes in Python.

    (ii) Consider a binary file, items.dat, containing records stored in the given format:

    {item_id: [item_name, amount]}
    

    Write a function, Copy_new(), that copies all records whose amount is greater than 1000 from items.dat to new_items.dat.

    Answer: (i) 'w' will override any existing content in the file, while 'a' will append any new content to the end of the file, after the existing content.

    (ii)

    def Copy_new():
        import pickle
    
        old_dat = open("items.dat", "rb")
        new_dat = open("new_items.dat", "wb")
    
        old_items = pickle.load(old_dat)
        new_items = {}
    
        for item_id in old_items:
            if old_items[item_id][1] > 1000:
                new_items[item_id] = old_items[item_id]
    
        pickle.dump(new_items, new_dat)
    
        old_dat.close()
        new_dat.close()
    

    OR

(B) (i) What is the advantage of using `with` clause while opening a data file in Python? Also give syntax of `with` clause. (ii) A binary file, `EMP.DAT` has the following structure :
[Emp_Id, Name, Salary] 
where
`Emp_Id` : Employee id
`Name` : Employee Name
`Salary` : Employee Salary
Write a user defined function, `dis_Detail()`, that would read the contents of the file `EMP.DAT` and display the details of the employees whose salary is below `25000`. **Answer:** (i) When using the `with` clause while working with files, we don't have to manually call `.close()` to close a file, which we might forget to do sometimes. Syntax of `with` clause:
with open("filename") as f:
    # do something with f
    pass
(ii)
import pickle

f = open("EMP.DAT", "rb")

while True:
    try:
        record = pickle.load(f)
    except EOFError:
        break

    if record[2] < 25000:
        print(record[0], record[1], record[2])

f.close()
  1. (A) (i) Define cartesian product with respect to RDBMS. (ii) Sunil wants to write a program in Python to update the quantity to 20 of the records whose item code is 111 in the table named shop in MySQL database named Keeper.

    The table shop in MySQL contains the following attributes:

    • Item_code: Item code (IntegĂ©r)
    • Item_name: Name of item (String)
    • Qty: Quantity of item (Integer)
    • Price: Price of item (Integer)

    Consider the following to establish connectivity between Python and MySQL:

    • Username: admin
    • Password: Shopping
    • Host: localhost

    Answer: (i) Cartesian Product of two tables (say T1 and T2) is a new tables where each row of T1 is joined with each row of T2. The resulting table (join) has columns of both the tables.

    e.g.

    T1

    A B
    1 2
    3 4

    T2

    C D
    6 7
    8 9

    T1 x T2

    A B C D
    1 2 6 7
    1 2 8 9
    3 4 6 7
    3 4 8 9

    (ii)

    import mysql.connector
    
    cnx = mysql.connector.connect(
        host="localhost", user="admin", password="Shopping", database="Keeper"
    )
    
    cursor = cnx.cursor()
    
    query = "UPDATE shop SET Qty = 20 WHERE Item_code = 111"
    
    cursor.execute(query)
    
    cnx.commit()
    cnx.close()
    

    OR

(B) (i) Give any two features of SQL. (ii) Sumit wants to write a code in Python to display all the details of the passengers from the table flight in MySQL database, Travel. The table contains the following attributes:

F_code : Flight code (String)

F_name : Name of flight (String)

Source : Departure city of flight (String)

Destination : Destination city of flight (String)

Consider the following to establish connectivity between Python and MySQL:

  • Username : root
  • Password: airplane
  • Host: localhost

Answer: (i) Case-insensitive, English like readable, Powerful querying clauses etc. (any 2)

(ii)

import mysql.connector

cnx = mysql.connector.connect(
    host="localhost", user="root", password="airplane", database="Travel"
)

cursor = cnx.cursor()

query = "SELECT F_code, F_name, Source, Destination FROM flight"

cursor.execute(query)

for row in cursor:
    f_code, f_name, source, destination = row
    print("Flight Code", f_code)
    print("Flight Name", f_name)
    print("Source", source)
    print("Destination", destination)
    print("-----")

cnx.commit()
cnx.close()