首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序MODll.C中的函数Creatlink的功能是创建带头结点的单向链表,并为各结点数据域赋0到m-1的值。 请改正函数Creatlink中指定部位的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改
给定程序MODll.C中的函数Creatlink的功能是创建带头结点的单向链表,并为各结点数据域赋0到m-1的值。 请改正函数Creatlink中指定部位的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改
admin
2015-06-08
53
问题
给定程序MODll.C中的函数Creatlink的功能是创建带头结点的单向链表,并为各结点数据域赋0到m-1的值。
请改正函数Creatlink中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
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)
{NODE* 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 *)mslloc(sizeof(NODE)); (2)return h;
解析
该题中函数功能是创建带头结点的单向链表。从已给定源程序的main主函数开始入手,首先通过“head=Creatlink(8,22)”语句调用Creatlink函数生成单向链表,然后“outlink(head);”输出该链表。
[解题思路]
(1)第一标识下“p=(NODE)malloc(sizeof(NODE));”,maclloc函数的返回类型是void*类型,表示未确定类型的指针,因此需要指针类型转换,而“(NODE)”不是指针类型,故第一标识下应改成“p=(NODE*)malloc(sizeof(NODE));”。
(2)第二个标识下,最后将单链表返回,应该是返回头指针h指向的链表,而不是其中的一个节点p,所以“returnp;”应该改为“retum h;”。
转载请注明原文地址:https://www.kaotiyun.com/show/PiJp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
执行下列程序的输出结果是()。main(){union{intb;charc[2];}y;y.b=0x4142;printf("%c,%c",y.c[1],y.c[0]);
若有如下程序:sub(p,n)int(*p)[3],n;{inti;for(i=0;i<=n;i++)printf("%d",p[i][2]);}main(){ints[3][3]={1,2,
C语言中各种基本数据类型的存储空间长度排列为()。
有如下程序段:#include<stdio.h>#defineMax(a,B)a>b?a:bmain(){inta=5,b=6,c=4,d;d=c+Max(a,B);printf("%d",D
在C语言中,函数中变量的隐含存储类别是______。
有以下程序:int*f(int*x,int*y){if(*x<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=
有如下程序段int*p,a=10,b=1;p=&a;a=*p+b;执行该程序段后,a的值为______。
下面程序的输出结果是_______。unionun{inta[4];longb;charc[6];}main(){unionunu;printf("%d%d",s
以下函数用来求出两整数之和,并通过形参将结果传回,请填空。voidfunc(intx,inty,【】z){*z=x+y;}
随机试题
薄层扫描是指扫描层厚小于或等于
蛲虫病的预防措施不包括
诊断肾病综合征必须具备的依据是()
尹某户籍所在地为甲市,但长期居住在乙市,患病后到丙市治疗,为了防备不测,尹某立下遗嘱将自己在乙市的房产留给小儿子,其他现金、债券、股票留给大儿子。请问尹某的遗嘱应当向哪个地方的公证处申请公证?
下列因素能引起供给量变动的有()。
阅读以下文字,完成问题。在鄂东丘陵地带有一座铜绿山,这里北、东两面紧靠大冶湖,水运可达长江,交通便利。此山每当暴雨过后,可见无数铜绿如雪花小豆般点缀在土石之上,因而得名铜绿山。显然,铜绿山是铜矿石富集地区,现代矿山就建在这里,而古铜矿遗址的发现正
如果两个n阶矩阵A,B中有一个可逆,则AB和BA相似.
Ifyouintendusinghumorinyourtalktomakepeoplesmile,youmustknowhowtoidentifysharedexperiencesandproblems.Your
Heseemedtobeannoyedandinthe______toquestioneverything.
AsToyotaandHummerhavelearned,growingtoofastcanbeadangerousthing.Fromitsorigins,successintheautoindustr
最新回复
(
0
)