C++第二周练习

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;
	
} 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值