【具体要求】 二维码是现在日常生活中最常用到的一种编码,比如名片、传单、产品包装上都会用到二维码。
不知道同学们有没有发现一个有趣的现象,二维码是不规律的,但是我们不管从哪个角度去扫码,都能正确识别。主要是因为二维码有三个定位点,手机通过这三个点位置来确定二维码编码的区域和角度。
如下图所示:
现要求输入一个由 0 和 1 组成的正方形二维码矩阵(且左上角、右上角、左下角三个定位点必须为“ 1 ”),将二维码顺时针旋转 90 度后输出。
输入共 n+1 行,第一行输入一个正整数 ( 4 \le n \le 32 ),表示该二维码矩阵大小为 n \times n ;
第 2 \sim n+1 行,每行 n 个由 0 或 1 组成,数字之间用空格隔开,代表二维码矩阵(且左上角、右上角、左下角三个定位点必须为“ 1 ”)。
输出 n 行,每行 n 个正整数,输出矩阵为顺时针旋转 90 度后的矩阵二维码。
4 1 0 0 1 0 1 0 1 1 1 0 0 1 0 1 0
1 1 0 1 0 1 1 0 1 0 0 0 0 0 1 1
【评分标准】
本题共有五组测试数据,每通过一组测试数据得 10 分,满分 50 分。
蓝桥等考 C++组单选题样题(十一级)
阅读以下程序片段,最终的输出结果是选项( )。
int a[4][2] = {{1, 0}, {0, 1}, {-1, 0}, {0, -1}};
cout << ((a[1][1] * a[3][0] + 3) % 4);
A 0
B 1
C 2
D 3
【答案】D
【解析】四行二列的二维数组中,a[1][1] = 1,a[3][0] = 0,最终表达式为(1 * 0 + 3)% 4 = 3。
蓝桥等考 C++组编程题样题(十一级)