| 网站首页 | 自考 | 中考 | 高考 | MBA | 考研 | 成人高考 | 报关员 | 导游 | 司法 | 计算机 | 会计 | 英语 | 医学 | 小学 | 初中 | 高中 | 法律硕士 | 建筑工程 | 留言 | 
最新公告:     本站一直领先的专注于考试的网络媒体与服务平台,请大家互相支持!  [admin  2006年9月7日]        
 
您现在的位置: 试卷下载网 >> 计算机 >> 软件考试 >> 文章正文
 
 
 
最新推荐 更多内容
 
 
相关文章
2006年全国计算机等级考…
2005年笔试题二级java及…
思科认证考试(CCNA…
思科认证考试(CCNA…
微软MCSE2003认证新增实…
2001年度网络设计师级上…
2001年度网络程序员级下…
2001年度初级程序员…
2003年度系统设计师(高…
2002年程序员上午试题及…
更多内容
2001年度高级程序员级下午试题(1)           
2001年度高级程序员级下午试题(1)
作者:佚名 文章来源:不详更新时间:2006-5-30 8:27:05
阅读下列说明和流程图,回答问题 1 至问题 3 ,把解答填入答题纸的对应栏内。

[说明]

某考务处理系统具有以下功能:

1.输入报名单;

2.自动编制准考证号;

3.输出准考证;

4.输入成绩清单;

5.输出成绩通知单;

6.输出成绩分布表;

7.输入合格标准、输出录取通知单;

8.试题难度分析,并输出试题难度分析表。

这里给出了实现上述要求的部分不完整的数据流图,其中部分数据流的组成如下所示:

报名单 = 报名号 + 姓名 + 通信地址

考生名册 = 报名号 + 准考证号 + 姓名 + 通信地址

成绩册 = 准考证号 + { 课程号 + 成绩 } (其中{W}表示W重复多次)

准考证 = 报名号 + 姓名 + 准考证号

[问题1]

指出 0 层图中可以删去的部分。

[问题2]

在加工 1 子图中将遗漏的数据流添加在答题纸上。 [问题3]

加工 2 子图分解成如图所示的 4 个子加工及相关的文件(即数据存储)。试在此基础上将相关的DFD 成份添加在答题纸上,以完全该加工子图。

[数据流图]

顶层






在COMET型计算机上可以使用试卷上所附的 CASL 汇编语言。阅读程序说明和 CASL 程序,将应填入__(n)__处的字句,写在答题纸的对应栏内。

[程序3说明]

子程序 DEHZ 用来对 HZ 编码的字串做解码处理。

HZ 编码是海外华人创造的一种将含有高位为 1 的汉字双字节字串转换成易于在网络中传输的ASCII 字符串的变换方式。编码过程中,被转换字符串中的原汉字子字符串各字节高位作清零处理,使之成为 ASCII 子字符串,并在其前后两端分别添加 ~{ 和 ~} 作为标记;而对于原 ASCII 子字符串,则将其中的 ~ 改写为 ~~,其余字符不变。

DEHZ 解码子程序则是 HZ 编码的复原过程。复原 ASCII 子字符串过程中遇有 ~~ 字符则改写为一个 ~ ,遇有 ~{ 则将其后直至 ~} 标记前的各字节高位置1,复原为汉字子字符串,同时删除其前后标记。~的后续字符不属于以上情况均作为错误处理。

调用该子程序时, GR1 存放原始字符串首地址, GR2 存放还原后的目标字符串首地址。工作寄存器 GR3 用作处理汉字子字符串的识别标志,进入子程序时应初始化为处理 ASCII 子字符串。程序按照 CASL 语言的标准约定,字符串的每个字符只占用一个存储字的低八位。原始字符串和目标字符串均以 0 作为结束标志。

[程序3]

START

DEHZ PUSH 0,GR3

PUSH 0,GR2

PUSH 0,GR1

LEA GR3,0

LOOP __(1)__

CPA GR0,MARK0

JNZ GOON

LEA GR1,1,GR1

LD GR0,0,GR1

CPA GR0,MARK0

__(2)__

CPA GR0,MARK1,GR3

JNZ ERROR

__(3)__

LEA GR1,1,GR1

JMP LOOP

ERROR OUT ERS1R,ERLEN

JMP EXIT

GOON __(4)__

ST GR0,0,GR2

LEA GR2,1,GR2

LEA GR1,1,GR1

CPA GR0,VO

__(5)__

EXIT P0P GR1

P0P GR2

P0P GR3

RET

V1 DC 1

V0 DC O

DC #0080

MARK0 DC '~ '

MARK1 DC '{ }'

ERSTR DC 'ERROR!'

ERLEN DC 6

END


试题四

阅读下列程序说明和C代码,将应填入__(n)__处的字句写在答题纸的对应栏内。

[程序4说明]

设 M 叉树采用列表法表示,即每棵子树对应一个列表,列表的结构为:子树根结点的值部分 (设为一个字符) 和用“( )”,括起来的各子树的列表 (如有子树的话) ,各子列表间用“,”,分隔。例如下面的三叉树可用列表 a( b( c,d ),e,f( g,h,i ))表示。



本程序输入列表,生成一棵 M 叉树,并由 M 叉树输出列表。假定输入无错误。

[程序4]

#include〈stdio.h〉

#include〈stdlib.h〉

#d
  共3页: 1 [2] [3] 下一页   

efine M 3

typedef struct node{ char val;

struct node *subTree[M];

} NODE;

char buf[255] ,*str = buf

NODE *d = NULL

NODE *mackTree( ) /*由列表生成M叉树*/

{ int k; NODE *s ;

s = __(1)__

s -> val = *str++ ;

for ( k = 0 ; k < M ; k++ ) s-> subTree[k] = NULL ;

if(*str='( '){

k = 0;

do { str++;

s -> subTree[k] = __(2)__ ;

if ( *str == ')' ) { str++; break ; }

k = k+l ;

} while ( __(3)__ );

}

return s ;

}

void walkTree( NODE *t ) /*由 M 叉树输出列表*/

{ int i ;

if t != NULL ) {

__(4)__

if ( t -> subTree[0] == NULL ) return ;

putchar ( '( ' ) ;

for ( i = 0 ; i < m ; i++) {

__(5)__

if ( i! = M - l && t -> subTree[i+l] != NULL )

putchar ( ', ' ) ;

}

putchar ( ') ' ) ;

}

}

void main( )

{ printf( "Enter exp:" ) ;

scanf( "%S" , str ) ;

d = makeTree() ;

walkTree( d ) ; putchar( ' ') ;

}

试题五

阅读下列程序说明和C代码,将应填入__(n)__处的字句写在答题纸的对应栏内。

[程序5说明]

著名的四色定理指出任何平面区域图均可用四种颜色着色,使相邻区域着不同的颜色。本程序对给定的区域图找出所有可能的不超过四种颜色的着色方案。程序中用 1~4 表示四种颜色。要着色的 N 个区域用 0~N一1编号,区域相邻关系用 adj[][] 矩阵表示,矩阵的 i 行 j 列的元素为 1 ,表示区域 i 与区域 j 相邻;矩阵的 i 行 j 列的元素为 0 ,表示区域 i 与区域 j 不相邻。数组 color[] 用来存储着色结果, color[i] 的值为区域 i 所着颜色。

【程序5】

#include〈stdio.h〉

#define N 10

void output(int color[])/*输出一种着色方案*/

{ int i ;

for ( i = 0 ; i < N ; i++ )

printf( "%4d" , color[i] ) ;

printf( " " ) ;

}

int back( int *ip ,int color[] ) /*回溯*/

{ int c = 4 ;

while ( c == 4 ){

if ( *ip <= 0 ) return 0 ;

--(*ip) ;

c = __(1)__ ;

color[*ip] = -1 ;

}

return c ;

}

/*检查区域i,对c种颜色的可用性*/

int color0k( int i , int c , int[][N] , int color[ ] }

{ int j ;

for ( j = 0 ; j < i ; j++ }

if ( __(2)__ )

return 0 ;

return 1 ;

}

/*为区域i选一种可着的颜色*/

int select( int i ,int c ,int adj[][N] , int color[ ] )

{ int k ;

for ( k = c ; k <= 4 ; k++ )

if ( colorOK( __(2)__ ) )

return k ;

return 0 ;

}

int coloring( int adj[][N] ) /*寻找各种着色方案*/

{ int color[N] , i , c , cnt ;

for ( i = 0 ; i < N ; i++ ) color[i] = -1 ;

i = c = 0 ; cnt = 0 ;

while ( 1 ) {

if ( ( c = __(4)__ ) == 0 ){

c = back( &i , color
  共3页: 上一页 [1] 2 [3] 下一页   

) ;

if ( c == 0) return cnt ;

} else { __(5)__ ; i++ ;

if ( i == N ) {

output(color) ;

++cnt ;

c = back( &i , color ) ;

} e1se c = 0 ;

}

}

}

void main()

{ int adj[N][N] =

{ {0,1,0,1,1,1,1,1,1,1},

{1,0,1,1,0,1,1,1,1,0},

{0,1,0,1,0,1,1,0,1,1},

{1,1,1,0,1,1,0,0,1,1},

{1,0,0,1,0,1,0,0,0,0},

{1,1,1,1,1,0,1,0,0,1},

{1,1,1,0,0,1,0,0,1,0},

{1,1,0,0,0,0,0,0,1,1},

{1,1,1,1,0,0,1,1,0,1},

{1,0,1,1,0,1,0,1,1,0}

} ;

printf( "共有%d组解. ",coloring( adj ) ) ;

}




  共3页: 上一页 [1] [2] 3   

文章录入:admin    责任编辑:admin 
 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口

     
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 |