蓝桥等考C++组别十八级
第一部分:选择题
1、
C++ L18 (
15
分)
下面哪个语句不能从键盘读取一个字符并存放到变量ch中?( )
A
. std::cin >> ch;
B.
putchar(ch);
C.
ch = getchar();
D.
scanf("%c", &ch);
正确答案:
B
2
、C++ L18 (
15
分)
假定定义了变量:
int n;
以下哪个语句可以正确接收十六进制数“1F”?( )
A
.
scanf("%d",
&n
);
B. scanf("%
h
", &n);
C
.
scanf("%x", &n);
D. scanf("%o", &n);
正确答案:
C
3
、C++ L18 (20分)
执行以下代码,从键盘输入
123456 123456 123456 123456
时,输出结果是( )。
int a = 0, b = 0, c = 0, d = 0;
scanf("%4d%*d%2d%3d", &a, &b, &c, &d);
cout << a << " " << b << " " << c << " " << d;
A
. 1234 56 12 345
B. 1234 123456 12 345
C. 123456 12 345 0
D.
1234 12 345 0
正确答案:
D
第二部分:编程题
4、
C++ L18
矩阵旋转
(
5
0分)
题目名称:
矩阵旋转
题目描述:
输入一个n行m列的矩阵,将它顺时针旋转9
0
度后输出。
例如:n=2,m=3,数据
如
下
图所示:
1
2
3
4
5
6
4
1
5
2
6
3
1
2
3
4
5
6
4
1
5
2
6
3
输入:
第一行包含两个整数n(1 <= n <= 100)和m(1 <= m <= 100),
分别
表示矩阵的行数和列数。两个整数之间用一个空格隔开。
接下来有n行,每行m个整数,表示矩阵每一行的元素。相邻两个整数之间用一个空格隔开,每个元素均在
0
~
9999
之间。
输出:
m行,每行n个整数,为顺时针旋转90度后的矩阵。每个整数的显示占5个字符宽度,并向左对齐。
输入样例:
2 3
1 2 3
4 5 6
输出样例:
4 1
5 2
6 3
参考程序:
#include<cstdio>
using namespace std;
const int N = 101;
int a[N][N];
int main()
{
int m, n ;
scanf("%d%d", &n, &m);
for(int i=0; i<n; i++)
{
for(int j=0; j<m; j++)
{
scanf("%d", &a[i][j]);
}
}
for(int i=0; i<m; i++)
{
for(int j=0; j<n; j++)
{
printf("%-5d", a[n-1-j][i]);
}
printf("\n");
}
return 0;
}
测试数据:
1.in
2 3
1 2 3
4 5 6
1.out
4 1
5 2
6 3
2.in
5 4
9850 984 9282 5199
2366 5593 6077 6987
9787 5308 376 7656
2016 3904 8922 2654
594 1532 9887 9472
2.out
594 2016 9787 2366 9850
1532 3904 5308 5593 984
9887 8922 376 6077 9282
9472 2654 7656 6987 5199
余下见附件目录下
testcase
.txt
蓝桥杯青少组C++组别18级编程练习真题(第4套,共8套)