首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序MODI1.C中的函数Creatlink的功能是创建带头结点的单向链表,并为各结点数据域赋0到m-1的值。 请改正函数Creatlink中指定部位的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #
给定程序MODI1.C中的函数Creatlink的功能是创建带头结点的单向链表,并为各结点数据域赋0到m-1的值。 请改正函数Creatlink中指定部位的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #
admin
2019-09-02
30
问题
给定程序MODI1.C中的函数Creatlink的功能是创建带头结点的单向链表,并为各结点数据域赋0到m-1的值。
请改正函数Creatlink中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
#include<stdlib.h>
typedef struct aa
{ int data;
struct aa *next ;
}NODE;
NODE*Creatlink(int n,int m)
{NODE*h=NULL,*p,*s;
int i;
/**********found**********/
p=(NODE)malloc(sizeof(NODE));
h=p;
p->next=NULL;
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;
}
/**********found**********/
return p;
}
outlink(NODE*h)
fNODE*p;
p=h->next;
printf("\n\nTHE LIST:\n\n HEAD");
while(p)
{printf("->%d",p->data);
p=p->next;
}
printf("\n");}
main()
{NODE*head;
head=Creatlink(8,22);
outlink(head);}
选项
答案
(1)p=(NODE*)malloc (sizeof(NODE)); (2)return h;
解析
该题中函数功能是创建带头结点的单向链表。从已给定源程序的main主函数开始入手,首先通过“head=Creatlink(8,22);”语句调用Creatlink函数生成单向链表,然后“outlink(head);”输出该链表。
(1)“p=(NODE)malloc(sizeof(NODE));”第一标识,maclloc函数的返回类型是void*类型,表示未确定类型的指针,因此,需要指针类型转换,而“(NODE)”不是指针类型,故第一标识下应改成“p=(NODE*)malloe(sizeof(NODE));”。
(2)第二个标识下,最后将单链表返回,应该是返回头指针h指向的链表,而不是其中的一个节点p,所以“return p;”应该改为“return h;”。
转载请注明原文地址:https://kaotiyun.com/show/zKRp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
请编写函数fun,函数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放在主函数的age数组中;要求函数把0至9岁年龄段的人数放在d[0]中,把10至19岁年龄段的人数放在d[1]中,把20至29岁年龄段的人数放在d[2]中,其余依此类推,把
以下叙述中正确的是
以下选项中不能用作C程序合法常量的是
若有以下程序#includevoidsp(int*a){intb=2;a=&b;*a=*a*2;printf("%d,",*a);}main(){intk=3,*p=&k;sp(p);printf("%d,%d\
有以下程序:#includevoidfun(char*c){while(*c){if(*c>=’a’&&*c<=’z’)*c=*c一(’a’-’A’);C++;}}voidmain(){char
有以下程序#includemain(){inta=1,b=0;printf("%d,",b=a+B)printf("%d\n",a=2*B)}程序运行后的输出结果是
若变量已正确定义,在if(W)printf("%d\n",k);中,以下不可替代W的是
有下列程序:#includevoidfun(int*a,intn)/*fun函数的功能是将a所指数组元素从大到小排序*/{intt,i,j;for(i=0;i<n-1;j++)for(j=i+1;j<n;j++)if(a[
以下正确使用C语言标识符的是()。
随机试题
A.肱骨髁上骨折B.肱骨干下1/3骨折C.肱骨内髁骨折D.肱骨髁间粉碎性骨折E.肘关节脱位肘关节内翻畸形为其常见的并发症()
城市环境卫生设施工程系统总体规划的主要内容有()。①提出规划区的环境卫生控制要求②确定城市团体废弃物的收运方案③选择城市固体废物处理和处置方法④测量城市固体废弃物产量,分析其组成和发展趋势,提出污染控制目标
企业以一定的财产物资做抵押或以一定的保证人作担保为条件,所取得的借款是( )。
下列各项中,属于票据基本当事人的有( )。
关于开证行、保兑行、指定行在收到单据后的处理时间,《LICPS00》规定“合理时间,不超过收单翌日起第5个工作日”。而《LICP600》改为“最多为收单翌日起第7个工作日”。()
巴塞尔协议规定国际银行机构的资本充足率不得低于()。
动态分析与静态分析的本质区别是()。
组合关系和聚合关系的关系如何?
Whatisthemeaningof"utilized"inthefirstparagraph?WhichofthefollowingstatementisNOTtrueaccordingtothepassage
A、Youarefreetobuywhateveryouwant.B、Youdon’thavetoworryaboutanything.C、Youcandecideyourownrouteanditinerary
最新回复
(
0
)