C二级操作题 8 结构体变量和结构体数组处理Word文档下载推荐.docx
- 文档编号:17787686
- 上传时间:2022-12-10
- 格式:DOCX
- 页数:24
- 大小:22.95KB
C二级操作题 8 结构体变量和结构体数组处理Word文档下载推荐.docx
《C二级操作题 8 结构体变量和结构体数组处理Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C二级操作题 8 结构体变量和结构体数组处理Word文档下载推荐.docx(24页珍藏版)》请在冰豆网上搜索。
、95、80、88,则修改后输出b中的数据应为:
10002、"
LiSi"
、95、80、88。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:
源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include<
stdio.h>
string.h>
structstudent
{longsno;
charname[10];
floatscore[3];
};
voidfun(structstudenta)
{structstudentb;
inti;
/**********found**********/
b=__1__;
//a同类型的结构体变量可以整体赋值
b.sno=10002;
strcpy(__2__,"
);
//b.name成员数组的名字代表该成员存储空间的首地址
printf("
\nThedataaftermodified:
\n"
\nNo:
%ldName:
%s\nScores:
"
b.sno,b.name);
for(i=0;
i<
3;
i++)printf("
%6.2f"
b.__3__);
//score[i]
}
main()
{structstudents={10001,"
95,80,88};
\n\nTheoriginaldata:
s.sno,s.name);
s.score[i]);
fun(s);
//单向值传递
2、程序设计题(在结构体数组中查找指定学号的学生数据)
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:
函数返回指定学号的学生数据,指定的学号在主函数中输入。
若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。
(用于字符串比较的函数是strcmp)。
部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#defineN16
typedefstruct
{charnum[10];
ints;
}STREC;
STRECfun(STREC*a,char*b)
{inti;
STRECc;
for(i=0;
i<
N;
i++)
if(strcmp(b,a[i].num)==0)
{c=a[i];
break;
}
if(i>
=N)
{strcpy(c.num,"
"
c.s=-1;
returnc;
{STRECs[N]={{"
GA005"
85},{"
GA003"
76},{"
GA002"
69},{"
GA004"
GA001"
91},{"
GA007"
72},{"
GA008"
64},{"
GA006"
87},{"
GA015"
GA013"
91},{"
GA012"
64},{"
GA014"
GA011"
77},{"
GA017"
GA018"
GA016"
72}};
STRECh;
charm[10];
FILE*out;
Theoriginaldata:
i++)
{if(i%4==0)printf("
printf("
%s%3d"
s[i].num,s[i].s);
}
\n\nEnterthenumber:
gets(m);
h=fun(s,m);
Thedata:
\n%s%4d\n"
h.num,h.s);
}
第二套
1、程序填空题(通过被调函数输出结构体变量各成员的值)
程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。
函数fun的功能是输出这位学生的信息。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
{intnum;
charname[9];
charsex;
struct{intyear,month,day;
}birthday;
}STU;
/**********found**********/
voidshow(STU___1___)//tt
\n%d%s%c%d-%d-%d"
tt.num,tt.name,tt.sex,tt.birthday.year,tt.birthday.month,tt.birthday.day);
%5.1f"
___2___);
//tt.score[i]
main()
{STUstd={1,"
Zhanghua"
'
M'
1961,10,8,76.5,78.0,82.0};
\nAstudentdata:
show(___3___);
//std
2、程序设计题(查找成绩最低的学生记录)
已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。
请编写函数fun,函数的功能是:
找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。
部分源程序存在文件PROG1.C文件中。
#defineN10
typedefstructss
}STU;
fun(STUa[],STU*s)
STUmin=a[0];
for(i=1;
if(min.s>
a[i].s)
min=a[i];
*s=min;
main()
{STUa[N]={{"
A01"
81},{"
A02"
89},{"
A03"
66},{"
A04"
A05"
77},{"
A06"
90},{"
A07"
79},{"
A08"
61},{"
A09"
80},{"
A10"
71}},m;
*****Theoriginaldata*****\n"
for(i=0;
N;
i++)
No=%sMark=%d\n"
a[i].num,a[i].s);
fun(a,&
m);
printf("
*****THERESULT*****\n"
Thelowest:
%s,%d\n"
m.num,m.s);
三、课后练习
1、程序填空题(在被调函数中修改结构体变量的值并返回其值)
函数fun的功能是将形参a中的数据进行修改,把修改后的数据作为函数值返回主函数进行输出。
传给形参a的数据中,学号、姓名、和三门课的成绩依次是:
、95、80、88,修改后的数据应为:
、96、81、89。
__1__fun(structstudenta)//structstudent
a.sno=10002;
//a.name
i++)__3__+=1;
//a.score[i]
returna;
95,80,88},t;
t=fun(s);
t.sno,t.name);
t.score[i]);
2、程序填空题(在被调函数中修改结构体变量的值)
给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和3门课的成绩。
函数fun的功能是将该学生的各科成绩都乘以一个系数a。
不得增行或删行,也不得更改程序的结构!
voidshow(STUtt)
%d%s:
tt.num,tt.name);
tt.score[i]);
voidmodify(___1___*ss,floata)//STU
ss->
___2___*=a;
//score[i]
{STUstd={1,"
76.5,78.0,82.0};
floata;
\nTheoriginalnumberandnameandscores:
show(std);
\nInputanumber:
scanf("
%f"
&
a);
modify(___3___,a);
//&
std
\nAresultofmodifying:
3、程序填空题(在被调函数中修改结构体变量值并返回其地址)
函数fun的功能是将形参a所指结构体变量s中的数据进行修改,并把a中地址作为函数值返回主函数,在主函数中输出修改后的数据。
例如:
a所指变量s中的学号、姓名、和三门课的成绩依次是:
10001、"
ZhangSan"
、95、80、88,修改后输出t中的数据应为:
LiSi"
__1__fun(structstudent*a)//structstudent*
a->
sno=10002;
strcpy(a->
name,"
i++)__2__+=1;
//a->
score[i]
return__3__;
//a
95,80,88},*t;
t=fun(&
s);
t->
sno,t->
name);
t->
score[i]);
4、程序填空题(在被调函数中通过形参指针修改结构体变量的值)
函数fun的功能是对形参b所指结构体变量中的数据进行修改,最后在主函数中输出修改后的数据。
b所指变量t中的学号、姓名、和三门课的成绩依次是:
ZhangQi"
、93、85、87,修改后输出t中的数据应为:
10004、"
LiJie"
、93、85、87。
voidfun(structstudent*b)
b__1__=10004;
//->
sno
strcpy(b__2__,"
LiJie"
//->
name
{structstudentt={10002,"
93,85,87};
fun(__3__);
//&
t
5、程序填空题(在结构体数组中找出年龄最大的数据)
给定程序中,函数fun的功能是:
将形参std所指结构体数组中年龄最大者的数据作为函数值返回,并在main函数中输出。
{charname[10];
intage;
}STD;
STDfun(STDstd[],intn)
{STDmax;
max=___1___;
//std[0]
n;
if(max.age<
___2___)max=std[i];
//std[i].age
returnmax;
{STDstd[5]={"
aaa"
17,"
bbb"
16,"
ccc"
18,"
ddd"
eee"
15};
STDmax;
max=fun(std,5);
\nTheresult:
\n"
nName:
%s,Age:
%d\n"
___3___,max.age);
//max.name
6、程序填空题(对结构体中的数据按姓名从小到大排序)
程序通过定义学生结构体数组,存储了若干名学生的学号、姓名和3门课的成绩。
函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大)排序。
voidfun(structstudenta[],intn)
{
__1__t;
//structstudent
inti,j;
__2__;
i++)//n-1
for(j=i+1;
j<
j++)
if(strcmp(__3__)>
0)//a[i].name,a[j].name
{t=a[i];
a[i]=a[j];
a[j]=t;
{st
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C二级操作题 结构体变量和结构体数组处理 二级 操作 结构 变量 数组 处理