更多"已知bead指向一个带头结点的单向链表,链表中每个结点包含数据域(da"的相关试题:
[填空题]已知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);
[填空题]已知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);
[单项选择]为了建立如图所示的存储结构(即每个结点含两个域,data是数据域,next是指向结点的指针域),则在[]处应填入的选项是______。
A. struct link*next;
B. link next;
C. link*next;
D. struct link next;
[填空题]下列给定程序中已建立一个带头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。函数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);
}
[填空题]给定程序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;
}
p->next=NULL;
return h;
}
outlink(NODE *h,FILE *pf)
{ NODE *p;
[简答题]给定程序中,函数fun的功能是将带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
#define N 6
typedef struct node {
int data;
struct node *next;
} NODE;
void fun(NODE *h)
{ NODE *p, *q; int t;
/**********found**********/
p = __1__ ;
while (p) {
/**********found**********/
q = __2__ ;
while (q) {
/**********found**********/
if (p->data __3__ q->data)
{ t = p->data; p->data = q->data; q->data = t; }
q = q->next;
}
p = p->next;
}
}
NODE *creatlist(int a[])
{ NODE *h,*p,*q; int i;
h = (NODE *)malloc(sizeof(NODE));
h->next = NULL;
for(i=0; i
{ q=(NODE *)malloc(sizeof(NODE));
q->data=a[i];
q->next = NULL;
if (h->next == NULL) h->next = p = q;
else { p->next = q; p = q; }
}
return h;
}
void outlist(NODE *h)
{ NODE *p;
p = h->next;
if (p==NULL) printf("The list is NULL!/n");
else
{ printf("/nHead ");
do
{ printf("->%d", p->data); p=p->next; }
while(p!=NULL);
printf("->End/n");
}
}
main( )
{ NODE *head;
int a[N]= {0, 10, 4, 2, 8, 6 };
head=creatlist(a);
printf("/nThe original list:/n");
outlist(head);
fun(head);
printf("/nThe list after sorting :/n");
outlist(head);
}
[填空题]以下程序中函数 fun 的功能是:构成一个如图所示的带头结点的单向链表,在结点 的数据域中放入了具有两个字符的字符串。函数 disp 的功能是显示输出该单向链表 中所有结点中的字符串。请填空完成函数 disp。
head
ab cd ef /0
#include
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");
}