zoukankan      html  css  js  c++  java
  • 4.13编程练习

    1. 第一题:
      题目应该是直接输出,没有要求用户自己输入,不过我这里使用用户自己输入,并使用了两种读取行的函数get和getline。
    #include <iostream>
    using namespace std;
    
    int main() {
    
        char first_name[20];
        char last_name[20];
        char grade;
        int age;
        cout << "What is your first name?";
        cin.get(first_name, 20).get();
        cout << "What is your last name?";
        cin.getline(last_name, 20);
        cout << "what letter grade do you deserve?";
        cin >> grade;
        cout << "What is your age?";
        cin >> age;
        cout << "Name: " << last_name << ", " << first_name << endl;
        cout << "Grade: ";
        grade = grade + 1;
        cout.put(grade);
        cout << endl;
        cout << "Age: " << age << endl;
    
    
        return 0;
    }
    

    运行结果:

    What is your first name?Betty Sue
    What is your last name?Yewe
    what letter grade do you deserve?B
    What is your age?22
    Name: Yewe, Betty Sue
    Grade: C
    Age: 22
    
    1. 第二题
      重点考察string的I/O操作,使用getline输入和直接cout输出。
    #include <iostream>
    #include <string>
    using namespace std;
    
    int main() {
    
        string name;
        string dessert;
    
        cout << "Enter your name:
    ";
        getline(cin, name);
        cout << "Enter your favorite dessert:
    ";
        getline(cin, dessert);
        cout << "Enter your name: 
    ";
        cout << name << endl;
        cout << "Enter your favorite dessert:
    ";
        cout << dessert << endl;
        cout << "I have some delicious " << dessert << " for you, " << name << ".
    ";
    
    
        return 0;
    }
    

    运行结果:

    Enter your name:
    Dirk Hammernose
    Enter your favorite dessert:
    Radish Torte
    Enter your name:
    Dirk Hammernose
    Enter your favorite dessert:
    Radish Torte
    I have some delicious Radish Torte for you, Dirk Hammernose.
    
    1. 第三题
      考察strcat函数。
    #include <iostream>
    #include <cstring>
    using namespace std;
    
    int main() {
    
        char first_name[20];
        char last_name[20];
        cout << "Enter your first name:";
        cin >> first_name;
        cout << "Enter your last name:";
        cin >> last_name;
        strcat(last_name, ", ");
        strcat(last_name, first_name);
        cout << "Here's the information in a single string: " << last_name << endl;
    
        return 0;
    }
    

    运行结果:

    Enter your first name:Flip
    Enter your last name:Fleming
    Here's the information in a single string: Fleming, Flip
    
    1. 第四题
      第三题的换用string做。
    #include <iostream>
    #include <string>
    using namespace std;
    
    int main() {
    
        string first_name;
        string last_name;
        cout << "Enter your first name:";
        cin >> first_name;
        cout << "Enter your last name:";
        cin >> last_name;
        last_name = last_name + ", " + first_name;
        cout << "Here's the information in a single string: " << last_name << endl;
    
        return 0;
    }
    

    运行结果:

    Enter your first name:Flip
    Enter your last name:Fleming
    Here's the information in a single string: Fleming, Flip
    
    1. 第五题
      考察结构struct。
    #include <iostream>
    using namespace std;
    struct CandyBar
    {
        char project[20];
        float weight;
        int power;
    };
    
    int main() {
    
        CandyBar snack =
                {
                    "Mocha Munch",
                    2.3,
                    350
                };
        cout << snack.project << endl;
        cout << snack.weight << endl;
        cout << snack.power << endl;
    
        return 0;
    }
    

    运行结果:

    Mocha Munch
    2.3
    350
    
    1. 第六题
      考察结构数组,输出的时候使用for循环会更好,但按教材顺序来做,先不使用for循环。
    #include <iostream>
    using namespace std;
    struct CandyBar
    {
        char project[20];
        float weight;
        int power;
    };
    
    int main() {
    
        CandyBar snack[3] =
                {
                    {"Mocha Munch",2.3,350},
                    {"Bambi", 2.0, 330},
                    {"Godzilla", 2.1, 340}
                };
        cout << "First snack:
    ";
        cout << snack[0].project << endl;
        cout << snack[0].weight << endl;
        cout << snack[0].power << endl;
        cout << "Second snack:
    ";
        cout << snack[1].project << endl;
        cout << snack[1].weight << endl;
        cout << snack[1].power << endl;
        cout << "Third snack:
    ";
        cout << snack[2].project << endl;
        cout << snack[2].weight << endl;
        cout << snack[2].power << endl;
    
        return 0;
    }
    

    运行结构:

    First snack:
    Mocha Munch
    2.3
    350
    Second snack:
    Bambi
    2
    330
    Third snack:
    Godzilla
    2.1
    340
    
    1. 第七题
      如果结构中使用char定义字符串char name[20],那么在输入的时候需要将getline(cin, snack.name)改成cin.getline(snack.name, 20)或者cin.get(snack.name, 20).get()。
    #include <iostream>
    #include <string>
    using namespace std;
    struct CandyBar
    {
        string name;
        float length;
        float weight;
    };
    
    int main() {
    
        CandyBar snack;
        cout << "Enter name:";
        getline(cin, snack.name);
        cout << "Enter length:";
        cin >> snack.length;
        cout << "Enter weight:";
        cin >> snack.weight;
        cout << snack.name << endl;
        cout << snack.length << endl;
        cout << snack.weight << endl;
    
        return 0;
    }
    

    运行结果:

    Enter name:William Wingate
    Enter length:2.0
    Enter weight:1.0
    William Wingate
    2
    1
    
    1. 第八题
      这里就将string换成char,算是解答第七题另外一种方法,并使用了new来创建结构变量,记得最后使用delete释放内存。
    #include <iostream>
    using namespace std;
    struct CandyBar
    {
        char name[20];
        float length;
        float weight;
    };
    
    int main() {
    
        CandyBar* snack = new CandyBar;
        cout << "Enter name:";
        cin.get(snack->name, 20).get();
        cout << "Enter length:";
        cin >> snack->length;
        cout << "Enter weight:";
        cin >> snack->weight;
        cout << snack->name << endl;
        cout << snack->length << endl;
        cout << snack->weight << endl;
        delete snack;
    
        return 0;
    }
    

    运行结构:

    Enter name:William Wingate
    Enter length:2.0
    Enter weight:1.0
    William Wingate
    2
    1
    
    1. 第九题
      使用了数组表示法和指针表示法输出。
    #include <iostream>
    using namespace std;
    struct CandyBar
    {
        char project[20];
        float weight;
        int power;
    };
    
    int main() {
    
        CandyBar* snack = new CandyBar[3]
                {
                        {"Mocha Munch",2.3,350},
                        {"Bambi", 2.0, 330},
                        {"Godzilla", 2.1, 340}
                };
        cout << "First snack:
    ";
        cout << snack[0].project << endl;
        cout << snack[0].weight << endl;
        cout << snack[0].power << endl;
        cout << "Second snack:
    ";
        cout << (snack+1)->project << endl;
        cout << (snack+1)->weight << endl;
        cout << (snack+1)->power << endl;
        cout << "Third snack:
    ";
        cout << snack[2].project << endl;
        cout << snack[2].weight << endl;
        cout << snack[2].power << endl;
        delete [] snack;
    
        return 0;
    }
    

    运行结果:

    First snack:
    Mocha Munch
    2.3
    350
    Second snack:
    Bambi
    2
    330
    Third snack:
    Godzilla
    2.1
    340
    
    1. 第十题
      array<float, 3> grade{}因为我编译器的原因最后加上了{},书上介绍的并没有加{},如果你要运行,视你自己的编译器为准。
    #include <iostream>
    #include <array>
    using namespace std;
    
    
    int main() {
    
        array<float, 3> grade{};
        float avg;
        cout << "Enter first grade:";
        cin >> grade[1];
        cout << "Enter second grade:";
        cin >> grade[2];
        cout << "Enter third grade:";
        cin >> grade[3];
        avg = (grade[1] + grade[2] + grade[3]) / 3;
        cout << avg << endl;
    
        return 0;
    }
    

    运行结果:

    Enter first grade:2.4
    Enter second grade:2.5
    Enter third grade:2.6
    2.5
    
  • 相关阅读:
    2021年通达信指标公式大全,值得收藏!
    网络兼职?威客?为什么我会觉得网络兼职,威客会是人生中应该具备的一种能力!
    SeMusic 音乐网站源代码,PHP音乐系统,人人都是站长人人都可副业创业!
    JavaScript 查看图片,带缩放放大效果
    JS (javascript) 计算循环当前时间,javascript 时间钟表
    关键词被冷藏?关键词没排名?任务网站长们该何去何从?
    关键词任务网被K,对于任务网该何去何从?我认为任务网存活只有一条出路!
    C3属性的轮播图(持续更新)
    自己写的文字轮播(简陋版)
    带锁的3D切割轮播图
  • 原文地址:https://www.cnblogs.com/ycycn/p/14456840.html
Copyright © 2011-2022 走看看