第5周基础练习(cbuabfwe)

1求两个数的和(10分)
题目内容:

编写函数,求两个实数的和。编写主函数,输入两个数,调用函数求和,在主函数中显示结果。建议函数名mysum。

输入:两个实数,用逗号隔开。

输出:一个实数。

注意,本题的关键不是求和,关键是要用函数实现。

样例1输入:

1.2 2.4

样例1输出:

3.6

#include<iostream>
using namespace std;
double mysum(double a, double b)
{
	return (a + b);
}
int main()
{
	double a, b;
	cin >> a >> b;
	cout << mysum(a, b);
}

2求绝对值的函数(10分)
题目内容:

编写函数,求实数x的绝对值。在主函数中输入实数x,调用函数求绝对值,在主函数中输出。建议函数名 myfabs。

输入:一个实数

输出:绝度值

【注意】不用系统库函数,自己实现,返回绝对值,在主函数中输出!

样例1输入:

-1.25

样例1输出:

1.25

#include<iostream>
using namespace std;
double myfabs(double a)
{
	if (a >= 0)
		return a;
	else
		return -a;
}
int main()
{
	double x;
	cin >> x;
	cout << myfabs(x);
	return 0;
}

x的k次方(10分)
题目内容:

编写函数,求x的k次方,k为整数(可正、可负、可0),0的任何次方为0,任何非0数的0次方为1。编写主函数,输入x和k,调用函数计算x的k次方,在主函数中输出。结果为实数。建议函数名mypow。

输入:x和k,用空格隔开。x为实数,k为整数。

输出:实数,x的k次方。

【注意】用函数实现,使用循环连乘或连除,不使用系统的库函数pow。

样例1输入:

2 -2

输出:

样例1输出:

0.25

样例2输入:

2 3

样例2输出:

8

#include<iostream>
using namespace std;
double mypow(double x, int k)
{
	double sum = 1;
	if (x == 0)
		return 0;
	else {
		if (k > 0)
		{
			for (int i = 0; i < k; i++)
				sum *= x;
		}
		else if (k == 0)
		{
			sum = 1;
		}
		else if (k < 0)
		{
			for (int i = 0; i < -k; i++)
				sum /= x;
		}
	}
	return sum;
}
int main()
{
	double x;
	int k;
	cin >> x >> k;
	cout << mypow(x, k);
	return 0;
}

4求n!的函数(10分)
题目内容:

编写函数,求n!,0!=1。编写主函数,输入n,调用函数求阶乘,在主函数中输出结果。

输入:非负整数

输出:阶乘

【注意】必须用函数实现,在主函数中输出结果。函数中不能有cout,printf等屏幕输出。

样例1输入:

6

样例1输出:

720

//计算n!
#include<iostream>
using namespace std;
int myjc(int x)
{
	if (x == 0)
		return 1;
	int sum = 1;
	while (x >= 1)
	{
		sum *= x;
		x--;
	}
	return sum;
}
int main()
{
	int n;
	cin >> n;
	cout << myjc(n);
	return 0;

}

5输入数组元素(10分)
题目内容:

编写函数,输入数组元素,输入-9999表示 结束,返回数组元素的个数。在主函数中定义数组,数组大小足够大(满足问题规模要求,本题100即可),调用函数输入数组元素,在主函数中逆序输出数组元素。数组元素为整型。

输入:数据元素,用空格或换行隔开,-9999表示结束。元素个数不超过100个。

输出:逆序输出数组元素,用空格隔开,末尾无空格。

【提示】形参为数组,实参为数组名,在函数中添加数组元素,元素自然返回。函数应使用return返回实际输入的元素个数。

【注意】要用函数实现!!!

样例1输入:

1 2 3 4 5 -9999

样例1输出:

5 4 3 2 1

//输入数组元素
#include<iostream>
using namespace std;
int shuru(int a[])
{
	int i = 0;
	cin >> a[i];
	while ( a[i] != -9999)
	{
		i++;
		cin >> a[i];
	}
	return i;
}
int main()
{
	int a[200];
	int num=shuru(a);
	for (int i = num-1; i>0; i--)
		cout << a[i] << " ";
	cout << a[0];
	return 0;
}

6输出数组元素值(10分)
题目内容:

编写函数,输出数组元素,用一个空格隔开,末尾无空格。在主函数中定义数组,数组大小足够大(满足问题规模要求,本题100即可),调用上题函数输入数组元素,调用本题函数输出数组元素。数组元素为整型。

输入:数据元素,用空格或换行隔开,-9999表示结束。元素个数不超过100个。

输出:数组元素,用空格隔开,末尾无空格。

注意:要用函数实现!!!

提示:本题不需返回值。

样例1输入:

1 2 3 4 5 -9999

样例1输出:

1 2 3 4 5

//输出数组元素值
#include<iostream>
using namespace std;
void output(int a[]);
int main()
{
	int a[101];
	int i = 0;
	cin >> a[i];
	while (a[i] != -9999)
	{
		i++;
		cin >> a[i];
	}
	output(a);
	return 0;
}
void output(int a[])
{
	int i = 0;
	while (a[i]!=-9999)
		i++;
	for (int j = 0; j < i - 1; j++)
		cout << a[j] << " ";
	cout << a[i-1];
}

7将数组元素逆序(10分)
题目内容:

编写函数,将数组元素逆序。编写主函数,定义数组,使用前面编写的函数输入数组元素,调用本题函数逆序数组元素,调用前面编写的输出数组的函数输出。设数组元素为整数,不超过100个。

输入:若干空格或换行隔开的整数,-9999表示结束。

输出:逆序的数组元素,末尾无空格。

【注意】输入、输出、逆序均通过调用函数实现!!!不使用函数的程序无意义。

样例1输入:

1 2 3 4 5 6 7 -9999

样例1输出:

7 6 5 4 3 2 1

//将数组元素逆序
#include<iostream>
using namespace std;
void output(int a[])
{
	int i = 0;
	while (a[i] != -9999)
		i++;
	for (int j = 0; j < i - 1; j++)
		cout << a[j] << " ";
	cout << a[i - 1];
}
int input(int a[])
{
	int i = 0;
	cin >> a[i];
	while (a[i] != -9999)
	{
		i++;
		cin >> a[i];
	}
	return i;
}
void reverse(int a[], int len)
{
	int i = 0;
	int j = len - 1;
	while (i < j)
	{
		int temp = a[i];
		a[i] = a[j];
		a[j] = temp;
		i++;
		--j;
	}
}
int main()
{
	int a[101];
	int j=input(a);
	reverse(a,j);
	output(a);
	return 0;
}

8求数组元素的和(10分)
题目内容:

编写函数,求数组元素的和。编写主函数,定义数组,使用前面编写的函数输入数组元素,调用本题函数求和,在主函数中输出和。数组元素为整数,不超过100个。

输入:若干整数,用空格或换行分隔,-9999表示结束。

输出:和

【注意】使用函数,在主函数中输出。

样例1输入:

1 2 3 4 5 -9999

样例1输出:

15

//求数组元素的和
#include<iostream>
using namespace std;
int input(int a[])
{
	int i = 0;
	cin >> a[i];
	while (a[i] != -9999)
	{
		i++;
		cin >> a[i];
	}
	return i;
}
int mysum(int a[], int length)
{
	int sum=0;
	for (int i = 0; i < length; i++)
		sum += a[i];
	return sum;
}
int main()
{
	int a[101];
	int len=input(a);
	int sum = mysum(a, len);
	cout << sum;
	return 0;
}

9求字符串的长度的函数(10分)
题目内容:

编写函数,计算字符串的长度。编写主函数,定义字符数组,输入字符串,调用函数求长度,在主函数中输出字符串的长度。字符串最大长度不超过100。注意,必须用函数实现,不能使用字符串处理的库函数,不能使用string类型。

输入:一个不带空格的字符串

输出:字符串的长度。

【提示】逐个数出字符个数,直到遇到结束符。

样例1输入:

compile

样例1输出:

7

//求字符串的长度的函数
#include<iostream>
using namespace std;
int length(char s[])
{
	int len = 0;
	while (s[len] != '\0')
		len++;
	return len;
}
int main()
{
	char a[100];
	cin >> a;
	int len = length(a);
	cout << len;
	return 0;
}

1010.字符串转大写(10分)
题目内容:

编写函数,将字符串中的所有字母转换为大写。在主函数中定义字符数组,输出字符串,调用函数转大写,在主函数中输出。字符串长度不超过200. 注意,必须用字符数组实现,不能使用字符串处理库函数,也不能使用string类。

输入:字符串,不含空格

输出:大写字符串。

【提示】逐个判断字符是否小写字母,是就转换,不是就不转换,直到字符串结束。

样例1输入:

Short123

样例1输出:

SHORT123

//字符串转大写
#include<iostream>
using namespace std;
void convert(char s[], int len)
{
	int i;
	for (i = 0; i < len; i++)
	{
		if (s[i] >= 'a' && s[i] <= 'z')
			s[i] = s[i] + 'A' - 'a';
	}
}
int length(char s[])
{
	int len = 0;
	while (s[len] != '\0')
		len++;
	return len;
}
int main()
{
	char s[201];
	cin.getline(s, 200);
	int len = length(s);
	convert(s, len);
	for (int i = 0; i < len; i++)
		cout << s[i];
	return 0;
}

11字符串复制函数(10分)
题目内容:

编写函数,将字符串s1复制到字符串s2中,函数格式为:

void  mystrcpy(char s1[],char s2[]);

编写主函数,定义字符数组s1[100],s2[100], 输入字符串s1,调用函数将s1的内容复制到s2中,在主函数中输出s2的内容。要求必须用字符数组实现,不能使用系统的库函数,不能使用string类型。

输入:一个可能带空格的字符串,长度小于100.

输出:字符串。

【提示】逐个复制字符,直到遇到s1的结束符,在s2的末尾添加结束符。本题不需返回值。

【注意】本例的输入输出相同,没有经过函数复制的输出是无意义的。

样例1输入:

be calm

样例1输出:

be calm

//字符串复制函数
#include<iostream>
using namespace std;
void  mystrcpy(char s1[], char s2[])
{
	int i = 0;
	while (s1[i] != '\0')
	{
		s2[i] = s1[i];
		i++;
	}
	s2[i] = '\0';
}
int length(char s[])
{
	int len = 0;
	while (s[len] != '\0')
		len++;
	return len;
}
int main()
{
	char a[101];
	char b[101];
	cin.getline(a, 100);
	mystrcpy(a, b);
	int len = length(b);
	for (int i = 0; i < len; i++)
		cout << b[i];
	return 0;
}

12字符串比较函数(10分)
题目内容:

编写函数,按字母表顺序比较字符串s1,s2,区分大小写,若s1>s2返回1,若s1<s2返回-1,若s1等于s2返回0。在主函数中定义字符数组,输入字符串,调用函数进行比较,在主函数中输出结果。

字符串的比较就是比较它们在字母表中的顺序,如a在b前,就是a<b)。实际上就是比较它们的ASCII码。注意,必须用字符数组实现,不能使用字符串处理库函数,也不能使用string类。字符串的长度不超过200.

输入:两个英文字符串,用空格隔开。

输出:1,0,或-1

【提示】逐个比较两个字符串的对应字母,直到不等或有一个结束,根据最后字符的差确定返回值。

样例1输入:

abc ab

样例1输出:

1

//字符串比较函数
#include<iostream>
using namespace std;
int strcmp(char* str1, char* str2)
{
	char *p = str1;
	char *q = str2;
	while (*p == *q && *p && *q)//移动到两者开始不同的位置,确保指针非空
	{
		p++;
		q++;
	}
	if (*p > * q)
		return 1;
	else if (*p == *q)
		return 0;
	else
		return -1;
}
int main()
{
	char a[201];
	char b[201];
	cin >> a >> b;
	cout << strcmp(a, b);
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值