niusouti.com

单选题假定一个链表中结点的结构类型为“struct AA{int data, struct AA *next;};”,则next数据成员的类型为()。A struct AAB struct AA*C AAD int

题目
单选题
假定一个链表中结点的结构类型为“struct AA{int data, struct AA *next;};”,则next数据成员的类型为()。
A

struct AA

B

struct AA*

C

AA

D

int


相似考题
更多“假定一个链表中结点的结构类型为“struct AA{int data, struct AA *next;};”,则nex”相关问题
  • 第1题:

    函数min()的功能是:在带头结点的单链表中查找数据域中值最小的结点。请填空includestruc

    函数min()的功能是:在带头结点的单链表中查找数据域中值最小的结点。请填空

    include <stdio.h>

    struct node

    { int data;

    struct node *next;

    };

    int min(struct node *first)/*指针first为链表头指针*/

    { struct node *p; int m;

    p=first->next; re=p->data; p=p->next;

    for( ;p!=NULL;p=【 】)

    if(p->data<m ) re=p->data;

    return m;

    }


    正确答案:p->next
    p->next 解析:本题考查的知识点是:链表的筛选。题目要求筛选出链表中最小的值,所以需要先定义一个临时变量,并将第1个值赋给该变量,就好像本题程序中定义的变量 m。然后遍历整个链表,拿链表中的每一个值跟m比较,如果找到比m小的值,就让m等于该值,这样遍历结束后,m中就是该链表的最小值了。题目中的空位于for循环的第3个表达式处,这里的for循环就是用来遍历整个链表的,所以该表达式需要完成的任务是:将循环变量p指向当前结点的下一个结点。故不难得知应填p->next。

  • 第2题:

    已知形成链表的存储结构如下图所示,则下述类型描述中的空白处应填______。 struct link { char data; ______; }node;

    A.struct link next

    B.link * next

    C.struct next link

    D.struct link *next


    正确答案:D
    解析:在单向链表中,由于每个结点需要存储下一个结点的地址,且下一个结点的数据类型与前一个结点的数据类型完全相同,故应为structlink*next。

  • 第3题:

    有以下结构体说明和变量定义,如图所示: struct node {int data;struct node *next;} *p,*q,*r,

    现妥将q所指结点从链表中删除,同时要保持链表的连续,以下不能完成指定操作的语句是______。

    A.P->next=q->next;

    B.p->next=(p->next->next;

    C.p->next=r

    D.p=q->next;


    正确答案:D
    解析:要想将q所指结点从链表中删除,同时保持链表的连续,必需使p结点的next指向r,在四个选项中,只有选项 D不能做到。

  • 第4题:

    已知形成链表的存储结构如下图所示,则下述类型描述中的空白处应填______。 struct 1ink { char data; }node;

    A.struct link next

    B.link*next

    C.sluct next link

    D.struct link*next


    正确答案:D
    解析:在单向链表中,由于每个结点需要存储下—个结点的地址,且下—个结点的数据类型与前—个结点的数据类型完全相同,故应为strect link*next。

  • 第5题:

    链表题:一个链表的结点结构

    struct Node

    {

    int data ;

    Node *next ;

    };

    typedef struct Node Node ;

    (1)已知链表的头结点head,写一个函数把这个链表

    逆序( Intel)


    正确答案:

    Node * ReverseList(Node *head) //链表逆序
    {
    if ( head == NULL || head->next == NULL )
    return head;
    Node *p1 = head ;
    Node *p2 = p1->next ;
    Node *p3 = p2->next ;
    p1->next = NULL ;
    while ( p3 != NULL )
    {
    p2->next = p1 ;
    p1 = p2 ;
    p2 = p3 ;
    p3 = p3->next ;
    }
    p2->next = p1 ;
    head = p2 ;
    return head ;
    }

  • 第6题:

    有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向此链表中的3个连续结点。struct node { int data;struct node *next;} *p,*q,*r;

    现要将q所指结点从链表中删除,同时要保持链表的连续,以下不能完成指定操作的语句是

    A.p->next=q->next;

    B.p-next=p->next->next;

    C.p->next=r;

    D.p=q->enxt;


    正确答案:D
    解析:本题考查链表结点的删除。q->next中存放的是r所指结点的首地址,将r所指结点的首地址存于p->next中,则实现删除q所指结点的功能,并保持链表连续,p所指结点与r所指结点相连。

  • 第7题:

    已知形成链表的存储结构如下图所示,则下述类型描述中的空白处应填______。 struct link { char data; ______, }node;

    A.struct link next

    B.link *next

    C.stuct next link

    D.struct link *next


    正确答案:D
    解析:在单向链表中,由于每个结点需要存储下一个结点的地址,且下—个结点的数据类型与前—个结点的数据类型完全相同,故应为structlink*next。

  • 第8题:

    下面正确定义了仅包含一个数据成员info的单链表的结点类型。struct node { int info;struct node next;} ()

    此题为判断题(对,错)。


    正确答案:错误

  • 第9题:

    以下对结构体类型变量td的定义中,错误的是( )。

    A.typedef struct aa { int n; float m; }AA; AA td;

    B.struct aa { int n; float m; }td; stmct aa td;

    C.stmct { int n; float m; }aa; stmct aa td;

    D.struct { int n; float m; }td;


    正确答案:C
    解析:选项A使用typedef语句给结构体8a定义了一个新的名称AA,因此使用AA直接声明结构体变量td是正确的。选项B中,前面一句是定义结构体同时声明了结构体变量td,后一句是使用结构体名aa声明结构体变量td,都是正确的写法。选项C的第1条语句和选项D使用的是无名结构体直接声明变量的语法,是正确的,但是选项C的第2条语句使用已经声明的结构体变量aa来声明td是错误的。故应该选择c。

  • 第10题:

    假定一个结构类型的定义为 “struct D{int a; D* next;};”,则该类型的长度为()。

    A4

    B8

    C12

    D16


    B

  • 第11题:

    问答题
    设某带头结头的单链表的结点结构说明如下:typedef struct nodel{int data struct nodel*next;}node;试设计一个算法:void copy(node*headl,node*head2),将以head1为头指针的单链表复制到一个不带有头结点且以head2为头指针的单链表中。

    正确答案: 一边遍历,一边申请新结点,链接到head2序列中。
    解析: 暂无解析

  • 第12题:

    填空题
    设线性链表的存储结构如下: struct node {ELEMTP data; /*数据域*/ struct node *next; /*指针域*/ } 试完成下列在链表中值为x的结点前插入一个值为y的新结点。如果x值不存在,则把新结点插在表尾的算法。 void inserty(struct node *head,ELEMTP x,ELEMTP y) {s=(struct node *)malloc(sizeof(struct node)); (); if(){s->nexr=head;head=s;} else { q=head;p=q->next; while(p->dqta!=x&&p->next!=NULL){q=p;()} if(p->data= = x){q->next=s;s->next=p;} else{p->next=s;s->next=NULL;} } }

    正确答案: s->data=y,head->data= =x,p=p->next
    解析: 暂无解析

  • 第13题:

    以下程序的功能是建立—个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-1时,表示输入结束(链表头结点的data域不放数据,表空的条件是ph->next==NULL),请填空。

    include<stdio.h>

    struct list { int data;struct list *next;};

    struct list * creatlist()

    { struct list *p,*q,*ph;int a;ph=(struct list *)malloc(sizeof(struct


    正确答案:
    解析: 本题考查的是链表这一数据结构对结构体变量中数据的引用。链表的特点是结构体变量中有两个域,一个是数据,另一个是指向该结构体变量类型的指针,用以指明链表的下一个结点。

  • 第14题:

    以下对结构体类型变量的定义中,不正确的是( )

    A.typedef struct aa { int n; float m; }AA; AA tdl;

    B.#define AA struct aa AA{ int n; float m; }tdl;

    C.struct { int n; float m; }aa; struct aa tdl;

    D.struct { int n; float m, }tdl;


    正确答案:C

  • 第15题:

    以下对结构体类型变量td的定义中,错误的是 ______。

    A.typedef struct aa

    B.struct aa {int n; {int n; float m; float m; }AA; }td; AAtd; struct aa td;

    C.struct

    D.struct {int n; {int n; float m; float m; }aa; }td; struct aa td;


    正确答案:C
    解析:选项C中的aa本身就为结构体变量名,所以不能再用它来定义结构体变量,故此种定义方法是错误的。

  • 第16题:

    以下结构类型可用来构造链表的是______ 。

    A.street aa{int a;int *b;};

    B.struct bb {int a;bb*b;};

    C.struct cc{int *a;cc b;};

    D.struct dd {int *a;aa b;};


    正确答案:B
    解析:如果要构造链表,则必须有指向下一个结点的指针。

  • 第17题:

    以下对结构体类型变量的定义中,不正确的是_______。

    A.typedef struct aa { int n; float m; }aa; aa td1;

    B.#define aa struct aa aa{ int n; float m; }td1;

    C.struct { int n; float m; }aa; struct aa td1;

    D.struct { int n; float m; }td1;


    正确答案:C
    解析:本题的考查点是结构体类型变量的定义。在选项C中,aa是—个结构体变量,而不是结构体名,所以structaatd1;是非法的。

  • 第18题:

    以下对结构体类型变量td的定义中,错误的是

    A.typedef struct aa { int n; float m; }AA; AA td;

    B.stmct aa{ int n;float m;}td;stmct aa td;

    C.struct { int n; float m; }aa; struct aa rd;

    D.struct{ int n;float m;}td;


    正确答案:C
    解析:选项A使用typedef语句给结构体aa定义了—个新的名称AA,因此使用AA直接声明结构体变量td是正确的。选项B中,前面一句是定义结构体同时声明了结构体变量td,后一句是使用结构体名sa声明结构体变量td,都是正确的写法。选项C的第1条语句和选项D使用的是无名结构体直接声明变量的语法,是正确的,但是选项C的第2条语句使用已经声明的结构体变量aa来声明td是错误的.故应该选择C。

  • 第19题:

    有以下结构说明和变量定义,指针p、q、r分别指向链表中的3个连续结点。 struct node { int data;struct node*next;)*p,*q,*r; 现要将q所指结点从链表中删除,同时要保持链表的连续,以下不能按要求完成操作的语句是( )。

    A.p->next=q->next;

    B.P-next=P->next->next;

    C.p->next=r;

    D.p=q->next;


    正确答案:D
    本题考查链表结点的删除,q一>next中存放的是r所指结点的首地址,将r所指结点的首地址存于p--next中,则实现删除q所指点的功能,并保持链表连续,P所指点与r所指结点相连。

  • 第20题:

    以下对结构体类型变量td的定义中,错误的是( )。

    A.typcdef struct aa { int n; float m; } AA; AA td;

    B.struct aa {int n; float m; } struct aa td;

    C.struct {int n; float m; } aa; struct aa td;

    D.struct {int n; float m; }td;


    正确答案:C
    解析:选项A)中typedef的作用是声明一个新的类型名AA代替已有的结构体类型名struetaa,然后用AA定义结构体类型变量td;选项B)直接用结构体类型名structaa定义结构体类型变量td;选项C)中的aa本身就为结构体变量名,所以不能再用它来定义结构体变量,该项错误;选项D)省去了结构体名,直接将td定义为结构体变量,正确。

  • 第21题:

    下面程序的功能是建立一个有 3 个 结 点的单向循环链表,然后求各个 结 点数值域 data 中数据的和。请填空。

    include <stdio.h>

    include <stdlib.h>

    struct NODE{ int data;

    struct NODE *next;

    };

    main()

    { struct NODE *p,*q,*r;

    int sum=0;

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

    q=(struct NODE*)malloc(sizeof(struct NODE));

    r=(struct NODE*)malloc(sizeof(struct NODE));

    p->data=100; q->data=200; r->data=200;

    p-> next =q; q-> next =r; r-> next =p;

    sum=p->data+p->next->data+r->next->next 【 19 】 ;

    printf("%d\n",sum);

    }


    正确答案:
    (16)答案->next->data解析:r->next->next->next指向的是r结点,r->next->next->next->data是r的数据域data中的数据。

  • 第22题:

    假定一个链表中结点的结构类型为“struct AA{int data, struct AA *next;};”,则next数据成员的类型为()。

    Astruct AA

    Bstruct AA*

    CAA

    Dint


    B

  • 第23题:

    单选题
    假定一个链表中结点的结构类型为“struct AA{int data, struct AA *next;};”,则next数据成员的类型为()。
    A

    struct AA

    B

    struct AA*

    C

    AA

    D

    int


    正确答案: C
    解析: 暂无解析

  • 第24题:

    填空题
    设线性链表的存储结构如下: struct node {ELEMTP data; /*数据域*/ struct node *next; /*指针域*/ } 试完成下列建立单链表的算法。 creat() {char var; head=(struct node *)malloc(sizeof(struct node)); head->next= () ; while((var=getchar())!=‘/n’){ ptr=( struct node *)malloc(sizeof(struct node)); ptr->data= var ;ptr->next=head->next; head->next= ptr ; } }

    正确答案: NULL
    解析: 暂无解析