Parameter passing mechanisms (call by value, reference)(MCQs)

What is call by value? a) Passing the address of an argument to a function b) Passing a copy of the value of the argument to a function c) Passing a reference to the argument to a function d) Modifying the original variable directly Answer: b) Passing a copy of the value of the argument to a function What is call by reference? a) Passing the address of an argument to a function b) Passing a copy of the value to a function c) Creating a duplicate variable for the function d) Using global variables instead of parameters Answer: a) Passing the address of an argument to a function In call by value, what happens when the function modifies the parameter? a) The original argument is modified b) A copy of the original argument is modified c) The function returns an error d) Both the copy and original argument are modified Answer: b) A copy of the original argument is modified In call by reference, what happens when the function modifies the parameter? a) The original argument is modified b) A copy of the original argument is modified c) The function returns an error d) Only local variables are affected Answer: a) The original argument is modified Which parameter passing mechanism is more memory-efficient for large data structures? a) Call by value b) Call by reference c) Call by value-return d) Call by copy Answer: b) Call by reference What is the primary disadvantage of call by value? a) The function cannot modify the original argument b) The function can modify the original argument c) It uses too much memory when passing small data types d) It passes the address of the variable Answer: a) The function cannot modify the original argument Which of the following is true for call by reference? a) It is safer than call by value b) It allows the function to modify the original argument c) It copies the value of the argument d) It prevents modification of the original argument Answer: b) It allows the function to modify the original argument When using call by reference, the argument is passed as: a) A constant value b) A reference to the memory location c) A copy of the value d) An immutable object Answer: b) A reference to the memory location Which of the following statements is true regarding call by value? a) The changes made to the parameter inside the function affect the original argument b) The original argument remains unaffected by changes in the function c) Call by value passes the memory address of the argument d) Call by value consumes less memory than call by reference Answer: b) The original argument remains unaffected by changes in the function In C++, which operator is used for passing arguments by reference? a) * b) & c) % d) $ Answer: b) & What is the default parameter passing mechanism in C++? a) Call by reference b) Call by value c) Call by copy d) Call by name Answer: b) Call by value Which of the following is an advantage of call by reference? a) Prevents accidental modification of variables b) Saves memory by avoiding copies of large data structures c) Avoids the use of pointers d) Does not affect the original data Answer: b) Saves memory by avoiding copies of large data structures What happens if you modify the parameter in a function using call by value? a) The original value is changed b) The modified value is retained after the function call c) The changes are only visible within the function d) A reference to the original value is returned Answer: c) The changes are only visible within the function In call by reference, which of the following does the function access? a) The actual value of the argument b) A copy of the argument c) The memory location of the argument d) A pointer to a temporary copy of the argument Answer: c) The memory location of the argument Which parameter passing mechanism provides the highest level of security for protecting the original data? a) Call by reference b) Call by value c) Call by copy d) Call by address Answer: b) Call by value What is a potential risk of using call by reference? a) Memory is duplicated b) The function cannot modify the original argument c) The function can inadvertently modify the original argument d) It uses too much memory Answer: c) The function can inadvertently modify the original argument In call by reference, what happens if a function alters the value of a parameter? a) The original argument remains unchanged b) A temporary copy is altered c) The original argument is modified d) The program throws an exception Answer: c) The original argument is modified Which parameter passing method is most suitable for passing primitive data types (e.g., int, char)? a) Call by reference b) Call by value c) Call by reference and call by value d) Call by pointer Answer: b) Call by value In C++, what is the result of passing an argument by reference using the & operator? a) A new copy of the argument is created b) The argument is passed as a reference to its memory location c) The argument is converted into a pointer d) The argument is cast to a different data type Answer: b) The argument is passed as a reference to its memory location Which of the following types of functions benefit the most from call by reference? a) Functions that require large data structures b) Functions that do not modify the input c) Functions that only perform mathematical calculations d) Functions that process constant values Answer: a) Functions that require large data structures Which of the following can lead to unintentional side effects when using call by reference? a) Modifying the value of a parameter inside the function b) Passing constants as arguments c) Using local variables d) Using global variables Answer: a) Modifying the value of a parameter inside the function When a pointer is passed to a function in C++, it is an example of: a) Call by reference b) Call by value c) Call by copy d) Call by constant Answer: a) Call by reference Which of the following statements is true for call by value? a) It passes the reference of the argument b) It makes the function parameter an alias for the original argument c) The function operates on a copy of the argument d) It directly modifies the original variable Answer: c) The function operates on a copy of the argument Which of the following ensures that the original argument is unchanged after a function call? a) Call by reference b) Call by value c) Call by address d) Call by constant reference Answer: b) Call by value In C++, which keyword can be used to prevent a function from modifying a reference parameter? a) const b) final c) static d) inline Answer: a) const Which parameter passing method is best suited for large objects or arrays? a) Call by value b) Call by reference c) Call by copy d) Call by return Answer: b) Call by reference What is the behavior of an argument passed by value if it is an object? a) A reference to the object is passed b) The object itself is passed c) A copy of the object is passed d) The object cannot be passed by value Answer: c) A copy of the object is passed In C++, call by reference can be implemented using which of the following? a) Pointers b) References c) Both pointers and references d) Copy constructors Answer: c) Both pointers and references Which of the following prevents a function from modifying the original object passed by reference? a) Using the const keyword with the reference b) Passing the object by value c) Using global variables d) Using static variables Answer: a) Using the const keyword with the reference Which of the following is NOT a parameter passing method? a) Call by value b) Call by reference c) Call by content d) Call by name Answer: c) Call by content What is the impact of passing large objects by value? a) It saves memory b) It is computationally efficient c) It incurs a performance overhead due to copying d) It prevents side effects Answer: c) It incurs a performance overhead due to copying What happens if you pass an array by value in C++? a) A reference to the array is passed b) A copy of the entire array is passed c) The array cannot be passed by value d) Only the first element is passed Answer: c) The array cannot be passed by value When should you use call by reference in C++? a) When you want to avoid modifying the original data b) When you need to modify the original argument c) When working with constants d) When passing small primitive types Answer: b) When you need to modify the original argument What is a key advantage of call by reference in function calls? a) It avoids modifying the original variable b) It reduces memory usage for large data types c) It creates a copy of the variable d) It prevents the function from modifying the argument Answer: b) It reduces memory usage for large data types How are reference parameters different from pointer parameters in C++? a) References are dereferenced using * b) Pointers directly access the memory location c) References are syntactically simpler to use than pointers d) Pointers cannot be used for call by reference Answer: c) References are syntactically simpler to use than pointers Which of the following ensures efficient memory usage when passing large structures to a function? a) Call by value b) Call by reference c) Call by constant d) Call by return Answer: b) Call by reference What does a const reference prevent? a) The function from changing the reference value b) The reference from pointing to a different object c) The function from changing the actual argument value d) Passing by reference Answer: c) The function from changing the actual argument value Which parameter passing method is typically used to modify objects or large data types in C++? a) Call by copy b) Call by value c) Call by reference d) Call by constant Answer: c) Call by reference Which method of parameter passing should be used when the function must modify the passed data? a) Call by value b) Call by reference c) Call by constant d) Call by content Answer: b) Call by reference Which of the following is used to ensure that a function can access and modify the original argument passed? a) Call by value b) Call by pointer or call by reference c) Call by constant d) Call by immutable Answer: b) Call by pointer or call by reference Which of the following can lead to accidental modifications of variables in other functions? a) Call by value b) Call by reference c) Call by constant d) Call by address Answer: b) Call by reference What happens when a global variable is passed by reference to a function? a) The function creates a local copy of the global variable b) The function modifies the global variable directly c) The global variable remains unchanged d) A new copy is allocated in the heap Answer: b) The function modifies the global variable directly What is the most significant difference between call by reference and call by pointer? a) Call by reference is more secure b) Call by pointer requires explicit dereferencing c) Call by reference requires memory allocation d) Call by pointer modifies the actual data while call by reference does not Answer: b) Call by pointer requires explicit dereferencing Which of the following functions cannot be executed with call by reference? a) Function to modify an integer b) Function to swap two numbers c) Function to concatenate strings d) Function that modifies a constant variable Answer: d) Function that modifies a constant variable In C++, a reference is similar to a: a) Constant pointer b) Array c) Function pointer d) Global variable Answer: a) Constant pointer Which of the following statements is true about call by reference using a pointer in C++? a) It requires explicit dereferencing to access the value b) The function operates on a copy of the pointer c) The original value cannot be modified d) It prevents accidental modifications to the pointer Answer: a) It requires explicit dereferencing to access the value What is one potential issue when using call by pointer instead of call by reference? a) Call by pointer is less efficient b) The pointer can accidentally be reassigned to another memory location c) The pointer cannot be modified d) It always leads to segmentation faults Answer: b) The pointer can accidentally be reassigned to another memory location Which keyword is used in C++ to define a function parameter that cannot be modified? a) static b) const c) volatile d) register Answer: b) const What happens if you pass a reference to a function and the reference is not initialized? a) The program crashes b) The reference is assigned a default value c) It results in undefined behavior d) A compiler error occurs Answer: d) A compiler error occurs When is call by reference more advantageous than call by value? a) When passing small data types like integers b) When passing large data structures like arrays or objects c) When you do not want to modify the argument d) When performance is not a concern Answer: b) When passing large data structures like arrays or objects
All Copyrights Reserved 2025 Reserved by T4Tutorials