c++第二周练习
第2周基础练习查看帮助返回
1求过平面上两点的直线的斜率(10分)
题目内容:
编写程序,输入平面上的两个点的坐标(x1,y1),(x2,y2),求过这两点的直线的斜率(设斜率不为无穷)。
输入:两行数据,实数。第1行是x1,y1;第2行是x2,y2,数据间用空格隔开。
输出:一个实数,表示斜率。
输入样例:
输入:
1 1
2 2
输出样例:
1
【提示】数据类型都用double
时间限制:500ms内存限制:32000kb
C++
#include <iostream>
#include <cmath>
using namespace std;
int main(){
double x1,x2,y1,y2,k;
cin>>x1>>y1;
cin>>x2>>y2;
k=(y2-y1)/(x2-x1);
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);
时间限制:500ms内存限制:32000kb
C++
#include <iostream>
#include <cmath>
using namespace std;
int main(){
double x1,x2,y1,y2,distance;
cin>>x1>>y1;
cin>>x2>>y2;
distance=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
cout<<distance<<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内存限制:32000kb
C++
#include <iostream>
using namespace std;
int main(){
char c;
cin>>c;
c>='A'&&c<='Z'?cout<<1:cout<<0;
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
C++
#include <iostream>
using namespace std;
int main(){
char c;
cin>>c;
c>='0'&&c<='9'?cout<<1:cout<<0;
return 0;
}
5判断闰年(10分)
题目内容:
编写程序,输入年份,判断是否闰年。是,输出“IsLeapYear”;“否”,输出“NotLeapYear”。
输入:一个正整数
输出:“IsLeapYear”或“NotLeapYear”
输入样例1:
2000
输出样例1:
IsLeapYear
输入样例2:
2018
输出样例2:
NotLeapYear
时间限制:500ms内存限制:32000kb
C++
#include <iostream>
using namespace std;
int main(){
int y;
cin>>y;
y%4==0&&y%100!=0||y%400==0?cout<<"IsLeapYear":cout<<"NotLeapYear";
return 0;
}
6求商和余数(10分)
题目内容:
输入两个正整数,求它们的商和余数。例如,输入 18和10,则它们的商是1,余数是8。
输入:两个正整数,用空格隔开。
输出:商和余数,用空格隔开。
输入样例:
18 10
输出样例:
1 8
【提示】使用int类型,"/“用来求商,”%"用来求余数。
时间限制:500ms内存限制:32000kb
C++
#include <iostream>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
cout<<a/b<<" "<<a%b<<endl;
return 0;
}
7计算平均分取整(10分)
题目内容:
某招聘面试,7个专家给考生打分,编写程序,计算7个专家给分的平均分,取整。
输入:7个[0,100]内的整数,用空格隔开.
输出:一个整数,是四舍五入的平均分。
输入样例:
70 70 70 70 70 70 73
输出样例:
70
【提示】四舍五入:y=int(x+0.5)
时间限制:500ms内存限制:32000kb
C++
#include <iostream>
using namespace std;
int main(){
double a[7],s;
s=0;
int b;
for(int i=0;i<7;i++){
cin>>a[i];
s=s+a[i];
}
b=int((s/7)+0.5);
cout<<b<<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(d*100+0.5)/100.00;分母的小数点不可少。
时间限制:500ms内存限制:32000kb
C++
#include <iostream>
#include <cmath>
using namespace std;
int main(){
double a,b,c,x,y,d;
cin>>a>>b>>c;
cin>>x>>y;
d=abs(a*x+b*y+c)/sqrt(a*a+b*b);
d=int(d*100+0.5)/100.00;
cout<<d<<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
C++
#include <iostream>
#include <cmath>
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
C++
#include <iostream>
#include <cmath>
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
C++
#include <iostream>
#include <cmath>
using namespace std;
int main(){
int c;
cin>>c;
cout<<hex<<c<<endl;
return 0;
}
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
C++
#include <iostream>
#include <cmath>
using namespace std;
int main(){
int c;
cin>>c;
cout<<dec<<c<<" ";
c<0?cout<<"-"<<hex<<abs(c)<<" "<<"-"<<oct<<abs(c)<<endl:cout<<hex<<c<<" "<<oct<<c<<endl;
return 0;
}