简答题

课程名称:程序员

题目:阅读以下说明和Java代码,填补代码中的空缺,将解答填入答题纸的对应栏内。[说明]在股票交易中,股票代理根据客户发出的股票操作指示进行股票的买卖操作。其类图如下图所示。相应的Java代码附后。类图 [Java代码]     import Java.util.ArrayList;     import java.util.List;     ClaSS Stock{     private String name;     private int quantity;     public Stock(String name,int quantity){     thiS.name=name;this.quantity=quantity;     }     public void buy(){  System.out.println("[买进]:"+name+",数量:"     +quantity);}     public void sell() {System.out.println("[卖出]:"+name+",数量:"     +quantity);}     }     interface Order {     VOid execute();     }     class BuyStock ______ Order {     private Stock Stock;     public BuyStock(Stock stock){______=stock;  }     public void execute(){    stock.buy();  }     }     //类SellStock实现和BuyStock类似,略     clasS Broker{     private List<Order>orderList=new ArrayList<Order>();     Dublic void takeOrder(______ Order){  orderList.add(order);    }     public void placeorders(){     for {______ order:orderList) {order.execute();  }     orderLiSt.clear();     }     }     public class StockCommand {     public static void main(String[]args){     Stock aStock:new Stock("股票A",10);     Stock bStock=new Stock("股票B",20);     Order buyStockorder=new BuyStock(aStock);     Order sellStockOrder=new SellSt0Ck(bStoCk);     Broker broker=new Broker();     broker.takeOrder(buyStockorder);     broker.takeOrder(sellStockOrder);     broker.______;     }     }

简答题

课程名称:程序员

题目:阅读以下说明和C++代码,填补代码中的空缺,将解答填入答题纸的对应栏内。[说明]在股票交易中,股票代理根据客户发出的股票操作指示进行股票的买卖操作。其类图如下图所示,相应的C++代码附后。类图 [C++代码]     #include<iostream>     #include<string>     #include<vector>     using namespace std;     class Stock {     private:     string name;    int quantity;     public:     Stock(string name,int quantity) {this->name=name; this->quantity     =quantity;}     void buy() {cout<<"[买进]股票名称:"<<name<<",数量:"<<quantity<<     endl;}     void sell() {cout<<"[卖出]股票名称:"<<name<<",数量:"<<quantity     <<endl;}     };     clasS order{     public:     virtual void execute()=0;     };     class BuyStock:______ {     private:     Stock* stock;     public:     BuyStock(Stock* stock){______ =stock;  }     void execute(){    stock一>buy();    }     };     //类SellStock的实现与BuyStock类似,此处略     class Broker{     private:     vector<Order*> orderList;     public:     void takeOrder(______ order)(    orderLiSt.push back(order);}     void placeorders()  {     for(int i=0;i<orderList.Size(); i++){______ ->execute();}     0rderLiSt.clear();     }     };     class StockCommand{     public:     VOid main(){     Stock* aStock=new Stock("股票A",10);     Stock*bStock=new Stock("股票B",20);     Order*buyStockOrder=new BuyStock(aStock);     Order* sellStockOrder=new SellStock(bStock);     Broker* broker=new Broker();     broker->takeOrder(buyStockorder);     broker->takeOrder(sellStockOrder);     broker-> ______ ();     }     };     int main(){     StockCommand* stockCommand=new StockCommand();     StockCommand->main();     delete StoCkCommand;     }

简答题

课程名称:程序员

题目:  阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。[说明]函数GetListElemPtr(LinkList L,int i)的功能是查找含头结点单链表的第i个元素。若找到,则返回指向该结点的指针,否则返回空指针。函数DelListElem(LinkList L,int i,ElemType *e)的功能是删除含头结点单链表的第i个元素结点,若成功则返回SUCCESS,并由参数e带回被删除元素的值,否则返回ERROR。例如,某含头结点单链表L如下图(a)所示,删除第3个元素结点后的单链表如下图(b)所示。 #define SUCCESS 0     #define ERROR  -1     typedef int Status;     typedef int ElemType; 链表的结点类型定义如下: typedef struct Node{     ElemType data;     struct Node *next;     }Node,*LinkList;     [C代码]     LinkList GetListElemPtr(LinkList L,int i)     {  /*L是含头结点的单链表的头指针,在该单链表中查找第i个元素结点;     若找到,则返回该元素结点的指针,否则返回NULL     */     LinkList p;     int k;    /*用于元素结点计数*/     if(i<1 || !L || !L->next) return NULL;     k=1; p=L->next;    /*令p指向第1个元素所在结点*/     while(p && ______){    /*查找第i个元素所在结点*/     ______;  ++k;     }     return p;     }     Status DelListElem(LinkList L,int i,ElemType *e)     {  /*在含头结点的单链表L中,删除第i个元素,并由e带回其值*/     LinkList p,q;     /*令P指向第i个元素的前驱结点*/     if(i==1)     ______;     else     p=GetListElemPtr(L,i-1);     if(!P || !p->next)  return ERROR; /*不存在第i个元素*/     q=______;    /*令q指向待删除的结点*/     p->next=q->next;    //从链表中删除结点*/     ______;    /*通过参数e带回被删除结点的数据*/     free(q);     return  SUCCESS;     }

简答题

课程名称:程序员

题目:阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。[说明]对一个整数序列进行快速排序的方法是:在待排序的整数序列中取第一个数作为基准值,然后根据基准值进行划分,从而将待排序列划分为不大于基准值者(称为左子序列)和大于基准值者(称为右子序列),然后再对左子序列和右子序列分别进行快速排序,最终得到非递减的有序序列。函数quicksort(int a[],int n)实现了快速排序,其中,n个整数构成的待排序列保存在数组元素a[0]~a[n-1]中。[C代码]     #inclLade<stdi0.h>     void quicksort(int a[],  int n)     {     int i,j;     int pivot=a[0];    //设置基准值     i=0;  j=n-1;     while (i<j){     while (i<1 && ______)  j--;    //大于基准值者保持在原位置     if  (i<j)  {  a[i]  =a[j];  i++;}     while(i<j&& ______)  i++;    //不大于基准值者保持在原位置     if  (i<1)  {  a[j]  =a[i];  1--;}     }     a[i]=pivot;    //基准元素归位     if  (i>1  )     ______;    //递归地对左孔序列进行快速排序     if  (n-i-1>1  )     ______;    //递归地对右孔序列进行快速排序     }     int main()     {     int i,  arr[] ={23,56,9,75,18,42,11,67};     quicksort(______);    //调用quicksort对数组arr[]进行排序     for(  i=0;  i<sizeof(arr)/sizeof(int);  i++  )     printf("%d\t",arr[i]);     return 0;     }

简答题

课程名称:程序员

题目:阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。[说明]下面的代码运行时,从键盘输入一个四位数(各位数字互不相同,可以有0),取出组成该四位数的每一位数,重组成由这四个数字构成的最大四位数max4和最小四位数min4(有0时为三位数),计算max4与min4的差值,得到一个新的四位数。若该数不等于6174,则重复以上过程,直到得到6174为止。例如,输入1234,则首先由4321-1234,得到3087;然后由8730-378,得到8352;最后由8532-2358,得到6174。[C代码]     #include<stdio.h>     int difference(int a[])     (  int t,i,j,max4,min4;     for(i=0; i<3; i++){/*用简单选择排序法将a[0]~a[3]按照从大到小的顺序排列*/     t=i;     for(j=i+1; ______; j++)     if(a[j]>a[t]) ______;     if(t!=i){     int temp=a[t];  a[t]=a[i];  a[i]=temp;     }     }     max4=______;     min4=______;     return max4-min4;     }     int main()     {    int n,a[4];     printf("input a positive four-digit number:");     scanf("%d",&n);     while(n!=6174){     a[0]= ______;    /*取n的千位数字*/     a[1]=n/100%10;    /*取n的百位数字*/     a[2]=n/10%10;    /*取n的十位数字*/     a[3]= ______;    //取n的个位数字*/     n=difference(a);     }     return 0;     }