软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷13

0
收藏   分享
  • 卷面总分:75分
  • 试卷类型:模拟考试
  • 测试费用:免费
  • 答案解析:是
  • 练习次数:23次
  • 作答时间:150分钟
试卷简介
试卷预览
1

阅读以下说明和C++代码,将应填入(n)处的字句写在对应栏内。

 [说明]

 下面代码实现class C对class A和B的protected成员和public成员的调用。仔细阅读[代码5-1]、[代码5-2],在(n)处写出正确的运行结果。

 [代码5-1]

 #include <iostream.h>

  class A {

    private:

     int a1;

  protected:

         int a2;

  public:

    A ( int v1,int v2,int v3 ): a1 ( v1 ) ,a2 ( v2 ) ,a3 ( v3 )

     {}

    int a3

  };

  class B : pubiic A{

  private:

     int b1;

  protected:

     int b2;

  public:

     B ( int v1,int v2,int v3,int v4,int v5,int v6 )

        : A(v1,v2,v3),b1 (v4),b2(v5),b3 (v6) {}

     int b3;

  };

  class C : public B{

  private:

     int c1;

  protected:

     int c2;

  public:

     int c3;

     C (int v1,int v2,int v3,int v4,int v5,int v6,int v7,int v8,int v9 )

             : B ( v1,v2,v3,v4,v5,v6 ) ,c1 ( v7 ),c2 ( v8 ) ,c3 v9

     void disp ( )

     {

     cout << "a2 in class C =" << a2 << endl;

     cout << "a3 in class C =" << a3 << eudl;

     cout << "b2 in class C =" << b2 << endl;

     tout << "b3 in class C =" << b3 << endl;

     }

  };

 [代码5-2]

 voidmain()

 {

 Cdemo(10,20,30,40,50,60,70,80,90);

 cout<<"对象demo.a3="<<demo.a3<  cout<<"对象demo.b3="<<demo.b3<  cout<<"对象demo.c3="<<demo.c3<  demo.disp( );

 }

 [运行结果]

 对象demo.a3=(1) 

 对象demo.b3=(2) 

 对象demo.c3=(3) 

 a2 in class C=(4) 

 a3 in class C=(5) 

 b2 in class C=(6) 

 b2 in class C=(7)

1

阅读下列程序说明和C++代码,将应填入(n)处。

【说明】

 “背包问题”的基本描述是:有一个背包,能盛放的物品总重量为S,设有N件物品,其重量分别为w1;w2,……,wn,希望从N件物品中选择若干件物品,所选物品的重量之和恰能放入该背包,即所选物品的重量之和等于S。

 如下程序均能求得“背包问题”的一组解,其中程序4.1是“背包问题”的递归解法,而程序4.2是“背包问题”的非递归解法。

 【程序4.1】

 #include<stdio.h>

 #define N 7

 #define S 15

 int w[N+1]={0,1,4,3,4,5,2,7};

 int knap(int s,int n)

 { if(s==0)return 1;

  if(s<0||(s>0& &n<1))return 0;

  if((1)))|

   printf("%4d",w[n]);return 1;

  } return (2);

 }

 main(){

  if(knap(S,N))printf("OK!\n");

  else printf("NO!\n");

 }

 【程序4.2】

 #include<stdio.h>

 #define N 7

 #define S 15

 typedef struct{

  int s;

  int n:

  int job;

 } KNAPTP;

 int w[N+1]={0,1,4,3,4,5,2,7};

 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 stack[100],x;

  int top,k,rep;

  x.s=s;x.n=n;

  x.job=0;

  top=|;Stack[top]=x;

  k=0;

  while((3)){

   x=Stack[top];

   rep=1;

   while(!k && rep){

    if(x.s==0)k=1;/*已求得一组解*/

    else if(x.s<0||x.n <=0)rep=0;

     else{x.s=(4);x.job=1;

      (5)=x;

     }

    }

    if(!k){

     rep=1;

     while(top>=1&&rep){

      x=stack[top--];

      if(x.job==1){

       x.s+=W[x.n+1];

       x.job=2;

       Stack[++top]=x;

        (6);

      }

     }

    }

 }

 if(k){/*输出一组解*/

  while(top>=1){

   x=staCk[top--];

   if(x.job==1)

    printf("%d\t",w[x.n+1]);

   }

  }

  return k;

 }

1

阅读以下说明和JAVA 2代码,将应填入(n)处的字句写在对应栏内。

 [说明]

以下程序实现了在applet里移动图形文件,仔细阅读代码和相关注释,将程序补充完整。

[代码6-1]

 import j ava. awt. *;

 import j ava.awt.event.*;

 import java.applet. Applet;

 public class AppCIU extends Applet implements MouseMotionListener, MouseListener

 {

   Image IMG nClick=over(this) title=放大;            // 声明 Image 类类型的变量 IMG nClick=over(this) title=放大

   int x=70,y=60,posX=70,posY=60,dx,dy;

   public void init ( )

   {

    IMG nClick=over(this) title=放大=getImage ( getCodeBase ( ) ,"mouse.gif" ); //载入影像

    addMouseListener ( this );

    addMouseMotionListener ( this );

 }

   public void mousePressed ( MouseEvent e )

   {

    dx=e.getX()-posX; //取得按下之点与基准点X方向的距离

    dy=e.getY()-posY; //取得按下之点与基准点Y方向的距离

   }

   public void mouseDragged ( MouseEvent e )

   {

     (1) 

     (2) 

    if ( dx>0 && dx<120 && dy>0 && dy<60 ) //如果指针落在图形上方

    {

     Graphics g=getGraphics ( );

      (3) 

    }

   }

   public void paint ( Graphics g )

   {

    (4) 

  (5) 

  (6) 

   }

   public void mouseMoved ( MouseEvent e ) {};

   public void mouseReleased ( MouseEvent e ) {};

   public void mouseEntered ( MouseEvent e ) {};

   public void mouseExited ( MouseEvent e ) {};

   public void mouseClicked ( MouseEvent e ) {};

 }