更多"请补充fun函数,该函数的功能是:将带头结点的单向链表逆置。即若原链表"的相关试题:
[简答题]给定程序中,函数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;
p = h;
while (p) {
q = __1__ ;
while (__2__)
{ if (p->data > q->data)
{ t = p->data; p->data = q->data; q->data = t; }
q = q->next;
}
p = __3__ ;
}
}
NODE *creatlist(int a[])
{ NODE *h,*p,*q; int i;
h=NULL;
for(i=0; idata=a[i];
q->next = NULL;
if (h == NULL) h = p = q;
else { p->next = q; p = q; }
}
return h;
}
void outlist(NODE *h)
{ NODE *p;
p=h;
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( )
{
[填空题]下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数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的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。
请改正程序指定部位的错误,使它能得到正确结果。
[注意] 不要改动main函数,不得增行或删行,也不得更改程序的结构。
[试题源程序]
#include<stdio.h>
#include<stdlib.h>
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)
[填空题]以下程序中函数 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");
}
[填空题]以下程序中函数fun的功能是:构成一个如图所示的带头结点的单向链表,在结点的数据域中放入了具有两个字符的字符串。函数disp的功能是显示输出该单链表中所有结点中的字符串。请填空完成函数
disp。
#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);prinff("\n");
}
[单项选择]应用系统运行的安全管理中心,数据域安全是其中非常重要的内容。数据域安全包括______。
A. 行级数据域安全,字段级数据域安全
B. 系统性数据域安全,功能性数据域安全
C. 数据资源安全,应用性数据安全
D. 组织级数据域安全,访问性数据域安全
[简答题]请编写函数fun( ),它的功能是:将带头结点单向链表按data域由大小排序(排序时不考虑头结点),主函数用随机函数为各结点data域赋值,头结点data域赋值为0。
注意:部分原程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
[试题源程序]
#include <stdio.h>
#include <conio.h>
struct aa
int data;
struct aa*next;
;
void fun(struct aa*p)
main( )
int i,n,m=100;
struct aa*h=NULL,*s=NULL,
*p=NULL;
clrscr( );
S=(struct aa*)malloc(sizeof(struct aa));
h=s;h->data=0;h->next=NULL;
printf("Please input n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
p=(struct aa*)malloc(sizeof(struct aa));
p->data=rand( )%m;p->next=NULL;
printf("%d",p->data);
s->next=p;s=s->next;
fun(h);
printf("/n");
for(h=h->next;h!=NULL;h=h->nnext)
printf("%d",h->data);
[单项选择]在单链表中,存储每个结点需要有两个域,一个是数据域,另一个是指针域,该指针域用于存放一个指针,此指针指向该结点的( )
A. 直接前驱
B. 直接后继
C. 开始结点
D. 终端结点
[简答题]
请编写函数fun( ),它的功能是:将带头结点单向链表按data域由大到小排序(排序时不考虑头结点),主函数用随机函数为各节点data域赋值,头结点data域赋值为0。
[注意] 部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
[试题源程序]
#include <stdio.h>
#include<coni0.h>
struct as
int data;
struct aa *next;
;
void fun(struct aa *p)
main( )
int i, n, m=100;
struct aa *h=NULL, *s=NULL,
*p=NULL;
clrscr( )
s=(struct aa*) malloc(siZeof(struct aa));
h=s; h->data=0; h->next=NULL;
printf("Please input n:");
scanf("%d", &n);
for(i=1; i<=n; i++)
p=(struct aa*) malloc(sizeof(struct aa));
p->data=rand( )%m; P->next=NULL;
printf("%d", P->data);
s->next=p; s=s->next;
fun(h);
printf("/n");
for(h=h->next; h!=NULL; h=h->nnext)
printf("%d", h->data);
[单项选择]在X.509标准中,不包含在数字证书中的数据域是()。
A. 序列号
B. 签名算法
C. 认证机构的签名
D. 私钥
[填空题]存储节点中数据域占用的存储量与整个节点占用存储量之比称为______。
[填空题]以下程序把三个NODETYPE型的变量链接成一个简单的链表,并在while循环中输出链表结点数据域中的数据。请填空。
#include <stdio.h>
struct node
int data; struct node *next:;
typedef struct node NODETYPE;
main( )
NODETYPE a, b, c, *h, *p;
a.data=10; b.data=20; c.data=30; h=&a;
a.next=&b; b.next=&c; c.next=’/0’;
p=h;
while(p)printf("o/od,",p->data);______;
printf("/n");
[填空题]函数main( )的功能是:在带头结点的单链表中查找数据域中值最小的结点。请填空
#include
struct node
int data;
struct node *next;int main(struct node *first) /*指针first为链表头指针*/
struct node *p; int m;
p=first->next; m=p->data; p=p->next;
for(; p!=NULL;p=______)
if(p->data<M)   M=P->data;
return m;
[填空题]以下程序把3个NODETYPE型的变量链接成一个简单的链表,并在while循环中输出链表结点数据域中的数据。请填空。
#include<stdio.h>
struct node
{ int data; struct node *next; };
typedef struct node NODETYPE;
main( )
{ NODETYPE a, b, c, *h, *p; a.data=10; b.data=20; c.data=30; h=&a;
b.next=&b; b.next=&c; c.next=’/0’;
p=h;
while(p){printf("%d", p->data);______;}
}
[简答题]
给定程序MODI1.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;
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;
}
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);
}