【计算机类职业资格】初级程序员下午试题-99及答案解析.doc
《【计算机类职业资格】初级程序员下午试题-99及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】初级程序员下午试题-99及答案解析.doc(13页珍藏版)》请在麦多课文档分享上搜索。
1、初级程序员下午试题-99 及答案解析(总分:90.00,做题时间:90 分钟)一、试题一(总题数:1,分数:15.00)说明下面的流程图用来说明如何在数组中的指定位置插入一个数。注:流程中循环开始的说明按照“循环变量:循环初值,循环终值,增量”格式描述; SIZE 定义位数组的大小。(分数:15.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_二、试题二(总题数:1,分数:15.00)函数 2.1 说明函数 int factors(int n)的功能是判断整数 n(n=2)是否为完全数。如果 n 是完全数,则函数返回 0,否则返回-1。所谓“完全数”是指整数 n 的
2、所有因子(不包括 n)之和等于 n 自身。例如:28 的因子为1,2,4,7,14,而 28=1+2+4+7+14,因此 28 是“完全数”。函数 2.1int factors (int n)int i/s;for (i=1, s=0; i=n/2;i+)if (n%i=0) (1) ;if( (2) ) return 0;rerurn -1;函数 2.2 说明函数 int maxint(int a,int k)的功能是用递归方法求指定数组中前 k 个元素的最大值,并作为函数值返回。函数 2.2int maxint (int a ,int k)int t;if( (3) ) return (4
3、) ;t = maxint (a+1, (5) ) ;return (a0t) ? a0:t;(分数:15.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_三、试题三(总题数:1,分数:15.00)说明本程序中的函数 void first_jnsert(NODE*p,int v)的功能是在已知链表的首表元之前插入一个指定的表元; 函数 NODE *reverse_copy(NODE *p)的功能是按已知链表复制出一个新的链表,但新的链表的表元链接顺序与已知链表的表元链接顺序相反; 函数 voidprint_link(NODE*p)用来输出链表中各表元的值; 函数 v
4、oid free_link(NODE*p)用来释放链表全部表元空间。函数#include stdio.n#include malloc.htypedef struct nodeint val;struct node *next;NODE;void first_insert (NODE *p,int v)NODE *q= (NODE *) malloc (sizeof (NODE) ;q-val=v;(1) ;*p= (2) ;NODE *reverse_copy (NODE *p)NODE *u;for (u=NULL; p;p=p-next)first_insert( (3) );retur
5、n u;void print_link (NODE *p)for (; (4) ) printf (“%d/t“ ,p-val) ;printf (“ /n“) ;void free_link (NODE *p)NODE *u;while (p ! =NULL) u=p-next ;free (p);(5) ;void main ()NODE *link1, *link2 ;int i;link1=NULL ;for(i=1;i=10;i+)first_insert (link1,i) ;link2=reverse_copy (link1) ;print_link (link1) ;free_
6、link (link1) ;print_link (link2);free_link (link2);(分数:15.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_四、试题四(总题数:1,分数:15.00)说明“背包问题”的基本描述是:有一个背包,能盛放的物品总重量为 S,设有 N 件物品,其重量分别为w1、w2、wn,希望从 N 件物品中选出若干件物品,并使所选物品的重量之和恰能放入该背包,即所选物品的重量之和等于 S。函数#include stdio.h#define N 7#define S 15typedef structint s;int n;int jo
7、b;KNAPTP;int knap (int S,int n) ;main () if (knap (S,N) printf (“OK! /n“);else printf (“NO! /n“) ;int knap (int S,int n) KNAPTP stack100 ,x;int top,k, rep;x.S=S; x.n=n;x.job=0;top=1; stacktop =x;k=0;while (1) x=stack top ;rep=1;while (! krep) if(x.s=0) k=1;else if x.s0 |x.n=0) rep=0;else x.s= (2) ;x
8、. job=1;(3) =x;if(!k)rep=1;while(top=1rep) x=stack top-1;if (x,job=1) x.s+=wx.n+1;(4) ;stack +top =x;(5) ;if(k)while (top=1) x=stack top- ;if (x.job=1)printf (“M/t“,wx.n+1) ;return k;(分数:15.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_五、试题五(总题数:1,分数:15.00)说明下面程序定义了一个类 Shape 及其成员函数,然后从类 Shape 派生出类 Point、 类
9、Circle、类Cylinder,以及它们的成员函数。C+程序#include “iostream.h“class Shapepublic:virtual void printShapeName() const=0; /纯虚函数virtual float area() const return 0.0;virtual float volumn() const return 0.0;class Point: public Shapepublic:Point (float a=0, float b=0)(x=a; y=b; )void setPoint(float a,float b)(x=a;
10、y=b;)float getX() constreturn x;float getY() constreturn y;virtual void printShapeName()const(1) ;private:float x,y; class Circle: (2) public:Circle(float r=0.0, float a=0.0, float b=0 .0):Point (a,b)radius=r0 ? r:0; void setRadius(float r)radius=r0? r:0; float getRadius () constreturn radius; virtu
11、al float area () constreturn 3 .14 259*radius*radius ; virtual void printShapeName () constcout“circle:“; private :float radius;class Cylinder: (3) public :Cylinder(float h=0.0,float r=0.0,float x=0.0,float y=0.0): (4) height=h0 ? h:0; void setHeight (float h)height=h0 ?h:0; virtual float area () co
12、nstreturn (5) ; virtual float volumn () constfloat r=Circle: getRadius ();return 3.14159*r*r*height;virtual void printShapeName () const(cout“cylinder: “ ; private :float height;(分数:15.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_六、试题六(总题数:1,分数:15.00)说明已知类 Stock 和类 cxyjava 都定义在 cxyjava.java 文件中,类 Stock 的定义
13、中第 14 行前共有四行出现了错误,将下面代码修改正确并完善后的输出结果为:0:01:23(分数:15.00)(1).请指出错误所在行号并给出该行修改后的完整结果。(分数:7.50)填空项 1:_(2).请补齐第 21 行代码中的空缺。Java 代码01 public class Stock02 static 03 shares = 0;04 share_val = 0.0;05 06 public Stock () getData (); 07 public Stock(int n, int pr=0)08 shares = n;09 share_val = pr;10 getData ()
14、;11 12 public void getData() 13 System. out .println (shares + “ : “ +share_val) ;14 15 private int shares,16 private int share_val;17 ;1819 public class cxyjava20 public static void main (String args 21 Stock a = (1) ;22 Stock b = new Stock(1,23);24 25 (分数:7.50)填空项 1:_初级程序员下午试题-99 答案解析(总分:90.00,做题时
15、间:90 分钟)一、试题一(总题数:1,分数:15.00)说明下面的流程图用来说明如何在数组中的指定位置插入一个数。注:流程中循环开始的说明按照“循环变量:循环初值,循环终值,增量”格式描述; SIZE 定义位数组的大小。(分数:15.00)填空项 1:_ (正确答案:0, SIZE-1,1,)解析:填空项 1:_ (正确答案:bi=V;)解析:填空项 1:_ (正确答案:bi+1=i)解析:填空项 1:_ (正确答案:bi+1=ai;)解析:填空项 1:_ (正确答案:bi=ai;)解析:解析 本题考查的是流程图。通过阅读流程图,我们可以大致判断出该流程图的思路,遍历数组来查找插入位置,如果
16、要插入到第 x 个数,那么数组中第 x 个以前的数只要保持原来的顺序就可以了,第 x 个以后的数只要把其在数组中的位置相应的加一就可以了。所以,循环开始,要遍历数组,初值为 0,终值为 SIZE-1,增量为 1,即空(1)填入 0,SIZE-1,1。当 i 与 x 相等时,就把其插入,把第 i 项往后移一位,所以空(2)填入 bi=V,空(3)填入 bi+1=ai。当 i 与 x 的关系是大于或者小于时,我们就按照上面的思路往后移位,或者保持位置不变,空(4)填入 bi+1=ai,空(5)填入 bi=ai。二、试题二(总题数:1,分数:15.00)函数 2.1 说明函数 int factors
17、(int n)的功能是判断整数 n(n=2)是否为完全数。如果 n 是完全数,则函数返回 0,否则返回-1。所谓“完全数”是指整数 n 的所有因子(不包括 n)之和等于 n 自身。例如:28 的因子为1,2,4,7,14,而 28=1+2+4+7+14,因此 28 是“完全数”。函数 2.1int factors (int n)int i/s;for (i=1, s=0; i=n/2;i+)if (n%i=0) (1) ;if( (2) ) return 0;rerurn -1;函数 2.2 说明函数 int maxint(int a,int k)的功能是用递归方法求指定数组中前 k 个元素的
18、最大值,并作为函数值返回。函数 2.2int maxint (int a ,int k)int t;if( (3) ) return (4) ;t = maxint (a+1, (5) ) ;return (a0t) ? a0:t;(分数:15.00)填空项 1:_ (正确答案:s+=i)解析:填空项 1:_ (正确答案:n=s)解析:填空项 1:_ (正确答案:k-1 或 k-1=0)解析:填空项 1:_ (正确答案:a0或*a 或 ak-1)解析:填空项 1:_ (正确答案:k-1 或-k)解析:解析 对于函数 1,是判断整数 n(n=2)是否为完全数。首先用 for 循环求该整数的所有因
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 初级 程序员 下午 试题 99 答案 解析 DOC
