下面的代码实现建立一个有若干名学生数据的单向动态链表,请填空。
#include
#include
#define LEN sizeof(struct student)
struct student
{ long num;
float score;
struct student * next;
};
int n;
struct student *creat();
void print(struct student * p);
main()
{
struct student *head;
________【1】__________;
display(head);
}
void print(struct student * p)
{
while(p)
{ printf("%ld\t%f\n",p->num, p->score);
_______【2】________; }
}
struct student *creat()
{
struct student *p1,*p2,*head;
long sno;
float score;
p1=p2=head=NULL;
______【3】_________;
while(1)
{ scanf("%ld,%f",&sno,&score);
if(sno==0) break;
n++;
p1=(struct student*)malloc(LEN);
p1->num=sno;
p1->score=score;
if(head==NULL)
head=p1;
else
_________【4】____________;
p2=p1;
}
if(p2) p2->next=NULL;
return head;
}
答案解析
解析:
相关题目
有以下程序
#include
main()
{
char b,c;
int i;
b='a';
c='A';
for(i=0;i<6;i++)
{
if (i%2) putchar(i+b);
else
putchar(i+c);
}
printf("\\n");
}
程序运行后的输出结果是( )。
有以下程序
#include
int m1(int x,int y)
{
return x<=y ? x :y;
}
int m2(int x,int y)
{
return x<=y ? y :x;
}
int fun(int a,int b)
{
return a+b;
}
main()
{
int x=2,y=3,z=1;
printf("%d\n", fun(m1(x,y),m2(y,z)));
}
程序的运行结果是( )。
关于C语言标识符,以下叙述错误的是( )。
有以下程序
#include
main()
{
int i,j = 0;
char a[] = "How are you", b[10] = {0};
for (i=0; a[i]; i++)
if (a[i] == ' ')
b[j++] = a[i+1];
printf("%s\n",b);
}
程序运行后的输出结果是( )。
有以下程序
#include
#include
struct S
{
char name[10];
};
void change(struct S *data, int value)
{
strcpy(data->name, "#");
value = 6;
}
main()
{
struct S input;
int num = 3;
strcpy(input.name, "OK");
change(&input, num);
printf("%s,%d\n", input.name, num);
}
程序运行后的输出结果是( )。
以下叙述中正确的是( )。
一个C程序的执行是从( ) 。
以下叙述正确的是( ) 。
以下叙述不正确的是( ) 。
C 语言规定: 在一个源程序中, main 函数的位置( ) 。
