简答题

课程名称:程序员

题目:阅读以下说明和Java代码,填补代码中的空缺,将解答填入答题纸的对应栏内。[说明]设计RGB方式表示颜色的调色板,进行绘图。其类图如下图所示。该程序的Java代码附后。类图 [Java代码]     //颜色类     class MyColor {     private int red,  green, blue;     public MyColor()  {     red = 0; green = O; blue=0;     }     public MyColor(int red,  int green,  int blue)  {     this.red = red;     this.green = green;     this.blue = blue;     }     //其他方法略     public String toString()  {     return "Red:  " + red + "\tGreen:  " + green + "\tBlue " + blue;     }     }     //调色板类     class Palette {     public int number;            //颜色数     private ______ palette;    //颜色表     public Palette()  {     number = 256;     palette = new MyColor[number];     }     public Palette(MyColor[] palette,  int number)     ______ = number;     ______ = palette;     }     //其他方法略     public String toString()  {     String  str =  "";     for (int i = 0; i < number; i++)  {     str += i+":" + palette[i] + "\n";     }     return str;     }     }     //绘图类     class Drawing  {     public ______ int COLORNUMBER = 16;     public static void main(String[]  args)        {     Palette palette;     int red,  green, blue;     MyColor[]  color = new MyColor[COLORNUMBER];     for (int i = 0; i < COLORNUMBER; i++)    {     red =  (int) (Math.random()  * 256);     green =  (int) (Math.random()  * 256);     blue =  (int) (Math.random()  * 256);     color[i]  = ______ (red,  green, blue);     }     palette = new Palette (color, COLORNUMBER);     System.out.println (palette);     }     }

简答题

课程名称:程序员

题目:阅读下列说明和C++代码,填补代码中的空缺,将解答填入答题纸的对应栏内。[说明]设计RGB方式表示颜色的调色板,进行绘图,其类图如下图所示。该程序的C++代码附后。类图 [C++代码]     #include<iostream>     #include <stdlib. h>     #include <crime>     using namespace std;     class MyColor {     private:     int red;      int green;      int blue;     public:     MyColor(){red = 0; green = 0; blue = 0;  }     ~MyColor () { }     MyColor(int red,  int green,  int blue)  {     this->red = red; this->green = green; this->blue = blue;}     void print()  {     cout<<"Red: " << red << "\tGreen: " << green << "\tBlue " << blue     << endl;     }     };     class Palette {     private:     int number; MyColor** palette;     public:     Palette(){ number = 256; palette = (MyColor**)malloc     (sizeof (MyColor*) *number);  }     ~Palette () {     for (int i = 0; i < number; i++)  { delete palette[i];  }     ______;     }     Palette(MyColor** pale,  int number)  {     ______ = number;     palette = (MyColor**)malloc(sizeof(MyColor*)*number);     memcpy(palette, pale,sizeof(pale)*number);     }     //其他方法略     void print()  {     for (int i = 0; i<number; i++)  {     cout << i << ":";     palette [i] ->print ();     }     }     };     class Drawing{     public:     ______ int COLORNUMBER = 16;     public:     ~Drawing()  {  }     void draw()  {     Palette* palette;     int red,  green,  blue;     MyColor* color[COLORNUMBER];     srand ((unsigned) time (0));     for (int i=0; i<COLORNUMBER; i++)    {     red=rand()  % 256; green = rand()  % 256; blue = rand() % 256;     color[i] = ______ (red,  green, blue);     }     palette = new Palette (color,  COLORNUMBER);     palette->print ();     for  (int i=0; i < COLORNUMBER; i++)     delete color[i];     }     };     int main  () {     Drawing * d = ______;     d->draw ();     delete d;     }

简答题

课程名称:程序员

题目:阅读以下说明和C函数,填补代码中的空缺,将解答填入答题纸的对应栏内。[说明]函数Combine(LinkList La,LinkList Lb)的功能是:将元素呈递减排列的两个含头结点单链表合并为元素值呈递增(或非递减)方式排列的单链表,并返回合并所得单链表的头指针。例如,元素递减排列的单链表La和Lb如图1所示,合并所得的单链表如图2所示。设链表结点类型定义如下: typedef Struct Node{     int data;     struct Node*next;     }Node,*LinkList;     [C函数]     LinkList Combine(LinkList La,LinkList Lb)     {  //La和Lb为含头结点且元素呈递减排列的单链表的头指针     //函数返回值是将La和Lb合并所得单链表的头指针     //且合并所得链表的元素值呈递增(或非递减)方式排列     ______Lc,tp,pa,pb;    //Lc为结果链表的头指针,其他为临时指针     if(!La)return NULL;     pa=La->next;        //pa指向La链表的第一个元素结点     if(!Lb) return NULL;     pb=Lb->next;       //pb指向Lb链表的第一个元素结点     Lc=La;            //取La链表的头结点为合并所得链表的头结点     Lc->next=NULL;     while(______)  {  //pa和pb所指结点均存在(即两个链表都没有到达表尾)     //令tp指向pa和pb所指结点中的较大者     if(pa->data>pb->data){     tp=pa;    pa=pa->next;     }     else{     tp=pb;    pb=pb->next;     }     ______ =Lc->next;    //tp所指结点插入Lc链表的头结点之后     Lc->next=______;     }     tp=(pa)?pa:pb;    //设置tp为剩余结点所形成链表的头指针     //将剩余的结点合并入结果链表中,pa作为临时指针使用     while  (tp)  {     pa=tp->next;     tp->next=Lc->next;     Lc->next=tp;     ______;     }     return Lc;     }

简答题

课程名称:程序员

题目:阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。[说明]下面的程序代码根据某单位职工的月工资数据文件(名称为Salary.dat,文本文件),通过调用函数GetIncomeTax计算出每位职工每月需缴纳的个人所得税额并以文件(名称为IncomeTax.dat,文本文件)方式保存。例如,有4个职工工资数据的Salary.dat内容如下,其中第一列为工号(整数),第2列为月工资(实数)。1030001  6200.001030002  5800.002010001  8500.002010010  8000.00相应地,计算所得IncomeTax.dat的内容如下所示,其中第3列为个人所得税额:1030001 6200.00 47.201030002 5800.00 35.942010001 8500.00 233.502010010 8000.00 193.00针对工资薪金收入的个人所得税计算公式为:个人所得税额=应纳税所得额×税率-速算扣除数其中,应纳税所得额=月工资-三险一金-起征点税率和速算扣除数分别与不同的应纳税所得额对应,如下表所示。设三险一金为月工资的19%,起征点为3500元。例如,某人月工资为5800元,按规定19%缴纳三险一金,那么:其应纳税所得额X=5800-5800×19%-3500=1198元,对应税率和速算扣除数分别为3%和0元,因此,其个人所得税额为1198×3%-0=35.94元。 [C代码]      #include <stdio.h>      #define BASE 3500                //起征点      #define RATE 0.19               //三险一金比例      ______;                             //声明函数GetIncomeTax     int main()      {      int id;      double salary;      FILE *fin,*fout;      fin = fopen("Salary.dat","r");      if  (______)  return 0;      fout = fopen("IncomeTax.dat","w");      if (______)  return 0;      while (!feof(fin))  {      if  (fscanf(fin,"%d%if", ______) !=2) break;      fprintf(fout,"%d\t%.21f\t%.21f\n",id, salary, ______);      }      fclose(fin);      fclose(fout);      return 0;      }      double GetIncomeTax(double salary)      {      double yns_sd;      yns_sd = ______ - BASE;        /*计算应纳税所得额*/      if  (yns_sd<=0)       return  0.0;      else  if  (yns_sd<=1500)      return yns_sd*0.03;      else  if  (yns_sd<=4500)      return yns_sd*0.1-105;      else  if  (yns_sd<=9000)      return yns_sd*0.2-555;      else  if  (yns_sd<=35000)     return yns sd*0.25-1005;      else  if  (yns_sd<=55000)     return yns_sd*0.3-2755;      else if(yns_sd<=80000)  return yns_sd*0.35-5505;      return yns_sd*0.45-13505;      }