首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序中,已建立一个带有头结点的单向链表,链表中的各结点包含数据域(data)和指针域(next),数据域为整型。函数fun的作用是:找出链表各结点数据域中的最大值,其最大值由函数值返回。 请在程序的下划线处填入正确的内容并把下划 线删除,使程序
给定程序中,已建立一个带有头结点的单向链表,链表中的各结点包含数据域(data)和指针域(next),数据域为整型。函数fun的作用是:找出链表各结点数据域中的最大值,其最大值由函数值返回。 请在程序的下划线处填入正确的内容并把下划 线删除,使程序
admin
2020-06-02
49
问题
给定程序中,已建立一个带有头结点的单向链表,链表中的各结点包含数据域(data)和指针域(next),数据域为整型。函数fun的作用是:找出链表各结点数据域中的最大值,其最大值由函数值返回。
请在程序的下划线处填入正确的内容并把下划
线删除,使程序得出正确的结果。
注意:源程序存放在文件BLANK1.C中,不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
#include<stdlib.h>
#pragma warning(disable:4996)
struct list
{
int data;
struct list*next;
};
struct list*createlist (int data[],int n)
{
struct list*head=0,*p,*q;
int i;
head=(struct list*)malloc(sizeof(struct list));
head一>data=data[0];
p=q=head;
for(i=1;i<n;i++)
{
p=(struct list*)malloc(sizeof(struct list));
p一>data=data
;q一>next=p;q=p;
}
p一>next=NULL;
return head;
}
/*********found*********/
int func(
【1】
head)
{ int pmax=head一>data;
struct list*p=head一>next;
whil e(p!=NULL)
{if(p一>data>pmax)pmax=p一>data;
/*********found*********/
p=
2】
;
}
/*********found*********/
【3】
}
void main()
{
int data[]={123,21,65,789, 32, 310, 671, 651,81,101},pmax;
struct list*head;
head=createlist(data,10);
pmax=func(head);
printf("Nax=%d\n”",pmax);
}
选项
答案
(1)struct list* (2)p一>next; (3)return pmax;
解析
程序定义了结构体类型list,用来作为链表的结点类型,它包含两个成员:data数据成员,next指针成员。func()函数参数为链表的头结点指针,pmax用来存放最大值,通过while循环遍历整个链表,在遍历的过程中,将当前结点的data与pmax比较,若pmax小于当前结点的data,则使用当前结点的data更新pmax,最后将pmax的值作为函数返回值返回。
转载请注明原文地址:https://kaotiyun.com/show/yqCp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
下列定义数组的语句中错误的是()。
若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是()。
有以下程序:#include<stdio.h>intfun(){staticintx=1;x*=2:returnx;}main(){inti,s=1;for(i=1;i<=3;i++)s*=fun();printf("%d\
设有如下函数定义:#include<stdio.h>intfun(intk){if(k<1)return0;elseif(k==1)return1;elsereturnfun(k-1)+1;}若执行调用语句n=fun(3);,则函数
有以下程序:#include<stdio.h>main(){intm=1,n=2,*p=&m,*q=&n,*r;r=p:p=q:q=r;printf("%d,%d,%d,%d\n",m,n,*p,*q);}程序的运行结果是()
设有栈S和队列Q,初始状态均为空。首先依次将A,B,C,D,E,F入栈,然后从栈中退出三个元素依次入队,再将X,Y,Z入栈后,将栈中所有元素退出并依次入队,最后将队列中所有元素退出,则退队元素的顺序为()。
已知字符A的ASCII码值是65,字符变量c1的值是’A’,c2的值是’D’,则执行语句printf("%d,%d",c1,c2-2);的输出结果是()。
随机试题
霍乱的常见表现为()。
治疗急性阿米巴痢疾和阿米巴肝脓肿应首选
甲乙两国因边境冲突引发战争,甲国军队俘获数十名乙国战俘。依《日内瓦公约》,关于战俘待遇,下列哪些选项是正确的?(2009年卷一78题)
铣床工作的不安全因素主要是高速旋转的()。
下列结账方法中,不正确的是()。
2015年1月1日,B公司为其100名中层以上管理人员每人授予100份现金股票增值权,这些人员从2015年1月1日起必须在该公司连续服务3年,即可自2017年12月31日起根据股价的增长幅度获得现金,该现金股票增值权应在2019年12月31日之前行使完毕。
在对社会主义建设道路的探索中,为了搞好经济建设,提出的一系列方针和原则中,不包括()。
下列文学作品或绘画中描绘过济南风景的是()。
若有以下程序段doublex=5.16894;printf("%f\n",(int)(x*1000+0.5)/(double)1000);则程序段的输出结果是
以下程序的功能是求"x^2+5"表达式的值,其中x的值由文本框Text0输入,运算的结果由文本框Text1输出。PrivateSubCommand0_Click()DimxAsIntegerDimyAsLong
最新回复
(
0
)