填空题
下列给定程序中,函数fun的功能是:统计带头节点的单向链表中节点的个数,并存放在形参n所指的存储单元中。
请在程序的下画线处填入正确的内容,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include <stdio.h>
#include <stdlib.h>
#define N 8
typedef struct list
{ int data;
struct list * next;
} SLIST;
SLIST * creatlist(int *a);
void outlist(SLIST*);
vom fun(SLIST * h, int * n)
{ SLIST *p;
/**********found**********/
______ =0;
p=h->next;
while(p)
{ (* n)++;
/**********found**********/
p=p-> ______ ;
}
}
main()
{ SLIST * head;
int a[N]={12,87,45,32,91,16,20,48}, num;
head=creatlist(a);
outlist(head);
/**********found**********/
fun(______, &hum);
printf("\nnumber=%d\n",num);
}
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;
}
void outlist(SLIST*h)
{ SLIST * 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");
}
}
【参考答案】
*n next head[考点] 本题考查:变量赋初值操作;链表节点的数据域和指针域表示方法;函数调用。
[解析......
(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
点击查看答案
相关考题
-
单项选择题
有以下程序段:FILE *fp;if((fp=fopen("test.txt","w"))== NULL){ printf("不能打开文件!");exit(0);}elseprintf("成功打开文件!");若文件test.txt已存在,则以下叙述正确的是______。
A.程序运行后,文件test.txt中的原有内容将全部消失
B.程序运行时,会因文件存在而出错
C.对文件test.txt进行写操作后,可以随机进行读取
D.对文件test.txt写入的内容总是被添加到文件尾部 -
单项选择题
设有定义:int a=64,b=8;,则表达式(a&b)‖(a&&b)和(a|b)&&(a‖b)的值分别为______。
A.1和1
B.1和0
C.0和1
D.0和0 -
单项选择题
有以下程序:#include <stdio.h>#include <string.h>typedef struct {char name[10];char sex;int age;} STU;void fun(STU t){ strcpy(t.name,"Tong");t.age++;}main(){ STU s[2]=t"Hua","m",18,"Qin","f",19};fun(s[1]);printf("%s,%d,%s,%d\n",s[0].name,s[0].age,s[1].name,s[1].age);}程序运行后的输出结果是______。
A.Hua,19,Tong,19
B.Hua,18,Tong,20
C.Tong,19,Qin,19
D.Hua,18,Qin,19