1
h03
CS16 W18
Name:
(as it would appear on official course roster)
Umail address: @umail.ucsb.edu section
Optional: name you wish to be called
if different from name above.
Optional: name of "homework buddy"
(leaving this blank signifies "I worked alone"

h03: Chapter 2: Data types and expressions, Simple flow control

ready? assigned due points
true Tue 01/23 09:00AM Tue 01/30 08:00PM

You may collaborate on this homework with AT MOST one person, an optional "homework buddy".

MAY ONLY BE TURNED IN IN THE LECTURE/LAB LISTED ABOVE AS THE DUE DATE,
OR IF APPLICABLE, SUBMITTED ON GRADESCOPE. There is NO MAKEUP for missed assignments;
in place of that, we drop the three lowest scores (if you have zeros, those are the three lowest scores.)


Please:

  • No Staples.
  • No Paperclips.
  • No folded down corners.

Read Chapter 2, sections 2.3 - 2.5 (If you don’t have a copy of the textbook yet, there is one on reserve at the library under “COMP000-STAFF - Permanent Reserve”).

PLEASE WRITE ALL YOUR ANSWERS IN THIS SHEET. HOMEWORKS SUBMITTED IN A FORMAT DIFFERENT FROM THE PROVIDED TEMPLATE WILL RECEIVE 0 POINTS. PLEASE MARK YOUR HOMEWORK CLEARLY, REGARDLESS OF IF YOU WRITE IT OUT IN INK OR PENCIL!

    1. (4 pts) Explain via an example what a "type mismatch" is. Also explain how compilers handle C++ statements that have a type mismatch?
    2. (4 pts) What does the keyword 'auto' do for the programmer in the C++11 declaration:

    auto x = 2.73;

    3. (4 pts) Write an if-else statement that outputs the string "Grade is B" if the variable `score` is between 80 and 90 (both limits included). Otherwise the if-else statement should output "Grade is not B" ?
    4. (4 pts) The program below intends to do the following: Repeatedly prompt the user to input an integer number. When the user no longer wants to continue entering numbers, output the sum of all the positive numbers entered by the user followed by the sum of all the negative numbers entered by the user. However, the given program has errors. Mark all logical and syntax errors in the program and provide corrections in the space provided to the right. Add missing statements if any.
    #include <iostream>
    
    int main(){
    
        int a , sumPositive, sumNegative;
    
        string promptContinue ="\nTo continue enter Y/y\n";
    
        string promptNum = "\nEnter a number: ";
    
        char response;
    
        while (response = 'y'||`Y') {
    
           cout << promptNum;
    
           cin >> a;
    
           if(a)
              sumPositive+=a;
    
           else
              sumNegative+=a;
    
           cout<< promptContinue;
    
    
    
        }
    
        cout<< "Sum of all the positive numbers is: "<< sumPositive<<endl;
    
        cout<< "Sum of all the negative numbers is: "<< sumNegative<<endl;
    
        return 0;
    }
    
    5. (4 pts) What is the output of the following C++ statements? EXPLAIN WHY.
    int x=20, y=5;
    
    bool v, w;
    
    v = (x != y);
    
    w = ((x/=y) == 4);
    
    cout << x << " " <<y << " "<< v << " "<< w << endl;