结构体练习题

发布时间 : 星期三 文章结构体练习题更新完毕开始阅读

/*输出*/ p=head;

printf(\ while(p!=NULL)

{ printf(\ p=p->next; } }

20. 以下为有3名学生数据的单向动态链表的综合操作。今给出main函数、建立链表函

数creat、链表输出函数print。建立链表时输入各结点的数据按学号增序排列,使建立的链表有序。请完善程序,要求编写按学号顺序插入结点的函数insert。 #include #define NULL 0

#define LEN sizeof(struct student) struct student { long num; int score;

struct student *next; }; int n;

struct student *creat(void) /*要求按学号递增顺序输入*/ { struct student *head; struct student *p1,*p2; n=0;

p1=p2=(struct student*) malloc(LEN); scanf(\ head=NULL;

while(p1->num!=0) { n=n+1;

if(n==1) head=p1; else p2->next=p1; p2=p1;

p1=(struct student*)malloc(LEN);

scanf(\ }

p2->next=NULL; return(head); }

void print(struct student *head) { struct student *p;

printf(\ p=head;

if(head!=NULL) do

{ printf(\ p=p->next;

}while(p!=NULL); }

struct student *insert(struct student *head,struct student *stud) { }

main()

{ struct student *head,stu; printf(\ head=creat(); print(head);

printf(\ scanf(\ head=insert(head,&stu); print(head); getch(); }

21. 有两个链表a和b。设结点中包含学号、姓名。从a链表中删去与b链表中有相同

学号的那些结点。

链表a的数据:{\链表b的数据:{\

22. 输入5个学生的信息,每个学生的信息包括学号、姓名、和4门课的成绩,输出单

号学生的全部信息。 答案:略

23. 输入5个学生的信息,每个学生的信息包括学号、姓名、和4门课的成绩,输出个

人平均成绩最高的学生的全部信息。 答案:略

24. 输入N个学生的信息,每个学生的信息包括学号、姓名、和4门课的成绩,输出有

不及格成绩的学生的全部信息。 答案:略

25. 输入N个学生的信息,每个学生的信息包括学号、姓名、和4门课的成绩,按个人

平均成绩由高到低排序,并输出排序后的学生的信息。 答案:略

26. 建立一个学生链表并输出,每个结点包括:学号、姓名、成绩。建立链表时输入成

绩为负数就结束。要求:编写建立链表、输出链表分别用函数实现,并在主函数中调用它们。 答案:略

27. 建立一个字符链表并输出。字符链表为每个结点的数据域只有一个字符。要求:编

写建立链表、输出链表分别用函数实现,并在主函数中调用它们。 答案:略

28. 试利用结构体类型编制一程序,结构成员包括学号,两门课程成绩。然后计算并输出

每个学生的平均成绩。 答案:略

29. 试利用指向结构体的指针编制一程序,实现输入三个学生的学号、期中和期末成绩,

然后计算其平均成绩并输出每个学生的成绩表(包括平均成绩)。 答案:略

30. 编写一个函数print,打印一个学生的成绩数组,该数组中有5个学生的数据记录,每个

记录包括num、name、score[3], 用主函数输入这些记录,用print函数输出这些记录。用结构体来实现。 答案:略

31. 有4个学生,每个学生的数据包括学号、姓名、3门课的成绩,,要求打印出3门课总平

均成绩(指全体学生所有成绩的平均值)。用结构体来实现。 答案:略

32. 有一个结构体变量stu,内含学生学号、姓名和3门课的成绩。要求在main函数中赋

以值,在另一函数print中将它们打印输出。用结构体变量作函数参数。 答案:略

联系合同范文客服:xxxxx#qq.com(#替换为@)