当前位置: 首页 > ops >正文

C++Primerplus编程练习 第八章

第八章 函数探幽

第一题

在这里插入图片描述

#include <iostream>
void print(const char* c, int n=0){static int count=0;count++;if(n!=0){for(int i=0;i<count;i++)std::cout << c <<std::endl;}else{std::cout << c <<std::endl;}
}
int main()
{using std::cout;char str[]{"bueryi"};                                                                cout << "调用三次\n";print(str);print(str);print(str);cout << "使用第二个参数\n";print(str, 1);cout << "-----------------------------\n";print(str, -1);return 0;
}

第二题

在这里插入图片描述

#include <iostream>
#include <cstring>
const int BRANDSIZE =50;
struct CandyBar{char brand[BRANDSIZE];double weight;int calorie;
};
void changeCandy(CandyBar& candy, const char*str="Millennium",double w = 2.85,int h=350){strcpy(candy.brand, str);candy.weight = w;candy.calorie = h;
}
void displayCandy(const CandyBar& candy){using std::cout;cout << "brand is " << candy.brand << " weight is " << candy.weight<< " calorie is " << candy.calorie << std::endl;
}
int main()
{CandyBar candy;displayCandy(candy);changeCandy(candy);displayCandy(candy);                                                                 return 0;
}

第三题

在这里插入图片描述

  #include <iostream>#include <cctype>#include <cstring>void strToUpper(std::string & str){
?     for(int i=0;i<str.size();i++){str[i] = toupper(str[i]);}}int main(){using namespace std;string str;cout << "Enter a string (q to quit): ";getline(cin,str);while(str != "q"){strToUpper(str);                                                               cout << str << endl;cout << "Next string (q to quit): ";getline(cin,str);}cout << "Bye.\n";return 0;}

第四题

在这里插入图片描述
在这里插入图片描述

#include <iostream>
using namespace std;
#include <cstring>
struct stringy{char * str;int ct;
};
void set(stringy& s, const char* c);
void show(const stringy& s, int n=1);
void show(const char* c,int n=1);
int main()
{stringy beany;char testing[]="Reality isn't what it used to be.";set(beany, testing);show(beany);show(beany,2);testing[0] = 'D';testing[1] = 'u';show(testing);show(testing, 3);show("Done!");return 0;
}
void set(stringy& s, const char* c){s.ct = strlen(c);s.str = new char[s.ct+1];strcpy(s.str, c);      
}
void show(const stringy& s, int n){for(int i=0;i<n;i++){cout << s.str<< endl;}
}
void show(const char* c, int n){for(int i=0;i<n;i++){cout << c << endl;}
}

第五题

在这里插入图片描述

#include <iostream>template <typename T>
T max5(T a[]){T t = a[0];for(int i=1;i<5;i++){if(t<a[i]){t = a[i];}}return t;
}
int main()
{int a[5]{1,214,15,5647,8};double b[5]{-1.54,4.26,3.23,23.7,21};using std::cout;cout << max5(a) << std::endl;cout << max5(b) << std::endl;return 0;                                                                            
}

第六题

在这里插入图片描述

 #include <iostream>#include <cstring>template <typename T>T maxn(T a[], int n){T t = a[0];for(int i=1;i<n;i++){if(t<a[i]){t = a[i];}}return t;}template <> const char* maxn(const char* a[],int n){const char* p = a[0];int m = strlen(a[0]);for(int i=1;i<n;i++){
?         if(m < strlen(a[i])){m = strlen(a[i]);p = a[i];}}return p;}int main(){int a[6]{1,214,15,56,47,8};double b[4]{-1.54,4.26,3.23,21};const char* str[5]{"hello", "bueryi","WXY","next","template" };using std::cout;cout << maxn(a,6) << std::endl;cout << maxn(b,4) << std::endl;cout << maxn(str,5) << std::endl;return 0;}

第七题

程序清单8.14
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#include <iostream>
template <typename T>
T SumArray(T arr[], int n);
template <typename T>
T SumArray(T* arr[], int n);
struct debts{char name[50];double amount;
};
int main()
{using namespace std;int things[6] = {13,31,103,301,310,130};struct debts mr_E[3] = {{"Ima Wolfe", 2400.0},{"Ura Foxe", 1300.0},{"Iby Stout",1800.0}};double* pd[3];for(int i=0;i<3;i++){pd[i] = &mr_E[i].amount;}cout << "sum of Mr. E's counts of things: " << SumArray(things, 6) <<endl;cout << "sum of Mr. E's debts: " <<SumArray(pd,3)<<endl;                             return 0;
}
template <typename T>
T SumArray(T arr[], int n){T t=0;for(int i=0;i<n;i++){t+= arr[i]; }return t;
}
template <typename T>
T SumArray(T* arr[], int n){T t=0;for(int i=0;i<n;i++){t+= *arr[i];}return t;
}
http://www.xdnf.cn/news/5215.html

相关文章:

  • 生产级AI/ML特征存储平台:Feast全面使用指南 — Use Cases Third party integrations FAQ
  • java: Compilation failed: internal java compiler error 报错解决方案
  • 【Java学习日记32】:面向对象,类和对象
  • matlab介绍while函数
  • 计算机网络:怎么理解WIFI穿墙?
  • SSRF服务端请求伪造
  • 2025python学习笔记
  • 用tinyb210实现srsran小基站
  • 全国青少年信息素养大赛 Python编程挑战赛初赛 内部集训模拟试卷六及详细答案解析
  • 2025年保安员考试题库及答案
  • 电影感户外哑光人像自拍摄影Lr调色预设,手机滤镜PS+Lightroom预设下载!
  • Linux进程间信号
  • 【25软考网工】第六章(2)信息加密技术
  • 【金仓数据库征文】金仓数据库(KingbaseES)迁移与集群部署实战:从MySQL到KES的全流程解析
  • 2003-2020年高铁线路信息数据
  • 为什么 AI 理解不了逻辑问题?
  • 街景主观感知全流程(自建数据集+两两对比程序+Trueskill计算评分代码+训练模型+大规模预测)27
  • JavaScript--Array
  • ProfiNet转MODBUS模块构建西门子PLC与RTU仪表通讯连接方案
  • 大学之大:悉尼科技大学2025.5.10
  • Innovus 25.1 版本更新:助力数字后端物理设计新飞跃
  • Python自动化-python基础(下)
  • 1 2 3 4 5顺序插入,形成一个红黑树
  • 阿里千问Qwen大模型API调用(Python版)
  • 张 SoulChat2.0:心理咨询师优化:提示词优化;构建数据集微调LLM
  • PMP-第五章 项目范围管理
  • 在资源受限设备上实现手势识别:基于包络EMG数据和实时测试的Tiny-ML方法
  • [架构之美]IntelliJ IDEA创建Maven项目全流程(十四)
  • 玩转Docker | 使用Docker部署DailyTxT日记工具
  • C语言文件流