中国大学MOOC计算机程序设计(C++)第二周基础练习

1求过平面上两点的直线的斜率(10分)
题目内容:

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

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

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

输入样例:

输入:

1 1

2 2

输出样例:

1

【提示】数据类型都用double

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

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

用例测试结果 运行时间 占用内存 提示 得分
用例1通过 3ms 256kb
4
用例2通过 2ms 256kb
3
用例3通过 2ms 356kb
3
提交答案本次得分/总分:10.00/10.00分
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,y1,x2,y2;
cin>>x1>>y1;
cin>>x2>>y2;
cout<<sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
return 0;
}

用例测试结果 运行时间 占用内存 提示 得分
用例1通过 2ms 256kb
3
用例2通过 2ms 372kb
3
用例3通过 2ms 240kb
2
用例4通过 2ms 364kb
2
提交答案本次得分/总分:10.00/10.00分
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
选择语言

#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;
}

用例测试结果 运行时间 占用内存 提示 得分
用例1通过 26ms 368kb
2
用例2通过 22ms 372kb
1
用例3通过 2ms 256kb
1
用例4通过 2ms 368kb
1
用例5通过 2ms 376kb
1
用例6通过 2ms 368kb
1
用例7通过 2ms 380kb
1
用例8通过 2ms 372kb
1
用例9通过 2ms 256kb
1
提交答案本次得分/总分:10.00/10.00分
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;
if(y%4==0&&y%100!=0||y%400==0)cout<<"IsLeapYear";
else cout<<"NotLeapYear";
}

用例测试结果 运行时间 占用内存 提示 得分
用例1通过 2ms 256kb
2
用例2通过 2ms 380kb
2
用例3通过 2ms 368kb
2
用例4通过 2ms 256kb
2
用例5通过 2ms 368kb
1
用例6通过 10ms 256kb
1
提交答案本次得分/总分:10.00/10.00分
6求商和余数(10分)
题目内容:

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

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

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

输入样例:

18 10

输出样例:

1 8

【提示】使用int类型,"/“用来求商,”%"用来求余数。

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

#include<iostream>
using namespace std;
int main(){
int x,y;
cin>>x>>y;
cout<<x/y<<" "<<x%y;
return 0;
}

用例测试结果 运行时间 占用内存 提示 得分
用例1通过 2ms 256kb
3
用例2通过 2ms 260kb
3
用例3通过 2ms 364kb
2
用例4通过 2ms 256kb
2
提交答案本次得分/总分:10.00/10.00分
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(){
int  a,s=0;
for(int i=0;i<7;++i){
cin>>a;
s+=a;
}
cout<<int(s/7.+.5);
return 0;
}

用例测试结果 运行时间 占用内存 提示 得分
用例1通过 2ms 256kb
3
用例2通过 3ms 384kb
3
用例3通过 2ms 352kb
2
用例4通过 2ms 256kb
2
提交答案本次得分/总分:10.00/10.00分
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(){
int A,B,C,x,y;
cin>>A>>B>>C>>x>>y;
cout<<int((abs(A*x+B*y+C)/sqrt(A*A+B*B))*100+0.5)/100.00;
return 0;
}

用例测试结果 运行时间 占用内存 提示 得分
用例1通过 2ms 364kb
4
用例2通过 2ms 256kb
3
用例3通过 2ms 256kb
3
提交答案本次得分/总分:10.00/10.00分
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>
using namespace std;
int main(){
char a;
cin>>a;
cout<<int(a);
return 0;
}

用例测试结果 运行时间 占用内存 提示 得分
用例1通过 2ms 256kb
3
用例2通过 2ms 356kb
3
用例3通过 18ms 360kb
2
用例4通过 2ms 360kb
2
提交答案本次得分/总分:10.00/10.00分
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>
using namespace std;
int main(){
int k;
cin>>k;
cout<<char(k);
return 0;
}

用例测试结果 运行时间 占用内存 提示 得分
用例1通过 2ms 364kb
4
用例2通过 13ms 364kb
3
用例3通过 20ms 256kb
3
提交答案本次得分/总分:10.00/10.00分
11输入整数显示十六进制(10分)
题目内容:

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

输入:一个非负整数。

输出:一个十六进制数

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

样例1输入:

31

样例1输出:

1f

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

#include <iostream>
using namespace std;
int main()
{
    int n;
    cin >> n;
    cout << hex<<n<<endl;
    return 0;
}

用例测试结果 运行时间 占用内存 提示 得分
用例1通过 2ms 256kb
2
用例2通过 2ms 360kb
2
用例3通过 2ms 228kb
2
用例4通过 2ms 364kb
2
用例5通过 4ms 228kb
2
提交答案本次得分/总分:10.00/10.00分
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>
using namespace std;
int main()
{
	int n, l;
	cin >>n;
	(n>=0)?cout <<n<<" "<<hex<<n<<" "<<oct<<n:cout<<n<<" "<<'-'<<hex<<-n<<" "<<'-'<<oct<<-n;
	return 0;
}

用例测试结果 运行时间 占用内存 提示 得分
用例1通过 2ms 360kb
3
用例2通过 2ms 256kb
3
用例3通过 2ms 256kb
2
用例4通过 3ms 384kb
2
提交答案本次得分/总分:10.00/10.00分

发布了5 篇原创文章 · 获赞 0 · 访问量 67

猜你喜欢

转载自blog.csdn.net/qq_35076612/article/details/104389600