试题一至试题三是必答题
试题一(共15分)
阅读以下说明和流程图,回答问题1至问题3,将解答填入答题纸的对应栏内。
[说明]
信息处理过程中经常需要将图片或汉字点阵做旋转处理。一个矩阵以顺时针方向旋转90°后可以形成另一个矩阵,如下图所示:
|
───→ |
|
流程图1-1描述了对n*n矩阵的某种处理。流程图1-2是将矩阵A顺时针旋转90°形成矩阵B的具体算法。
[流程图1-1] [流程图1-2]
[问题1](3分)
请写出以下3*3单位矩阵沿顺时针方向旋转90°后所形成的矩阵。
[问题2](3分)
如果以下3*3矩阵沿顺时针方向旋转90°后所形成的矩阵就是原来的矩阵:
其中,位于*处的元素需要考生填写
请完整地写出该矩阵。
[问题3](9分)
在上述流程图1-1和1-2的算法中,
(1)矩阵A第i行第j列的元素A(i,j)被复制到矩阵B中的哪个位置?
(2)A(i,j)后来又被复制到矩阵C中的哪个位置?
(3)填补流程图1-2中的空缺。
试题二(共15分)
阅读以下说明和C语言函数,将应填入__(n)__处的字句写在答题纸的对应栏内。
[说明]
函数chanse(int num)的功能是对四位以内(含四位)的十进制正整数num进行如下的变换:将num的每一位数字重复一次,并返回变换结果。例如,若num=5234,则函数的返回值为55223344,其变换过程可描述为:
(4*10+4)*1 + (3*10+3)*100 + (2*10+2)*10000 + (5*10+5)*1000000 = 55223344
[C语言函数]
long change (int num)
{
int d, m =num;
long result, mul;
if (num <= 0 || [__(1)__) /*若num不大于0或num 的位数大于4,则返回-1*/
return -1;
mul = 1;
__(2)__;
while (m > O) {
d = m % 10;
m = __(3)__;
result = result + (__(4)__) * mul;
mul = __(5)__;
}
return result;
}
责任编辑:小草