What is the primary cause of memory leaks in a C program?

  • Excessive memory fragmentation.
  • Failure to free dynamically allocated memory.
  • Incorrect use of the malloc function.
  • Insufficient memory allocation.
The primary cause of memory leaks in a C program is the failure to free dynamically allocated memory using functions like free(). When you allocate memory but don't deallocate it properly, it leads to memory leaks.

What is the scope of a global variable in a C program?

  • Accessible throughout the entire program
  • Limited to the file where it's declared
  • Local to the function it's defined in
  • Only within the main() function
In C, global variables have a scope that spans the entire program, meaning they can be accessed from any part of the code.

When a string is declared as a character array, the string must be terminated with a ________.

  • comma
  • null character
  • semicolon
  • space
In C, a string is a sequence of characters terminated by a null character (''). This null character signifies the end of the string.

What is the result of comparing two strings using the '==' operator in C?

  • It compares the ASCII values of the first characters
  • It compares the content of the strings
  • It compares the length of the strings
  • It compares the memory addresses of the strings
In C, the '==' operator compares the memory addresses of the strings, not their content.

In C, a ________ is used to store a sequence of characters.

  • array
  • function
  • string
  • variable
In C, a 'string' is used to store a sequence of characters. A string is an array of characters, typically represented as an array of 'char' data type.

What is a potential drawback of using bit fields in a cross-platform application?

  • Inefficient memory usage
  • Lack of platform portability
  • Compiler-specific behavior
  • Slower execution
The correct option is c) Compiler-specific behavior. Using bit fields in a cross-platform application can lead to issues due to compiler-specific behavior. Different compilers may interpret bit fields differently, causing inconsistencies across platforms.

Which function would you use to compare two strings lexicographically in C?

  • strcat()
  • strcmp()
  • strcpy()
  • strlen()
You would use the strcmp() function to compare two strings lexicographically in C. It returns 0 if the strings are equal, a positive value if the first string is greater, and a negative value if the second string is greater.

Using the ________ function, the file pointer can be moved to the end of a file.

  • fseek()
  • rewind()
  • ftell()
  • fsetpos()
The correct option is fseek(). This function is used to set the file position indicator to a specific position within the file. When the SEEK_END constant is provided as the reference point, it moves the file pointer to the end of the file, allowing operations like appending data.

In a graphics rendering engine, you need to apply different transformations (e.g., rotate, scale, translate) to objects. How can function pointers be used to simplify the implementation?

  • Define a function pointer for each transformation type
  • Use if-else statements to select transformations
  • Use global variables to store transformation functions
  • Implement each transformation directly in the code
Option A is the correct answer. By defining a function pointer for each transformation type, you can easily switch between different transformations without altering the engine's core logic. Options B, C, and D are less flexible and efficient. Option A simplifies the code.

The ______ function in C can be used to change the position of the file pointer in a stream.

  • fmove()
  • fseek()
  • fileptr()
  • fposition()
The correct option is b) fseek(). This function is used to set the file position indicator for the specified stream, allowing you to move the file pointer to a specific location.