How does the compiler handle the default value of a function argument if it's not provided in a function call?

  • It assigns a random value
  • It assigns a value of 0
  • It assigns the default value specified in the function declaration
  • It raises a compilation error
It assigns the default value specified in the function declaration. When a function argument with a default value is not provided in a function call, the compiler assigns the value specified in the function's declaration. This behavior ensures that functions can be called with missing arguments.

Robert notices that in a certain switch-case structure in his program, two different cases seem to execute sequentially without a break. What could be the reason behind this behavior?

  • Compiler error
  • Improper case order
  • Incorrect switch statement
  • Missing break statements
The reason behind two different cases executing sequentially without a break is most likely missing break statements within the cases. In a switch-case structure, if a break statement is omitted, execution will "fall through" to the next case. Robert should ensure that each case has the appropriate break statement to exit the switch statement after execution.

When you need to store an integer without any sign (only positive), you should use ______ data types.

  • long
  • short
  • signed
  • unsigned
In C++, the unsigned data type is used to store integers without any sign, which means they can only represent positive values or zero. This is useful when you need to work with quantities that should not have negative values, like the number of items in a collection.

How can you ensure that a certain block of code is executed regardless of whether the condition in the if statement is true or false?

  • By placing the code outside of any if statement
  • By using the break keyword
  • By using the finally block in a try-catch-finally structure
  • By using the return statement
To ensure that a certain block of code is executed regardless of whether the condition in the if statement is true or false, you can use the finally block in a try-catch-finally structure. The code in the finally block runs after the try block, whether an exception is thrown or not, making it useful for cleanup or resource release tasks.

For a loop to be infinite in C++, the condition in a while loop must always evaluate to ______.

  • 0
  • 1
  • FALSE
  • TRUE
To create an infinite loop in C++, the condition in a while loop must always evaluate to true. This means that as long as the condition is true, the loop will continue executing indefinitely. Infinite loops can be useful in some scenarios but should be used with caution to avoid program hang or crashes.

Alice has a class that includes a function to compute the area. She wants this function to compute the area for both circles (given radius) and rectangles (given length and breadth). Which concept can help her achieve this without renaming the functions?

  • Function overloading
  • Function overriding
  • Operator overloading
  • Polymorphism
Alice can achieve this using the concept of polymorphism, specifically method overloading. By overloading the computeArea function with different parameter types (radius for circles and length and breadth for rectangles), she can have a single function name that behaves differently based on the input, without renaming the functions.

What is the correct way to declare a function that takes two integers as parameters and returns their sum?

  • int sum(int a, int b) { return a + b; }
  • int sum(int a; int b) { return a + b; }
  • sum(int a, int b) { return a + b; }
  • void sum(int a, int b) { cout << a + b; }
Functions in C++ are declared by specifying their return type, followed by the function name and parameters enclosed in parentheses. The correct way to declare a function that takes two integers and returns their sum is by declaring the return type as int and specifying the parameters with commas in between. So, the correct declaration is int sum(int a, int b).

How does the __forceinline keyword (in some C++ compilers) differ from the inline keyword?

  • It disables inlining
  • It enforces inlining
  • It has no effect
  • It suggests inlining
The '__forceinline' keyword is a directive to the compiler that strongly enforces inlining of the function, even if the compiler would not typically inline it based on its heuristics. This keyword provides a more forceful hint to the compiler compared to the 'inline' keyword, ensuring that the function is inlined whenever possible.

Consider a for loop in C++ with an empty condition (i.e., for( ; ; )). What will be the behavior of this loop?

  • It will not compile
  • It will run indefinitely
  • It will run once and exit
  • It will throw an exception
A for loop with an empty condition (for( ; ; )) in C/C++ will run indefinitely until it is explicitly exited using a break statement or until an exit condition is encountered within the loop. It's often used for creating infinite loops, but caution is required to avoid infinite execution.

Which loop can potentially become an infinite loop if no increment/decrement operation is performed on the loop control variable?

  • do-while loop
  • for loop
  • foreach loop
  • while loop
A while loop can potentially become an infinite loop if no increment or decrement operation is performed on the loop control variable within the loop body. This happens when the loop condition always evaluates to true.