第二周基础练习

1.求过平面上两点的直线的斜率(10分)

题目内容:

编写程序,输入平面上的两个点的坐标(x1,y1),(x2,y2),求过这两点的直线的斜率(设斜率不为无穷)。

输入:
两行数据,实数。第1行是x1,y1;第2行是x2,y2,数据间用空格隔开。

输出:
一个实数,表示斜率。

输入样例:

输入:

1 1

2 2

输出样例:

1

【提示】数据类型都用double
时间限制:500ms内存限制:32000kb

#include <iostream>
using namespace std;
int main()
{
	double x1, x2, y1, y2, k;
	cin>>x1>>y1>>x2>>y2;
	k = 1.0*(y1-y2)/(x1-x2);
	cout<<k<<endl;
	return 0;
}

2.计算平面上两点之间的距离(10分)

题目内容:

编写程序,输入平面上的两个点的坐标(x1,y1),(x2,y2),计算这两点之间的距离。

输入:
两行数据,实数。第1行是x1,y1;第2行是x2,y2,数据间用空格隔开。

输出:
一个实数,表示距离。

输入样例:

0 0

1 1

输出样例:

1.41421

【提示】数据类型用double,包含头文件cmath, 计算公式distance=(x2-x1)(x2-x1)+(y2-y1)(y2-y1);distance=sqrt(distance);

#include <iostream>
#include <cmath>
using namespace std;

int main()
{
	double x1, y1, x2, y2, s;
	cin>>x1>>y1>>x2>>y2;
	s = sqrt((y1-y2)*(y1-y2)+(x1-x2)*(x1-x2));
	cout<<s<<endl;
	return 0;
}

3.判断大小写(10分)

题目内容:

输入一个英文字母,判断大小写。大写输出1,小写输出0.

输入:
一个字母

输出:
1或0.

输入样例1:

A

输出样例1:

1

输入样例2:

a

输出样例2:

0

【提示】设输入的字母为c,判断大写的条件是:c>=‘A’ && c<=‘Z’,然后使用条件运算符,条件?cout<<1 : cout<<0;
时间限制:500ms内存限制:320

#include <iostream>
using namespace std;
int main()
{
	char c;
	cin>>c;
	cout<<(c>='A'&&c<='Z'?1:0)<<endl;
	return 0;
}
//三目运算符优先级较低

4.判断数字(10分)

题目内容:

输入一个英文字符,判断是否数字。是输出1,不是输出0.

输入:
一个字符

输出:
1或0.

输入样例1:

5

输出样例1:

1

输入样例1:

a

输出样例1:

0

【提示】字符类型用char,设输入的字母为c,判断数字的是:c>=‘0’ && c<=‘9’,然后使用条件运算符,条件?cout<<1 : cout<<0;
时间限制:500ms内存限制:32000kb

#include <iostream>
using namespace std;
int main()
{
	char c;
	cin>>c;
	cout<<(c>='0'&&c<='9'?1:0)<<endl;
	return 0;
}

5.判断闰年(10分)

题目内容:

编写程序,输入年份,判断是否闰年。是,输出“IsLeapYear”;“否”,输出“NotLeapYear”。

输入:
一个正整数

输出:
“IsLeapYear”或“NotLeapYear”

输入样例1:

2000

输出样例1:

IsLeapYear

输入样例2:

2018

输出样例2:

NotLeapYear

时间限制:500ms内存限制:32000kb

#include <iostream>
using namespace std;
int main()
{
	int year;
	cin>>year;
	if(year%400==0||(year%4==0&&year%100!=0))
	{
		cout<<"IsLeapYear"<<endl;
	}else{
		cout<<"NotLeapYear"<<endl;
	}
	return 0;
}
//判断闰年的条件

6.求商和余数(10分)

题目内容:

输入两个正整数,求它们的商和余数。例如,输入 18和10,则它们的商是1,余数是8。

输入:
两个正整数,用空格隔开。

输出:
商和余数,用空格隔开。

输入样例:

18 10

输出样例:

1 8

【提示】使用int类型,"/“用来求商,”%"用来求余数。
时间限制:500ms内存限制:32000kb

#include <iostream>
using namespace std;
int main()
{
	int a, b;
	cin>>a>>b;
	int quot = a/b;
	int mod = a%b;
	cout<<quot<<" "<<mod<<endl;
	return 0;
}

7.计算平均分取整(10分)

题目内容:

某招聘面试,7个专家给考生打分,编写程序,计算7个专家给分的平均分,取整。

输入:
7个[0,100]内的整数,用空格隔开.

输出:
一个整数,是四舍五入的平均分。

输入样例:

70 70 70 70 70 70 73

输出样例:

70

【提示】四舍五入:y=int(x+0.5)

#include <iostream>
using namespace std;
int main()
{
	int num;
	int sum = 0;
	for(int i=0; i<7; i++)
	{
		cin>>num;
		sum+=num;
	}
	double average = 1.0*sum/7;
	average = (int)(average+0.5);
	cout<<average<<endl;
	return 0;
}
//学习保留整数的四舍五入方法

8.计算点到直线的距离保留两位小数(10分)

题目内容:

直线方程:Ax+By+C=0

编写程序,输入A,B,C,和点(x,y),计算该点到直线的距离。

点到直线的距离公式:

d=|Ax+By+C|/sqrt(A*A+B*B)

其中|z|表示绝对值,程序中使用条件表达式,如:z<0 ? z=-z:z=z;

输入:
两行,第1行是直线方程的系数A,B,C,用空格隔开。

第2行是平面点的坐标x,y,用空格隔开。

输出:
一个实数,表示点到直线的距离,最多保留两位小数,四舍五入。

提示:保留两位小数:d=int(d*100+0.5)/100.00;

输入样例:

2 1 -10

-1 2

输出样例:

4.47

【提示】数据类型用double,d=int(d100+0.5)/100.00;分母的小数点不可少。
时间限制:500ms内存限制:32000kb*

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
	double a, b, c, x, y;
	cin>>a>>b>>c>>x>>y;
	double dist = 1.0*abs(a*x+b*y+c)/sqrt(a*a+b*b);
	dist = int(100*dist+0.5)/100.00;
	cout<<dist<<endl;
	return 0;
}
//与上一题做对比

9.输入字符显示ASCII值(10分)

题目内容:

编写程序,输入一个字符,显示其ASCII值。如输入“A”,显示65,输入“a”显示97。

输入:
一个字符。

输出:
一个整数。

提示:设c是字符,则int©就是其ASCII值,c+0也是。

输入样例1:

A

输出样例1:

65

输入样例2:

a

输出样例2:

97
时间限制:500ms内存限制:32000kb

#include <iostream>
using namespace std;
int main()
{
	char c;
	cin>>c;
	cout<<(int)c<<endl;
	return 0;
}
//强制类型转换

10.输入整数显示ASCII字符(10分)

题目内容:

编写程序,输入一个0-127之间的整数,显示对应的ASCII字符。

提示:若k是整数,将它赋值给字符变量或使用char(k)就得到字符。注意,有些字符是不能在屏幕上显示出来的。

输入:
一个0-127之间的整数。

输出:
一个ASCII字符

输入样例1:

65

输出样例1:

A

输入样例2:

97

输出样例2:

a
时间限制:500ms内存限制:32000kb

#include <iostream>
using namespace std;
int main()
{
	int c;
	cin>>c;
	cout<<(char)c<<endl;
	return 0;
}
//强制类型转换

11.输入整数显示十六进制(10分)

题目内容:

编写程序,输入一个非负整数,显示其十六进制形式。如输入31,输出1f。

输入:
一个非负整数。

输出:
一个十六进制数

提示:设n是非负整数,则cout<<hex<<n;显示n的十六进制形式。

样例1输入:

31

样例1输出:

1f
时间限制:500ms内存限制:32000kb

#include <iostream>
using namespace std;
int main()
{
	int x;
	cin>>x;
	cout<<hex<<x<<endl;
	return 0;
}
//十六进制用hex限定

12.输入整数显示十六进制和八进制(10分)

题目内容:

编写程序,输入整数,显示其十进制、十六进制和八进制形式。如输入-31,输出:

-31 -1f -37

输入:
一个整数,注意,可能是负数。

输出:
三个数,十进制、十六进制和八进制,用空格隔开。

提示:设输入的整数为n。(1)使用?:条件运算符求绝对值赋给另一变量。(2)十进制、十六进制和八进制形式,在输出前分别输出dec,hex,oct,如cout<<oct<<m;(3)如果n小于0,先输出一个负号,不换行,再输出整数。

注意,即使你知道了if语句,在这儿也不应该使用。

样例1输入:

-31

样例1输出:

-31 -1f -37

时间限制:500ms内存限制:32000kb

#include <iostream>
using namespace std;
int main()
{
	int x;
	cin>>x;
	cout<<dec<<(x>=0?"":"-")<<(x>0?x:-x);
	cout<<" ";
	cout<<hex<<(x>=0?"":"-")<<(x>0?x:-x);
	cout<<" ";
	cout<<oct<<(x>=0?"":"-")<<(x>0?x:-x);
	cout<<endl;
	return 0;
}
//主要是学习几种进制的表示方式
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值