某字库采用点阵方式描述汉字字形,点阵规模为16×16,每个点用1个二进制位表示,“0”表示白点,“1”表示黑点,逐行编码。某一行的位代码为“0101100010010000”,则该行正确的图形表示为()。

题目
某字库采用点阵方式描述汉字字形,点阵规模为16×16,每个点用1个二进制位表示,“0”表示白点,“1”表示黑点,逐行编码。某一行的位代码为“0101100010010000”,则该行正确的图形表示为()。

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

阅读以下函数说明和C程序,将C程序中(1)~(6)空缺处的语句补充完整。

【说明】

喜迎2008年北京奥运会!以下【C程序】能将一个给定汉字(例如,奥运会的“会”字)的点阵逆时针旋转90°,并输出旋转前后的点阵数据及字形。

图1-15是汉字“会”字的16×16点阵字形,用数字0表示空白位置,用数字1表示非空白位置,“会”字的第1行即可表示成如下的{0,1}序列:

0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0

如果把它看做一个字的16个位,“会”字的第1行可以用十六进制数0100来表示。同理,“会”字的第2行可以用十六进制数0240表示,第3行可以用十六进制数0420表示……依此类推,用16个双字节整型数即可存放一个汉字点阵字形。“会”字的点阵数据及字形如图1-15的左半部分所示。

将一个汉字逆时针旋转90°,就是把该汉字点阵的最右列作为旋转后新点阵的第1行,次最右列作为旋转后新点阵的第2行……依此类推来形成一个旋转后的点阵字形。图1-15的右半部分就是将“会”字逆时针旋转90°后的点阵数据和字形(提示:读者可将书本顺时针旋转90°,以查看旋转90°后的点阵字形)。

在【C程序】中,数组old存放着“会”字的16个双字节整型点阵数据。函数turnleft能将该点阵数据逆时针旋转90°,旋转后的点阵数据存放在数组new中。函数display能将旋转前后的点阵数据加以编辑,用字符“.”表示值为0的位,用字符“x”表示值为1的位,从而将旋转前后的点阵按行输出其十六进制的数据和字形,如图1-15所示。

【C程序】

include <stdio.h>

define EMPTY '.'

define NONEMPTY 'x'

define LEFT 0

define RIGHT 1

main ()

{ static unsigned old[16]=

{ 0x0100,0x0240,0x0420,0x0810,0x1004,0x23c2,

0x4001,0x8ff8,0x0100,0x0200,0x0400,0x0800,

0xl000,0x2004,0x7ffe,0x0001

};

unsigned new[16];

turnleft (old, new);

display (old,new);

}

turnleft (old,new)

unsigned old[],new[];

{ int row, k;

for (row=0;row<16;row++)

for ((1);k<16;k++)

new[row]|=((old[k]>>(2))&1) <<(3);

}

display (old, new)

unsigned *old,*new;

{ char out[2] [17],letter[2];

int row, col;

letter[O] = EMPTY;

letter[1] = NONEMPTY;

out[LEFT] [16]=out[RIGHT] [16]=(4);

for (row = 0;row<16;row++,old++,new++)

{ for (col = 0;co1<16;++col)

{ out[LEFT] [col] = letter[ ((5)) &1];

out[RIGHT] [col] = letter[ ((6)) &1];

}

printf("\n %4x %s",*old,&out[LEFT] [0]);

printf("%4x %s",*new,&out[RIGHT] [0]);

}

}


正确答案:(1)k=0newlrowl=0 (2)row (3)15-k (4)"\0' (5)*old>>(15-col) 或 old[row]>>(15-col) (6)*new>>(15-col) 或 new[row]>>(15-col)
(1)k=0,newlrowl=0 (2)row (3)15-k (4)"\0' (5)*old>>(15-col) 或 old[row]>>(15-col) (6)*new>>(15-col) 或 new[row]>>(15-col) 解析:这是一道要求读者掌握数组应用的程序设计题。本题的解答思路如下。
阅读程序说明后可知,本程序可将一个给定汉字的点阵逆转90°后输出。用16个元素的元素数组表示汉字点阵,每个无符号整数有16位,0表示空白位置,为1表示非空白位置。该C程序的功能是将上述表示形式的汉字点阵(“会”字)逆时针旋转90°后存储在数组new中,并输出旋转前后的十六进制点阵数据和字形。
函数turnleft完成点阵数据逆时针旋转90°,并将旋转后的点阵数据存放在数组New中。在函数turnleft的for循环中,语句“new[row]|=((01d[k]>>(2))&1)(3);”用于实现“将一个汉字逆时针旋转90°,就是把该汉字点阵的最右列作为旋转后新点阵的第1行,次最右列作为旋转后新点阵的第2行……”,即装配新点阵中的第row行。其中,地址运算符“&”是一个返回操作数地址的单目操作符,运算符“|=”是进行位逻辑或赋值运算。
由于新点阵的第row行的各位来自原点阵中各行的第(15-row)位,而且此处用&1运算来取出该位,因此(2)空缺处所补充的内容是“row”,(3)空缺处所填写的内容是“15-k”。
由于(1)空缺处是内循环初始化的部分,且内循环的结束条件是“k16”,而每个汉字是16×16点阵字形,因此该空缺处所填写的内容是“k=0,new[row]=0”。
函数display把旋转后的汉字点阵与原点阵一同输出,也是通过使用双重for循环语句来实现输出。由于输出是一行一行进行的,可知out数组中存放的是每次输出的原点阵和新点阵的一行数据,而输出时printf语句中使用“%s”格式的out[LEFT]和out[RIGHT]是两个字符串:在C语言中规定,一个字符串数据总是以‘\0’为结束标志。因此(4)空缺处所补充的内容是“‘\0’”。
函数display能将旋转前后的点阵数据加以编辑,用字符“.”表示值为0的位,用字符“x”表示值为1的位。换言之,函数display输出的符号是'.'和'x',即为数组letter中的2个元素。由此可知(5)、(6)空缺处所在的语句是对汉字点阵进行输出转换。由于输出时是高位在前、低位在后,因此在输出时排在第col位的是点阵中每一行的第col位。而外循环中有“old++”和“new++”的赋值,&1运算只表示判断(5)、(6)空缺处第15位上的值为0或1。而要区分第0位至第14位是0还是1,只要将old[row]右移15-col位就能对其进行判断。因此(5)空缺处所填写的内容是“*old>>(15-col)”或“old[row]>>(15-col)”。同理,只要将new[row]右移15-col位就能对adw进行判断,即(6)空缺处所填写的内容是“*new>>(15-c01)”或“new[row]>>(15-col)”。

第2题:

汉字显示器是采用汉字点阵的原理制作的,若每个汉字用16×16的点阵表示,则7500个汉字的字库容量是(1)。

A.16KB

B.235KB

C.320KB

D.1MB


正确答案:B
解析:已知每个汉字用16×16的点阵表示,即每个汉字所占的容量为:16×16/8=32B, 7500个汉字的字库容量=32B×7500=240000B=234.375kB。

第3题:

表示汉字也是采用汉字点阵原理,若每个汉字用16×16的点阵表示,7500个汉字的字库容量是()

A16KB

B240KB

C320KB

D1MB


正确答案:B

第4题:

用16*16点阵表示一个汉字的字型,共需要()字节。

  • A、16*1
  • B、16*2
  • C、16*3
  • D、16*16

正确答案:B

第5题:

某字库采用点阵方式描述汉字字形,点阵规模为16×16,每个点用1个二进制位表示,“0”表示白点,“1”表示黑点,逐行编码。汉字“我”的字形如图7所示,下列描述正确的是()。


A.该汉字字形第一行编码需要4个字节

B.该汉字的字形编码总共需要32个字节

C.该汉字字形编码的第一行内容的位代码为1111101101111111

D.该汉字字形编码的最后一行内容的位代码为0001100000010100

答案:B
解析:
汉字字形第一行有16个点,所以用16个二进制数表示,1个字节由8位组成,所以第一行编码需要2个字节,A选项错误;这个点阵的每一行有2个字节,一共有16行,所以这个汉字的字形编码共需要16×2=32个字节,B选项正确;“0”表示白点,“1”表示黑点,所以第一行内容的位代码为0000010010000000,C选项错误;最后一行的位代码为0001000000001100,D选项错误。

第6题:

一汉字终端的字库含GB2312一、二级汉字字模6763个,每个汉字字模由16×16点阵构成,则汉字字库的最小容量为______字节。


正确答案:216416
216416 解析:每个字节8位,每一点用一位表示,所以汉字字库最小容量:6763×16×16/8=216416。

第7题:

在用点阵表示的汉字字形码中,如果一个汉字占72个字节,则该点阵为

A.16 x 16

B.24 x24

C.32 x32

D.48x48


正确答案:B

第8题:

试计算采用32×32点阵字形的一个汉字字形占多少字节?存储6763个16×16点阵以及24×24点阵字形的汉字库各需要多少存储容量?


正确答案:128B 216416B 486936B 

第9题:

汉字的字模可用点阵信息来表示,利用点阵信息来表征汉字结构的字库称为汉字的点阵字库。在点阵字库中,存储汉字点阵中的一个点使用()。

A 一个字节

B 二个字节

C 二进制中一位

D 一个字


C

第10题:

在16×16点阵字库中,存储每个汉字的字形码用()个字节。


正确答案:32

更多相关问题