《C++ primer plus》第四单元课后编程答案参考

本文提供了《C++ Primer Plus》第四单元课后编程题目的解答示例,涵盖了字符串操作、结构体定义与使用、数组初始化及动态内存分配等核心知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

《C++ primer plus》第四单元的课后编程
详细答案可参考C++ primer plus课后编程答案参考
1.cpp

#include<iostream>
using namespace std;
int main()
{
    char firstname[20],lastname[20];
    char Gread;
    cout<<"What is your first name?";
    
    cin.getline(firstname,20);//getline允许拥有空格字符,遇到回车键停止
    cout<<"What is your last name?";
    cin.getline(lastname,20);
    cout<<"What letters do you deserve?";
    cin>>Gread;
    cout<<"Name:"<<lastname<<","<<firstname<<endl;
    cout<<"Gread:"<<char(Gread+1);//Gread为字符型加一之后,转为int型,需要强制转化为char型
    return 0 ;
}

2.cpp

#include<iostream>
#include<string>
using namespace std;
int main()
{
    string name,dessert;
    cout<<"Enter your name:"<<endl;
    getline(cin,name);
    cout<<"Enter your feacorite dessert:"<<endl;
    getline(cin,dessert);
    cout<<"I have some delicious "<<dessert
        <<" for you,"<<name<<".\n";  
    return 0;
}

3.cpp

#include<iostream>
#include<string>
using namespace std;
int main()
{
    char firstname[20];
    string lastname;
    cout<<"Enter your first name:";
    cin.getline(firstname,20);
    cout<<"Enter your last name:";
    getline(cin,lastname);
    cout<<firstname<<","<<lastname;
    return 0;
}

5.cpp

#include<iostream>
#include<cstring>
using namespace std;
struct Candy
    {
        char name[20];
        double weight;
        int kaluli;
    };
int main()
{
    Candy snack={"Mocha Munch",2.3,350};
    /*Candy snack;
    snack ={"Mocha Munch",2.3,350};
    这种方法的赋值存在问题,但具体为啥不清楚,按照上面的步骤进行初始化*/
    cout<<snack.name<<endl
        <<snack.weight<<endl
        <<snack.kaluli<<endl;
    return 0 ;
}

6.cpp

#include<iostream>
#include<cstring>
using namespace std;
struct Candy
    {
        char name[20];
        double weight;
        int kaluli;
    };
int main()
{
    Candy snack[3]=
    {  
        {"Mocha Munch",2.3,350},
        {"makabaka",5.6,456},
        {"yigubigu",6.2,789}
    };
    cout<<snack[0].name<<endl
        <<snack[1].name<<endl
        <<snack[2].name<<endl;
    return 0 ;
}

7.cpp

#include<iostream>
#include<string.h>
using namespace std;
struct pizze
{
    char name[20];
    double ridicular;
    double weight;
};

int main()
{
    pizze pisa1;
    cout<<"Enter the pizza's name:"<<endl;
    cin.getline(pisa1.name,20);
    cout<<"Enter the ridicular of the pizza"<<endl;
    cin>>pisa1.ridicular;
    cout<<"Enter the pizza's weight"<<endl;
    cin>>pisa1.weight;
    cout<<pisa1.name<<endl
        <<pisa1.ridicular<<endl
        <<pisa1.weight<<endl;
    return 0;
}

8.cpp

#include <iostream>
#include <string.h>
using namespace std;
struct pizze
{
    char name[20];
    double ridicular;
    double weight;
};

int main()
{
    pizze *pisa1 = new pizze;//使用new 来声明新的变量时需要用到指针
    cout << "Enter the pizza's name:" << endl;
    cin.getline(pisa1->name, 20);
    cout << "Enter the ridicular of the pizza" << endl;
    cin >> pisa1->ridicular;
    cout << "Enter the pizza's weight" << endl;
    cin >> pisa1->weight;
    cout << pisa1->name << endl
         << pisa1->ridicular << endl
         << pisa1->weight << endl;
    return 0;
}

9.cpp

#include<iostream>
#include<string>
using namespace std;
struct Candy
    {
        string name;
        double weight;
        int kaluli;
    };
int main()
{
    Candy *snack = new Candy[3];//用new声明三个数组
    snack[0].name = "makabaka"; //new声明三个数组之后,需要单个的进行初始化
    snack[1].name = "yigubigu";
    snack[2].name = "huluhulu";
    cout<<snack[0].name<<endl
        <<snack[1].name<<endl
        <<snack[2].name<<endl;
    return 0 ;
}

10.cpp

#include<iostream>
using namespace std;
int main()
{
    cout.setf(ios_base::fixed,ios_base::floatfield);
    //加上这条代码后输出的数字将不会省略掉后面的零,而是以float的形式出现
    double grade[4];
    cout<<"Enter your four times grades:"<<endl;
    cin>>grade[0]>>grade[1]>>grade[2]>>grade[3];
    cout<<grade[0]<<endl
        <<grade[1]<<endl
        <<grade[2]<<endl
        <<grade[3]<<endl;
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值