云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 结构体练习题

结构体练习题

  • 62 次阅读
  • 3 次下载
  • 2025/5/31 7:29:52

1. 试利用结构体类型编制一程序,实现输入5个学生的学号,数学和语文成绩。然后计

算并输出每个人的学号和平均成绩。

2. 已知链表结点结构如下,假设动态链表已经建立,请编写删除给定学号的结点的函

数。(只编写删除子函数即可) 3. 编写函数实现动态链表的建立。链表结点结构如下,要求在主函数中将你所建立的链

表输出到屏幕上。

4. 有10个学生,每个学生的信息包括学号、姓名、3门课的成绩,从键盘输入10个学

生数据存入结构体数组中,要求输出个人总分最高的学生的信息(包括学号、姓名、3门课成绩、总分)。

5. 链表的结点数据类型如下:

struct node{ int data;

struct node *next; };

链表的建立和输出函数如下,编写将第i个结点删除的函数,并完善主函数,调试运行整个程序。 struct node *creat() { int x;

struct node *h,*s,*r;

h=(struct node *)malloc(sizeof(struct node)); r=h;

scanf(\ while(x!=-1)

{ s=(struct node*)malloc(sizeof(struct node)); s->data=x; r->next=s; r=s;

scanf(\ }

r->next=NULL; return h; }

void print(struct node *h) //打印函数 { struct node *p; p=h->next; if(p==NULL)

printf(\ else

{ while(p!=NULL)

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

6. 试利用结构体类型编制一程序,实现输入一个学生的数学期中和期末成绩。然后计算

并输出其平均成绩。 7. 试利用指向结构体的指针编制一程序,实现输入三个学生的学号、数学期中和期末成

绩,然后计算其平均成绩并输出成绩表。

8. 有一个unsigned long型整数,现要分别将其前2个字节和后2个字节作为两个

unsigned int型整数输出(设一个int型数据占2个字节),试编一函数partition实现上述要求。要求在主函数中输入该long型整数,在函数partition中输出结果。

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

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

10. 有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生

数据,要求打印出3门课总平均成绩(指全体学生所有成绩的平均值),以及最高分的学生的数据(包括学号、姓名、3门课成绩、平均分数)。用结构体来实现。

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

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

12. 对候选人得票的统计程序。设有3个候选人,有20个人对其进行投票,每次输入一个

得票的候选人的名字,要求最后输出各人得票结果。用结构体的方法实现。 13. 定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天?注意闰年问

题。

14. 请删除已知链表中的指定结点。要求删除的结点数据从键盘输入。

#define NULL 0 struct student{ long num; float score;

struct student *next; };

main(){

struct student a,b,c,*head,*p; a.num=99101; a.score=89.5; b.num=99103; b.score=90; c.num=99107; c.score=85; head=&a; a.next=&b; b.next=&c; c.next=NULL;

p=head; do{

printf(\ p=p->next;

}while(p!=NULL);

del();/*请完成此函数来删除某一结点*/ } 答案:略

15. 请在已知链表中插入某一指定结点。要求插入的结点数据从键盘输入,顺序按学号

升序插入。 #define NULL 0 struct student{ long num; int score;

struct student *next; };

main(){

struct student a,b,c,*head,*p; a.num=99101; a.score=89; b.num=99103; b.score=90; c.num=99107; c.score=85; head=&a; a.next=&b; b.next=&c; c.next=NULL; p=head; do{

printf(\ p=p->next;

}while(p!=NULL);

insert();/*请完成此函数来插入某一结点*/ } 答案:略

16. 请编写程序动态生成一个链表。要求结点数据从键盘输入。并将建立好的链表输出

到屏幕上。结点数据类型如下: struct student{ long num; int score;

struct student *next; };

答案:略

17. 定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天?注意闰年问

题。请写一函数days来完成此功能。要求由主函数将年、月、日传递给days函数,

计算后将日子数传回主函数输出。 答案:略

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

学号的那些结点。

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

19. 建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链

表中的结点所包括的年龄等于此年龄,将此结点删去。请完善程序。 #include #define NULL 0

#define LEN sizeof(struct student) struct student { char num[8]; char name[10]; char sex[2]; int age;

struct student *next; }stu[10]; main() {

struct student *p,*pt.*head; int i,length,iage,flag=1; int find=1; while(flag==1)

{ printf(\ scanf(\ if(length<10) flag=0; }

/*请完成建立链表*/

/*输出*/ p=head;

printf(\ while(p!=NULL)

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

/*请完成删除*/

搜索更多关于: 结构体练习题 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

1. 试利用结构体类型编制一程序,实现输入5个学生的学号,数学和语文成绩。然后计算并输出每个人的学号和平均成绩。 2. 已知链表结点结构如下,假设动态链表已经建立,请编写删除给定学号的结点的函数。(只编写删除子函数即可) 3. 编写函数实现动态链表的建立。链表结点结构如下,要求在主函数中将你所建立的链表输出到屏幕上。 4. 有10个学生,每个学生的信息包括学号、姓名、3门课的成绩,从键盘输入10个学生数据存入结构体数组中,要求输出个人总分最高的学生的信息(包括学号、姓名、3门课成绩、总分)。 5. 链表的结点数据类型如下: struct node{ int data; struct node *next; }; 链表的建立和输出函数如下

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com