[说明]
下而程序实现十进制向其他进制的转换。
[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。