阅读以下函数说明和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 0define RIGHT 1main (){ 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]);}}

阅读以下函数说明和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]);

}

}


相关考题:

阅读以下应用说明、图和C++代码,根据要求回答问题1至问题3。[说明]已知以下C++程序运行时的输出结果如下。1:11:11:1[C++程序]01 include <iostream>02 using namespace std;03 class Stock{04 protect:05 (1) { };06 Stock(int n, int pr=1) {07 shares = n; share_val=pr;08 };09 void ~Stock() { };10 public:11 //成员函数12 void output() {13 (2)<< shares << ":" << share_val << endl;14 }15 private:16 //成员变量17 int shares;18 int share_val;19 };2021 void main() {22 Stock a(1); a.output23 Stock b; b.output24 Stock c = Stock (); c.output25 }请根据C++程序运行时的输出结果,将代码中(1)、(2)空缺处的内容补充完整。

阅读以下说明和流程图,回答问题1至问题3。[说明]信息处理过程中经常需要将图片或汉字点阵做旋转处理。一个矩阵以顺时针方向旋转90°后可以形成另一个矩阵,如下图所示:流程图2-1描述了对n*n矩阵的某种处理。流程图2-2是将矩阵A顺时针旋转90°形成矩阵B的具体算法。请写出以下3*3单位矩阵沿顺时针方向旋转90°后所形成的矩阵。

阅读以下程序说明和C++程序,将程序段中(1)~(7)空缺处的语句填写完整。[说明]使用MFC的CSocket类在两个或者多个应用程序之间建立通信。服务器应用程序先创建一个特殊的 Socket,用于监听客户应用程序的连接请求,然后再创建新的Socket来完成连接。从客户和服务器两端读取该连接,直到一个需要处理的报文到来为止。以下C++程序将封装这些功能,这样所有应用程序需要完成的只是创建一个Socket连接,然后处理到来的报文。这将包括一个新的服务器Socket类、新客户端Socket类和新的报文队列类。创建新的服务器Socket类程序的框架如下。第1个函数ListenEx()用于通知Socket开始监听客户应用程序。第2个函数OnAccept()在接收到连接请求时被调用。在其中创建新的Socket,并立刻设置它开始从客户应用程序读取报文,这些是通过调用第3个函数RecvThread()来完成的,该函数位于它自己的线程中。[C++程序][ListenEX()函数]

阅读以下说明和Java代码,将解答写入对应栏内。【说明】下面程序的功能是显示已定义的一个3行3列的二维数组每行的元素,并求所有元素的和并输出。请在程序的每条横线处填写一个适当的语句,使程序的功能完整。public class Arrayt(1) static (2) main(String args[]){int sum=0;int [][] = t {11,12,13}, {21,22,23},{31,32,33}};for(int i=0; (3) i++){System. out. print("b["+i+"]:");for(int j=0;(4) j++)System. out. print(b[i] [j] +" ");(5)}System. out. println ();}System. out. println("sum="+sum);}}

阅读以下应用程序说明和C程序,将C程序段中(1)~(7)空缺处的语句填写完整。[说明]以下[C程序]完成从指定数据文件中读入职工的工号和他完成产品个数的数据信息,对同一职工多次完成的产品个数进行累计,最后按表5-22所示的格式输出职工完成产品数量的名次(ORDER)。该名次是按每位职工完成的产品数量(QUANTITY)排序,之后同一名次的职工人数(COUNT)和他们的职工号(NUMBER,同一名次的职工号以从小到大的顺序输出)。以下[C程序]采用链表结构存储有关信息,链表中的每个表元对应一位职工。在数据输入同时,形成一个有序链表(按完成的产品数量和工号排序)。当一个职工有新的数据输入,在累计他的完成数量时会改变原来链表的有序性,为此应对链表进行删除、查找和插入等处理。[C程序]

试题二(共15分)阅读以下说明和C程序代码,将解答写在答题纸的对应栏内。【说明】下面是一个待修改的C程序,其应该完成的功能是:对于输入的一个整数num,计算其位数k,然后将其各位数字按逆序转换为字符串保存并输出。若num为负整数,则输出字符串应有前缀“-”。例如,将该程序修改正确后,运行时若输入“14251”,则输出“15241”;若输入“-6319870”,则输出“-0789136”。下面给出的C程序代码中有五处错误,请指出错误代码所在的行号并给出修改正确后的完整代码行。【C程序代码】

请认真阅读以下函数说明、图及C程序,将程序段中(1)~(7)空缺处的语句填写完整。[说明]一般的树结构常采用孩子—兄弟表示法表示,即用二叉链表做树的存储结构,链表中节点的两个链域分别指向该节点的第一个孩子节点和下一个兄弟节点。例如,如图1-15(a)所示树的孩子—兄弟表示如图1-15(b)所示。函数LevelTraverse()的功能是对给定树进行层序遍历。例如,对如图1-15所示的树进行层序遍历时,节点的访问次序为D B A E F P C。对树进行层序遍历时使用了队列结构,实现队列基本操作的函数原型如表1-11所示。Bool、Status类型定义如下:树的二叉链表节点定义如下:[C函数程序]

阅读以下函数说明和C代码,将C程序中(1)~(5)空缺处的语句填写完整。[说明]函数int Toplogical(LinkedWDigraphG)的功能是对图G中的顶点进行拓扑排序,并返回关键路径的长度。其中,图G表示一个具有n个顶点的AOE-网,图中顶点从1~n依次编号,图G的存储结构采用邻接表表示,其数据类型定义如下。例如,某AOE-网如图6-22所示,其邻接表存储结构如图6-23所示。[函数]

阅读以下说明和C++代码。[说明]已知类SubClass的getSum方法返回其父类成员与类SubClass成员j的和,类 SuperClass中的getSum为纯虚拟函数。程序中的第23行有错误,请修改该错误并给出修改后的完整结果,然后完善程序中的空缺,分析程序运行到第15行且尚未执行第15行的语句时成员变量j的值,最后给出程序运行后的输出结果。[C++代码]