C++ primer plus 课后练习题

第五章:循环和关系表达式

        一、复习题

        1. 入口条件循环在循环开始前判断条件,出口条件循环在循环结束后判断条件;for、while循环属于入口条件循环,do-while循环属于出口条件循环。

        2. 0 1 2 3 4

        3. 0 3 6 9

             12

        4. 6

             8

        5. k = 8           

        6. for(int i = 1; i <= 64; i *= 2){

                cout << i << " ";

             }

        7. 用花括号将多条语句一起括起来

        8. 有效,它将把(024是8进制下的24,转换为10进制为20)20赋值给变量x;无效

        9. 第一条语句会跳过空格和换行符和制表符,其他两种格式将读取这些字符

        二、编程练习

        1.

#include <iostream>

using namespace std;

int main() {
    cout << "Enter the first num: " << endl;
    int num1;
    cin >> num1;
    cout << "Enter the second num: " << endl;
    int num2;
    cin >> num2;
    int sum = 0;
    for (; num1 <= num2; num1++) {
        sum += num1;
    }
    cout << "the sum is " << sum << endl;
    return 0;
}

         2.

#include <iostream>
#include <array>

using namespace std;

int main() {
    array<long double, 100> fac;
    fac[0] = 1;
    fac[1] = 1;
    for (int i = 2; i < 100; i++) {
        fac[i] = i * fac[i - 1];
    }
    cout << "100! = " << fac[99];
    return 0;
}

        3.

#include <iostream>

using namespace std;

int main() {
    int sum = 0;
    int num = 0;
    do {
        cout << "Enter the num plz: " << endl;
        cin >> num;
        cout << "the sum now is: " << (sum += num) << endl;
    } while (num != 0);
    return 0;
}

        4.

#include <iostream>

using namespace std;
const double profit_Daphne = 0.1;
const double profit_Cleo = 0.05;

int main() {
    double money_Daphne = 100;
    double money_Cleo = 100;
    int year = 0;
    while (money_Cleo <= money_Daphne) {
        money_Daphne += 100 * profit_Daphne;
        money_Cleo += money_Cleo * profit_Cleo;
        year++;
    }
    cout << "year: " << year << endl;
    cout << "Daphne's money: " << money_Daphne << endl;
    cout << "Cleo's money: " << money_Cleo << endl;
}

        5.

#include <iostream>

using namespace std;

int main() {
    int sum = 0;
    int num[12];
    const char *months[12] = {"1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"};
    for (int i = 0; i < 12; i++) {
        cout << months[i] << endl;
        cin >> num[i];
        sum += num[i];
    }
    cout << "sum: " << sum << endl;
    return 0;
}

        6.

#include <iostream>

using namespace std;

int main() {
    int total_sum = 0;
    int num[3][12];
    const char *months[12] = {"1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"};
    for (int year = 0; year < 3; year++) {
        int sum = 0;
        for (int i = 0; i < 12; i++) {
            cout << months[i] << " : ";
            cin >> num[year][i];
            sum += num[year][i];
        }
        cout << "year " << (year + 1) << " : " << sum << endl;
        total_sum += sum;
    }
    cout << "total sum: " << total_sum << endl;
    return 0;
}

        7.

#include <iostream>
#include <string>

using namespace std;
struct Car {
    string brand;
    int year;
};

int main() {
    cout << "How many cars do you wish to catalog? ";
    int num;
    cin >> num;
    Car *cars = new Car[num];
    for (int i = 0; i < num; i++) {
        Car car;
        cout << "Car #" << (i + 1) << " : " << endl;
        cin.get();
        cout << "Plz enter the make: ";
        getline(cin, car.brand);
        cout << "Plz enter the year made: ";
        cin >> car.year;
        cars[i] = car;
    }
    for (int i = 0; i < num; i++) {
        cout << cars[i].year << " " << cars[i].brand << endl;
    }
    delete[] cars;
    return 0;
}

        8.

#include <iostream>

using namespace std;

int main() {
    char words[10];
    int count = 0;
    cout << "Enter words (to stop, type the word done) : " << endl;
    do {
        cin >> words;
        count++;
    } while (strcmp(words, "done"));
    cout << (count - 1) << endl;
    return 0;
}

        9. 

#include <iostream>
#include <string>

using namespace std;

int main() {
    string words;
    int count = 0;
    cout << "Enter words (to stop, type the word done) : " << endl;
    do {
        cin >> words;
        count++;
    } while (words != "done");
    cout << (count - 1) << endl;
    return 0;
}

        10.

#include <iostream>

using namespace std;

int main() {
    cout << "plz enter a num: " << endl;
    int size;
    cin >> size;
    for (int i = 1; i <= size; i++) {
        for (int j = size - i; j > 0; j--) {
            cout << ".";
        }
        for (int k = 1; k <= i; k++) {
            cout << "*";
        }
        cout << endl;
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值