3.13. Multiple Choice Exercises¶
Answer the following Multiple Choice questions to assess what you have learned in this chapter.
3.0
-
Its correct to think that your GPA will be rounded down, but what else happens when you convert from
int
todouble
? 3
-
Converting to an
int
always rounds down to the nearest integer, so I do not recommend using type conversions to build your resume… especially if you’re close to4.0
. 4.0
-
Converting to an int will round your GPA, but not in the direction that you were hoping for… what else happens when you convert from
int
todouble
? 4
-
Converting to an int will round yor GPA, but not in the direction that you were hoping for.
Error!
-
No errors here! Type conversions are perfectly legal in C++!
Q-1: You want to spice up your resume before the career fair, so you decide to update your GPA using the program below. What is the GPA that you will have on display for future employers?
#include <iostream>
using namespace std;
int main() {
double GPA = 3.52;
int updatedGPA = int(GPA);
cout << "GPA: " << updatedGPA;
}
3.14159265358979323846
-
If
x
were a double, C++ would automatically round the value of pi to 15 decimal places. 3.142
-
If
x
were a double, C++ would automatically round the value of pi to 15 decimal places. 3.0
-
Automatic type conversion will round the value of pi down to the nearest integer, but what else happens when we convert a
double
to anint
? 3
-
The value of x should be 3, since automatic type conversion will round the value of pi down to the nearest integer. Are you sure this program compiles?
Error!
-
Whenever we use math functions, we must include the
<cmath>
header file.
Q-2: What is the value of x after the program executes?
#include <iostream>
using namespace std;
int main() {
int x = acos(-1);
}
a
-
C++ performs automatic type conversion to round 1.5 down to the nearest integer.
b
-
Since
a = 1
, we know thatb = 2.5
, which is a non-zero decimal. c
-
c
is adouble
and has a non-zero decimal. d
-
C++ performs integer division to round
1/5
down to the nearest integer. The value will be stored as0
, not0.2
. e
-
c
squared may have a non-zero decimal, but automatic type conversion will round it down to the nearest integer before storing the value ine
. f
-
int(c)
roundsc
down to the nearest integer before storing the value inf
.
Q-3: Multiple Response Select all variables that have a non-zero value after the decimal place. (3.1 has a non-zero value, while 3.0 does not)
#include <iostream>
using namespace std;
int main() {
int a = 1.5;
double b = a + 1.5;
double c = 2.4;
double d = 1/5;
int e = c * c;
double f = int(c);
}
printHelloWorld () {
-
This function header is missing a type.
string palindrome (word) {
-
The function’s parameter is missing a type.
int mult (int a, int b) {
-
Correct! The function header has a type, empty parentheses, and a squiggly bracket.
char shiftThree (char letter)
-
This function header is missing a squiggly bracket
{
. void giveCompliment () {
-
Correct! The function header has a type, empty parentheses, and a squiggly bracket.
string friend (string name) {
-
friend
is a reserved keyword in C++.
Q-4: Multiple Response Which of the following would work as a function header (first line of a function).
"You are awesome!"
-
The
giveCompliment
function is not called inmain
. "You suck!"
-
The
giveInsult
function doesn’tcout
anything. Nothing is printed.
-
insult
data type is not defined. Error!
-
Correct!
insult
data type is not defined.
Q-5: What is printed when the following code runs? Are there any errors?
#include <iostream>
using namespace std;
void giveCompliment () {
cout << "You are awesome!";
}
void giveInsult () {
insult = "You suck!";
}
int main () {
giveInsult ();
}
"Monica is best friends with Rachel"
-
Correct! Although the function definition has
a << " is best friends with " << b
, we call the function with variableb
as argumenta
and variablea
as argumentb
. "Rachel is best friends with Monica"
-
You seem to be confusing your arguments and parameters!
a is best friends with b
-
The function
couts
the values of the variables, not their names! b is best friends with a
-
The function
couts
the values of the variables, not their names! Error!
-
There are no errors with this program!
Q-6: Rachel and Monica are best friends. They write a function
called bestFriends
so that they announce this fact to the
rest of their friends. What is printed when they run the code
below? Are there any errors?
#include <iostream>
using namespace std;
void bestFriends (string a, string b) {
cout << a << " is best friends with " << b;
}
int main () {
string a = "Rachel";
string b = "Monica";
bestFriends(b, a);
}
hello, Hannah!!!
-
Correct! The string “Hannah” is assigned to the variable
louise
, then the value oflouise
is assigned to the variableanna
. Whengoodbye (anna)
runs,anna
has the value “Hannah”. hello, anna!!!
-
The function
couts
the value of the variableanna
not the variable name! hello, Anna!!!
-
Is
"Anna"
still the value ofanna
? hello, Louise!
-
The
goodbye
function adds extra exclamation points. hello, Louise!!!
-
We assigned the value of
louise
toanna
. Is"Louise"
the value oflouise
? Error!
-
There are no errors with this program!
Q-7: What is printed when the following code runs? Are there any errors?
#include <iostream>
using namespace std;
void greeting (string name) {
cout << "hello, " << name << "!";
}
void goodbye (string name) {
greeting (name);
cout << "!!";
}
int main () {
string hannah = "Hannah";
string anna = "Anna";
string louise = hannah;
hannah = anna;
anna = louise;
goodbye (anna);
}
orderFood(a, c);
-
Correct!
a
is a string andc
is an int. orderFood(b, d);
-
Correct! Automatic type conversion will convert d to an
int
. orderFood(e, c);
-
e
has a character value, and this function takes a string. orderfood(a, d);
-
Correct! Automatic type conversion will convert d to an
int
. orderFood(c, a);
-
You have to input your arguments in the correct order.
Q-8: Multiple Response Which of the following are legal function
calls of orderFood
?
#include <iostream>
using namespace std;
void orderFood (string food, int quantity) {
cout << "I'll have " << quantity << " " << food;
}
int main () {
string a = "wings";
string b = "sliders";
int c = 3;
double d = 8.64;
char e = 'p';
}
a
-
'a'
is no longer the value ofa
, and the function would print it more than once. Hint: think about the type ofa
. f
-
'f'
is the value of a, but the function would print it more than once. Hint: think about the type ofa
. aa
-
'a'
is no longer the value ofa
. Hint: think about the type ofa
. ff
-
Hint: think about the type of
a
. Error!
-
printWord
takes a string, not a character, as an argument.
Q-9: What is printed when the following code runs? Are there any errors?
#include <iostream>
using namespace std;
void printWord (string w) {
cout << w << w;
}
int main () {
char a = 'a' + 5;
printWord (a);
}
1 parameter, 3 local variables
-
Remember, the parameters are declared in the function definition, and the local variables are declared inside of the function.
2 parameters, 4 local variables
-
You can declare multiple variables at once! Also, remember that local variables are declared inside of the function.
2 parameters, 1 local variables
-
You can declare multiple variables at once!
3 parameters, 1 local variable
-
a
,b
, andc
are parameters declared in the function definition.d
is a local variable declared inside of the function. 3 parameters, 4 local variables
-
Remember that local variables are declared inside of the function.
Q-10: How many local variables and parameters does mult
have?
void mult (int a, int b, int c) {
int d = 7;
cout << a * b * c * d;
}
6 calls
-
Take into account that
weekend
only callsparty
if a conditional is true! 2 calls
-
weekend
can also call the functionparty
4 calls
-
Correct! two calls by
main
and two calls byweekend
3 calls
-
One invocation of
weekend
callsparty
twice.
Q-11: How many calls are made to party
during the entire program?
#include <iostream>
using namespace std;
void party(int day_of_month, string address) {
cout << "party on "<<day_of_month<<" at "
<< address << endl;
}
void weekend(bool available) {
if(available==true) {
party(21,"Big house"); party(22,"CCTC");
} else {
cout << "sorry I have to study for ENGR101!" << endl;
}
}
int main() {
bool im_free=false;
party(25, "North campus");
weekend(im_free);
im_free=true;
party(25, "Central campus");
weekend(im_free);
return 0;
}