信息学奥赛一本通 第五版(C++版)

信息学奥赛一本通 第五版(C++版)第一部分 C++语言

第一章 C++语言入门

第二节 C++语言程序设计 P15

1. 编写一个能够输出Hello,World!的程序,这个程序常常作为一个初学者接触一门新的编程语言所写的第一个程序,也经常用来测试开发、编译环境是否能够正常工作。

提示:Hello,World!中间没空格。
  程序:
#include
using namespace std;
int main(){
cout<<“Hello,World!”<<endl; /输出字符串"Hello,World!"/
return 0; /退出主函数/
}
【输入】  无
【输出】  Hello,World!

2.输入三个整数,整数之间由一个空格分隔,整数是32位有符号整数。把第二个输入的整数输出。

程序:
#include
using namespace std;
int main(){
int n; /定义变量n/
scanf("%*d%d%*d",&n); /读入三个整数,其中对第一、三个整数不进行操作,将第二个整数的值赋给n/
cout<<n<<endl; /输出n的值/
return 0; /退出主函数/
}
【输入】  123 456 789
【输出】  456

3.读入三个整数,按每个整数占8个字符的宽度,右对齐输出它们,按照格式要求依次输出三个整数,之间以一个空格分开。

程序:
#include
using namespace std;
int main(){
int a,b,c; /定义三个变量a,b,c/
cin>>a>>b>>c; /输入a,b,c的值/
printf("%8d %8d %8d",a,b,c); /%8d,每个整数占8个字符的宽度,输出a,b,c的值/
return 0; /退出主函数/
}
【输入】  123456789 0 -1
【输出】  123456789 0 -1

4.给定一个字符,用它构造一个底边长5个字符,高3 33个字符的等腰字符三角形。

【输入】输入只有一行,包含一个字符。
【输出】该字符构成的等腰三角形,底边长5 55个字符,高3 33个字符。
程序:
#include
using namespace std;
int main(){
char ch; /定义字符变量ch/
cin>>ch; /输入字符ch/
printf(" %c \n",ch);
printf(" %c%c%c \n",ch,ch,ch);
printf("%c%c%c%c%c",ch,ch,ch,ch,ch); /输出三角形/
return 0; /退出主函数/
}
【输入】  *
【输出】
*


*****

5.假设地球上的新生资源按恒定速度增长。照此测算,地球上现有资源加上新生资源可供x xx亿人生活a aa年,或供y yy亿人生活b bb年。

为了能够实现可持续发展,避免资源枯竭,地球最多能够养活多少亿人?
【输入】一行,包括四个正整数x,a,y,b,两个整数之间用单个空格隔开。x>y,a<b,ax<by,各整数均不大于10000。
【输出】一个实数z,表示地球最多养活z亿人,舍入到小数点后两位。
程序:
#include
using namespace std;
int main(){
double a,x,b,y; /定义题中变量/
cin>>x>>a>>y>>b; /输入x,a,y,b的值/
double z=(by-ax)/(b-a); /经过数学分析可得z=(by-ax)/(b-a)/
printf("%.2f",z); /输出z的值/
return 0; /退出主函数/
}

第二章 顺序结构程序设计

第二节 运算符和表达式 P22

1.T1006 : A+B问题

大部分的在线题库,都会将A+B问题作为第一题,以帮助新手熟悉平台的使用方法。
  A+B问题的题目描述如下:给定两个整数A和B,输出A+B的值。保证A,B 及结果均在整型范围内。现在请你解决这一问题。
【输入】一行,包含两个整数A,B,中间用单个空格隔开。A和B均在整型范围内。
【输出】一个整数,即A+B的值。保证结果在整型范围内。
【输入样例】1 2
【输出样例】3
程序:
#include
using namespace std;
int main(){
int a,b; /定义a,b两个变量/
cin>>a>>b; /输入两个整数,即a,b的值/
cout<<a+b<<endl; /输出a+b的值/
return 0; /退出主函数/
}

2.T1007 : 计算(a+b)×c的值

给定3个整数a,b,c,计算表达式(a+b)×c的值。
【输入】输入仅一行,包括三个整数a,b,c, 数与数之间以一个空格分开。(-10,000<a,b,c<10,000)
【输出】输出一行,即表达式的值。
【输入样例】2 3 5
【输出样例】25
程序:
#include
using namespace std;
int main(){
int a,b,c;
cin>>a>>b>>c;
cout<<(a+b)*c<<endl;
return 0; /退出主函数/
}

3.T1008 : 计算(a+b)/c的值

给定3个整数a,b,c,计算表达式(a+b)÷c的值。
【输入】输入仅一行,包括三个整数a,b,c, 数与数之间以一个空格分开。(-10,000<a,b,c<10,000,c≠0̸)
【输出】输出一行,即表达式的值。
【输入样例】1 1 3
【输出样例】0
程序:
#include
using namespace std;
int main(){
int a,b,c;
cin>>a>>b>>c;
cout<<(a+b)/c<<endl;
return 0; /退出主函数/
}

4.T1009 : 带余除法

给定被除数和除数,求整数商及余数。此题中请使用默认的整除和取余运算,无需对结果进行任何特殊处理。
【输入】一行,包含两个整数,依次为被除数和除数(除数非零),中间用一个空格隔开。
【输出】一行,包含两个整数,依次为整数商和余数,中间用一个空格隔开。
【输入样例】10 3
【输出样例】3 1
程序:
#include
using namespace std;
int main(){
int a,b;
cin>>a>>b;
cout<<a/b<<" "<<a%b<<endl;
return 0;
}

5.T1010 : 计算分数的浮点数值

两个整数a和b分别作为分子和分母,既分数a/b ,求它的浮点数值(双精度浮点数,保留小数点后9位)。
【输入】输入仅一行,包括两个整数a和b。
【输出】输出也仅一行,分数a/b 的浮点数值(双精度浮点数,保留小数点后9 位)。
【输入样例】5 7
【输出样例】0.714285714
程序:
#include
using namespace std;
int main(){
double a,b;
cin>>a>>b;
printf("%.9f",a/b);
return 0;
}

第三节 常量和变量 P25

1.T1011 : 甲流疫情死亡率

甲流并不可怕,在中国,它的死亡率并不是很高。请根据截止2009 年12 月22日各省报告的甲流确诊数和死亡数,计算甲流在各省的死亡率。
【输入】输入仅一行,有两个整数,第一个为确诊数,第二个为死亡数。
【输出】输出仅一行,甲流死亡率,以百分数形式输出,精确到小数点后3位。
【输入样例】10433 60
【输出样例】0.575%
程序:
#include
using namespace std;
int main(){
double a,b;
cin>>a>>b;
printf("%.3f%%",b/a*100);
return 0;
}

2.T1012 : 计算多项式的值

对于多项式f(x)=ax3+bx2+cx+d和给定的a,b,c,d,x,计算f(x)的值,保留到小数点后7位。
【输入】输入仅一行,包含5个实数,分别是x,及参数a,b,c,d的值,每个数都是绝对值不超过100的双精度浮点数。数与数之间以一个空格分开。
【输出】输出一个实数,即f(x)的值,保留到小数点后7位。
【输入样例】2.31 1.2 2 2 3
【输出样例】33.0838692
程序:
#include
using namespace std;
int main(){
double a,b,c,d,x,y;
cin>>x>>a>>b>>c>>d;
y=axxx+bxx+cx+d;
printf("%.7f",y);
return 0;
}

3.T1013 : 温度表达转化

利用公式C=5×(F−32)÷9(其中C表示摄氏温度,F表示华氏温度)进行计算转化,输入华氏温度F,输出摄氏温度C,要求精确到小数点后5位。
【输入】输入一行,包含一个实数F,表示华氏温度。(F≥−459.67)
【输出】输出一行,包含一个实数,表示对应的摄氏温度,要求精确到小数点后5位。
【输入样例】41
【输出样例】5.00000
程序:
#include
using namespace std;
int main(){
double F,C;
cin>>F;
C=5*(F-32)/9;
printf("%.5f",C);
return 0;
}

4.T1014 : 与圆相关的计算

给出圆的半径,求圆的直径、周长和面积。输入圆的半径实数r,输出圆的直径、周长、面积,每个数保留小数点后4位。圆周率取值为3.14159 。
【输入】输入包含一个实数r(0<r≤10,000),表示圆的半径。
【输出】输出一行,包含三个数,分别表示圆的直径、周长、面积,数与数之间以一个空格分开,每个数保留小数点后4位。
【输入样例】3.0
【输出样例】6.0000 18.8495 28.2743
程序:
#include
using namespace std;
#define PI 3.14159
int main(){
double r;
cin>>r;
printf("%.4f %.4f %.4f",2r,2rPI,rr*PI);
return 0;
}

5.T1015 : 计算并联电阻的阻值

对于阻值为r1 和r

  • 10
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值