蓝桥等考C++组别十八级
第一部分:选择题
1、
C++ L18 (
15
分)
已定义int
a
=
1
029
;
可以正确输出变量a的是( )。
A
.
printf("%c", a);
B.
printf("%d", a);
C.
printf("%e", a);
D.
printf("%f", a);
正确答案:B
2
、C++ L18 (
15
分)
执行下面的代码,输出的是( )。
double f = 3.14;
printf("%4f", f);
A
. 3.14
(注:前面有
3
个空格)
B. 3.14
(注:前面有
1
个空格)
C
.
3.140000
D.
3.140
正确答案:C
3
、C++ L18 (20分)
关于输入输出,以下说法不正确的是( )。
A
.
无需u
sing namespace std
语句,就可以使用s
canf
和printf
B.
按八进制的格式输出整型变量
n,使用
printf
("%o", n)
C.
输入十六进制整数到整型变量
n,使用scanf
("%x", &n)
D. printf
函数中,使用
“%
d
”可以输出短整型、整型和超长整型的数据
正确答案:D
第二部分:编程题
4、
C++ L18
三角形
数列
(
5
0分)
题目名称:
三角形数列
题目描述:
给定正整数n,按如图方式构成一个n行的三角形数列:从下往上,第一行依次写上1,2,3,
……
n,从第二行开始,每行都比下一行少一个数,且每行的每个数都是其左下方和右下方两个数之和,并且在这两个数正中间位置的正上方。
例如:n=6时,三角形数列如下图所示:
112
48 64
20 28 36
8 12 16 20
3 5 7 9 11
1 2 3 4 5 6
给定一个正整数n,输出题目要求的三角形数列。
输入:
一个正整数n(
2
<
=
n
<= 20
)。
输出:
有n行,为题目要求的三角形数列;
每个数的显示占用
8
个字符宽度,且向左对齐,同一行中两个相邻的数之间没有额外的空格。
输入样例
1
:
6
输出样例
1
:
112
48 64
20 28 36
8 12 16 20
3 5 7 9 11
1 2 3 4 5 6
参考程序:
#include<cstdio>
const int N = 20;
int a[N + 1][N + 1];
int main()
{
int n;
scanf("%d", &n);
for (int i = 1; i <= n; i++)
{
a[n][i] = i;
}
for (int i = n - 1; i > 0; i--)
{
for (int j = 1; j <= i; j++)
a[i][j] = a[i + 1][j] + a[i + 1][j + 1];
}
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n - i; j++)
printf(" ");
for (int j = 1; j <= i; j++)
{
printf("%-8d", a[i][j]);
}
printf("\n");
}
return 0;
}
测试数据:
1.in
3
1.out
8
3 5
1 2 3
2.in
6
2.out
112
48 64
20 28 36
8 12 16 20
3 5 7 9 11
1 2 3 4 5 6
3.in
10
3.out
2816
1280 1536
576 704 832
256 320 384 448
112 144 176 208 240
48 64 80 96 112 128
20 28 36 44 52 60 68
8 12 16 20 24 28 32 36
3 5 7 9 11 13 15 17 19
1 2 3 4 5 6 7 8 9 10
余下见附件目录下
testcase
.txt
蓝桥杯青少组C++组别18级编程练习真题(第6套,共8套)