c++练习题

1、默认参数练习

创建默认参数函数 void stars(int cols ,int rows ) 该函数默认缺省值cols是10 rows是1。该函数完成功能是根据行和列数显示一个由星号组成的矩形。在main函数仲按照默认值调用该函数。按照cols是5调用该函数。按照列数和行数是7,3 调用该函数

#include<iostream>
using namespace std;

void stars(int cols=10,int rows=1);
int main()
{
	stars();
	cout<<endl; 
	stars(5);
	cout<<endl; 
	stars(7,3);
	cout<<endl; 
	
}
void stars(int cols,int rows)
{
	for(int i=0;i<rows;i++)
	{
		for(int j=0;j<cols;j++)
		{
			cout<<'*';
		}	
			cout<<endl;	
	}
 } 

在这里插入图片描述

2、函数的重载练习

double calcWeeklyPay ( int , double ) ; //计算计时员工的周薪,周薪=工作时数* 单位小时工资,参数是工作时数*单位小时工资
double calcWeeklyPay ( double ) ;//计算员工的周薪,参数为年薪。周薪=年薪/52 返回周薪
  输入界面如下:如果输入的不是H S h s要提示重复输入。根据输入的字符选择上面不同的函数调用

#include<iostream>
using namespace std;

double calcWeeklyPay(int hours,double money);
double cacWeeklyPay(double years);
int main()
{
	char a; 
	int hours;
	double money,years;
	
	cout<<"请选择计算工资的方式"<<endl;
	cout<<"(H)计算计时的工资"<<endl;
	cout<<"(S)计算员工的工资"<<endl;
	cout<<"请输入H或S"<<endl;
	cin>>a;
	while(!(a=='H'||a=='h'||a=='S'||a=='s'))
	{
		cout<<"输入错误继续输入"<<endl; 
		cin>>a;
	} 
	
	if(a=='H'||a=='h')
	{
		cout<<"请输入工作时数和单位小时工资"<<endl;	
		cin>>hours>>money;	
		cout<<calcWeeklyPay(hours,money);	
	}
	if(a=='S'||a=='s')
	{
		cout<<"请输入年薪"<<endl;	
		cin>>years;	
		cout<<cacWeeklyPay(years);
	 } 
}
double calcWeeklyPay(int hours,double money)
{
	return hours*money;
}
double cacWeeklyPay(double years)
{
	return years/52.0;
}

在这里插入图片描述

3、函数模板练习一

template  < 类型参数表 >
        返回值类型  函数名 ( 形式参数表 )
        {
            // 函数体
        } 
例如:
template  < class  T >
        T  square ( T  number ) 
        {    
	  return  number * number ;
        } 
例如:
template  < class   T1 , class   T2>
        void   swap ( T1   &var1 , T2   &var2 ) 
        {  	T1  temp ;
           	temp = var1 ;
           	var1 = ( T1 ) var2 ;
           	var2 = ( T2 ) temp ;
        } 

   利用函数模板定义void swaps 参数是不确定数据类型的两个变量。 完成功能是交换两个变量的值。
  在main函数中输入两个字符型变量,调用swaps完成交换,输出变量值;输入两个整数类型变量,调用swaps完成交换,输出变量值;输入两个浮点数变量,调用swaps完成交换,输出变量值;

#include<iostream>
using namespace std;

template<class T>
void swaps(T &x,T &y)
{
	T t;
	t=x;
	x=y;
	y=t;
}
int main()
{
	char x,y;
	cin>>x>>y;
	swaps(x,y);
	cout<<x<<" "<<y<<endl;	
	int a,b;
	cin>>a>>b;
	swaps(a,b);
	cout<<a<<" "<<b<<endl;
	double c,d;
	cin>>c>>d;
	swaps(c,d);
	cout<<c<<" "<<d;
}

在这里插入图片描述

  这个函数模板中的表示该函数模板有一个类型参数T,在函数实例化时可以指定具体的类型。在函数体中,我们可以使用T作为一种类型来定义变量、进行类型转换等操作。这样就可以实现一个可以处理多种数据类型的通用函数。
  另外,使用template定义的函数模板也可以改写为template,两者在语法上是等价的。class和typename都可以用来定义模板类型参数,但是在模板定义中通常使用typename,在模板的模板参数中使用class

4、函数模板练习二

  创建函数模板sum 可以计算不同类型的两个参数的和,返回两者之和; 创建函数模板sum 可以计算三个同类型参数的和,返回值为三者之和。
  在main函数中输入 一个字符一个整数 运算两者之和;输入一个整数一个实数,运算两个之和。输入三个实数运算之和

#include<iostream>
using namespace std;

template <class T1,class T2>
T1 sum(T1 a,T2 b)
{
	return a+b;
}
template <class T>
T sum(T a,T b,T c)
{
	return a+b+c;
}

int main()
{
	int x;
	char y;
	double z,a,b;
	cout<<"输入 一个字符一个整数"<<endl; 
	cin>>y>>x;
	cout<<sum(y,x)<<endl;
	cout<<"输入一个整数一个实数"<<endl; 
	cin>>x>>z;
	cout<<sum(x,z)<<endl;
	cout<<"输入 三个实数"<<endl; 
	cin>>z>>a>>b;
	cout<<sum(z,a,b)<<endl;
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微笑伴你而行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值