蓝桥等考C++组别十八级
第一部分:选择题
1、
C++ L18 (
15
分)
下面哪个语句不能输出字符“A”?( )
A
.
printf("%c", 'A');
B.
std::cout << 'A';
C.
putchar('A');
D.
getchar('A');
正确答案:D
2
、C++ L18 (
15
分)
执行下面的代码,输出的是( )。
double f = 3.1415926;
printf("%8.2f", f);
A
. 3.14
(注:前面有五个空格)
B. 3.14
(注:前面有四个空格)
C
.
3.141593
(注:前面有
一
个空格)
D.
3.1415926
正确答案:B
3
、C++ L18 (20分)
假定包含了必要的头文件,并定义了字符串变量:
char s[20];
要
求
从键盘中输入“
I love C++
”并正确保存到字符串s中,以下代码
不能实现
的是( )。
A
. std::cin.getline(s, 21);
B. fgets(s, 21, stdin);
C. scanf("%s", s);
D.
int i = 0;
char ch;
while(1)
{
ch = getchar();
if (ch == '\n')
break;
s[i] = ch;
i++;
}
正确答案:C
第二部分:编程题
4、
C++ L18
杨辉三角形(
5
0分)
题目名称:
杨辉三角形
题目描述:
杨辉三角形,又称帕斯卡三角形,它的排列
形式
如等腰三角形。它的构建
要求
如下:
1
. 每一行的第一个数字和最后一个数字都为1
2
. 每一行都比上一行多一个数字
3
. 从第三行开始,除了
开头和最后的数字
为
1,其它的数都是它左上方和右上方的两个数之和。
例如,杨辉三角形的前6行如下:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
给定一个正整数n,输出杨辉三角形的前n行。
输入:
一个正整数n(n
<= 20)
。
输出:
有n行,为杨辉三角形的前n行;
每个数的显示占用6个字符宽度,且向左对齐,同一行中两个相邻的数之间没有额外的空格。
输入样例
1
:
6
输出样例
1
:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
参考程序:
#include<cstdio>
using namespace std;
const int N = 20;
int a[N + 1][N];
int main()
{
int n;
scanf("%d", &n);
for (int i = 1; i <= n; i++)
{
a[i][1] = 1;
a[i][i] = 1;
}
for (int i = 2; i <= n; i++)
{
for (int j = 2; j < i; j++)
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
}
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n - i; j++)
printf(" ");
for (int j = 1; j <= i; j++)
{
printf("%-6d", a[i][j]);
}
printf("\n");
}
return 0;
}
测试数据:
1.in
3
1.out
1
1 1
1 2 1
2.in
6
2.out
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
3.in
10
3.out
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
余下见附件目录下
testcase
.txt
蓝桥杯青少组C++组别18级编程练习真题(第3套,共8套)