题目详情
当前位置:首页 > 职业培训考试
题目详情:
发布时间:2023-12-08 00:26:12

[简答题]设有一个带头结点的循环单链表,其结点值均为正整数。试设计一个算法,反复找出单链表中结点值最小的结点,并输出之,然后将该结点从中删除,直到单链表空为止,最后再删除表头结点。
给出算法的基本设计思想;

更多"设有一个带头结点的循环单链表,其结点值均为正整数。试设计一个算法,反复"的相关试题:

[多项选择]设有一个带头结点的循环单链表,其结点值均为正整数。试设计一个算法,反复找出单链表中结点值最小的结点,并输出之,然后将该结点从中删除,直到单链表空为止,最后再删除表头结点。
根据设计思想,采用C或C++或JAVA语言表述算法,关键之处给出注释。
[填空题]下列给定程序中已建立一个带头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。函数fun的功能是:把形参x的值放入一个新结点并插入链表中,使插入后各结点数据域中的数据仍保持递增有序。
请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include <stdio.h>
#include <stdlib.h>
#define N 8
typedef struct list
int data;
struct 1ist * next;
SLIST;
void fun(SLIST * h, int x)
SLIST * P, * q, * s;
s=(SLIST* )malloc(sizeof(SLIST));
/********** found********** /
s->data=______;
q=h;
p=h->next;
while(p! =NULL && x>p->data)
/********** found********** /
q=______;
p=p->next;

s->next=p;
/********** found********** /
q->next=______;

SLIST * creatlist(int * a)
SLIST * h, * p, * q; int i;
h=p=(SLIST * )malloc(sizeof(SLIST));
for(i=0; i<N; i ++)
q=(SLIST * )malloc(sizeof(SLIST));
q->data=a[i]; p->next=q; p=q;

p->next=0;
return h;

voi
[简答题]下列给定程序中,已建立一个带头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。函数fun的功能是:把形参x的值放入一个新结点并插入链表中,使插入后各结点数据域中的数据仍保持递增有序。
请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include <stdio.h>
#include <stdlib .h >
#define N 8
typedef struct list
int data;
struct list * next;
SLIST;
void fun(SLIST * h, int x)
SLIST * p, * q, * s;
s=(SLIST *) malloc (sizeof
(SLIST));
/********** found********** /
s->data= (1) ;
q=h;
p=h->next;
while(p!=NULL && x >p->data)
/********** found********** /
q= (2) ;
p=p->next;

s->next=p;
/********** found********** /
q->next= (3) ;

SLIST * creatlist(int * a)
SLIST * h, * p, * q; int i;
h=p=(SLIST *)malloc (sizeof
(SLIST));
for(i=0; i<N; i++)
q=(SLIST *)malloc (sizeof
(SLIST));
q->data=a[i]; p->next=q; p=q;
[简答题]给定程序MODI1.C是建立一个带头结点的单向链表, 并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。 请改正函数fun中指定部位的错误, 使它能得出正确的结果。 注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构! 给定源程序: #include #include typedef struct aa { int data; struct aa *next; } NODE; fun ( NODE *h ) { int max=-1; NODE *p; /***********found**********/ p=h ; while(p) { if(p->data>max ) max=p->data; /***********found**********/ p=h->next ; } return max; } outresult(int s, FILE *pf) { fprintf(pf,"/nThe max in link : %d/n",s);} NODE *creatlink(int n, int m) { NODE *h, *p, *s, *q; int i, x; h=p=(NODE *)malloc(sizeof(NODE));h->data=9999; 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; } p->next=NULL; return h; } outlink(NODE *h, FILE *pf) { NODE *p; p=h->next; fprintf(pf,"/nTHE LIST :/n/n HEAD "); while(p) { fprintf(pf,"->%d ",p->data); p=p->next; } fprintf(pf,"/n"); } main( ) { NODE *head; int m; head=creatlink(12, 100); outlink(head , stdout); m=fun(head); printf("/nTHE RESULT :/n"); outresult(m, stdout); }
[填空题]已知head指向一个带头结点的单向链表,链表中每个结点包含数据域(data)和指针域(next),数据域为整型。以下函数求出链表中所有链结点数据域的和值,作为函数值返回。请在下划线内填入正确内容。
int data;struct link*next;
main( )
struct link*head;

sum(head);

sum( 【19】 );
struct link*p;int s=0;
p=head->next;
while(p)s+=p->data;p=p->next;
return(s);
[填空题]已知bead指向一个带头结点的单向链表,链表中每个结点包含数据域(data)和指针域(next),数据域为整型。以下函数求出链表中所有连接点数据域的和值作为函数值返回。请在横线处填入正确内容。
int data; struct link *next;
main( )
struct link *head;
sam(______);
stmct link *p;int s=0;
p=head->next;
while(p)s+=p->data;p=p->next;
return(s);
[填空题]给定程序MODI1.C是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
文件MODI1.C内容如下:
#include<stdio.h>
#include<stdlib.h>
typedef struet aa
int data;
struet aa *next;
NODE;
int fun( NODE *h)
int max=-1:
NODE *p;
/**********found**********/
p=h;
while(p)t
if(p->data>max)max=p->data;
/**********found**********/
p=h->next;

return max;

void outresult(int s,FILE *pf)fprintf(pf,"/nThe max in link: %d/n",s);
NODE *creatlink(int n,int m)
NODE *h,*p,*s;
int i;
h=p=(NODE *)malloc(sizeof(NODE));
h->data=9999;
for(i=1;i<=n;i++)
S=(NODE$)malloe(sizeof(NODE));
s->data=rand( )%m;
s->next=p->next;
p->next=s;
p=p->next;

p->next=NULL;
return h;

void outlink(NODE *h,FILE *pf)
NODE *p;
p=h->next;
fprintf(pf,"/nTHE LIST: /n/n
[填空题]下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun( )的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
typedef struct aa
int data;
struct aa *next;
NODE;
/*************found**************/
fun (NODE *h)
int max=-1;
NODE *p;
p=h->next;
while(p)
if(p->data>max)
max=p->data;
/*************found**************/
p=h->next;

return max;

outresult(int s, FILE *pf)
fprintf(pf, "/nThe max in link :%d/n
",s);
NODE *creatlink(int n, int m)
NODE *h,*p,*s,*q;
int i, x;
h=p=(NODE *)malloc(sizeof(NODE));
h->data=9999;
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;
[简答题]N名学生的成绩已在主函数中放人一个带头结点的链表结构中,h指向链表的头结点。请编写函数fun,其功能是:求出平均分,并由函数值返回。
例如,若学生的成绩是:85,76,69,85,9l,72,64,87,则平均分应当是:78625。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若千语句。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#define N 8
struct slist

double s;
struct slist*next;
;
typedef struct slist STREC;
double fun(STREC*h)


STREC*creat(double*s) /*创建链表*/

STREC*h,*p,*q;
int i=0;
h=P=(STREC*)mallocsizeof(STREC));
P->s=0;
whilel(i<N)

q=(STREC*)mallodsizeof(STREC));
q->s=s[i];i++lp->next=q;P=q;

p->next=0;
return h;

ouclist(STREC*h)

STREC*p;
P=h->next;
printf("head");
do

printf("->%4.1f",p->s);
P=P->next;/*输出各成绩*/
while(p!=NULL);
printf("/n/n");

void main( )

double s[N]=85,76,69,85,91,72,64,87,ave;
STREC*h;
h=creat(s);outlist(h);
ave=fun(h);

[简答题]N名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的头结点。请编写函数fun,其功能是:求出平均分,并由函数值返回。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序
#include <stdlib.h>
#include <stdio.h>
#define N 8
struct slist

double s;
struct slist * next;
;
typedef struct slist STREC;
double fun(STREC * h)



STREC * creat (double * s) /*创建链表* /

STREC * h, * p, * q;
int i=0;
h=p=(STREC*) malloc (sizeof
(STREC));
p->s=0;
while (i<N)

q=(STREC *)malloc (sizeof
(STREC));
q->s=s[i]; i++; p->next=q; p=q;

p->next=0;
return h;

outlist (STREC * h)

STREC * p;
p=h->next;
printf ("head ");
do

printf("->% 4.1f ", p->s);
p=p->next; /*输出成绩* /
while (p !=NULL);
printf ("/n/n");

void main ( )

double s[N]=85, 76, 69, 85, 91, 72, 64, 87 , ave;
STREC
[简答题]设有带头结点的循环双链表表示的线性表L=(a1,a2,…,an-1,an)。设计在时间和空间上都尽可能高效的算法,将L改造成L=(a1,a3,…,an,…,a4,a2)。要求:
给出算法的基本设计思想。
[填空题]请补充函数fun( ),该函数的功能是建立一个带头结点的单向链表并输出到文件“out98.dat”和屏幕上,各结点的值为对应的下标,链表的结点数及输出的文件名作为参数传入。
注意:部分源程序给出如下。
请勿改动主函数main 和其他函数中的任何内容,仪在函数fun( )的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdio. h>
#include<conio. h>
#include<stdlib. h>
typedef struct ss

int data;
struct ss *next;
NODE;
void fun(int n,char*filename)

NODE *h,*p, *s;
FILE *pf;
int i;
h=p= (NODE *) malloc (sizeof (NODE));
h->data=0;
for (i=1; i
s=(NODE *)malloc (sizeof (NODE));
s->data= 【1】 ;
【2】 ;
p= 【3】

p->next=NULL;
if ( (pf=fopen (filename, "w") ) ==NULL)

printf "Can not open out9B.clat! ");
exit (0);

p=h;
fprintf (pf, "/n***THE LIST***/n");
print f ("/n***THE LIST***/n")
while (p)

fprintf (pf, "%3d", p->data)
printf ("%3d",p->data);
if (p->next ! =NULL)


我来回答:

购买搜题卡查看答案
[会员特权] 开通VIP, 查看 全部题目答案
[会员特权] 享免全部广告特权
推荐91天
¥36.8
¥80元
31天
¥20.8
¥40元
365天
¥88.8
¥188元
请选择支付方式
  • 微信支付
  • 支付宝支付
点击支付即表示同意并接受了《购买须知》
立即支付 系统将自动为您注册账号
请使用微信扫码支付

订单号:

请不要关闭本页面,支付完成后请点击【支付完成】按钮
恭喜您,购买搜题卡成功
重要提示:请拍照或截图保存账号密码!
我要搜题网官网:https://www.woyaosouti.com
我已记住账号密码