[计算机类试卷]2012年下半年软件水平考试(初级)程序员下午(应用技术)真题试卷及答案与解析.doc
《[计算机类试卷]2012年下半年软件水平考试(初级)程序员下午(应用技术)真题试卷及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]2012年下半年软件水平考试(初级)程序员下午(应用技术)真题试卷及答案与解析.doc(9页珍藏版)》请在麦多课文档分享上搜索。
1、2012年下半年软件水平考试(初级)程序员下午(应用技术)真题试卷及答案与解析 1 阅读以下说明和流程图,填补流程图中的空缺 (1) (5),将解答填入答题纸的对应栏内。 【说明】 本流程图用于计算菲波那契数列 a1=1, a2=1, , an=an-1+an-2, |n=3, 4, 的前 n项 (n2)之和 S。例如,菲波那契数列前 6项之和为 20。计算过程中,当前项之前的两项分别动态地保存在变量 A和 B中。 【流程图】 2 阅读以下说明和 C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。 【说明】 如果矩阵 A中的元素 Ai, j满足条件: Ai, j是第 i行中值最小的元素,且
2、又是第 j列中值最大的元素,则称之为该矩阵的一个马鞍点。 一个矩阵可能存在多个马鞍点,也可能不存在马鞍点。下面的函数用来求解并输出一个矩阵中的所有马鞍点,最后返回该矩阵中马鞍点的个数。 【 C函数】 Int findSaddle(int aN, int M), *a表示 M行 N列矩阵, N是宏定义符号常量 * int row, column, i, k; int minElem: int COUrtt=0; *count用于记录矩阵中马鞍点的个数 * for(row= 0; row (1) ; row+) *minElem用于表示第 row行的最小元素值,其初值设为该行第 0列的元素值 *
3、(2) : for(column= 1; columN (3) ; column+) if(minElemarowcolumn) minElem= arowcolumn; for(k=0; k N; k+) if(arowk= =minElem) *对第 row行的每个最小元素,判断其是否为所在列的最大元素 * for(i=0; i M; i+) if( (4) minElem)break; if(i= (5) ) printf(”( d, d): d n”, row, k, minElem); *输出马鞍点 * count+: * if * * if * * for * return cou
4、nt * findSaddle * 3 阅读以下说明和 C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。 【说明】 函数 Insert_key(*root, key)的功能是将键值 key插入到 *root指向根结点的二叉查找树中 (二叉查找树为空时 *root为空指针 )。若给定的二叉查找树中已经包含键值为key的结点,则不进行插入操作并返回 0;否则申请新结点、存入 key的值并将新结点加入树中,返回 1。 提示: 二叉查找树又称为二叉排序树,它或者是一棵空树,或者是具有如下性质的二叉树: .若它的左子树非空,则其左子树上所有结点的键值均小于根结点的键值; .若它的右子树非空,则其右
5、子树上所有结点的键值均大于根结点的键值; .左、右子树本身就是二叉查找树。 设二叉查找树采用二叉链表存储结构,链表结点类型定义如下: typedef struct BiTnode int key_value; *结点的键值,为非负整数 * struct BiTnode * left, * right; *结点的左、右子树指 针 * BiTnode, *BSTree; 【 C函数】 int Insert_key(BSTree * root, int key) BiTnode * father=NULL, * p= * root, * s; while( (1) &key!=p-key_value
6、) *查找键值为 key的结点 * father=p; if(key p-key_value)p= (2) ; *进入左子树 * else p= (3) ; *进入右子树 * if(p)return 0; *二叉查找树中已存在键值为 key的结点,无须再插入 * s=(BiTnode*)malloc( (4) ); *根据结点类型生成新结点 * if(!s)return-1; s-key_value=key; s-left=NULL; s-right=NULL; if( ! father) (5) ; *新结点作为二叉查找树的根结点 * else *新结点插入二叉查找树的适当位置 * if(k
7、eykey_value)father-left=s: else father-right=s; return 1: 4 阅读以下说明和 C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。 【说明】 已知两个整数数组 A和 B中分别存放了长度为 m和 n的两个非递减有序序列,函数 Adjustment(A, B, m, n)的功能是合并两个非递减序列,并将序列的前 m个整数存入 A中,其余元素依序存入 B中。例如: 合并过程如下:从数组 A的第一个元素开始处理。用数组 B的最小元素 B0与数组 A的当前元素比较,若 A的元素较小,则继续考查 A的下一个元素;否则,先将 A的最大元素暂存入 t
8、emp,然后移动 A中的元素挪出空闲单元并将 B0插入数组 A,最后将暂存在 temp中的数据插入数组 B的适当位置 (保持 B的有序性 )。如此重复,直到 A中所有元素都不大于 B中所有元素为止。 【 C函数】 void Adjustment(int A, int B, int m, int n) *数组 A有 m个元素,数组 B有 n个元素 * int k, temp; for(i=0; i 5 阅读以下说明和 C+代码,填充代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 下面的程序用来计算并寻找平面坐标系中给定点中最近的点对 (若存在多对,则输出其中的一对即可 )。程序运行时,先输
9、入点的个数和一组互异的点的坐标,通过计算每对点之间的距离,从而确定出距离最近的点对。例如,在下图所示的 8个点中,点 (1, 1)与 (2, 0 5)是间距最近的点对。 【 C+代码】 #include#includeusing namespace std; class GPointprivate: double x, y; public: void setX(double x)this-x=x; void setY(double y)this-y=y; double getX()return this-x; double getY()return this-y; ; class Comput
10、eDistancepublic: double distance(GPoint a, GPoint b)return sqrt(a getX() - b getX()*(a getX() - b getX() +(a getY() - b getY()*(a getY() - b getY(); ; int main() int i, j, numberOfPoints=0; coutnumbeOfPoints: (1) points=new GPointnumberOfPoints;创建保存 点坐标的数组 memset(points, 0, Sizeof(points); couttmpxt
11、mpy;, pointsi setX(tmpx); pointsi setY(tmpy); (2) computeDistance= new ComputeDistance(); int p1=0, p2=1; p1和 p2用于表示距离最近的点对在数组中的下标 double shortestDistance=computeDistance-distance(pointsp1,pointsp2); 计算每一对点之间的距离 for(i=0; i numberOfPoints;i+)for(j=i+1; j (3) ; j+) double tmpDistance=computeDistance-
12、(4) ; if( (5) ) p1=i; p2=j; shortestDistance= tmpDistance; cout 6 阅读以下说明和 Java程序,填充程序中的空缺,将解答填入答题纸的对应栏内。 【说明】 下面的程序用来计算并寻找平面坐标系中给定点中最近的点对 (若存在多对,则输 出其中的一对即可 )。程序运行时,先输入点的个数和一组互异的点的坐标,通过计算每对点之间的距离,从而确定出距离最近的点对。例如,在下图所示的 8个点中,点 (1, 1)与 (2, 0 5)是问距最近的点对。 Java代码】 import java util Scanner; class GPointpr
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 2012 年下 半年 软件 水平 考试 初级 程序员 下午 应用技术 答案 解析 DOC
