itgle.com

以下程序把三个NODETYPE型的变量链接成一个简单的链表,并在while循环中输出链表结点数据域中的数据,请填空#include <stdio.h>struct node{int data; struct node *next;};typedef struct node NODETYPE;main(){NODETYPE a,b,c,*h,*p;a. data=10;b.data=20;c.data=30;h=&a;b. next=&b;b.next=&c;c.next=’\0’;p=h;while(p)

题目

以下程序把三个NODETYPE型的变量链接成一个简单的链表,并在while循环中输出链表结点数据域中的数据,请填空

#include <stdio.h>

struct node

{int data; struct node *next;};

typedef struct node NODETYPE;

main()

{NODETYPE a,b,c,*h,*p;

a. data=10;b.data=20;c.data=30;h=&a;

b. next=&b;b.next=&c;c.next=’\0’;

p=h;

while(p){printf(“&d”,p->data);【15】;}

}


相似考题
参考答案和解析
正确答案:

15p=p—>next

更多“以下程序把三个NODETYPE型的变量链接成一个简单的链表,并在while循环中输出链表结点数据域中 ”相关问题
  • 第1题:

    以下程序把三个NODEIYPE型的变量链接成—个简单的链表,并在while循环中输出链表结点数据域中的数据。请填空。

    include<stdio.h>

    struct node

    { int data;struct node*next;);

    typedef struct node NODETYPE;

    main()

    { NODETYPEa,b,c,*h,*p;

    a.data=10;b.data=20;c.data=30;h=&a;

    anext=&b;b.next=&c;c,next='\0';

    p=h;

    while(p){printf("%d,",p->data):【 】;}

    printf("\n");

    }


    正确答案:P++
    P++ 解析:本题主要考查的是将NODETYPE型的变量链接成—个简单的链表,利用typedef把NODETYPE变成struct node的别名,当执行while循环时,首先判断是否到了最后—个链表结点,如果没有则引用结构体中的成员data,然后指向下—个链表结点,继续判断,因此,此处应填的是p++指向下—个链表结点。

  • 第2题:

    给定程序modil.c的主函数中,将a.b、c三个结点链成一个单向链表,并给各结点的数据域赋值,函数fun( )的作用是:累加链表结点数据域中的数据作为函数值返回。

    请改正函数fun中指定部位的错误,使它能得出正确的结果。

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


    正确答案:
    (1)intt;改为intt=0;(2)*P改为P或者P!=NULL(3)P.data改为P->data【考点分析】主要考察考生对于操作符.与->的异同的理解,指针只能有->,数组元素可以有.或者->。【解题思路】(1)intt;改为intt=0;题目中变量t是用来存放累加和的,必须初始化。(2)*P改为P或者P!=NULL,题目中*P是结构体,不能转化为bool型;(3)P.data改为P->data,P是指针,只能用P->,不能用P。

  • 第3题:

    计一个算法,通过遍历一趟,将带头结点链表中所有结点的链接方向逆转,仍利用原表的存储空间。 [题目分析] 从首元结点开始,逐个地把链表L的当前结点p插入新的链表头部。 void inverse(LinkList &L) {……}


    void inverse(LinkList &L){// 逆置带头结点的单链表 Lp=L->next; L->next=NULL;while ( p) {q=p->next; // q指向*p的后继p->next=L->next;L->next=p; // *p插入在头结点之后p = q;}}

  • 第4题:

    以下程序中函数fun的功能是:构成—个如图所示的带头结点的单向链表,在结点的数据域中放入了具有两个字符的字符串。函数disp的功能是显示输出该单向链表中所有结点中的字符串。请填空完成函数disp。

    include<stdio.h>

    typedef struct node /*链表结点结构*/

    { char sub[3];

    struct node *next;

    }Node;

    Node fun(char s) /* 建立链表*/

    { ...... }

    void disp(Node *h)

    { Node *p;

    p=h->next;

    while([ ])

    {printf("%s\n",p->sub);p=[ ];}

    }

    main()

    { Node *hd;

    hd=fun(); disp(hd);printf("\n");

    }


    正确答案:p!=NULL 或 p 或 p!=0 或 p!='0' p->next 或 (*P).next
    p!=NULL 或 p 或 p!=0 或 p!='0' p->next 或 (*P).next 解析:此题主要考核的是用指针处理链表。自定义结构体类型名为Node,并定义一个指向结点类型的指针next。用Node来定义头结点指针变量h,并定义另—个指针变量p指向了第—个结点,在满足p未指向最后—个结点的空指针时,输出p所指向结点的字符串,所以第—个空填p!=NULL或p或p!=0或p!='\0',然后将p指向下一个非空结点,所以第二个空填p->next或与其等效的形式,反复执行直到所有的结点都输出,即遇到p的值为NULL。

  • 第5题:

    设线性表为(6,10,16,4),以下程序用说明结构变量的方法建立单向链表,并输出链表中各结点中的数据。