欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > C++第九章编程练习答案

C++第九章编程练习答案

2025/10/18 16:07:40 来源:https://blog.csdn.net/weixin_48442204/article/details/142433901  浏览:    关键词:C++第九章编程练习答案

题一

 头文件

test9_1.h

#ifndef TEST9_1_H_
#define TEST9_1_H_
const int Len = 40;
struct golf
{char fullname[Len];int handicap;
};void setgolf(golf &g, const char *name, int hc);
// 赋值函数int setgolf(golf &g);
// 按输入赋值void handicap(golf &g, int hc);
// 对handicap重新赋值void showgolf(const golf &g);
#endif

源文件

#include <iostream>
#include "test9_1.h"
#include <cstring>
using namespace std;void setgolf(golf &g, const char *name, int hc)
{strcpy(g.fullname, name);g.handicap = hc;
}int setgolf(golf &g)
{cout << "Enter the fullname :";cin.get(g.fullname, Len);cout << "Enter the handicap: ";cin >> g.handicap;cin.get();if (g.fullname[0] == '\0')return 0;elsereturn 1;
}void handicap(golf &g, int hc)
{g.handicap = hc;
}void showgolf(const golf &g)
{if (g.fullname[0] != '\0'){cout << "fullname: " << g.fullname << endl;cout << "handicap: " << g.handicap << endl;}
}

 源代码

#include <iostream>
#include "test9_1.h"
using namespace std;
int main()
{golf ann;setgolf(ann, "Ann Birdfree", 24);showgolf(ann);golf *golfarr = new golf[3];for (int i = 0; i < 3 && setgolf(golfarr[i]); i++){}for (int i = 0; i < 3; i++)showgolf(golfarr[i]);delete[] golfarr;return 0;
}

题二

// static.cpp--using a static local variable
#include <iostream> //constants
#include <string>
#include <cstring>
using namespace std;
// const int ArSize = 10;
//  function prototype
void strcount(const string str);
int main()
{// char input[ArSize];string input;char next;cout << "Enter a line:\n";getline(cin, input);while (input != ""){strcount(input);cout << "Enter next line(empty line to quit);\n";getline(cin, input);}cout << "Bye\n";return 0;
}
void strcount(const string str)
{using namespace std;static int total = 0;int count = 0;// static local variable// automatic local variablecout << "\"" << str << "\"contains \n";count = str.size();total += count;cout << count << " characters\n";cout << total << " characters total\n";
}

题三

方法一

#include <iostream>
#include <new>
#include <cstring>
const int BUF = 512;
const int N = 5;
char buffer[BUF];
struct chaff
{char dross[20];int salg;
};
int main()
{using namespace std;chaff *array1 = new (buffer) chaff[2];for (int i = 0; i < 2; i++){cout << "dross" << i + 1 << ": ";cin.getline(array1[i].dross, 20);cout << "salg" << i + 1 << ":";cin >> array1[i].salg;cin.get();}for (int i = 0; i < 2; i++){cout << "dross" << i + 1 << ": " << array1[i].dross << endl;cout << "salg" << i + 1 << ": " << array1[i].salg << endl;}return 0;
}

方法二

#include <iostream>
#include <new>
#include <cstring>
const int BUF = 512;
struct chaff
{char dross[20];int salg;
};
int main()
{using namespace std;char *buffer = new char[BUF];chaff *array1 = new (buffer) chaff[2];for (int i = 0; i < 2; i++){cout << "dross" << i + 1 << ": ";cin.getline(array1[i].dross, 20);cout << "salg" << i + 1 << ":";cin >> array1[i].salg;cin.get();}for (int i = 0; i < 2; i++){cout << "dross" << i + 1 << ": " << array1[i].dross << endl;cout << "salg" << i + 1 << ": " << array1[i].salg << endl;}delete buffer;return 0;
}

题四

头文件

#ifndef TEST9_4_H_
#define TEST9_4_H_
namespace SALES
{const int QUARTERS = 4;struct Sales{double sales[QUARTERS];double average;double max;double min;};void setSales(Sales &s, const double ar[], int n);void setSales(Sales &s);void showSales(const Sales &s);
}
#endif

源代码

#include "test9_4.h"
#include <iostream>
using namespace std;void SALES::setSales(Sales &s, const double ar[], int n)
{double sum;s.max = ar[0];s.min = ar[0];// int length = sizeof(ar) / sizeof(double);for (int i = 0; i < QUARTERS; i++){if (i < n){sum += ar[i];s.sales[i] = ar[i];if (ar[i] > s.max)s.max = ar[i];if (ar[i] < s.min)s.min = ar[i];}elses.sales[i] = 0;}s.average = sum / n;
}void SALES::setSales(Sales &s)
{s.max = 0;s.min = 999999;for (int i = 0; i < QUARTERS; i++){cout << "Enter " << i + 1 << "-th quarter sales:";cin >> s.sales[i];s.average += s.sales[i];if (s.sales[i] > s.max)s.max = s.sales[i];if (s.sales[i] < s.min)s.min = s.sales[i];}s.average /= QUARTERS;
}
void SALES::showSales(const Sales &s)
{for (int i = 0; i < QUARTERS; i++)cout << i + 1 << "-th quarter sales:" << s.sales[i] << endl;cout << "average :" << s.average << endl;cout << "max :" << s.max << endl;cout << "min :" << s.min << endl;
}

源代码

#include <iostream>
#include "test9_4.h"
using namespace std;
using namespace SALES;
int main()
{Sales FirstYear;double earning[3] = {10, 20, 30};setSales(FirstYear, earning, 3);showSales(FirstYear);Sales SecondYear;setSales(SecondYear);showSales(SecondYear);return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词