NOI题库答案(1.1-编程基础之输入输出)
NOI题库网址:http://noi.openjudge.cn/
1.1-01:Hello,World!
总时间限制: 1000ms 内存限制: 65536kB
描述
对于大部分编程语言来说,编写一个能够输出“Hello, World!”的程序往往是最基本、最简单的。因此,这个程序常常作为一个初学者接触一门新的编程语言所写的第一个程序,也经常用来测试开发、编译环境是否能够正常工作。
现在你就需要完成这样一个程序。
输入
无。
输出
一行,仅包含一个字符串:“Hello, World!”
样例输入
(无)
样例输出
Hello, World!
提示
使用英文标点符号;逗号后面有一个空格。
答案
#include <iostream>
using namespace std;
int main()
{
cout<<"Hello, World!"<<endl;
return 0;
}
1.1-02:输出第二个整数
总时间限制: 1000ms 内存限制: 65536kB
描述
输入三个整数,把第二个输入的整数输出。
输入
只有一行,共三个整数,整数之间由一个空格分隔。整数是32位有符号整数。
输出
只有一行,一个整数,即输入的第二个整数。
样例输入
123 456 789
样例输出
456
答案
#include <iostream>
using namespace std;
int main() {
int a[3]; //开辟一个数组
int i,j;
for (i = 0 ; i < 3 ; i++)
{
cin>>a[i];
} //输入三个数
cout<<a[1]; //输出第二个数
return 0;
}
1.1-03:对齐输出
总时间限制: 1000ms 内存限制: 65536kB
描述
读入三个整数,按每个整数占8个字符的宽度,右对齐输出它们。
输入
只有一行,包含三个整数,整数之间以一个空格分开。
输出
只有一行,按照格式要求依次输出三个整数,之间以一个空格分开。
样例输入
123456789 0 -1
样例输出
123456789 0 -1
答案
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
int a[3];
int i,j;
for ( i = 0 ; i < 3 ; i++)
cin>>a[i];
for ( i = 0 ; i < 3 ; i++)
cout<<setw(8)<<a[i]<<" "; //setw()表示要占多少个空格
return 0;
}
1.1-04:输出保留3位小数的浮点数
总时间限制: 1000ms 内存限制:65536kB
描述
读入一个单精度浮点数,保留3位小数输出这个浮点数。
输入
只有一行,一个单精度浮点数。
输出
也只有一行,读入的单精度浮点数。
样例输入
12.34521
样例输出
12.345
答案
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
float n;
cin>>n;
printf("%.3lf",n); //%.数字f或%.数字lf表示保留几位小数
return 0;
}
1.1-05:输出保留12位小数的浮点数
总时间限制: 1000ms 内存限制: 65536kB
描述
读入一个双精度浮点数,保留12位小数,输出这个浮点数。
输入
只有一行,一个双精度浮点数。
输出
也只有一行,保留12位小数的浮点数。
样例输入
3.1415926535798932
样例输出
3.141592653580
答案
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
double n;
cin>>n;
printf("%.12lf",n);
return 0;
}
1.1-06:空格分隔输出
总时间限制: 1000ms 内存限制: 65536kB
描述
读入一个字符,一个整数,一个单精度浮点数,一个双精度浮点数,然后按顺序输出它们,并且要求在他们之间用一个空格分隔。输出浮点数时保留6位小数。
输入
共有四行:
第一行是一个字符;
第二行是一个整数;
第三行是一个单精度浮点数;
第四行是一个双精度浮点数。
输出
输出字符、整数、单精度浮点数和双精度浮点数,之间用空格分隔。
样例输入
a
12
2.3
3.2
样例输出
a 12 2.300000 3.200000
答案
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
char a;
int b;
float c;
double d;
cin>>a>>b>>c>>d;
printf("%c %d %f %f\n",a,b,c,d);
return 0;
}
1.1-07:输出浮点数
总时间限制: 1000ms 内存限制: 65536kB
描述
读入一个双精度浮点数,分别按输出格式“%f”,“%f”保留5位小数,“%e”和“%g”的形式输出这个整数,每次在单独一行上输出。
输入
一个双精度浮点数。
输出
输出有四行:
第一行是按“%f”输出的双精度浮点数;
第二行是按“%f”保留5位小数输出的双精度浮点数;
第三行是按“%e”输出的双精度浮点数;
第四行是按“%g”输出的双精度浮点数。
样例输入
12.3456789
样例输出
12.345679
12.34568
1.234568e+001
12.3457
答案
#include <iostream>
#include <stdio.h>
#include <iomanip>
using namespace std;
int main()
{
double a;
scanf("%lf",&a);
printf("%lf\n",a);
printf("%0.5lf\n",a);
printf("%e\n",a);
printf("%g\n",a);
return 0;
}
1.1-08:字符三角形
总时间限制: 1000ms 内存限制: 65536kB
###描述
给定一个字符,用它构造一个底边长5个字符,高3个字符的等腰字符三角形。
输入
输入只有一行, 包含一个字符。
输出
该字符构成的等腰三角形,底边长5个字符,高3个字符。
样例输入
*
样例输出
*
***
*****
答案
#include <iostream>
using namespace std;
int main()
{
char n;
cin>>n;
cout<<" "<<n<<endl;
cout<<" "<<n<<n<<n<<endl;
cout<<n<<n<<n<<n<<n<<endl;
return 0;
}
1.1-09:字符菱形
总时间限制: 1000ms 内存限制: 65536kB
描述
给定一个字符,用它构造一个对角线长5个字符,倾斜放置的菱形。
输入
输入只有一行, 包含一个字符。
输出
该字符构成的菱形。
样例输入
*
样例输出
*
***
*****
***
*
答案
#include <iostream>
using namespace std;
int main()
{
char n;
cin>>n;
cout<<" "<<n<<endl;
cout<<" "<<n<<n<<n<<endl;
cout<<n<<n<<n<<n<<n<<endl;
cout<<" "<<n<<n<<n<<endl;
cout<<" "<<n<<endl;
return 0;
}
1.1-10:超级玛丽游戏
总时间限制: 1000ms 内存限制: 65536kB
描述
超级玛丽是一个非常经典的游戏。请你用字符画的形式输出超级玛丽中的一个场景。
输入
无。
输出
如样例所示。
样例输入
(无)
样例输出
********
************
###....#.
#..###.....##....
###.......##### ### ### ### ###
........... #...# #...# #...# #...#
##*###### #.#.# #.#.# #.#.# #.#.#
###*******##### #.#.# #.#.# #.#.# #.#.#
...#***.****.*###.... #...# #...# #...# #...#
....**********##..... ### ### ### ###
....**** *****....
### ###
##### #####
############################################### ##########################
#...#......#.##...#......#.##...#......#.##------------------# #...#......#.##------------------#
#################################------------------# ############------------------#
#..#....#....##..#....#....##..#....#....################ #..#....#....################
################################ #----------# ########### #----------#
#.....#......##.....#......##.....#......# #----------# #.....#......# #----------#
################################ #----------# ########### #----------#
#.#..#....#..##.#..#....#..##.#..#....#..# #----------# #.#..#....#..# #----------#
################################ ######### ########### #########
提示
必须严格按样例输出,每行的行尾不能有空格。
答案
#include <iostream>
using namespace std;
int main()
{
cout<<" ********"<<endl;
cout<<" ************"<<endl;
cout<<" ###....#."<<endl;
cout<<" #..###.....##...."<<endl;
cout<<" ###.......##### ### ### ### ###"<<endl;
cout<<" ........... #...# #...# #...# #...#"<<endl;
cout<<" ##*###### #.#.# #.#.# #.#.# #.#.#"<<endl;
cout<<" ###*******##### #.#.# #.#.# #.#.# #.#.#"<<endl;
cout<<" ...#***.****.*###.... #...# #...# #...# #...#"<<endl;
cout<<" ....**********##..... ### ### ### ###"<<endl;
cout<<" ....**** *****...."<<endl;
cout<<" ### ###"<<endl;
cout<<" ##### #####"<<endl;
cout<<"############################################### ##########################"<<endl;
cout<<"#...#......#.##...#......#.##...#......#.##------------------# #...#......#.##------------------#"<<endl;
cout<<"#################################------------------# ############------------------#"<<endl;
cout<<"#..#....#....##..#....#....##..#....#....################ #..#....#....################"<<endl;
cout<<"################################ #----------# ########### #----------#"<<endl;
cout<<"#.....#......##.....#......##.....#......# #----------# #.....#......# #----------#"<<endl;
cout<<"################################ #----------# ########### #----------#"<<endl;
cout<<"#.#..#....#..##.#..#....#..##.#..#....#..# #----------# #.#..#....#..# #----------#"<<endl;
cout<<"################################ ######### ########### #########"<<endl;
return 0;
}