《C++ primer plus 英文版 第六版》Chapter 3

來源:互聯網
上載者:User

標籤:enter   mos   speed   eterm   provides   main   tom   lock   section   

Chapter Review
  1. Having more than one integer type lets you choose the type that is best suited to a particular need. For example, you could use short to conserve space or long to guarantee storage capacity or to find that a particular type speed up a particular calculation.
  2. short ribs = 80; // or short int ribs = 80;
    unsigned int q = 42110; // or unsigned q = 42110;
    unsigned long ants = 3000000000; // or long long ants = 3000000000;
    Note: Don‘t count on int being large enough to hold 3,000,000,000. Also if your system supports universal list-initialization, you could use it:
    short rbis = {80};
    unsigned int q {42110};
    long long ants {3000000000};
  3. C++ provides no automatic safeguards to keep you from exceeding integer limits; you can use the climits header file to determine what the limits are.
  4. The constant 33L is type long, whereas the constant 33 is type int.
  5. The two statements are not really equivalent, although they have the same effect on some system. Most importantly, the first statement assigns the letter A to grade only on a system using the ASCII code, while the second statement also works for other codes. Second, 65 is a type int constant, whereas A is a type char constant.
  6. Here are four ways:
    char c = 88;
    cout << c << endl; // char type prints as character
    cout.put(char(88)); // put() prints char as character
    cout << char(88) << endl; // new-style type cast value to char
    cout << (char) 88 << endl; // old-style type cast value to char
  7. The answer depends on how large the two types are. If long is 4 bytes, there is no loss. Thats because the largest long value would be about 2 billion, which is 10 digits. Because double provides at least 13 significant figures, no rounding would be needed. The long long type, on the other hand, can reach 19 digits, which exceeds the 13 significant figures guaranteed for double.
  8. a. 8 * 9 + 2 is 72 + 2 is 74
    b. 6 * 3 / 4 is 18 / 4 is 4
    c. 3 / 4 * 6 is 0 * 6 is 0
    d. 6.0 * 3 / 4 is 18.0 / 4 is 4.5
    e. 15 % 4 is 3
  9. Either of the following would work for the first task:
    int pos = (int) x1 + (int) x2;
    int pos = int (x1) + int (x2);
    To add them as type double and then convert, you could do either of the following:
    int pos = (int) (x1 + x2);
    int pos = int (x1 + x2);
  10. a. intb. floatc. chard. char32_te. double
Programming Exercises1
#include <iostream>const int Factor{12};int main(){    using namespace std;        cout << "Input your height(inches): ";    int height, feet, inches;    cin >> height;    feet = height / Factor;    inches = height % Factor;    cout << "Your height is equal to " << feet << " feet," << inches << " inches" << endl;        return 0;}
2
#include <iostream>int main(){    using namespace std;        const double Inches_per_foot = 12;    const double Inches_per_meter{0.0254};    const double Kilo_per_pound{2.2};        cout << "Enter your height in feet and inches(example: 14 17): ";    double feet;    double inches;    cin >> feet;    cin >> inches;    cout << "Enter your weight in pounds: ";    double weight;    cin >> weight;    double i = (feet * Inches_per_foot + inches) * Inches_per_meter;    cout << "Your BMI is: " << weight * Kilo_per_pound / (i * i) << endl;        return 0;}
3
#include <iostream>int main(){    using namespace std;        const double Mid{60.0};        cout << "Enter a latitude in degrees, minutes, and seconds:" << endl;    cout << "First, enter the degrees: ";    int degrees;    cin >> degrees;    cout << "Next, enter the minutes of arc: ";    int minutes;    cin >> minutes;    cout << "Finally, enter the seconds of arc: ";    int seconds;    cin >> seconds;    cout << degrees << " degrees, " << minutes << " minutes, " << seconds << " seconds = "         << double (degrees) + minutes / Mid + seconds / (Mid * Mid) << endl;        return 0;}
4
#include <iostream>int main(){    using namespace std;        const int H_per_day{24};    const int M_per_hour = {60};    const int S_per_seconds = 60;        cout << "Enter the number of seconds: ";    long long seconds;    cin >> seconds;    long long d = seconds / (H_per_day * M_per_hour * S_per_seconds);    long long h = seconds % (H_per_day * M_per_hour * S_per_seconds) / (M_per_hour * S_per_seconds);    long long m = seconds % (H_per_day * M_per_hour * S_per_seconds) % (M_per_hour * S_per_seconds) / S_per_seconds;    long long s = seconds % (H_per_day * M_per_hour * S_per_seconds) % (M_per_hour * S_per_seconds) % S_per_seconds;    cout << seconds << " seconds = "         << d << " days, "         << h << " hours, "         << m << " minutes, "         << s << " seconds \n";        return 0;}
5
#include <iostream>int main(){    using namespace std;        cout << "Enter the world's population: ";    long long p_of_world;    cin >> p_of_world;    cout << "Enter the population of the China: ";    long long p_of_nation;    cin >> p_of_nation;    cout << "The population of the China is " << double (p_of_nation) / double (p_of_world) * 100.0         << "% of the world population. \n";        return 0;}
6
#include <iostream>int main(){    using namespace std;     cout << "Enter you have driven in miles: ";    int mile;    cin >> mile;    cout << "Enter you have costed of gasoline: ";    int gas;    cin >> gas;    cout << double (mile) / double (gas) << " miles per gallon your car has gotten. \n";        return 0;}
7
#include <iostream>int main(){    using namespace std;     const double Miles_per_kilo{6.214e-1};    const double Liters_per_gallon = 3.875;        cout << "Enter European style (liters per 100 kilometers): ";    double eu;    cin >> eu;    int temp = int ((1.0 / eu) * (Miles_per_kilo * 100.0) * Liters_per_gallon);    cout << eu << " l/100 km = " << temp << " mpg \n";    return 0;}

《C++ primer plus 英文版 第六版》Chapter 3

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.