题目1:
【问题描述】
有以下职工信息,使用结构体数组存储这些信息,从键盘输入5条记录,
之后在屏幕上依次输出职工信息。
struct stuff{
int stuffID;//职工编号
float bonus; //工资
};
【输入形式】5条职工信息,分行输入,数据间空格隔开
【输出形式】分行输出5条职工信息和最低工资,每行数据均使用1个空格分隔
【输入样例】
1001 8540.59
1002 6345.45
1003 3500.65
1004 4898.86
1005 5345.80
【输出样例】每行数据均使用一个空格分割,分五行输出
1001 8540.59
1002 6345.45
1003 3500.65
1004 4898.86
1005 5345.80
minBonus = 3500.65
代码入下:
#include <stdio.h>
struct stuff
{
int stuffID;
float bonus;
}a[5];
int main()
{
int i;
float min;
for(i = 0; i < 5; i++)
scanf("%d %f", &a[i].stuffID, &a[i].bonus);
min = a[0].bonus;
for(i = 1; i < 5; i++)
{
if(min >= a[i].bonus)
min = a[i].bonus;
}
for(i = 0; i < 5; i++)
printf("%d %.2f\n", a[i].stuffID, a[i].bonus);
printf("minBonus = %.2f", min);
}
题目2:
【问题描述】若有以下银行卡信息:
struct card{
int id;//银行卡号
int bonus; //金额
};
请编写程序,从键盘输入5条银行卡记录,使用结构体数组存
储这些数据,并按金额升序排序,输出排序后的结果。
【输入形式】5条银行卡记录分行输入,每行数据用空格间隔
【输出形式】分5行输出数据,每行数据均使用空格间隔
【输入样例】
1001 20
1002 80
1003 50
1004 10
1006 40
【输出样例】
1004 10
1001 20
1006 40
1003 50
1002 80
代码入下:
#include <stdio.h>
#include <stdlib.h>
struct card
{
int id;//银行卡号
int bonus; //金额
}a[5],tamp;
int main()
{
int i, j;
for(i = 0; i < 5; i++)
scanf("%d %d", &a[i].id, &a[i].bonus);
for(i = 1; i < 5; i++)
{
for(j = 0; j < 5 - i; j++)
{
if(a[j].bonus > a[j+1].bonus)
{
tamp = a[j];
a[j] = a[j+1];
a[j+1] = tamp;
}
}
}
for(j = 0; j < 5; j++)
{
printf("%d %d\n", a[j].id, a[j].bonus);
}
}
题目3:
【问题描述】有以下学生信息,使用结构体数组存储这些信息
struct student{
int num;//学号
int computer; //计算机成绩
}s[5]={{101,75},{103,80},{104,85},{106,90}};再输入一条新记录,插入到结构体数组中,让5条记录按计算机成绩升序有序。
【输入形式】2个数据都使用空格分隔
【输出形式】分五行输出数据,每行数据均使用空格分隔
【输入样例】102 88
【输出样例】每行数据均使用一个空格分隔,分五行输出
101 75
103 80
104 85
102 88
106 90
代码入下:
#include <stdio.h>
#include <stdlib.h>
struct student
{
int num;//学号
int computer; //计算机成绩
}s[5]={{101,75},{103,80},{104,85},{106,90}},tamp;
int main()
{
int i, j;
scanf("%d %d", &s[4].num, &s[4].computer);
for(i = 1; i < 5; i++)
{
for(j = 0; j < 5 - i; j++)
{
if(s[j].computer > s[j+1].computer)
{
tamp = s[j];
s[j] = s[j+1];
s[j+1] = tamp;
}
}
}
for(j = 0; j < 5; j++)
printf("%d %d\n", s[j].num, s[j].computer);
}
题目4:
【问题描述】有以下定义:
struct student{
int num; //学生序号
char name[20]; //学生姓名
int math; //数学成绩
}stu[4];请从键盘输入4条学生信息存入结构体数组stu,之后在屏幕上依
次输出这些学生信息,并计算出数学平均成绩,结果保留2位小数。
【输入形式】每条记录的3个数据都使用空格分隔
【输出形式】分四行输出学生信息,每行数据均使用1个空格分隔;
最后一行显示数学平均成绩,保留2位小数
【输入样例】
1 aa 45
2 bb 67
3 dd 77
4 qq 88
【输出样例】
1 aa 45
2 bb 67
3 dd 77
4 qq 88
avg = 69.25
代码入下:
#include<stdio.h>
struct student
{
int num; //学生序号
char name[20]; //学生姓名
int math; //数学成绩
}stu[4];
int main()
{
int i;
float avg;
for(i = 0; i < 4; i++)
{
scanf("%d %s %d", &stu[i].num, stu[i].name, &stu[i].math);
}
for(i = 0;i < 4; i++)
{
printf("%d %s %d\n", stu[i].num, stu[i].name, stu[i].math);
}
avg=1.0*(stu[0].math+stu[1].math+stu[2].math+stu[3].math)/4;
printf("avg = %.2f", avg);
}
题目5:
【问题描述】有以下类信息,使用结构体数组存储这些信息
struct class{
int id;//类编号
char info[20]; //类信息
}a[5]={{1,"aaa"},{2,"bbb"},{6,"ccc"},{7,"ddd"},{4,"eee"}};从键盘输入一个类编号,如果有该类,删除该类信息,并输出删除
后剩余类信息;如果没有,全部输出。
【输出形式】分行输出数据,每行数据均使用一个空格分隔
【输入样例】1
【输出样例】每行数据均使用一个空格分隔,分行输出
2 bbb
6 ccc
7 ddd
4 eee
代码入下:
#include<stdio.h>
struct class
{
int id;//类编号
char info[20]; //类信息
}a[5]={{1,"aaa"},{2,"bbb"},{6,"ccc"},{7,"ddd"},{4,"eee"}};
int main(void)
{
int i, j, x;
scanf("%d", &x);
for(i = 0; i < 5; i++)
{
if(a[i].id==x)
break;
}
for(j = i; j < 4; j++)
{
a[j] = a[j + 1];
}
for(j = 0; j < 4; j++)
{
printf("%d %s\n", a[j].id, a[j].info);
}
}
以上就是我给大家精心准备的5道C语言结构体的题目,希望对大家能有所帮助,记得多多点赞收藏评论哦!感谢感谢!