网友您好, 请在下方输入框内输入要搜索的题目:
题目内容
(请给出正确答案)
设链表中的结点是NODE类型的结构体变量,且有NODE*p;为了申请一个新结点,并由p指向该结点,可用以下语句()。
- A、p=(NODE*)malloc(sizeof(p));
- B、p=(*NODE)malloc(sizeof(NODE));
- C、p=(NODE)malloc(sizeof(p));
- D、p=(NODE*)malloc(sizeof(NODE));
参考答案
更多 “设链表中的结点是NODE类型的结构体变量,且有NODE*p;为了申请一个新结点,并由p指向该结点,可用以下语句()。A、p=(NODE*)malloc(sizeof(p));B、p=(*NODE)malloc(sizeof(NODE));C、p=(NODE)malloc(sizeof(p));D、p=(NODE*)malloc(sizeof(NODE));” 相关考题
考题
有以下程序段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 结构变量
考题
函数 main() 的功能是 : 在带头结点的单链表中查找数据域中值最小的结点 . 请填空#include stdio.hstruct 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-datam) m=p-data;return m;}
考题
有以下程序段 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结构变量
考题
有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向此链表中的三个连续节点。 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;
考题
以下程序的功能是:建立一个带布头结点的单向链表,并将存储在数组中的字符依次存储到链表的各个结点中,请从与下划线处号码对应的一组选项中选择出正确的选项#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 nodeC.struct node*D.char
考题
有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是struct node{ char data;struct node *next;} a,b,*p=a,*q=b;A.a.next=q;B.p.next=b;C.p-next=b;D.(*p).next=q;
考题
以下程序中函数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 *
考题
在C语言中,可以用typedef声明新的类型名来代替已有的类型名,比如有学生链表结点: typedef struct node{ int data; struct node * link; }NODE, * LinkList; 下述说法正确的是______。A.NODE是结构体struct node的别名B.* LinkList也是结构体struct node的别名C.LinkList也是结构体struct node的别名D.LinkList等价于node*
考题
针对以下C语言程序,请按要求回答问题。已知link. c源程序如下:/*link. c程序对单向链表进行操作,首先建立一个单向链表,然后根据用户的选择可以对其进行插入结点、删除结点和链表反转操作*/include<stdio. h>include<stdlib. h>typedef struct list_node * list_pointer; //定义链表指针typedef struct list_node{ //定义链表结构int data;list_pointer link;}list_node;//用到的操作函数list_pointer create(); //建立一个单向链表void insert(list_pointer * p_ptr,list_pointer node); //在node后加入一个新的结点void delete_node(list_pointer * p_ptr,list_pointer trail,list_pointer node);//删除前一个结点是trail的当前结点nodevoid print(list_pointer * p_ptr); //打印链表结点中的值list_pointer invert(list_pointer lead); //反转链表int main(){list_pointer ptr=NULL;list_pointer node,trail;list_pointer * P=&ptr;int choose,location,i;printf("you should create a link first:\n");//建立一个单向链表prt=create(); //ptr指向链表的第一个结点print(ptr);//根据用户的不同选择进行相应的操作:printf("input number 0,you can quit the program\n");printf("input number 1,you can insert a new node to link\n"):printf("input number 2,you can delete a node from the link\n");printf("input number 3,you can invert the link\n"):printf("please input you choice\n");scanf("%d",&choose);while(choose!=0){switch(choose){case 1:i=1:while(i<location){node=node->link;i++:}insert(p,node); //p为指向ptr的指针print(ptr);break;case 2:printf("you will delete a node from the link\n");printf("please input the location of the node:\n");scanf("%d",location):node=ptr;if(location==1)trail=NULL;trail=ptr;i=1:while(i<location){trail=trail->link:i++:}node=trail->link;delete_node(p,trail,node);print(ptr);break;case 3:printf("you will invert the link\n");ptr=invert(ptr);print(ptr);break;default;break;return -1;}printf("please input you choice\n");scanf("%d". &choose):}return 0;//根据用户的输入值建立一个新的单向链表:list_pointer create(){int i,current,length;list_pointer p1,p2,head;printf("please input the node number of the link:\n");scanf("%d". &length):printf("the number of the link is:%d",length);printf("please input the data for the link node:\n");i=0;p1=p2=(list_pointer)malloc(sizeof(list_node));head=p1;for(i=1;i<length;i++){scanf("%d",&current);p1->data=current;p2->link=p1;p2=p1;p1=(list_pointer)malloc(sizeof(list_node));}p2->link=NULL;return head;}画出主函数main的控制流程图。
考题
函数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;}
考题
有以下程序段: typedef struct NODE {int num; struct NODE *next; }OLD; 以下叙述中正确的是 ______。A.以上的说明形式非法B.NODE是一个结构体类型C.OLD是一一个结构体类型D.OLD是一个结构体变量
考题
以下程序把三个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");}
考题
有以下结构体说明和变量定义,如图所示: 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=rD.p=q->next;
考题
阅读以下说明和C语言函数,将应填入(n)。【说明】已知包含头结点(不存储元素)的单链表的元素已经按照非递减方式排序,函数 compress(NODE*head)的功能是去掉其中重复的元素,使得链表中的元素互不相同。处理过程中,当元素重复出现时,保留元素第一次出现所在的结点。图2-1(a)、(b)是经函数compress()处理前后的链表结构示例图。链表的结点类型定义如下:typedef struct Node{int data;struct Node *next;}NODE;【C语言函数】void compress(NODE *head){ NODE *ptr,*q;ptr= (1); /*取得第一个元素结点的指针*/while( (2) ptr->next) {q=ptr->next;while(q(3)) { /*处理重复元素*/(4)q->next;free(q);q=ptr->next;}(5) ptr->next;}/*end of while */}/*end of compress*/
考题
链表题:一个链表的结点结构struct Node{int data ;Node *next ;};typedef struct Node Node ;(1)已知链表的头结点head,写一个函数把这个链表逆序( Intel)
考题
有以下结构体说明和变量定义,如图所示,指针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;
考题
以下程序中函数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指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是( )。 struct node {chardata; struct node if next; }a,b,*p:a,*q=b;A.a.next=q;B.p.next=b;C.p->next=b:D.(*p).next=q;
考题
有以下结构说明和变量定义,指针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;
考题
以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转存到链表的各个结点中,请填空。 #include <stdlib.h> stuct node { char data; struet node * next; }; stntct node * CreatList(char * s) { struet 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 = ( ) q- >next=p; q=p; a++; p- > next ='\0'; return h; } main( ) { char str[ ]= "link list"; struet node * head; head = CreatList(str);A.*sB.sC.*s++D.(*s)++
考题
有以下结构体说明和变量的定义,且如图14-4所示的指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是______。struct node { char data; struct node * next; }a,b,*p=a,*q=b:A.a.next=q;B.p.next=b;C.p->next=b;D.(*p).next=q;
考题
有以下结构体说明和变量定义,相应的链表如图所示:struet node { int data; struet 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
考题
设链表中的结点是NODE类型的结构体变量,且有NODE*p;为了申请一个新结点,并由p指向该结点,可用以下语句()。Ap=(NODE*)malloc(sizeof(p));Bp=(*NODE)malloc(sizeof(NODE));Cp=(NODE)malloc(sizeof(p));Dp=(NODE*)malloc(sizeof(NODE));
考题
问答题下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun()的功能是:将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并作为函数值返回。 请改正函数fun中的错误,使它能得出正确的结果。 注意:部分源程序在文件MODII.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序:#include #include #include typedef struct aa{ int data; struct aa *next;}NODE;int fun(NODE *h){ int sum=0; NODE *p; p=h-next; /*********found*********/ while(p-next) { if(p-data%2==0) sum+=p-data; /*********found*********/ p=h-next; } return sum;}NODE *creatlink(int n){ NODE *h,*p,*s; int i; h=p=(NODE *)malloc(sizeof(NODE)); for(i=1;idata=rand()%16; s-next=p-next; p-next=s; p=p-next; } p-next=NULL; return h;}outlink(NODE *h){ NODE *p; p=h-next; printf("The LIST: HEAD"); while(p) { printf("-%d",p-data); p=p-next; } printf("");}main(){ NODE *head; int sum; system("CLS"); head=creatlink(10); outlink(head); sum=fun(head); printf("SUM=%d",sum);}
考题
问答题设某带头结头的单链表的结点结构说明如下:typedef struct nodel{int data struct nodel*next;}node;试设计一个算法:void copy(node*headl,node*head2),将以head1为头指针的单链表复制到一个不带有头结点且以head2为头指针的单链表中。
考题
单选题设链表中的结点是NODE类型的结构体变量,且有NODE*p;为了申请一个新结点,并由p指向该结点,可用以下语句()。A
p=(NODE*)malloc(sizeof(p));B
p=(*NODE)malloc(sizeof(NODE));C
p=(NODE)malloc(sizeof(p));D
p=(NODE*)malloc(sizeof(NODE));
考题
填空题设线性链表的存储结构如下: 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!=xp-next!=NULL){q=p;()} if(p-data= = x){q-next=s;s-next=p;} else{p-next=s;s-next=NULL;} } }
热门标签
最新试卷