recursion Answer- The process in which a function calls itself either directly or
indirectly through another function
base case Answer- tells when the recursion has to stop. For example, let us take
factorial function. The base case here is when n=0 or when n=1; and after every
recursive call to fact() function n value reduced by 1 and finally reaches base case.
recursive step Answer- the line that calls the recursive function
recursive function Answer- A function that calls itself
function call stack Answer- (often referred to just as the call stack or the stack) is
responsible for maintaining the local variables and parameters during function
execution.
what is a bit Answer- Bit is derived from binary digit - A binary digit or bit has two
possible values; 0 or 1
nibble Answer- A sequence of 4-bits
One example of a nibble of data is 11112 This is the number 15 in decimal
byte Answer- A sequence of 8-bits
One example of a byte of data is 0100 00012 This is the number 65 in decimal It's
also the ASCII value for 'A'
How can we determine if a number is even or odd without using the mod (%)
operator? Answer- If the least significant bit (lsb) is 1 the number is odd, if its 0 the
number is even
How do we multiply and divide by powers of 2 without using the multiplication (*) and
division (/) operators? Answer- Recall multiplication and division is expensive and
resource intensive
o Shift all bits in a number to the left by 1 to multiply by 2
o Shift all bits in a number to the right by 1 to divide by 2
bitwise negation Answer- ~
0 -> 1 or 1 -> 0, where -> represents "becomes"
bitwise left shift Answer- <<
means shift each bit in the number to the left by two positions and rotate in zeros -
The result is 11002 if only a nibble of memory is available; otherwise it's 1011002
bitwise right shift Answer- >>
, means shift each bit in the number to the right by one position and rotate in zeros -
The result is 01012; note the lsb is lost in the result
bitwise and Answer- &
10102 & 00112; means AND each bit in each corresponding position - The result is
00102
bitwise or Answer- |
10102 | 00112; means OR each bit in each corresponding position - The result is
10112
bitwise xor Answer- ^
10102 ^ 00112; means XOR each bit in each corresponding position - The result is
10012
what is a command line argument Answer-
what is dynamic memory Answer- Memory allocated at runtime from a memory area
called the heap or memory store
Apply malloc ( ) to allocate memory Answer- The name "malloc" stands for memory
allocation. The malloc() function reserves a block of memory of the specified number
of bytes. And, it returns a pointer of void which can be casted into pointers of any
form.
Apply free ( ) to de-allocate memory Answer- The function free() is used to de-
allocate the memory allocated by the functions malloc ( ), calloc ( ), etc, and return it
to heap so that it can be used for other purposes. The argument of the function free (
) is the pointer to the memory which is to be freed.
Apply sizeof ( ) Answer- Recall this returns the number of bytes allocated for a type
or variable
The sizeof operator is the most common operator in C. It is a compile-time unary
operator and used to compute the size of its operand. It returns the size of a
variable. It can be applied to any data type, float type, pointer type variables.
What is an algorithm Answer- An algorithm is a procedure or step-by-step
instruction for solving a problem. They form the foundation of writing a program.
what is a variable Answer- Memory is allocated when a variable is declared
int var = 0;
what is a datatype Answer- the data storage format that a variable can store a data
to perform a specific operation. Data types are used to define a variable before to
use in a program. Size of variable, constant and array are determined by data types.
Integer (int) Answer- It is a data type that can store numeric data of type integer.
Integers are whole numbers, having no fractional component,