XiaoHui.Net 笑汇程序员论坛程序员考试(软件水平与资格考试)

   求助:一道程序员考试的题目


页: [1]

lwguanggo2006-3-23 05:05
求助:一道程序员考试的题目

阅读下列算法说明和算法,将应填入__处的字句写在答题纸的对应栏内.
[算法说明]
   为便于描述屏幕上每个像素的位置,在屏幕上建立平面直角坐标系,屏幕左上角的像素设为原点,水向右向设为x轴,垂直向下方向设为y轴.
   设某种显示器的像素有128*128,即在每条水平线和每条垂直线上都有128个像素.这样,屏幕上的每个像素可用坐标(x, y)来描述其位置,其中x和y都是整数,0<=x<=127,0<= y <=127
   现用一维数组MAP来存储整个一屏显示的位图信息.数组的每个元素有16位无符号二进制,其中每一位对应一个像素,”1”表示该像素”亮”,”0”表示该像素”暗”.数组MAP的各个元素与屏幕上的像素相对应后,其位置可排列如下:
   MAP(0),MAP(1),…….MAP(7)
   MAP(8),MAP(9),…….MAP(15)
   ……..
   MAP(1016),MAP(1017),….MAP(1023)
   下述得法可根据用户要求,将指定坐标(x,y)上的像素置为”亮”或”暗”  
   在该得法中,变量X,Y,V,S,K都是16位无符号的二进制整数.数组BIT中的每个元素BIT(K)(K=0,…,15)的值是左起第K位为1,其余位均为0的16位无符号二进制整数,即BIT(K)的值为215-K
[算法]
第一步根据用户指定像素的位置坐标(x, y)算出该像素的位置所属的数组元素MAP(V)这一步的具体实现过程如下:
(1)        将x存入变量X,将y存入Y
(2)        将Y左移__(1)__位,仍存入变量Y
(3)        X右移__(2)__位,并存入变量S
(4)        计算Y+S,存入变量V,得到像素的位置所属的数组元素MAP(V)
第(2)步算出指定像素在MAP(V)中所对应的位置K(K=0,….,15)这一步的具体实现过程如下:
将变量X与二进制数__(3)__进行逻辑与运算,并存入变量K
第(3)步根据用户要求将数组元素MAP(V)左起第K位设置为”1”或”0”这一步的具体实现过程如下:
(1)        为在指定像素置为”亮”,应将MAP(V)与BIT(K)进行逻辑__(4)__运算,并存入MAP(V)
(2)        为在指定像素置”暗”,应先将BIT(K)各位取反,再将MAP(V)与BIT(K)进行逻辑__(5)__运算,并存入MAP(V)

请问一下各位大侠是如何做的?谢谢!
答案是:(1)3  (2)4   (3)1111  (4)或  (5)与


lwguanggo2006-3-27 14:48
晕~~~~
怎么没人回复???

fenving2006-4-16 04:31
足足咱

不会阿,这个题得让晓辉老大回 啊


查看完整版本: 求助:一道程序员考试的题目