下而程序实现十进制向其他进制的转换。 [C++程序] #include"ioStream.h" #include"math.h" #include <conio.h> typedef struct node{ int

admin2012-03-13  23

问题  下而程序实现十进制向其他进制的转换。
   [C++程序]
   #include"ioStream.h"
   #include"math.h"
   #include <conio.h>
   typedef struct node{
     int data;
     node *next;
   }Node;
   class Transform
   {
   public:
     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)  j
             (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/l6jZ777K
0

相关试题推荐
最新回复(0)