下面程序实现十进制向其他进制的转换。[Java程序]C1ass Node{int data;Node next;}class Transform{private Node top;publiC void print(){Node P;while(top !=null){P=top;if(P.data>9)System.out.print((char)(p.data+55));elseSystem.out.print(p.data);top=P.next;}}public void Trans(int d,

题目

下面程序实现十进制向其他进制的转换。

[Java程序]

C1ass Node{

int data;

Node next;

}

class Transform{

private Node top;

publiC void print(){

Node P;

while(top !=null){

P=top;

if(P.data>9)

System.out.print((char)(p.data+55));

else

System.out.print(p.data);

top=P.next;

}

}

public void Trans(int d,int i)(//d为数字;i为进制

int m;

(1) n=false;

Node P;

while(d>0){

(2) ;

d=d/i;

P=flew Node();

if( (3) ){

P.data=m;

(4) ;

top=P;

n=true;

}

else{

p.data=m;

(5) ;

toP=P;

}

}

}

}


相似考题

2.阅读以下技术说明和Java代码,将Java程序中(1)~(5)空缺处的语句填写完整。[说明]类Queue表示队列,类中的方法如表4-12所示。类Node表示队列中的元素;类EmptyQueueException给出了队列中的异常处理操作。[Java代码]public class testmain { //主类public static viod main (string args[]) {Queue q= new Queue;q.enqueue("first!");q.enqueue("second!");q.enqueue("third!");(1) {while(true)system.out.println(q.dequeue());}catch( (2) ) { }}public class Queue { //队列node m_firstnode;public Queue(){m_firstnode=null;}public boolean isempty() {if (m_firstnode= =null)return true;elsereturn false;}public viod enqueue(object newnode) { //入队操作node next = m_firstnode;if (next = = null) m_firstnode=new node(newnode);else {while(next.getnext() !=null)next=next.getnext();next.setnext(new node(newnode));}}public object dequeue() (3) { //出队操作object node;if (is empty())(4)else {node =m_firstnode.getobject();m_firstnode=m_firstnode.getnext();return node;}}}public class node{ //队列中的元素object m_data;node m_next;public node(object data) {m_data=data; m_next=null;}public node(object data,node next) {m_data=data; m_next=next;}public void setobject(object data) {m_data=data; }public object getobject(object data) {return m_data; }public void setnext(node next) {m_next=next; }public node getnext() {return m_next; }}public class emptyqueueexception extends (5) { //异常处理类public emptyqueueexception() {system. out. println ( "队列已空!" );}}

更多“下面程序实现十进制向其他进制的转换。 [Java程序] C1ass Node{int data;Node next;}class Transf ”相关问题
  • 第1题:

    阅读以下说明和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
    (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”。

  • 第2题:

    下列给定程序中,是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。

    请改正程序指定部位的错误,使它能得到正确结果。

    [注意] 不要改动main函数,不得增行或删行,也不得更改程序的结构。

    [试题源程序]

    include<stdio.h>

    include<stdlib.h>

    typedef struct aa

    {

    int data;

    struct aa *next;

    }NODE;

    fun(NODE *h)

    {

    int max=-1;

    NODE *p;

    /***********found************/

    p=h;

    while(p)

    {

    if(p->data>max)

    max=p->data;

    /************found************/

    p=h->next;

    }

    return max;

    }

    outresult(int s, FILE *Pf)

    {

    fprintf(pf, "\nThe max in link: %d\n", s);

    }

    NODE *creatlink(int n, int m)

    {

    NODE *h, *p, *s, *q;

    int i, x;

    h=p=(NODE *)malloc(sizeof(NODE));

    h->data=9999;

    for(i=1; i<=n; i++)

    {

    s=(NODE *)malloc(sizeof(NODE));

    s->data=rand()%m; s->next=p->next;

    p->next=s; p=p->next;

    }

    p->next=NULL;

    return h;

    }

    outlink(NODE *h, FILE *pf)

    {

    NODE *p;

    p=h->next;

    fprintf(Pf, "\nTHE LIST:\n\n HEAD");

    while(P)

    {

    fprintf(pf, "->%d", P->datA); p=p->next;

    }

    fprintf(pf, "\n");

    }

    main()

    {

    NODE *head; int m;

    head=cteatlink(12,100);

    outlink(head, stdout);

    m=fun(head);

    printf("\nTHE RESULT"\n");

    outresult(m, stdout);

    }


    正确答案:(1)错误:p=h; 正确:p:h->next; (2)错误:p=h->next; 正确:p=p->next;
    (1)错误:p=h; 正确:p:h->next; (2)错误:p=h->next; 正确:p=p->next; 解析:程序中使用while循环语句并结合结构指针p来找到数据域中的最大值。
    错误1:P指向形参结构指针h的next指针,所以应改为:p=h->next;
    错误2:p指向自己的下一个结点,所以应改为:p=p->next

  • 第3题:

    为了建立如图所示存储结果,data为数据区,next为指向结点的指针域,请填空: data next struct link { char data; ; }node;


    struct link *next;

  • 第4题:

    阅读以下说明和Java程序,将应填入(n)处的字句写在对应栏内。

    [说明]

    下面程序实现十进制向其它进制的转换。

    [Java程序]

    ClasS Node{

    int data;

    Node next;

    }

    class Transform{

    private Node top;

    public void print(){

    Node p;

    while(top!=null){

    P=top;

    if(P.data>9)

    System.out.print((char)(P.data+55));

    else

    System.out.print(p.data);

    top=p.next;

    }

    }

    public void Trans(int d,int i){//d为数字;i为进制

    int m;

    (1) n=false;

    Node p;

    while(d>0){

    (2);

    d=d/i;

    p=new Node();

    if( (3) ){

    p.data=m;

    (4);

    top=P;

    n=true;

    }

    else{

    p.data=m;

    (5);

    top=P;

    }

    }

    }

    }


    正确答案:(1) boolean (2) m=d%i (3) !n (4) top->next=null (5) p->next=top
    (1) boolean (2) m=d%i (3) !n (4) top->next=null (5) p->next=top 解析:本题考查Java编程,主要考查了链表的使用。
    所有的问题只出在函数Trans中,它的功能是完成将十进制数d转换为任意进制i的数,并存在数组中。变量n被赋值为false,说明n是布尔型变量,Java中布尔型变量关键字为boolean。故(1)应填“boolean”。函数中首先定义了一个指向链表结点的指针(实为链栈),然后开始进行转换,进制转换应该是一个很常见的问题,就是不断地求模运算,所以(2)处应填入“m=d%i”。然后,我们要把求模的结果保存到链栈中。对于链栈,第一个结点比较特殊,需要特殊处理,从if块中的语句“n=true”可知,此处正是处理第一个结点的特殊情况,故(3)应填“!n”,(4)处应填入“top->next=null”。这里采用的链栈,所以(5)处应填入“p->next=top”。

  • 第5题:

    下而程序实现十进制向其他进制的转换。

    [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
    (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。