CHAPTER 1 24.5 out of 30
Question 1
What will happen when you attempt to compile and run the following code?
#include <vector>
#include <iostream>
int main ()
{
std::vector<int> v1; // LINE I
v1.push_back(10); // LINE II
std::cout<<v1.front()<<":"<<v1.back()<<std::endl; // LINE III
return 0;
}
code compiles and executes successfully
Question 2
Which statement is true about the code below?
#include <vector>
#include <iostream>
using namespace std;
int main ()
{
vector<int> v1(4, 3);
v1.push_back(4);
for(vector<int>::iterator i = v1.rbegin(); i != v1.rend(); ++i)
{
cout << *i << " ";
}
cout<< endl;
return 0;
}
program will not compile
Question 3
Which sentences are 100% true about the code below (multiple choice) when control reaches return.
Choose all that apply.
,#include <vector>
#include <iostream>
using namespace std;
int main ()
{
vector<int> v1(10, -1);
vector<int> v2;
v2.reserve(10);
for(unsigned i=0; i < 10; i++)
{
v2.push_back(i);
}
return 0;
}
size of vector v2 less than 20
both vectors v1 and v2 have the same capacity
value returned by size() is the same for vectors v1 and v2
Question 4
Which sentence is 100% true about the code below when control reaches return?
#include <vector>
#include <iostream>
#include <stdexcept>
using namespace std;
int main ()
{
int tab[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
vector<int> v1(tab, tab+10);
vector<int> v2(v1.size(), 0);
try
{
for(unsigned i=0; i<=v1.size(); ++i)
{
int tmp = v1[i]; // LINE I
v1[i] = v1.at(v1.size()-i); // LINE II
v1.at(i) = tmp; // LINE III
cout<<v1[i] << " ";
}
}
catch(...)
{
, cout<<"Exception!"<<endl;
}
return 0;
}
program will run and print output: Exception!
Question 5
What will happen when you attempt to compile and run the following code?
#include <deque>
#include <iostream>
using namespace std;
template<typename T> ostream & print(T & start, T & end)
{
for(; start != end; ++start)
{
cout<< *start<< " ";
}
return cout;
}
int main()
{
int tab[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
deque<int> d1(tab, tab+10);
deque<int> d2;
deque<int>::iterator it;
for(it = d1.begin(); it != d1.end(); ++it)
{
d2.push_back(d1[d1.end()-it-1]); //LINE I
}
print(d2.rbegin(), d2.rend()) << endl; //LINE II
return 0;
}
code will not compile due to error in line LINE II /mali
the result of program execution is unpredictable or there might be runtime exception /MALI
Question 6
What will happen when you attempt to compile and run the following code?
, #include <deque>
#include <iostream>
using namespace std;
template<typename T> ostream & print(T const & start, T const & end)
{
for (T i = start; i != end; ++i)
{
cout << *i << " ";
}
return cout;
}
int main()
{
int tab[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
deque<int> d1(tab, tab+10);
deque<int>::const_iterator it = d1.begin()+3;
d1.erase(it, it + 1);
print(d1.begin(), d1.end());
d1.clear();
cout<<d1.size()<<endl;
return 0;
}
program will run successfully and display: 1 2 3 5 6 7 8 9 10 0
Question 7
Which methods from the std::deque class can be used to check if there are elements in
the container? Choose all that apply.
MALI
1. Empty,SIZE, CLEAR(0.5POINTS)
2. THERE IS NO SUCH METHOD
3. EMPTY SIZE CLEAR IS EMPTY
Question 8
What will happen when you attempt to compile and run the following code?
#include <deque>
#include <iostream>
using namespace std;