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

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

阅读以下说明和Visual Basic代码,将相应文字填入(n)处,并写在对应栏内。

[说明]

 以下Visual Basic代码实现了对位图(BMP)进行旋转显示。以下程序共实现了对BMP位图图形进行 180°旋转、90°旋转(顺时针)、90°旋转(逆时针)、水平翻转、垂直翻转共5项处理。显示界面如图12-8所示。仔细阅读[代码7-1]至[代码7-3],完成(n)代码,并写在对应栏内。

  

 [代码7-1]

 Begin VB. Form. Form1

   AutoRedraw =-1  'True

   Caption="图像的施转"

     //...窗体描述( 略 )

   Begin VB. CommandButton Command7

     Caption="退出"

       //...窗体描述(略 )

   End

   Begin VB.CommandButton Command6

     Caption = "复位"

      //...窗体描述(略)

   End

   Begin VB.CommandButton Command5

    Caption= "垂直翻转"

      //...窗体描述(略)

   End

   Begin VB.CommandButton Command4

    Caption="水平翻转"

      //...窗体描述(略)

   End

   Begin VB.CommandButton Command3

    Caption= "90°(逆时针)"

      //...窗本描述(略)

   End

   Begin VB.CommandButton Command2

    Caption= "90°(顺时针)"

       //...窗体描述(略)

   End

   Begin VB.PictureBox Picture2

      //...窗体描述(略)

   End

   Begin VB.CommandButton Command1

     Caption="180°"

      //...窗体描述(略)

   End

   Begin VB.PictureBox Picture 1

       //...窗体描述(略)

   End

 End

 [代码7-2]

 Private Declare Function BitBlt Lib "gdi32" ( ByVal hDestDC As Long,

    ByVal x As Long,

    ByVal y As Long,

    ByVal n Width As Long,

    ByVal nHeight As Long,

    ByVal hSrcDC As Long,

    ByVal xSrc As Long,

    ByVal ySrc As Long,

    ByVal dwRop As Long ) As Long

 Const srcopy = &HCC0020

    Dim h As Integer

    Dim w As Integer

 Private Sub Form_Load ( )

    Picture2.Picture = LoadPicture ( App.Path & "\a01.bmp")  '导入图片'

    h = Picture 1 .Height

    w = Picture 1.Width

 End Sub

 [代码7-3]

 Private Sub Commandl_Click ( )  旋转180°

  Picture2.Picture = LoadPicture ( "" )

  For j = 0 To h Step 1

    For i = 0 To w Step 1

     (1) 

    Next i

  Next j

 End Sub

  Private Sub Command2_Click ( )  '顺时针施转90°'

  Picture2.Picture = LoadPicture ( "" )

   For i-h To 0 Step-1

    For j - 0 To w Step 1

      (2) 

    Next j

  Next i

 End Sub

 Private Sub Command3_Click ( )  '逆时针旋转90°'

  Picture2.Picture = LoadPicture ("")

  For j =w To 0 Step -1

    For i = 0 To h Step 1

      (3) 

    Next i

  Next j

 End Sub

 Private

1

阅读下列函数说明、图和C代码,将应填入(n)处的字句写在对应栏内。

 【说明】

 假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,则实际的长整数m表示为:

 m=a[k]×10k-2+a[k-1]×10k-3+…+a[3]×10+a[2]

 其中a[1]保存该长整数的位数,a[0]保存该长整数的符号:0表示正数,1表示负数。

 运算时先决定符号,再进行绝对值运算。对于绝对值相减情况,总是绝对值较大的减去绝对值较小的,以避免出现不够减的情况。注:不考虑溢出情况,即数组足够大。

 【函数】

 int cmp(int *LA, int *LB);

 /*比较长整数LA与LB的绝对值大小*/

  /*若LA绝对值较大返回正值,LA较小返回负值,相等则返回0*/

 int ADD(int *LA, int*LB, int *LC)

 /*计算长整数LA与LB的和,结果存储于LC中*/

 /*注意:正数与负数的和相当于正数与负数绝对值的差*/

 /*数据有误返回0,正常返回1*/

 {

    if(LA==NULL || LB==NULL || LC==NULL)return 0;

    int *pA, *pB,i,N,carry,flag;

    flag=LA[0]+LB[0];

    switch(flag){/*根据参与运算的两个数的符号进行不同的操作*/

    case 0:

    case 2:

       LC[0]=LA[0];/*LA与LB同号,结果符号与LA(LB)相同*/

       pA=LA;

       pB=LB;

        (1) ;

       break;

    case 1:/*LA与LB异号*/

       /*比较两者的绝对值大小,结果符号与较大者相同*/

       flag= (2) ;

       if(flag>0){/*LA较大*/

          LC[0]=LA[0];

          pA=LA;

          pB=LB;

       }

       else if(flag<0){/*LB较大*/

           LC[0]=LB[0];

           pA=LB;

           pB=LA;

       }

       else{/*LA与LB相等*/

          LC[0]=0;

          LC[1]=0;

          return 1;

       }

       flag=-1;

       break;

    default:

       return 0;

       break;

    }/*switch*/

    /*绝对值相加减*/

    /*注意对于减法pA指向较大数,pB指向较小数,不可能出现不够减的情况*/

     (3) ;

    N=LA[1]>LB[1]?LA[1]:LB[1];

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

      if(i>=pA[1]){/*LA计算完毕*/

        carry+=flag *pB[i+2];

     }

     else if(i>=pB[1]){/*LB计算完毕*/

        carry +=pA[i+2];

     }

     else{

        carry +=pA[i+2]+flag *pB[i+2];

     }

     LC[i+2]=Carry%10;

     carry /=10;

     if( (4) ){/*需要借位,针对减法*/

          LC[i+2]+=10;

          carry--;

     }

   }/*for*/

   if( (5) ){/*最高进位,针对加法*/

        LC[i+2]=carry;

    &n

1

阅读下列说明和图,回答问题1至问题3。

 【说明】

 公司IT部门决定开发一个计算机管理系统以记录期刊的传阅情况。

 期刊在公司内部传阅,员工可以要求加入传阅队列。图书室登记公司收到的期刊,交给名单中的第一名员工。员工应在3个工作日内完成阅读,员工阅读完毕后通知系统,系统提醒下一位阅读者取书,下一个员工必须确认已收到期刊。当传阅名单中“下一位”员工出差在外时将无法进行传阅,此时将期刊传给再下一位,而将该员工做标记,再次传递此书时优先考虑该员工。最后一位员工阅读完毕后,将期刊交还图书室以便共用。系统能在员工忘记传递期刊时发出提醒信息。系统详细记录期刊传阅情况,当员工阅读完后通知系统,系统记录该员工的员工号及日期,并在备注栏注明是传出;同样,当员工收到期刊后给系统收书确认,系统记录该员工的员工号及日期,并在备注栏注明是收到。

 公司的员工都有一个唯一的员工号。公司订阅了多种期刊,为每一本期刊(有唯一期刊流水号)产生一份传阅名单,并详细记录传阅情况。员工的出差情况存储在系统主机中。

 该系统采用面向对象方法开发,系统中的类及类之间的关系用UML类图表示,图9-4是该系统的类图的一部分,图9-5描述了成功传递期刊的序列图。

根据题意,给出类“传阅记录”的主要属性。