Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

In C Language (not C++) 1) When parameters are passed between the calling code a

ID: 3680954 • Letter: I

Question

In C Language (not C++)

1) When parameters are passed between the calling code and the called function, formal and actual parameters are matched by:
1) their data types
2) their relative positions in the formal and actual parameter lists
3) their names
4) whether they are inputs to or outputs from the function
5) none of these


2) A parameter as a simple type for example int or double, should be passed by value if that parameter's data flow is:
1) one-way, into the function.
2) one-way, out of the function.
3) two-way, into and out of the function.
4) 1 and 2 above
5) 2 and 3 above
6) none of these


3) Given the function prototype and declarations:
int Fix(int , float&);
int someInt = 10;
float someFloat = 4.3;
which of the following function calls would be syntactically correct?
1) Fix(someInt, 6.85);
2) someFloat = Fix(24, 6.85);
3) someFloat = 0.3 * Fix(6, someFloat);
4) Fix(someInt + 5, someFloat);
5) all of the above
6) 1 and 3 above
7) 2 and 4 above
8) none of the above


4) A function SomeFunc has two formal parameters, alpha and beta, of type int. The data flow for alpha is twoway, into and out of the function. The data flow for beta is two-way, into and out of the function. What is the most
appropriate function prototype for SomeFunc?
1) void SomeFunc( int alpha, int beta );
2) void SomeFunc( int& alpha, int beta );
3) void SomeFunc( int alpha, int& beta );
4) void SomeFunc( int& alpha, int& beta );
5) 1 and 2 above
6) 3 and 4 above
7) none of these


5) If an ampersand (&) is not attached to the data type of a formal parameter, then the corresponding actual parameter
can be:
1) a constant
2) a variable name
3) an arbitrary expression
4) 1 and 2 above
5) 1, 2, and 3 above
6) none of the above

6) Given the function definition


void Twist( int& a, int& b )
{


int r;
r = a + 2;
a = a * 3;
b = r + a;


}


what is the output of the following code fragment that invokes Twist?
int r = 1;
int s = 2;
int t = 3;
Twist(t, s);
cout << r << ' ' << s << ' ' << t << endl;
1) 1 2 3
2) 1 2 9
3) 1 14 3
4) 1 10 3
5) 5 14 3
6) 1 14 9
7) none of the above

7) Which of the following statements about value parameters is false?
1) The actual parameter is never modified by execution of the called function.
2) The formal parameter is never modified by execution of the called function.
3) The actual parameter must be a variable.
4) The actual parameter can be a literal constant value.
5) 2 and 3 above
6) none of these

8) Which of the following statements about reference parameters is false?
1) The actual parameter can be modified by execution of the called function.
2) The formal parameter can be modified by execution of the called function.
3) The actual parameter cannot be a variable.
4) The actual parameter cannot be a literal constant value.
5) 1 and 2 above
6) none of these

9) Which of the following statements about constant reference parameters is false?
1) The actual parameter can be modified by execution of the called function.
2) The formal parameter can be modified by execution of the called function.
3) The actual parameter cannot be a variable.
4) The actual parameter cannot be a literal constant value.
5) 1 and 2 above
6) none of these

10) Consider the function definition

void Demo( int& intVal, float floatVal )

{


intVal = intVal * 2;
floatVal = intVal + 3.5;


}


What values are printed by the following code fragment?
int myInt = 20;
float myFloat = 4.8;
Demo(myInt, myFloat);
cout << "myInt = " << myInt << " and myFloat = " << myFloat << endl;
1) myInt = 20 and myFloat = 43.5
2) myInt = 40 and myFloat = 4.8
3) myInt = 20 and myFloat = 4.8
4) myInt = 40 and myFloat = 43.5
5) none of the above

11) For the function definition
void Func( int& gamma ) {
gamma = 245;
}
which of the following comments best describes the direction of data flow for gamma?
1) one-way, into the function
2) one-way, out of the function
3) two-way, into and out of the function
4) none of the above

12) This question demonstrates the hazard of choosing inappropriate parameter-passing mechanisms. Given the function definition

int Power(int& base, int& exp )
{
                int product = 1;
                while (exp >= 1)

                {
                                product = product * base;
                                exp--;
                }
                return product;
}
what is the output of the following code?
int n = 2;
int pow = 3;
int result = Power(n, pow);
cout << n << " to the power " << pow << " is " << result;
1) 2 to the power 3 is 8
2) 2 to the power 0 is 8
3) 0 to the power 0 is 0
4) 2 to the power 3 is 1
5) none of the above

13) For the function definition
void Func( int gamma )
{
                cout << 3 * gamma;
}
which of the following comments best describes the direction of data flow for gamma?
1) one-way, into the function
2) one-way, out of the function
3) two-way, into and out of the function
4) none of the above

14) For the function definition
void Func( int& gamma )
{
                gamma = 3 * gamma;
}
which of the following comments describes the direction of data flow for gamma?
1) one-way, into the function
2) one-way, out of the function
3) two-way, into and out of the function
4) none of the above

15) If a variable alpha is accessible only within function F, then alpha is either
1) a global variable or a formal parameter of F.
2) a local variable within F or a formal parameter of F.
3) a global variable or an actual parameter to F.
4) a local variable within F or an actual parameter to F.
5) none of the above

16) Choose the correct statement:
1) A function prototype is global if it is placed outside function definitions in the source file.
2) A function prototype is local if it is placed in a function definition.
3) The scope of a global prototype begins at the point it is placed and extends until the end of the source file.
4) The scope of a local prototype begins at the point it is placed and extends until the end of the function in which it
appears.
5) All of the above are correct
6) None of the above are correct

17) Suppose the first few lines of a function are as follows:
void Calc( float beta )
{
alpha = 3.8 * beta;
Assuming the code compiles, then the variable alpha is
1) a local variable
2) a global variable
3) a parameter
4) none of the above

18) What is the output of the following code fragment?
int alpha = 3;
int beta = 20;
if (beta > 10) {
int alpha = 5;
beta = beta + alpha;
cout << alpha << ' ' << beta << ' ';
}
cout << alpha << ' ' << beta;
1) 3 20
2) 3 25 3 25
3) 5 25 5 25
4) 5 25 3 25
5) 5 25 3 20
6) none of the above

Explanation / Answer

1) When parameters are passed between the calling code and the called function, formal and actual parameters are matched by:

ans:(2) their relative positions in the formal and actual parameter lists

2) A parameter as a simple type for example int or double, should be passed by value if that parameter's data flow is:

ans:(1) one-way, into the function.

3) Given the function prototype and declarations:
int Fix(int , float&);
int someInt = 10;
float someFloat = 4.3;
which of the following function calls would be syntactically correct?
ans:(8) none of the above

4) A function SomeFunc has two formal parameters, alpha and beta, of type int. The data flow for alpha is twoway, into and out of the function. The data flow for beta is two-way, into and out of the function. What is the most
appropriate function prototype for SomeFunc?

ans: (4) void SomeFunc( int& alpha, int& beta );

5) If an ampersand (&) is not attached to the data type of a formal parameter, then the corresponding actual parameter
can be:

ans: (2) a variable name

6) Given the function definition


void Twist( int& a, int& b )
{


int r;
r = a + 2;
a = a * 3;
b = r + a;


}


what is the output of the following code fragment that invokes Twist?
int r = 1;
int s = 2;
int t = 3;
Twist(t, s);
cout << r << ' ' << s << ' ' << t << endl;

ans: (1) 1 2 3 (actual answer, but in c cout doent work) therefore the ans is

(6) none of the above

7) Which of the following statements about value parameters is false?

ans: (5) 2 and 3 above

8) Which of the following statements about reference parameters is false?

ans: (3) The actual parameter cannot be a variable.

9) Which of the following statements about constant reference parameters is false?
ans:(6) none of these(in c constant reference doesnt work)

10) Consider the function definition

void Demo( int& intVal, float floatVal )

{


intVal = intVal * 2;
floatVal = intVal + 3.5;


}


What values are printed by the following code fragment?
int myInt = 20;
float myFloat = 4.8;
Demo(myInt, myFloat);

ans: (5) none of the above

11) For the function definition
void Func( int& gamma ) {
gamma = 245;
}

ans:(3) two-way, into and out of the function

12) This question demonstrates the hazard of choosing inappropriate parameter-passing mechanisms. Given the function definition

int Power(int& base, int& exp )
{
                int product = 1;
                while (exp >= 1)

                {
                                product = product * base;
                                exp--;
                }
                return product;
}
what is the output of the following code?
int n = 2;
int pow = 3;
int result = Power(n, pow);
cout << n << " to the power " << pow << " is " << result;

ans:(5) none of the above

13) For the function definition
void Func( int gamma )
{
                cout << 3 * gamma;
}
which of the following comments best describes the direction of data flow for gamma?
ans:(1) one-way, into the function

14) For the function definition
void Func( int& gamma )
{
                gamma = 3 * gamma;
}
which of the following comments describes the direction of data flow for gamma?

ans:(3) two-way, into and out of the function

15) If a variable alpha is accessible only within function F, then alpha is either

ans:(4) a local variable within F or an actual parameter to F.

16) Choose the correct statement:

ans:(5)all the above are correct

17) Suppose the first few lines of a function are as follows:
void Calc( float beta )
{
alpha = 3.8 * beta;

ans: (2) a global variable

18) What is the output of the following code fragment?
int alpha = 3;
int beta = 20;
if (beta > 10) {
int alpha = 5;
beta = beta + alpha;
cout << alpha << ' ' << beta << ' ';
}
cout << alpha << ' ' << beta;

ans:(6)none of the above