阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。 [说明] 下面程序实现十进制向其它进制的转换。 [C++程序] #include"ioStream.h" #include"math.h" #i

admin2010-12-16  32

问题 阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。
   [说明]
   下面程序实现十进制向其它进制的转换。
   [C++程序]
   #include"ioStream.h"
   #include"math.h"
   #include
   typedef struct node {
   int data;
   node*next;
   }Node;
   Class Transform
   {
   DUDlic:
   void Trans(int d,int i);    //d为数字;i为进制
   void print();
   private:
   Node*top;
   };
   void Transform::Trans(int d,int i)
   {
   int m,n=0;
   Node*P;
   while(d>0)
   {
     (1);
   d=d/i;
   p=new Node;
   if(!n){
   p->data=m;
     (2);
     (3);
   n++;
   }
   else{
   p->data=m;
     (4);
     (5);
   }
   }
   }
   void Transform::print()
   {
   Node*P;
   while(top!=NULL)
   {
   p=top;
   if(p->data>9)
   cout<<data+55;
   else
   cout<<data;
   top=p->next;
   delete p;
   }
   }

选项

答案(1) m=d%i (2) top=p (3) top->next=NULL (4) p->next=top (5) top=p

解析 本题考查C++编程,主要考查了链表的使用。
   所有的问题只出在函数Trans中,它的功能是完成将十进制数d转换为任意进制i的数,并存在数组中。函数中首先定义了一个指向链表结点的指针,然后开始进行转换,进制转换应该是一个很常见的问题,就是不断的求模运算,所以(1)处应填入“m=d%i”。然后,我们要把求模的结果保存到链表结点中,并使链表首指针指向该结点,结点中指向下一个结点”的指针设为空,所以(2)处应填入“top=p”,(3)处应填入“top->next=NULL”。由于求模运算是从低位到高位逐位求出的,所以在我们在进行完第二次求模运算后,应该将第二次运算的结果放到链表首位,所以(4)处应填入“P->next=top”,(5)处应填入“top=p”。
转载请注明原文地址:https://kaotiyun.com/show/vBjZ777K
0

最新回复(0)