Open In App

Qualcomm Interview Questions and Answers for Technical Profiles

Last Updated : 20 Oct, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

Qualcomm is an American multinational semiconductor and telecommunications equipment company that designs and markets wireless telecommunications products and services. It is one of the leading providers of mobile chips and a major player in the 5G market.

If you’re interviewing for a technical role at Qualcomm, it’s important to be prepared for a variety of questions on topics such as data structures, algorithms, operating systems, and mobile communications.

In this article, we’ve compiled a list of the most common Qualcomm technical interview questions and answers. We hope this helps you ace your interview and get your dream job at Qualcomm!

To know more about Qualcomm Recruitment Process please go through this attached  link

1. What is a pointer and types of pointers?
A pointer is defined as a derived data type that can store the address of other C variables or a memory location. We can access and manipulate the data stored in that memory location using pointers.

Syntax

The syntax of pointers is similar to the variable declaration in C, but we use the ( * ) dereferencing operator in the pointer declaration.

datatype * ptr;


  • ptr is the name of the pointer.
  • datatype is the type of data it is pointing to.

Types of Pointers

Pointers can be classified into many different types based on the parameters on which we are defining their types. Integer Pointers, Array Pointer, Structure Pointer, Function Pointers, Double Pointers, NULL Pointer, Void Pointer, Wild Pointers.Constant Pointers, Pointer to Constant

2. Difference between malloc() and calloc() in C
 

malloc()

calloc()

malloc() is a function that creates one block of memory of a fixed size. calloc() is a function that assigns a specified number of blocks of memory to a single variable.
malloc() only takes one argument calloc() takes two arguments.
malloc() is faster than calloc. calloc() is slower than malloc()
malloc() has high time efficiency calloc() has low time efficiency
malloc() is used to indicate memory allocation calloc() is used to indicate contiguous memory allocation

3. What is linked list and its types?

A linked list is a linear data structure, in which the elements are not stored at contiguous memory locations. The elements in a linked list are linked using pointers. In simple words, a linked list consists of nodes where each node contains a data field and a reference(link) to the next node in the list. 

Types Of Linked List:

  • Singly Linked List: It is the simplest type of linked list in which every node contains some data and a pointer to the next node of the same data type.
  • Doubly Linked List: A doubly linked list or a two-way linked list is a more complex type of linked list that contains a pointer to the next as well as the previous node in sequence. 
  • Circular Linked List: A circular linked list is that in which the last node contains the pointer to the first node of the list. 
  • Doubly Circular linked list: A Doubly Circular linked list or a circular two-way linked list is a more complex type of linked list that contains a pointer to the next as well as the previous node in the sequence.

4. Difference between Process and Thread

S.NO

Process

Thread

1. Process means any program is in execution. Thread means a segment of a process.
2. The process takes more time to terminate. The thread takes less time to terminate.
3. It takes more time for creation. It takes less time for creation.
4. It also takes more time for context switching. It takes less time for context switching.
5. The process is less efficient in terms of communication. Thread is more efficient in terms of communication.

5. What is process synchronization in operating system?
Process Synchronization is the coordination of execution of multiple processes in a multi-process system to ensure that they access shared resources in a controlled and predictable manner. It aims to resolve the problem of race conditions and other synchronization issues in a concurrent system.

6. What’s the difference between mutex and semaphore?

Mutex

Semaphore

A mutex is an object. A semaphore is an integer.
Mutex works upon the locking mechanism. Semaphore uses signaling mechanism

Operations on mutex: Lock and Unlock

Operation on semaphore: Wait and Signal

Mutex doesn’t have any subtypes.

Semaphore is of two types: Counting Semaphore and Binary Semaphore

A mutex can only be modified by the process that is requesting or releasing a resource. Semaphore work with two atomic operations (Wait, signal) which can modify it.

7. What is Binary Search Tree?
A Binary Search Tree (BST) is a special type of binary tree in which the left child of a node has a value less than the node’s value and the right child has a value greater than the node’s value. This property is called the BST property and it makes it possible to efficiently search, insert, and delete elements in the tree.

8. What is LRU Cache?
Cache replacement algorithms are efficiently designed to replace the cache when the space is full. The Least Recently Used (LRU) is one of those algorithms. As the name suggests when the cache memory is full, LRU picks the data that is least recently used and removes it in order to make space for the new data.

9. What is Memory management?
The term memory can be defined as a collection of data in a specific format. It is used to store instructions and process data. The memory comprises a large array or group of words or bytes, each with its own location. The primary purpose of a computer system is to execute programs. These programs, along with the information they access, should be in the main memory during execution. The CPU fetches instructions from memory according to the value of the program counter.

10. What is Deadlock?
A deadlock is a situation where a set of processes are blocked because each process is holding a resource and waiting for another resource acquired by some other process. 

11. What are 4 main features or pillars of oops? 
Object-oriented programming generally referred to as OOPS is the backbone of java as java is not a purely object oriented language but it is object oriented language. Java organizes a program around the various objects and well-defined interfaces. There are four pillars been here in OOPS which are listed below. These concepts aim to implement real-world entities in programs.

  • Abstraction: In Java, Data Abstraction is the property by virtue of which only the essential details are displayed to the user. The trivial or the non-essential units are not displayed to the user. 
  • Encapsulation:Encapsulation is a fundamental concept in object-oriented programming (OOP) that refers to the bundling of data and methods that operate on that data within a single unit, which is called a class in Java.
  • Inheritance:Java, Inheritance is an important pillar of OOP(Object-Oriented Programming). It is the mechanism in Java by which one class is allowed to inherit the features(fields and methods) of another class.
  • Polymorphism:The word polymorphism means having many forms. In simple words, we can define polymorphism as the ability of a message to be displayed in more than one form. 

12. What is the difference between heap and stack memory? 
Stack Allocation: The allocation happens on contiguous blocks of memory. We call it a stack memory allocation because the allocation happens in the function call stack. The size of memory to be allocated is known to the compiler and whenever a function is called, its variables get memory allocated on the stack

Heap Allocation: The memory is allocated during the execution of instructions written by programmers. Note that the name heap has nothing to do with the heap data structure. It is called a heap because it is a pile of memory space available to programmers to allocate and de-allocate.

13. What is Cache Memory in Computer Organization?
Cache Memory is a special very high-speed memory. The cache is a smaller and faster memory that stores copies of the data from frequently used main memory locations. There are various different independent caches in a CPU, which store instructions and data. The most important use of cache memory is that it is used to reduce the average time to access data from the main memory. 

14. What is LFU cache?
Least Frequently Used (LFU) is a caching algorithm in which the least frequently used cache block is removed whenever the cache is overflowed. In LFU we check the old page as well as the frequency of that page and if the frequency of the page is larger than the old page we cannot remove it and if all the old pages are having same frequency then take last i.e FIFO method for that and remove that page.

15. What’s the difference between Function overriding and function overloading ?
 

Function Overloading

Function Overriding

Function Overloading provides multiple definitions of the function by changing signature. Function Overriding is the redefinition of base class function in its derived class with same signature.
An example of compile time polymorphism. An example of run time polymorphism.
Function signatures should be different. Function signatures should be the same.
Overloaded functions are in same scope. Overridden functions are in different scopes.
Overloading is used when the same function has to behave differently depending upon parameters passed to them. Overriding is needed when derived class function has to do some different job than the base class function.

16. What’s the difference between internal and external fragmentation?
 

Internal fragmentation

External fragmentation

In internal fragmentation fixed-sized memory, blocks square measure appointed to process. In external fragmentation, variable-sized memory blocks square measure appointed to the method.
Internal fragmentation happens when the method or process is smaller than the memory. External fragmentation happens when the method or process is removed.
The solution of internal fragmentation is the best-fit block. The solution to external fragmentation is compaction and paging.
Internal fragmentation occurs when memory is divided into fixed-sized partitions. External fragmentation occurs when memory is divided into variable size partitions based on the size of processes.
The difference between memory allocated and required space or memory is called Internal fragmentation. The unused spaces formed between non-contiguous memory fragments are too small to serve a new process, which is called External fragmentation.

17. What is an API 
API is an abbreviation for Application Programming Interface which is a collection of communication protocols and subroutines used by various programs to communicate between them. A programmer can make use of various API tools to make their program easier and simpler. 

18. What is the difference between Hashing and Hash Tables?

Hashing

Hash Table

Hashing is the process of transforming any given key or a string of characters into another value. Hash Table is a container to store the key-value pairs.
Hashing is a built-in method. It can be defined by users also. Hash table, HashMap, HashSet in  Java and map, multimap, unordered_map, set etc. in C++ uses hashing to store data.
Hashing is used to generate a hashcode which is of type Integer. Based on our needs we can use any type of hash table.
Hashing uses the same process for every key to generate hashcodes. Hash Table generally works as a lookup table to check the keys we already came across and update or change the values being mapped with them or insert a new key in the table.

19. What are overlays in OS?
The idea behind overlays is to only load the necessary parts of a program into memory at a given time, freeing up memory for other tasks. The unused portions of the program are kept on disk or other storage, and are loaded into memory as needed. This allows programs to be larger than the available memory, but still run smoothly.

20. What is a firewall in computer network and how does it work?
A firewall is a network security device, either hardware or software-based, which monitors all incoming and outgoing traffic and based on a defined set of security rules it accepts, rejects or drops that specific traffic. 

  • Accept: allow the traffic 
  • Reject: block the traffic but reply with an “unreachable error” 
  • Drop: block the traffic with no reply A firewall establishes a barrier between secured internal networks and outside untrusted network, such as the Internet.

21. What Race Condition Vulnerability?
Race condition occurs when multiple threads read and write the same variable i.e. they have access to some shared data and they try to change it at the same time. In such a scenario threads are “racing” each other to access/change the data. This is a major security vulnerability.

22. ACID Properties
A transaction is a single logical unit of work that accesses and possibly modifies the contents of a database. Transactions access data using read and write operations. 
In order to maintain consistency in a database, before and after the transaction, certain properties are followed. These are called ACID properties. 

  • Atomicity
  • Consistency
  • Isolation
  • Durability

23. What’s the Difference between BFS and DFS?
 

Parameters BFS DFS
Stands for BFS stands for Breadth First Search. DFS stands for Depth First Search.
Data Structure BFS(Breadth First Search) uses Queue data structure for finding the shortest path. DFS(Depth First Search) uses Stack data structure.
Definition BFS is a traversal approach in which we first walk through all nodes on the same level before moving on to the next level.   DFS is also a traversal approach in which the traverse begins at the root node and proceeds through the nodes as far as possible until we reach the node with no unvisited nearby nodes.
Technique BFS can be used to find a single source shortest path in an unweighted graph because, in BFS, we reach a vertex with a minimum number of edges from a source vertex.  In DFS, we might traverse through more edges to reach a destination vertex from a source.
Conceptual Difference BFS builds the tree level by level. DFS builds the tree sub-tree by sub-tree.

24. Difference between Normalization and Denormalization?
 

Normalization

Denormalization

In normalization, Non-redundancy and consistency data are stored in set schema. In denormalization, data are combined to execute the query quickly.
In normalization, Data redundancy and inconsistency is reduced. In denormalization, redundancy is added for quick execution of queries.
Data integrity is maintained in normalization. Data integrity is not maintained in denormalization.
In normalization, redundancy is reduced or eliminated. In denormalization redundancy is added instead of reduction or elimination of redundancy.
Number of tables in normalization is increased. Denormalization, Number of tables in decreased.

25. What is Cache Memory in Computer Organization?
Cache Memory is a special very high-speed memory. The cache is a smaller and faster memory that stores copies of the data from frequently used main memory locations. There are various different independent caches in a CPU, which store instructions and data. The most important use of cache memory is that it is used to reduce the average time to access data from the main memory. 

26. Find first and last positions of an element in a sorted array
 Binary Search Solution 

  • For the first occurrence, we will first find the index of the number and then search again in the left subarray as long as we are finding the number 
  • For the last occurrence, we will first find the index of the number and then search again in the right subarray as long as we are finding the number

26. Find position of an element in a sorted array of infinite numbers

Approach: The problem can be solved based on the following observation: 

  • Since array is sorted we apply binary search but the length of array is infinite so that we take start = 0 and end = 1 .
  • After that check value of target is greater than the value at end index,if it is true then change newStart = end + 1  and newEnd = end +(end – start +1)*2 and apply binary search .
  • Otherwise , apply binary search in the old index values.

27. Pairwise Swap Nodes of a given Linked List

Start from the head node and traverse the list. While traversing swap data of each node with its next node’s data.

28. What’s the difference between TCP and UDP?
 

Basis        

Transmission Control Protocol (TCP)       

User Datagram Protocol (UDP)

Type of Service

TCP is a connection-oriented protocol. Connection 

orientation means that the communicating devices should establish a connection before transmitting data and should close the connection after transmitting the data.

UDP is the Datagram-oriented protocol. This is because 

there is no overhead for opening a connection, maintaining a connection, or terminating a connection. UDP is efficient for broadcast and multicast types of network transmission.

Reliability TCP is reliable as it guarantees the delivery of data to the destination router. The delivery of data to the destination cannot be guaranteed in UDP.
Error checking mechanism                                 

TCP provides extensive error-checking mechanisms. 

It is because it provides flow control and acknowledgment of data.

UDP has only the basic error-checking mechanism using checksums.
Acknowledgment An acknowledgment segment is present. No acknowledgment segment.

29. Write your own memcpy() and memmove()
The memcpy function is used to copy a block of data from a source address to a destination address. Below is its prototype.

void * memcpy(void * destination, const void * source, size_t num);

30. Left View of Binary Tree
Print Left View of a Binary Tree Using Recursion

Keep track of the level of a node by passing the level as a parameter to all recursive calls and also keep track of the maximum level. Whenever, we see a node whose level is more than maximum level so far, we print the node because this is the first node in its level 

Note: We traverse the left subtree before right subtree. 

31. Longest Palindrome in a String
Longest Palindromic Substring using Dynamic Programming:

The main idea behind the approach is that if we know the status (i.e., palindrome or not) of the substring ranging [i, j], we can find the status of the substring ranging [i-1, j+1] by only matching the character str[i-1] and str[j+1].

  • If the substring from i to j is not a palindrome, then the substring from i-1 to j+1 will also not be a palindrome. Otherwise, it will be a palindrome only if str[i-1] and str[j+1] are the same.

Base on this fact, we can create a 2D table (say table[][] which stores status of substring str[i . . . j] ), and check for substrings with length from 1 to N. For each length find all the substrings starting from each character i and find if it is a palindrom or not using the above idea. The longest length for which a palindrome formed will be the required asnwer.

32. Topological Sorting
Prerequisite: DFS

We can modify DFS to find the Topological Sorting of a graph. In DFS

  • We start from a vertex, we first print it, and then 
  • Recursively call DFS for its adjacent vertices. 

In topological sorting,

  • We use a temporary stack. 
  • We don’t print the vertex immediately, 
  • we first recursively call topological sorting for all its adjacent vertices, then push it to a stack. 
  • Finally, print the contents of the stack. 

33. Length of the longest substring without repeating characters
The idea is to check if a substring of a certain size “mid” is valid (A size mid is valid if there exists atleast one substring of size mid which contains all unique characters ), then all the size less than “mid” will also be valid. Similarly, if a substring of size “mid” is not valid(A size mid is not valid if there does not exists any substring of size mid which contains all unique characters ), then all the size larger than “mid” will also not be valid. This allows us to apply binary search effectively.

34. Check if a Binary Tree is BST or not
The idea is to for each node, check if max value in left subtree is smaller than the node and min value in right subtree greater than the node. 

35. Merge Sort
Merge sort is defined as a sorting algorithm that works by dividing an array into smaller subarrays, sorting each subarray, and then merging the sorted subarrays back together to form the final sorted array.

P.S: To check the Qualcomm  Experiences and other asked question go through the attached  link



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads