C++入门——选择结构2

欢迎大家观看此篇博客。该系列文章为C++入门相关题目的题解,帮助巩固知识。

1.字符转换

【问题描述】输入一个字符,如果是大写字母则转换为对应的小写字母,如果是小写字母则转换为对应的大写字母,如果是数字字符则转换为对应的数值,并计算其平方值,如果都不是则不转换,将转换后的结果输出。 

【输入形式】一个字符

【输出形式】一个字符或一个整数值

【样例输入】b

【样例输出】B

【样例输入】Y

【样例输出】y

【样例输入】3

【样例输出】9

【样例输入】?

【样例输出】?

【样例说明】输入数字字符时 ,输出对应的数值和输出字符本身是看不出来差别的,但请在程序里面练习数字字符转数值的过程。

【题目解析】由ASCII码中个字符的关系和样例中的分类方式分别进行输出。代码如下:

#include<iostream>
using namespace std;
int main()
{
	char a;
	cin >> a;
	//ASCII码:a=97;A=65
	if (a <= 'z' && a >= 'a')
		cout << char(a - 32);
	else if (a <= 'Z' && a >= 'A')
		cout << char(a + 32);//a+32:字符型转整型,char():整型转字符型
	else if (a >='0' && a <= '9')
		cout << ((int)a-48) * ((int)a - 48);//假设a=0,由于a此时是字符型,非整数型即(int)a-48=0
	else
		cout << a;
	return 0;
}

2.字符加密

【问题描述】输入5个小写字母,将其译成密码。密码规律是:用原来的字母后面第4个字母代替原来的字母。例如,输入“ahoux”,‘a’->‘b’->‘c’->‘d’->‘e’,所以字母‘a’后面第4个字母是‘e’,用‘e’代替‘a’;字母‘x’后面不足4个字母,则从‘a’开始补充,‘x’->‘y’->‘z’->‘a’->‘b’,所以字母‘x’后面第4个字母是‘b’,用‘b’代替‘x’。因此,“ahoux”应译为“elsyb”。

【输入形式】连续输入5个字符

【输出形式】连续输出5个字符

【样例输入】world

【样例输出】asvph

【样例说明】'w'后面第4字符已超出小写字母范围,因此回到开头继续数,是'a','o'后面第4个字符是's','r'后面第4个字符是'v','l'后面第4个字符是'p','d'后面第4个字符是'h'。

【题目解析】依据ASCII可暴力计算得到结果

#include<iostream>
using namespace std;
int main()
{
	char a,b,c,d,e;
	cin>>a>>b>>c>>d>>e;
	a=(a-97+4)%26+97;
	b=(b-97+4)%26+97;
	c=(c-97+4)%26+97;
	d=(d-97+4)%26+97;
	e=(e-97+4)%26+97;
	cout<<a<<b<<c<<d<<e;
	return 0;
}

3.分段函数(1)

【问题描述】有一分段函数如下,请编写程序,输入x值,输出y值。

【样例输入】-2.5

【样例输出】7.36396

【样例输入】1

【样例输出】2

【样例输入】11

【样例输出】0.222681

【题目解析】典型数学问题,分类讨论。

代码如下:

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
	double x, y;//数据均为浮点型
	cin >> x;
	if (x <= -1)
		y = 3 * sqrt(fabs(x) + 2) + 1;//fabs()对double类型求绝对值,abs()对整型求绝对值
	else if (x > 10)
		y = sqrt((x + 1) / (2 * x * x));
	else
		y = pow(x, 5) + 1;//pow(被开方的数据,n次方)
	cout << y;
	return 0;
}

4.分段函数(2)

【问题描述】有一分段函数如下,请编写程序,输入x值,输出y值。

【样例输入】-1

【样例输出】-1.4597

【样例输入】-0.5

【样例输出】1.5874

【样例输入】1.57

【样例输出】0.999999

【题目解析】同上

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
	double x, y;//数据均为浮点型
	cin >> x;
	if (x <= -1)
		y = 2 * x + cos(x);
	else if (x >= 1)
		y = sin(x) * sin(x);
	else
		y = 1.0 / pow((x + 1) * (x + 1),1.0/3);
	cout << y;
	return 0;
}

选择结构就到这里,代码无情,人间有情,欢迎大家点赞评论加收藏。内容如有问题请大家在评论区指点一二。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值