C++ Primer Plus 第六版第8章习题答案

最近再学习c++服务器端编程,需要用到c++这门语言,就顺带把c++ Primerplus 后面的习题做一下,如果有不对的请指正;


第一题:

// 20171114_One.cpp : 定义控制台应用程序的入口点。
//
//第一题 扯淡题
#include "stdafx.h"
#include
using namespace std;
void     PrintArray(const char * p1,int i=0);//建立一个原型 第二个参数默认为0(其他数也可以,不影响)
int _tmain(int argc, _TCHAR* argv[])
{//下面函数调用涉及到重载
    char a[]="强";
    PrintArray(a);
    cout<123);
    cout<123);
    cout<123);
    cout<123);
    cout<cin.get();
    system("pause");
    return 0;
}
void     PrintArray(const char *p1,int i)
{
    static int sum=0;//全局变量  用于累加函数执行次数
    ++sum;
    if(!i)
    {
        cout<//如果输入的参数 int为空  则执行此步骤
    }
    else
    {
        for(int k=0;kcout<//全局变量来for() 求函数执行次数的输出
        }
    }

};

结果:C++ Primer Plus 第六版第8章习题答案_第1张图片


第二题:

// 20171115_two.cpp : 定义控制台应用程序的入口点。
//函数的传参与参数的处理

#include "stdafx.h"
#include
using namespace std;
const int NameMax=40;//姓名的常量
struct CandyBar
{
    char                 c_name[NameMax];//名称
    double               c_weight;//重量
    int                  c_heat;//热量
};
void   SetFunc(CandyBar &candybar , const char * name="Millennium Munch",const double weight =2.85,const int heat=350);//后三个都有默认值
void   ShowAllInfo(const CandyBar &candybar );//输出函数
int _tmain(int argc, _TCHAR* argv[])
{
    CandyBar  k;
    SetFunc(k);
    ShowAllInfo(k);
    CandyBar  s;
    char a[NameMax]="李明飞";
    strncpy(s.c_name,a,NameMax);
    s.c_weight=178.23;
    s.c_heat=23;
    SetFunc(s,a,s.c_weight,s.c_heat);//再次输入参数 如果不输入也可以运行 因为已经设置过s的参数了
    ShowAllInfo(s);
    cin.get();
    system("pause");
    return 0;
}

void   SetFunc(CandyBar &candybar , const char * name,const double weight ,const int heat)//函数的定义不用再写默认了
{
    strncpy(candybar.c_name,name,NameMax);//字符串的复制函数
    candybar.c_weight=weight;
    candybar.c_heat=heat;
};

void   ShowAllInfo(const CandyBar &candybar )
{
    cout<cout<cout<

结果:C++ Primer Plus 第六版第8章习题答案_第2张图片


第三题

// 20171115_Three.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include
#include
#include
using namespace std;
const  int a=20;
void   SetToupper(string  &s);//有String引用的函数
int _tmain(int argc, _TCHAR* argv[])
{
    string k;
    while(getline(cin,k))
    {
        if(k=="q")//退出判断
        {
            break;
        }
        SetToupper(k);
    }
    cin.get();
    system("pause");
    return 0;
}
void   SetToupper(string  &s)
{
    for(int i=0;i//s[i]-=32;//非函数方法改大小写
        s[i]=toupper(s[i]);//函数方法编写大小写
    }
    cout<

结果:
C++ Primer Plus 第六版第8章习题答案_第3张图片


第四题:

// 20171115_Four.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include
#include
using namespace std;

struct  stringy
{
    char * str;
    int ct;
};
void set( stringy &s,const char*s1);
void show(const stringy &s,int i=1);
void show(const  char* s1,int i=1);
int _tmain(int argc, _TCHAR* argv[])
{
    stringy beany;
    char testing[]="Reality isn't what it used to be .";
    set(beany,testing);
    show(beany);
    cout<2);
    cout<0]='D';
    testing[2]='u';
    show(testing);
    cout<3);
    cout<"Done!");
    cin.get();
    system("pause");
    return 0;
}
void set( stringy &s,const char*s1)
{
    s.ct=strlen(s1);
    s.str=new  char[s.ct+1];
    strcpy(s.str,s1);
};
void show(const stringy &s,int i)
{
    for(int k=0;kcout<void show(const  char* s1,int i)
{
    for(int k=0;kfor(int j=0;j<sizeof(s1);j++)
        {
            cout<

结果:C++ Primer Plus 第六版第8章习题答案_第4张图片


第五题

// 20171115_Five.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include
using namespace std;
const int MaxT=5;
template<typename  T>
T    ReturnT(T   a[MaxT]);
int _tmain(int argc, _TCHAR* argv[])
{
    int w[MaxT]={1,2,3,4,5};
    double e[MaxT]={1,2,3,4,5};
    int Max=0;
    Max=ReturnT(w);
    cout<double Max1=0;
    Max1=ReturnT(e);
    cout<cin.get();
    system("pause");
    return 0;
}
template<typename  T>
T    ReturnT(T   a[MaxT])
{
    T  temp;
    for(int i=0;i<(MaxT-1);i++)
    {
        if(a[i]1])
        {
            temp=a[i+1];
        }
    }
    return temp;
};

结果:C++ Primer Plus 第六版第8章习题答案_第5张图片


第六题

这里写代码片

你可能感兴趣的:(C++ Primer Plus 第六版第8章习题答案)