我是靠谱客的博主 单身战斗机,最近开发中收集的这篇文章主要介绍C++学习-Day-17一、编程练习,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

C++学习-Day-17

  • 一、编程练习

一、编程练习

  1. CandyBar结构包含3个成员,分别为品牌名称、重量和热量。请编写一个函数,参数包含CandyBar的引用、char指针、double和int作为参数,并用最后3个参数作为结构成员的值,其默认值分别为“Millennium Munch”、2.85和350,函数需要显示结构。
#include<iostream>
#include<cstring>
using namespace std;
struct CandyBar
{
char name[40];
double weight;
int calorie;
};
void show(CandyBar &my,const char * na="Millennium Munch",const double we=2.85,const int ca=350)
{
for(int i=0;i<strlen(na);i++)
my.name[i]=na[i];
my.weight=we;
my.calorie=ca;
cout<<"name: ";
for(int i=0;i<strlen(na);i++)
cout<<my.name[i];
cout<<endl;
cout<<"weight: "<<my.weight<<endl;
cout<<"calorie: "<<my.calorie;
}
int main()
{
CandyBar aa={"hello world",6.6,500};
CandyBar &a=aa;
show(a,aa.name,aa.weight,aa.calorie);
show(a);
}
  1. 编写一个函数,它接受一个指向string对象的引用作为参数,并将该string对象内容全部转换成大写。
#include<iostream>
#include<string>
#include<cctype>
using namespace std;
void toupper(string &str)
{
for(int i=0;str[i]!='';i++)
cout<<char(toupper(str[i]));
}
int main()
{
string st;
string &str=st;
cout<<"Enter a string (q to quit)n";
getline(cin,st);
while(st!="q")
{
toupper(str);
cout<<"nNext a string (q to quit)n";
getline(cin,st);
}
cout<<"bye";
}
  1. 给出一个程序框架,写出具体的函数描述(p8-4)
#include<iostream>
#include<cstring>
using namespace std;
struct stringy
{
char * str;
int ct;//length of string (not counting '')
};
void set(stringy &st,char *sr)
{
st.str=new char (strlen(sr)+1);//allocation needs initialization
strcpy(st.str,sr);
st.ct=strlen(sr);
}
void show(const stringy st,const int n=1)
{
for(int i=0;i<n;i++)
for(int j=0;j<st.ct;j++)
cout<<st.str[j];
cout<<endl;
}
void show(const char * sr,const int n=1)
{
for(int i=0;i<n;i++)
for(int j=0;j<strlen(sr);j++)
cout<<sr[j];
cout<<endl;
}
int main()
{
stringy beany;
char testing[]="Reality isn't what it used to be.";
set(beany,testing);//first argument is a reference,
//allocates space to hold copy of testing,
//sets str member of beany to point to the
//new block, copies testing to new block,
//and sets ct member of beanny
show(beany);
show(beany,2);
testing[0]='D';
testing[1]='u';
show(testing);
show(testing,3);
show("Done!");
return 0;
}
  1. 编写模板函数maxn(),它将一个T类型的元素组成的数组和一个数组的数目的整数作为参数,并返回数组中最大的元素,在函数调用中用一个6个int数组和一个包含4个double元素的数组。程序中还包含一个具体化,它将char指针和指针数量作为参数,并返回最长字符串的地址。
#include<iostream>
#include<cstring>
using namespace std;
template<typename T>
T maxn(T zu[],int n)
{
T ma=zu[0];
for(int i=0;i<n-1;i++)
{
if(ma<zu[i+1])
ma=zu[i+1];
}
return ma;
}
template <> const char * maxn(const char *zu[],int n)
{
int lo=strlen(zu[0]);
const char * pt=zu[0];
for(int i=0;i<n-1;i++)
{
if(lo<strlen(zu[i+1]))
{
pt=zu[i+1];
}
}
return pt;
}
int main()
{
int a[6]={1,2,3,4,5,6};
cout<<"int array version: "<<maxn(a,6)<<endl;
double b[4]={2.3,54.5,34.4,6.6};
cout<<"double array version: "<<maxn(b,4)<<endl;
const char * c[5]={"afsffsf","fsf","vgrgr","wfsfdvsv","fefef"};
cout<<"char* array version: "<<(int*)maxn(c,5)<<endl;
}

最后

以上就是单身战斗机为你收集整理的C++学习-Day-17一、编程练习的全部内容,希望文章能够帮你解决C++学习-Day-17一、编程练习所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部