|
1995年度高级程序员级下午试题 试题 1
阅读下列说明和流程图,回答问题1至问题3,把解答写在答卷的对应栏内。 假定某地区的经济数据指标体系具备下述性质: 1、呈树状结构; 2、各叶结点(基础指标)的数据是从基层单位上报的数据中经分类汇总而获得, 3、非叶结点(集合指标)的数据是对其所属的下一级结点的数据求和而获得的。不难看出,下列指标体系具备上述性质。
例如:粮食、棉花、… 和农副产品产值(基础指标)可以从各县及各农场每月上报的数据中经分类汇总而获得,农业总产值(集合指标)=粮食产值+棉花产值+…+农副产品产值。
本流程图用来计算月基础指标数据和月集合指标数据,产生经济数据月报表,并把月经济数据加载到经济数据文件中,产生分析报表。
假定有关的文件和单据的记录格式如下: 指标体系文件:指标代码,指标名称,计量单位
基层单位上报数据:单位名称,指标名称,产值
简述处理 l 的处理内容。
指出月基础指标数据文件的记录格式至少应包含哪些内容。
简要叙述指标体系文件中的指标代码的主要作用。 试题2
阅读下列说明和流程图 2-2,回答问题 1 至问题 2,把解答写在答卷的对应栏内。 本流程图输入正整数 p 和 q(q≥2),寻找满足下列条件的 q 对自然数(al,b1),(a2,b2),…,(aq,bq)及最小的整数 sum : 1. ai≥bi (i=1,2,…,q) 2. 当 i≠j 时,(ai,bi)≠(aj,bj),( i=1,2,…,q;j=l,2,…,q ) 3.sum=a1p+b1p=a2p+b2p=…=aqp+bqp
试题 3
阅读下列说明和流程图,回答问题 1 和问题 2,把解答写在答卷的对应栏内。
[说明]
当一元多项式 例如,对应于多项式 8X5-2X2+7 的二维数组内容如下所示:
本流程图用来计算两个多项式的乘积,多项式的系数和幂次均按上述方式存放。数组
A、B 存放两个欲相乘的多项式,它们的非零系数个数分别为
NA(>0) 和 NB(>O),数组 C 存放结果(乘积)多项式,其非零系数个数用
NC 存储。
填充流程图中的①~⑤,使之实现上述功能。
若将流程图中的 J:2 改成 J:1,则流程图能否正常工作,为什么? 试题4
阅读下列说明和流程图,回答问题,把解答写在答卷的对应栏内。 本流程图采用状态转换矩阵的方法来检验算术表达式(非空)的语法正确性,若发现错误,则指出发现错误的位置。 假定,算术表达式中的运算对象仅由自然数及变量名(用标识符标识)组成,运算符均是双目运算符,有 +、-、*、/、**(由两个连续的“*”组成,表示乘幂运算)等 5 种,表达式中可以出现左右圆括号,并以字符 # 作为结尾。
状态转换矩阵(见下表)中的行代表当前状态(state),列代表读入字符,矩阵的内容(本题中只给出部分内容,空白部分缺省)指出在当前状态下面临相应的读入字符时应执行的操作序列。
例如,若当前状态为 0 时面临的读入字符为“(”,则应执行的操作序列是“n+1→n;4→state",即括号嵌套重数加 1,并把当前状态转为 4。
流程图中用字符串 S 存放被检验的算术表达式,用 S(i:j) 表示字符串
S 中第 i 个字符至第 j 个字符(j≥O)的子串,其中 S(i:i) 即为读入字符。state=5
表示退出一重括号嵌套;state=6 表示表达式语法正确;state=7
表示表达式语法出错。 填充状态转换矩阵中的 ①~⑦,把相应的操作序列写在答卷的对应栏内。回答时可使用如下形式的操作: if 条件 then 操作1 else 操作2; 或 if 条件 then操作;
阅读下列说明和流程图,回答问题,把解答写在答卷的对应栏内。
本流程图描述了某子程序的处理流程,现要求用白盒测试法对其进行测试。
根据判定覆盖、条件覆盖、判定/条件覆盖、多重条件覆盖(条件组合覆盖)、路径覆盖等
5 种覆盖标准,从供选择的答案中分别找出满足相应覆盖标准的最小的测试数据组(用
①~⑩ 回答)。
在 COMET 型计算机上可以使用试卷上所附的 CASL 汇编语言。阅读下列程序说明和
CASL 程序,把应填入程序中__(n)__处的字句,写在答卷的对应栏内。 本程序是按某种规律自动生成 16×16 单色点阵图形。点阵图形中每行 16 点的信息排列在一个存储字中,16X16 点阵图形可以用连续的 16个存储字来表示。 程序中标号为 PTN 开始的 16 个存储字连续存放自动生成的 16×16 点阵图形,点阵图形中的第一行作为已知数据给定,其余 15 行按下述规则自动生成: 1.每个存储字的第 0 位和第 15 位(即边界点)恒为 0 。 2.一个存储字的第 n 位值 (0<n<15) 取决于前一存储字的第 (n-1) 位和第 (n+1) 位的值是否相同。若这两位的值相同,则第 n 位为 0;否则为 1。 例如,点阵图形第一行的存储字内容为 #35B4,按上述规则生成点阵图形第二行的存储字内容为 #71B2,余类推。
[程序]
阅读下列程序说明和C程序,将应填入程序中__(n)__处的字句,写在答卷纸的对应栏内。
#define N l024 #define M 10 int b[N+M-1] int equal( int k,int j,int m) { int i; for ( i=0;i<m;i++ ) if ( b[ k + i] __(1)__ ) return 0; return 1; } int exchange ( int k, int m , int v) while ( b[ k + m - 1 ) == v ) { b[ k+m-l]=! v __(2)__;} __(3)__=v; return k; init ( int v) { int k for( k = 0 ; K = N + M - 1; k++) b[k] = v; } main ( ) { int m,v,k,n,j; printf ('Enter m( l<m<10) ,v( v=0,v=1 )\ n" ); scanf (" %d%d ,&m,&v); n = 0x01 << ms init(!v); k=0; while( __(4)__ < n) for (j=0;j<k;j++) if (equal(k,j,m)) { k=exchange(k,m,v); j=__(5)__; } for(k= 0 ;k<n ;k++ ) print{(" %d\ n" ,b[k]); } |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||