《C++程序设计实践》实验3

《C++程序设计实践》实验3
一、课内实验题(共10小题,100分)
题型得分 98.33
【描述】
你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?
【输入】
输入n,x和y(均为整数),以整数间隔。
【输出】
输出完整的苹果数(整数)。
【输入示例】
10 4 9
【输出示例】
7
(10分)
我的答案:
#include<bits/stdc++.h>
using namespace std;
int main(){
int a;
double b,c;
cin>>a>>b>>c;
cout<<max(0,int(a-ceil(c/b)));

}
题目得分 10
【描述】
晶晶的朋友贝贝约晶晶下周一起去看展览,但晶晶每周的1、3、5必须上课,请帮晶晶判断她能否接受贝贝的邀请,如果能输出YES;如果不能则输出NO。
【输入】
输入贝贝邀请晶晶去看展览的日期,用数字1到7表示从星期一到星期日。
【输出】
如果晶晶可以接受贝贝的邀请,输出YES,否则,输出NO。注意YES和NO都大写!
【输入示例】
2
【输出示例】
YES
(10分)
我的答案:
#include<bits/stdc++.h>
using namespace std;
int main(){
int a;
cin>>a;
if(a&1 && a!=7)cout<<“NO”;
else cout<<“YES”;
}
题目得分 10
【描述】
输入a、b和c,若它们能构成三角形,则输出三角形周长,否则输出“Invalid”。
【输入】
输入a、b和c。
【输出】
输出三角形周长或“Invalid”。
【输入示例1】
1 2 3
【输出示例1】
Invalid
【输入示例2】
3 3 3
【输出示例2】
9
(10分)
我的答案:
#include<bits/stdc++.h>
using namespace std;
int main(){
double a,b,c;
cin>>a>>b>>c;
if(a+b<=c||a+c<=b||b+c<=a){
cout<<“Invalid”;
}
else cout<<a+b+c;
}
题目得分 10
【描述】
输入一个整数,输出分段函数的值。分段函数的数学定义如下:

【输入】
输入一个整数。
【输出】
输出分段函数的值。
【输入示例】
100
【输出示例】
10005
【来源】
《程序设计基础——以C++为例》第2章实验7。
(10分)
我的答案:
#include<bits/stdc++.h>
using namespace std;
int main(){
int a;
cin>>a;
if(a<0){
cout<<a+1;
}
else if(a<100){
cout<<aaa;
}
else{
cout<<a*a+5;
}
}
题目得分 10
【描述】
求一元二次方程

的根,系数a、b、c为浮点数。
【输入】
输入a、b和c。
【输出】
若无穷解,则输出:Infinitely solution。
若无解,则输出:No solution。
若是一个实根,则输出格式为:x=…,数字、符号之间没有空格,结果保留2位小数。
若两个实根相等,则输出格式为:x1=x2=…,数字、符号之间没有空格,结果保留2位小数。
若是两个实根,则输出格式为:x1=…;x2=…,数字、符号之间没有空格,结果保留2位小数。
若是虚根,则输出:Imaginary root。
【输入示例】
2.1 8.9 3.5
【输出示例】
x1=-0.44;x2=-3.80
【提示】
可以使用数学库中的sqrt函数和fabs函数。方程的根以及其它中间变量用double类型变量表示。
【来源】
《程序设计基础——以C++为例》第2章实验8强化练习。
(10分)
我的答案:
#include
#include<stdio.h>
#include
using namespace std;
int main(){
double a,b,c;
cin>>a>>b>>c;
if(a0&&b0&&c0)
cout<<“Infinitely solution”<<endl;
else if(a
0&&b0&&c!=0)
cout<<“No solution”<<endl;
else if(a
0&&b!=0&&c!=0)
printf(“x=%.2f”,-c/b);
else if(bb-4ac==0)
printf(“x1=x2=%.2f”,-b/a/2);
else if(b
b-4ac<0)
cout<<“Imaginary root”<<endl;
else
printf(“x1=%.2f;x2=%.2f”,(-b+sqrt(bb-4ac))/2/a,(-b-sqrt(bb-4ac))/2/a);
}
题目得分 10
【描述】
某校学生成绩的绩点计算方法如下(百分制折合为绩点):
(A)90~100分,折合4.0~5.0绩点。
(B)80~89分,折合3.0~3.9绩点。
(C)70~79分,折合2.0~2.9绩点。
(D)60~69分,折合1.0~1.9绩点。
(E)59分及其以下为不及格。
【输入】
输入一个整数表示学生的成绩(0~100)。
【输出】
如果输入的学生成绩不合法,则输出“Invalid”。
如果输入的学生成绩为不及格,则输出“Failed”。
否则,输出成绩对应的绩点,结果保留一位小数。
【输入示例】
74
【输出示例】
2.4
(10分)
我的答案:
#include<bits/stdc++.h>
using namespace std;
int main(){
char a[100];
double b=0;
cin>>a;
for(int i=0;i<strlen(a);i++){
if(a[i]>=‘0’&&a[i]<=‘9’){
b*=10;
b+=a[i]-48;
}
else{
cout<<“Invalid”;
return 0;
}
}
if(b<60){
cout<<“Failed”;
}
else if(b<0||b>100){
cout<<“Invalid”;
}
else{
b-=50;
b/=10;
printf(“%.1f”,b);
}
}
题目得分 10
【描述】
编写程序,输入三角形三条边a、b和c(假设为实数),判断它们能否构成三角形。若不能构成三角形,则输出“Don’t make a triangle”;若能构成三角形,进一步判断是何种三角形(等边三角形、等腰三角形、直角三角形、等腰直角三角形还是一般三角形等),并输出相应的信息(Equilateral triangle、Isosceles triangle、Right triangle、Isosceles Right triangle、General triangle)。
【输入】
三角形三条边a、b和c,以空格间隔。
【输出】
若不能构成三角形,输出“Don’t make a triangle”。否则输出相应的三角形类型信息。
【输入示例1】
1 2 3
【输出示例1】
Don’t make a triangle
【输入示例2】
4 2 5
【输出示例2】
General triangle
【提示】
可以利用勾股定理逆定理判断直角三角形。
应该避免直接对浮点数进行相等(==)比较,因为浮点数的误差可能造成两个本来应该相等的浮点数不相等。
【来源】
《程序设计基础——以C++为例》第2章实验8。
(10分)
我的答案:
#include<bits/stdc++.h>
using namespace std;
signed main(){
double k[3];
for(int i=0;i<3;i++)cin>>k[i];
sort(k,k+3);
if(k[0]+k[1]<=k[2])cout<<“Don’t make a triangle”;
else{
if(k[0]-k[1]==0&&k[1]-k[2]==0)cout<<“Equilateral triangle”;
else if(k[0]-k[1]==0){
if(k[0]*k[0]+k[1]*k[1]==k[2]*k[2])cout<<“Lsosceles Right triangle”;
else cout<<“Lsosceles Right triangle”;
}
else if(k[0]*k[0]+k[1]*k[1]==k[2]*k[2])cout<<“Right triangle”;
else cout<<“General triangle”;
}
}
题目得分 8.33
【描述】
某电网执行“阶梯电价”,居民用户电价分为两个“阶梯”:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时;超过50千瓦时的,超出部分的用电量,电价上调0.05元/千瓦时。请编写程序计算电费。结果保留2位小数。
【输入】
一行中输入用电量。
【输出】
一行中输出电费。
【输入示例】

100
【输出示例】
cost = 55.50
(10分)
我的答案:
#include<bits/stdc++.h>
using namespace std;
int main(){
double a;
cin>>a;
cout<<“cost = “;
if(a>50){
a-=50;
printf(”%.2f”,500.53+a0.58);
}
else{
printf(“%.2f”,a*0.53);
}
}
题目得分 10
【描述】
输入学生的考试成绩(0~100),将学生的成绩划分等级并输出。学生的成绩可分为5个等级:90~100为A级,80~89为B级,70~79为C级,60~69为D级,0~59为E级。要求用switch语句。
【输入】
输入学生的考试成绩(0~100)。
【输出】
输出等级。
【输入示例】
91
【输出示例】
A
【提示】
假设学生的成绩为score,则score/10的一个值就代表了10种情况,例如score/10为7时,就代表成绩70~79的情况。
【来源】
《程序设计基础——以C++为例》第2章实验9。
(10分)
我的答案:
#include<bits/stdc++.h>
using namespace std;
int main(){
int a;
cin>>a;
a/=10;
switch (a){
case 10:
cout<<“A”;
break;
case 9:
cout<<“A”;
break;
case 8:
cout<<“B”;
break;
case 7:
cout<<“C”;
break;
case 6:
cout<<“D”;
break;
}
if(a<6){
cout<<“E”;
}

}
题目得分 10
【描述】
编写程序,将输入的任意3个整数从小到大输出,其间以"->“相连。
【输入】
一行中输入三个整数,其间以空格间隔。
【输出】
一行中将三个整数从小到大输出,其间以”->“相连。
【输入示例】
4 2 8
【输出示例】
2->4->8
(10分)
我的答案:
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[10];
for(int i=0;i<=2;i++){
cin>>a[i];
}
sort(a,a+3);
cout<<a[0]<<”->“<<a[1]<<”->"<<a[2];
}
题目得分 10

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值