蓝桥等考C++组别十八级
第一部分:选择题
1、
C++ L18 (
15
分)
C
/
C++语言中格式化输出函数是( )。
A
.
printf
(
)
B.
print
()
C.
std
::cout()
D.
outputf()
正确答案:A
2
、C++ L18 (
15
分)
假定定义了变量:
double n;
以下正确的输入语句是( )。
A
.
scanf("%d",
&
n);
B. scanf("%lf", &n);
C
.
scanf("%f", &n);
D. scanf("%llf", &n);
正确答案:B
3
、C++ L18 (20分)
假定包含了必要的头文件,并定义了字符串变量:
char s[20];
从键盘输入一行字符串“I
have a dream
”;以下能正确输入到字符串s的代码是( )。
A
. fgets(s, 100, stdin);
B. std::cin >> s;
C. scanf("%s", s);
D.
getline(s, stdin);
正确答案:A
第二部分:编程题
4、
C++ L18
十六进制直角三角形
(
5
0分)
题目名称:
十六进制直角三角形
题目描述:
输入一个十六进制整数n和一个十进制整数h,根据规则,输出一个十六进制直角三角形。
1
.
第一行的数为
n
;
2
.
从第二行起,每一行都比上一行多一个数;
3
.
按从左往右,从上往下的顺序排列,每一个数都比上一个数大h。
例如
:当
n = 14,
h
= 5
时,十六进制直角三角形为:
14
19 1E
23 28 2D
32 37 3C 41
46 4B 50 55 5A
第1行的数是十六进制数1
4
;
第2行第1个数是十六进制数
19
,比十六进制数14大
5
;第2个数是十六进制数1
E
,比十六进制数
19
大
5
;
第3行第1个数是十六进制数
23
,比十六进制数
1E
大
5
;
……
以此类推。
输入:
仅1行,包含一个十六进制整数
n
和一个十进制整数h,两数之间用一个空格隔开。
两个数都不大于十进制数
20
。
输出:
h行,按样例的格式进行输出;每个十六进制数的显示占用
5
个字符宽度,且向左对齐,两个相邻的十六进制数之间没有额外的空格。
注意:
1
.
三角形图案的第一行前面不能有多余的空行;
2
.
三角形图案的最左侧从第一列开始输出,十六进制数严格按题目要求的格式显示,数之间的空格不能多也不能少
;
3.
十六进制数中的英文字符统一用大写字母表示。
输入样例
1
:
14 5
输出样例
1
:
14
19 1E
23 28 2D
32 37 3C 41
46 4B 50 55 5A
输入样例
2
:
F 6
输出样例
2
:
F
15 1B
21 27 2D
33 39 3F 45
4B 51 57 5D 63
69 6F 75 7B 81 87
参考程序:
#include<iostream>
#include<cstdio>
using namespace std;
const int N = 100;
int p[N + 1][N + 1];
int main()
{
int a, h;
scanf("%x%d", &a, &h);
p[1][1] = a;
for (int i = 2; i <= h; i++)
{
p[i][1] = p[i - 1][i - 1] + h;
for (int j = 2; j <= i; j++)
{
p[i][j] = p[i][j - 1] + h;
}
}
for (int i = 1; i <= h; i++)
{
for (int j = 1; j <= i; j++)
{
printf("%-5X", p[i][j]);
}
printf("\n");
}
return 0;
}
测试数据:
1.in
14 5
1.out
14
19 1E
23 28 2D
32 37 3C 41
46 4B 50 55 5A
2.in
F 6
2.out
F
15 1B
21 27 2D
33 39 3F 45
4B 51 57 5D 63
69 6F 75 7B 81 87
余下见附件目录下
testcase
.txt
蓝桥杯青少组C++组别18级编程练习真题(第2套,共8套)