C语言之结构体练习题Word格式文档下载.docx

上传人:b****1 文档编号:5600183 上传时间:2023-05-05 格式:DOCX 页数:18 大小:20.27KB
下载 相关 举报
C语言之结构体练习题Word格式文档下载.docx_第1页
第1页 / 共18页
C语言之结构体练习题Word格式文档下载.docx_第2页
第2页 / 共18页
C语言之结构体练习题Word格式文档下载.docx_第3页
第3页 / 共18页
C语言之结构体练习题Word格式文档下载.docx_第4页
第4页 / 共18页
C语言之结构体练习题Word格式文档下载.docx_第5页
第5页 / 共18页
C语言之结构体练习题Word格式文档下载.docx_第6页
第6页 / 共18页
C语言之结构体练习题Word格式文档下载.docx_第7页
第7页 / 共18页
C语言之结构体练习题Word格式文档下载.docx_第8页
第8页 / 共18页
C语言之结构体练习题Word格式文档下载.docx_第9页
第9页 / 共18页
C语言之结构体练习题Word格式文档下载.docx_第10页
第10页 / 共18页
C语言之结构体练习题Word格式文档下载.docx_第11页
第11页 / 共18页
C语言之结构体练习题Word格式文档下载.docx_第12页
第12页 / 共18页
C语言之结构体练习题Word格式文档下载.docx_第13页
第13页 / 共18页
C语言之结构体练习题Word格式文档下载.docx_第14页
第14页 / 共18页
C语言之结构体练习题Word格式文档下载.docx_第15页
第15页 / 共18页
C语言之结构体练习题Word格式文档下载.docx_第16页
第16页 / 共18页
C语言之结构体练习题Word格式文档下载.docx_第17页
第17页 / 共18页
C语言之结构体练习题Word格式文档下载.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言之结构体练习题Word格式文档下载.docx

《C语言之结构体练习题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言之结构体练习题Word格式文档下载.docx(18页珍藏版)》请在冰点文库上搜索。

C语言之结构体练习题Word格式文档下载.docx

main()

staticstructs1a[]={{"

abcd"

1,a+1},{"

efgh"

2,a+2},{"

ijkl"

3,a}};

structs1*p=a;

inti=0;

%s%s%s"

a[0].s,p->

s,a[2].sip->

s);

%d%d"

i+2,--a[i].i);

%c\n"

++a[i].s[3]);

//VC下运行,出现错误

A.abcdabcdabcd20eB.abcdefghijkl20e

C.abcdabcdijkl20eD.abcdabcdabcd21e

8.下面程序的输出结果为()。

#include<

structst

intx;

int*y;

}*p;

intdt[4]={10,20,30,40};

structstaa[4]={50,&

dt[0],60,&

dt[1],70,&

dt[2],80,&

dt[3]};

p=aa;

%d\n"

++p->

x);

(++p)->

++(*p->

y));

A.10B.50C.51D.60

20606070

20212131

9.有以下程序

#include<

structSTU

charname[9];

charsex;

doublescore[2];

};

structSTUa={“Zhao”,’m’,85.0,90.0},b={“Qian”,’f’,95.0,92.0};

b=a;

printf(“%s,%c,%2.0f,%2.0f\n”,b.name,b.sex,b.score[0],b.score[1]);

程序的运行结果是:

()。

A.Qian,f,95,92B.Qian,m,85,90C.Zhao,f,95,92D.Zhao,m,85,90

10.下面结构体的定义语句中,错误的是()。

A.structordB.structord

{{

intx;

intx 

;

inty;

inty 

intz;

intz;

}

structorda;

structorda;

C.structordD.struct

{{

intx 

}a;

}a;

11.有以下程序

#include<

string.h>

structA

{

inta;

charb[10];

doublec;

structAf(structAt);

structAa={1001,"

ZhangDa"

1098.0};

a=f(a);

printf("

%d,%s,%6.1f\n"

a.a,a.b,a.c);

structAf(structAt)

t.a=1002;

strcpy(t.b,"

ChangRong"

);

t.c=1202.0;

returnt;

程序运行后的输出结果是()。

A.1001,ZhangDa,1098.0B.1002,ZhangDa,1202.0

C.1001,ChangRong,1098.0D.1002,ChangRong,1202.0

12.下面程序的运行结果是()。

structSTU

voidf(char*name,intnum)

structSTUs[2]={{"

Sun"

2044},{"

Li"

2045}};

num=s[0].num;

strcpy(name,s[0].name);

Yang"

2041},{"

Guo"

2042}},*p;

p=&

s[1];

f(p->

name,p->

num);

%s%d\n"

p->

A.Sun2042B.Sun2044C.Guo2042D.Yang2041

13.下面程序的运行结果是()。

{

intnum;

floatscore;

voidf(structSTUp)

structSTUs[2]={{2044,550},{2045,537}};

p.num=s[1].num;

p.score=s[1].score;

structSTUs[2]={{2041,703},{2042,580}};

f(s[0]);

  printf("

%d%3.0f\n"

s[0].num,s[0].score);

A.2045537B.2044550C.2042580D.2041703

14.有以下程序:

structst

{intx,y;

}data[2]={1,10,2,20};

structst*p=data;

%d"

p->

y);

其运行结果是()。

A.10,1B.20,1C.10,2D.20,2

15.有以程序

typedefstruct

charname[9];

charsex;

floatscore[2];

}STU;

voidf(STUa)

STUb={“Zhao”,’m’,85.0,90.0};

inti;

strcpy(a.name,b.name);

a.sex=b.sex;

for(i=0;

i<

2;

i++)a.score[i]=b.score[i];

}

main()

STUc={“Qian”,’f’,95.0,92.0};

f(c);

printf(“%s,%c,%2.0f,%2.0f\n”,c.name,c.sex,c.score[0],c.score[1]);

程序的运行结果是()。

A.Qian,f,95,92B.Qian,m,85,90

C.Zhao,f,95,92D.Zhao,m,85,90

16.下面程序的运行结果是()。

structord

{intx,y;

}dt[2]={1,2,3,4};

structord*p=dt;

%d,"

++p->

A.1,2B.2,3C.3,4D.4,1

以下结构体类型说明和变量定义中正确的是

A)typedefstructB)structREC;

{intn;

charc;

}REC;

{intn;

RECt1,t2;

RECt1,t2;

C)typedefstructREC;

D)struct

{intn=0;

charc=’A’;

}t1,t2;

{intn;

charc;

}RECt1,t2;

填空题

1.结构体是不同数据类型的数据集合,作为数据类型,必须先说明结构体【1】,再说明结构体变量。

2.有以下说明定义语句,可用a.day引用结构体成员day,请写出引用结构体成员a.day

的其它两种形式【1】、【2】。

structd

intday;

charmouth;

intyear;

}a,*b;

b=&

a;

6.若已有类型定义:

structdate

intyear;

intmonth;

intday;

};

写出下面程序的运行结果【1】。

voidchange(structdated)

d.year=2008;

d.month=d.day=8;

structdatedate1={0,0,0};

change(date1);

printf("

%d,%d,%d\n"

date1.year,date1.month,date1.day);

7.若已有类型定义:

voidchange(structdate*p)

(*p).year=2008;

(*p).month=(*p).day=8;

structdatedate1={0,0,0};

change(&

date1);

printf("

8.分析以下程序的输出结果是【1】。

structSTUD{

intno;

char*name;

intscore;

main(){stuctSTUDst1={1,"

Mary"

85},st2;

st2.no=2;

st2.name=(char*)malloc(sizeof(10));

strcpy(st2.name,"

Smith"

st2.score=78;

(st1.score>

st2.score?

st1.name:

st2.name));

9.以下程序中函数fun的功能是:

统计person所指结构体数组中所有性别(sex)为M的记录的个数,存入变量n中,并做为函数值返回。

请填空:

#defineN3typedefstruct{

intnum;

charnam[10];

charsex;

}SS;

intfun(SSperson[]){

inti,n=0;

for(i=0;

N;

i++)if(【1】=='

M'

n++;

returnn;

}main(){

SSW[N]={{1,"

AA"

'

F'

},{2,"

BB"

},{3,"

CC"

}};

intn;

n=fun(W);

n=%d\n"

n);

10.有如下定义:

struct{

inty;

}s[2]={{1,2},{3,4}},*p=s;

则表达式++p->

x的结果是【1】。

11.人员的记录由编号(id)和出生年月日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号是唯一。

下面函数fun的功能是:

找出指定编号人员的数据,作为函数值返回,由主函数输出;

若指定编号不存在,返回编号为空串的数据。

#defineN20typedefstructstudent{

charid[40];

intyear;

intmonth;

intdate;

【1】fun(STUstd[],char*id){

STUa={"

"

9999,99,99};

i++)if(strcmp(std[i].id,id)==0)returnstd[i];

returna;

}main(){

STUs[N],ps;

输入所有人员的编号和出生日期:

"

i++)scanf("

%s,%d,%d,%d"

s[i].id,&

s[i].year,&

s[i].month,&

s[i].date);

输入待查找人员的编号:

gets(id);

ps=fun(s,id);

if(strcmp(ps.id,"

)!

=0)printf("

查找结果:

%s,%d,%d,%d"

ps.id,ps.year,ps.month,ps.date);

elseprintf("

返回空串,不存在该编号"

12.下面程序通过定义学生结构体变量,存储了学生的学号、姓名和3门的成绩。

函数fun的功能是将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改了b中的学号和姓名,最后输出修改后的数据。

例如:

a所指变量中的学号、姓名和三门课的成绩依次是:

10001、“zhangsan"

、95、80、88,则修改后的输出b中的数据应为:

10002、“lisa”、95、80、88。

structstudent{

charname[40];

foatscore[3];

voidfun(structstudenta){

structstudentb;

b=a;

b.num=10002;

strcpy(【1】,"

lisa"

改变后的信息:

%d,%s"

b.num,b.name);

3;

i++)printf("

%f"

b.score[i]);

strucntstudentaa={10001,"

zhangsan"

95、80、88};

fun(aa);

13.将形参std所指结构体数组中年龄最大者的数据作为函数值返回。

typedefstructstu{

intage;

}STD;

STDfun(STDs[],intn);

STDmax;

max=s[0];

for(i=1;

n;

i++)if(max.age<

【1】)

max=s[i];

returnmax;

STDss[5],max;

5;

i++)scanf(”%d,%s,%d"

&

ss[i].num,ss[i].name,&

ss[i].age);

max=fun(ss,5);

年龄最大者的数据信息:

%d,%s,%d"

max.num,max.name,max.age);

14.下面程序实现的是:

将形参指针所指结构体数组中的三个元素按num成员进行升序排列。

将程序补充完整。

typedefstructs{

floatscore;

}PERSON;

voidfun(PERSONstd[3]){

PERSONtemp;

if(std[0].num>

std[1].num)

temp=std[0];

std[0]=std[1];

std[1]=temp;

}if(std[0].num>

std[2].num)

{temp=std[0];

std[0]=std[2];

std[2]=temp;

}if(std[1].num>

{temp=std[1];

std[1]=std[2];

PERSONstd[]={{12,"

sunny"

89},{8,"

train"

73},{21,"

smelle"

91}};

fun(【1】);

%d,%s,%f\n"

std[i].num,std[i].name,std[i].score);

}15.下面程序的输出结果是【1】。

structks{

inta;

int*b;

structkss[4],*p;

intn=1,i;

4;

i++){

s[i].a=n;

s[i].b=&

s[i].a;

n=n+2;

}p=&

s[0];

%d,%d\n"

b),*(s+2)->

b);

17.下面程序的运行结果是【1】。

structNODE

structNODE*next;

structNODEs[3]={{1,'

\0'

},{2,'

},{3,'

}},*p,*q,*r;

intsum=0;

s[0].next=s+1;

s[1].next=s+2;

s[2].next=s;

p=s;

q=p->

next;

r=q->

sum+=q->

next->

num;

sum+=r->

sum);

18.设有定义:

structperson

intID;

charname[12];

}p;

请将scanf(“%d”,【1】);

语句补充完整,使其能够为结构体变量p的成员ID正确读入数据。

19.有以下程序:

doubles;

voidfun1(RECx)

x.num=23;

x.s=88.5;

RECa={16,90.0};

fun1(a);

a.num);

程序的运行结果是【1】。

 

20.下列程序的运行结果为:

【1】。

inta;

charb[10];

doublec;

voidf(structA*t);

structAa={1001,"

1098.0};

f(&

a);

a.a,a.b,a.c);

voidf(structA*t)

strcpy(t->

b,"

以下程序中函数fun的功能是:

统计person所指结构体数组中所有性别(sex)为M的

记录的个数,存入变量n中,并做为函数值返回。

#defineN3

typedefstruct

{intnum;

intfun(SSperson[])

{inti,n=0;

for(i=0;

i++)

if(【14】==’M’)n++;

returnn;

}

{SSW[N]={{1,”AA”,’F’},{2,”BB”,’M’},{3,”CC”,’M’}};

printf(“n=%d\n”,n);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2