What term is used to describe the process of calling a function within itself?
- Casting
- Looping
- Recursion
- Structuring
The process of calling a function within itself is known as "recursion." It allows for solving problems that can be broken down into smaller, similar subproblems.
The strlen function returns the length of a string, excluding the ________.
- null terminator
- first character
- whitespace characters
- special characters
The correct answer is the null terminator. The strlen function in C/C++ returns the length of a string by counting characters until it encounters the null terminator (' '). It excludes the null terminator from the count. The other options are not what strlen excludes.
The C function ________ is used to compare two strings lexicographically.
- strcmp
- strncmp
- strcompare
- strcasecmp
The correct answer is strcmp. This function compares two strings character by character and returns an integer value representing their lexicographical order. strncmp is used for comparing a specific number of characters, and the other options are not valid C functions.
You are debugging a C program and notice that the program crashes after running for a few minutes. Upon investigation, you find that a recursive function is being called multiple times. What could be the most likely cause of the crash?
- Hardware Failure
- Infinite Loop
- Memory Leak
- Stack Overflow
The most likely cause of the crash in this scenario is a stack overflow. When a recursive function is called multiple times without a proper base case or termination condition, it can fill up the call stack, causing a stack overflow and program crash.
What is the significance of using pointers in function arguments?
- It allows passing arguments by reference
- It enforces strong typing
- It reduces code readability
- It simplifies function declarations
Using pointers in function arguments allows passing arguments by reference, meaning the function can modify the original data, not just a copy. This is valuable when you want a function to modify variables from the caller's scope.
You are debugging a C program and notice that a variable intended to store large numbers is not holding the values correctly. What might be the issue with the data type used?
- The issue might be with using an int data type.
- The issue might be with using a float data type.
- The issue might be with using a double data type.
- The issue might be with using a short data type.
The correct option is 3. When dealing with large numbers, it's more appropriate to use a double data type because it provides greater precision compared to int and float, which may result in loss of precision for large numbers. short data type is typically used for smaller integers.
The function ________ is used to write data to a binary file.
- binary_write()
- fread()
- fwrite()
- write()
The correct function to write data to a binary file in C is fwrite(). It is designed to write a specified number of elements to a binary file, making it an essential function for handling binary data.
The function fopen in C opens a file and returns a pointer of type ________.
- FILE*
- char*
- double
- int
In C, the fopen function is used to open a file and returns a pointer of type FILE*, which represents the file stream.
The size of a structure in memory is determined by the ________ of its members.
- maximum
- minimum
- sum
- total
The size of a structure in memory is determined by the total size of its members. This includes the size of all individual data members within the structure.
Using the ________ keyword before a function suggests to the compiler that the function should be expanded at the point where it is called.
- Dynamic
- Inline
- Static
- Virtual
The "inline" keyword suggests to the compiler that the function should be expanded at the call site for performance optimization.