有以下程序 #include<stdlib.h> struct NODE {int num;struct NODE*next;} main() {struct NODE

题目
有以下程序 include struct NODE {int num;struct NODE*next;} main() {struct NODE

有以下程序

#include<stdlib.h>

struct NODE

{int num;struct NODE*next;}

main()

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

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

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

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

p->num=10;q->num=20;r->num=30;

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

printf("%d\n",p->num+q->next->num):

}

程序运行后的输出结果是( )

A.10

B.20

C.30

D.40

参考答案和解析
正确答案:D
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有以下程序段 typedef struct node { int data; struct node *next; } *NODE; NODE p; 以下叙述正确的是( )。

A.p是指向struct node结构变量的指针的指针

B.NODE p;语句出错

C.p是指向struct node结构变量的指针

D.p是struct node结构变量


正确答案:C

第2题:

有以下程序

#include

struct NODE

{ int num; struct NODE *next; };

main()

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

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

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

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

p->num=10; q->num=20; r->num=30;

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

printf("%d\n ",p->num+q->next->num);

}

程序运行后的输出结果是

A.10

B.20

C.30

D.40


正确答案:D

第3题:

有以下程序段

typedef struct node { int data; struct node *next; } *NODE;

NODE p;

以下叙述正确的是

A)p 是指向 struct node 结构变量的指针的指针

B)NODE p ;语句出错

C)p 是指向 struct node 结构变量的指针

D)p 是 struct node 结构变量


正确答案:C

第4题:

以下程序运行后的输出结果是【 】。

struct NODE

{int num;struct NODE *next;

};

main()

{struct NODE s[3]={{1,'\0'},{2,'\0'},{3,'0'}},*p,*q,*r;

int sum=0;

s[0].next=s+1;s[1].next=s+2;s[2].next=s;

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

sum+=q->next->num; sum+=r->next->next->num;

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

}


正确答案:5
5 解析:程序通过语句“s[0].next=s+1;s[1].next=s+2;s[2].next=s;”将结构体变量s中各结点链接成了一个循环链表,即最后一个结点的指针域指向了头结点(s[2].next=s;),整个链表形成一个环,并通过语句“p=s;q=p->next;r=q->next;”将结构体指针变量p、q、r指向了各结点,具体结构如下图:

故本题输出的sum=3+2=5。

第5题:

有以下程序段: typedef struct NODE {int num; struct NODE *next; }OLD; 以下叙述中正确的是 ______。

A.以上的说明形式非法

B.NODE是一个结构体类型

C.OLD是一一个结构体类型

D.OLD是一个结构体变量


正确答案:C
解析:typedef关键字用于声明一个新的类型名代替已有的类型名。本题中如果没有用typedef进行定义的话,则struct NODE为结构体类型,现在用typedef定义后,相当于用OLD代表了struct NODE这一结构体类型,故OLD为结构体类型。

第6题:

以下程序的功能是:建立一个带布头结点的单向链表,并将存储在数组中的字符依次存储到链表的各个结点中,请从与下划线处号码对应的一组选项中选择出正确的选项

#include <stdlib.h>

struct node

{char data; struct node *next;};

(48) CreatList(char*s),

{struct node *h,*p,*q;

h=(struct node*)malloc(sizeof(struct node));

p=q=h;

while(*s!="\0")

{ p=(struct node*)malloc(sizeof(struct node));

p->data= (49) ;

q->next=p;

q= (50) ;

s++;

}

p->next="\0";

return h;

}

main()

{ char str[]="link list";

struct node*head;

head=CreatList(str);

}

(1)

A.char*

B.struct node

C.struct node*

D.char


正确答案:C

第7题:

有以下程序: inClude structNODE{ int num; structNODE*next; }; main() {StructN00E

有以下程序:

#inClude <stdlib.h>

struct NODE{

int num;

struct NODE *next;

};

main()

{ Struct N00E *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->num=1;q->num=2;r->num=3;

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

sum+=q->next->num;sum+=p->num;

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

}

执行后的输出结果是

A.3

B.4

C.5

D.6


正确答案:B
解析:本题中定义了一个结点structNODE,在主函数中定义了三个结点变量指针p、q和r,接着通过malloc函数分配了三个结点并让p、q和r分别指向他们,再接着给p、q和r所指向的结点的hum域赋值为1、2、3,然后让结点p指向q,让q指向r,r指向NULL。显然q->next->num的值为指针r所指向结点的num域的值为3,p->num的值为指针p所指向结点的num域的值为1,故最后输出s的值为3+1=4。所以,4个选项中选项B符合题意。

第8题:

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

#include <stdio.h>

struct node

{ int data;

struct node *next;

};

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

{ strct node *p; int m;

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

for(;p!=NULL;p= _[20]_______ )

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

return m;

}


正确答案:

第9题:

有以下程序: include include struct NODE {int num;struct NODE *next; }

有以下程序:

#include <stdio.h>

#include <stdlib.h>

struct NODE

{ int num;

struct NODE *next;

};

main()

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

int sum=0;

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

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

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

P- >num=1;q- >num=2;r->num=3;

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

sum + =q- >next- >num;sum + =P- >num;

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

}

执行后的输出结果是( )

A.3

B.4

C.5

D.6


正确答案:B
解析:程序中q->next=r,所以q->next->num即为r->num,值为3,而p->num=1,所以sum=3+1=4。

第10题:

以下程序把三个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++指向下—个链表结点。

更多相关问题