ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:21.83KB ,
资源ID:8513712      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8513712.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(结构体共用体.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

结构体共用体.docx

1、结构体共用体习题十一 结构体和共用体选择题1. 设有以下语句typedef struct TT char c; int a4;CIN;则下面叙述中正确的是_。A、可以用TT定义结构体变量 B、TT是struct类型的变量C、可以用CIN定义结构体变量 D、CIN是struct TT类型的变量2. 有以下结构体说明、变量定义和赋值语句struct STD char name10;int age;char sex;s5,*ps; ps=&s0;则以下scanf函数调用语句中错误引用结构体变量成员的是_。A、scanf(%s,s0.name); B、scanf(%d,&s0.age);C、scanf

2、(%c,&(ps-sex); D、scanf(%d,ps-age);3. 有以下程序typedef structint b,p;A;void f(A c) /* 注意:c是结构变量名 */ int j; c.b+=1; c.p+=2;main() int i; A a=1,2; f(a); printf(%d,%dn,a.b,a.p);程序运行后的输出结果是_。A、2,3 B、2,4 C、1,4 D、1,24. 若有以下定义和语句union date int i; char c; float f; x; int y;则以下语句正确的是_。A、x=10.5; B、x.c=101; C、y=x;

3、D、printf(%dn, x);5. 有以下程序段typedef struct NODEint num; struct NODE *next; OLD;以下叙述中正确的是_。A、以上的说明形式非法 B、NODE是一个结构体类型C、OLD是一个结构体类型 D、OLD是一个结构体变量6. 以下对结构体类型变量td的定义中,错误的是_。A、typedef struct aa B、struct aa int n; int n; float m; float m; AA; td; AA td; struct aa td;C、struct D、struct int n; int n; float m;

4、float m; aa; td; struct aa td;7.有以下程序:struct STUchar name10; int num;void f1(struct STU c)struct STU b=LiSiGuo,2042;c=b;void f2(struct STU *c)struct STU b=SunDan,2044;*c=b;main()struct STU a=YangSan,2041,b=WangYin,2043;f1(a);f2(&b);printf(“%d %d”,a.num,b.num)执行后输出结果是_。A、2041 2044 B、2041 2043 C、2042

5、2044 D、2042 20438. 有以下程序: #include union pw int i; char ch2;a; main() a.ch0=13;a.ch1=0; printf(%dn,a.i);程序的输出结果是(注意:ch0在低字节,ch1在高字节)_。 A、13 B、14 C、208 D、20910.有以下程序:struct s int x,y; data2=10,100,20,200;main() struct s *p=data; printf(%dn,+(p-x);程序运行后的输出结果是_。A、10 B、11 C、20 D、2111. 有以下程序段typedef stru

6、ct nodeint data; struct node *next; *NODE;NODE p; 以下叙述中正确的是_。A、p是指向struct node结构变量的指针的指针 B、NODE p;语句出错C、p是指向struct node结构变量的指针 D、p是struct node结构变量12.有以下程序段struct stint x;int *y;*pt; int a=1,2,b=3,4; struct st c2=10,a,20,b;pt=c;以下选项中表达式的值为11的是_。A、*pt-y B、pt-x C、+pt-x D、(pt+)-x13.有以下说明和定义语句struct stud

7、ent int age; char num8;struct student stu3=20,200401,21,200402,19,200403;struct student *p=stu;以下选项中引用结构体变量成员的表达式错误的是_。A、(p+)-num B、p-num C、(*p).num D、stu3.age14.已知字符0的ASCII码为十六进制的30,下面程序 main() union unsigned char c; unsigned int i4; z; z.i0=0x39; z.i1=0x36; printf(%cn,z.c); A、6 B、9 C、0 D、3 15. 有以下

8、程序#include #include typedef struct char name9; char sex; float score2; STU;void f(STU a) STU b=Zhao,m,85.0,90.0; int i; strcpy(a.name,b.name); a.sex=b.sex; for(i=0;i2;i+) a.scorei=b.scorei;main() STU c=Qian,f,95.0,92.0; f(c); printf(%s,%c,%2.0f,%2.0fn,c.name,c.sex,c.score0,c.score1);程序的运行结果是_。A、Qian

9、,f,95,92 B、Qian,m,85,90 C、Zhao,f,95,92 D、Zhao,m,85,9016. 以下关于typedef的叙述错误的是_。A、用typedef可以增加新类型B、typedef只是将已存在的类型用一个新的名字来代表C、用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名D、用typedef为类型说明一个新名,通常可以增加程序的可读性17. 以下结构体类型说明和变量定义中正确的是_。A、typedef struct int n; char c; REC; REC t1,t2;B、struct REC; int n; char c; REC t1,

10、t2;C、typedef struct REC; int n=0; char c= A;t1,t2;D、struct int n; char c; REC; REC t1,t2;18. 设有以下定义union data int d1; float d2; demo;则下面叙述中错误的是_。A、变量demo与成员d2所占的内存字节数相同 B、变量demo中各成员的地址相同C、变量demo和各成员的地址相同 D、若给demo.d1赋99后,demo.d2中的值是99.019. 若程序中有以下的说明和定义:struct abc int x;char y; /因为这里缺少分号struct abc s1

11、,s2;则会发生的情况是_。 A、编译时错 B、程序将顺序编译、连接、执行C、能顺序通过编译、连接、但不能执行 D、能顺序通过编译、但连接出错21. 有以下程序#include struct st int x,y; data2=1,10,2,20;main() struct st *p=data; printf(%d,p-y); printf(%dn,(+p)-x);程序的运行结果是_。A、10,1 B、20,1 C、10,2 D、20,222. 以下程序的输出结果是_。main( ) union char i2; int k; r; r.i0=2; r.i1=0; printf(%dn,r.

12、k);A、2 B、1 C、0 D、不确定24. 设有以下说明语句 struct ex int x; float y;char z; example;则下面的叙述中不正确的是_。A、struct是结构体类型的关键字 B、example是结构体类型名C、x,y,z都是结构体成员名 D、struct ex是结构体类型25. 以下各选项企图说明一种新的类型名,其中正确的是_。A、typedef v1 int; B、typedef v2=int; C、typedef int v3; D、typedef v4: int26. 以下程序的输出结果是_。 union myun struct int x,y,z

13、;u; int k; a; main() a.u.x=4;a.u.y=5;a.u.z=6; a.k=0; printf(%dn,a.u.x); A、4 B、5 C、6 D、027. 以下程序的输出结果是_。struct HAR int x,y;struct HAR *p; h2;main() h0.x=1;h0.y=2; h1.x=3;h1.y=4; h0.p=&h1;h1.p=h; printf(%d%dn,(h0.p)-x,(h1.p)-y);A、12 B、23 C、14 D、3228. 设有以下说明语句typedef struct int n; char ch8;PER;则下面叙述中正确

14、的是_。A、PER是结构体变量名 B、PER是结构体类型名 C、typedef struct是结构体类型 D、struct是结构体类型名29. 设有如下说明typedef structint n;char c;double x;STD;则以下选项中 ,能正确定义结构体数组并赋初值的语句是_。A、STD tt2=1,A,62,2,B,75; B、STD tt2=1,A,62,2,75;C、struct tt2=1,A,2,B ;D、struct tt2=1,A,62.5,2,B,75.0;30. 设有如下定义:struct ss char name10; int age; char sex; s

15、td3,*p=std;下面各输入语句中错误的是_。A、scanf(%d,&(*p).age); B、scanf(%s,&std.name);C、scanf(%c,&std0.sex); D、scanf(%c,&(p-sex);七 1. 若有定义“struct AA int a; char b; double c;x;”,则x占用空间大小为_11或13_字节。 2. 当定义一个结构体变量时,系统分配给该变量的内存大小等于各成员所需内存大小的_和_。 3. C提供的预处理命令有宏定义命令,条件编译命令和_文件包含命令_。 4.共用体变量所占用的内存空间是其各个成员所占内存空间_的最大值_。 5调用

16、系统函数时,要先使用#include命令包含该系统函数的原型语句所在的_头文件_。 6. 在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是_用户_定义的头文件。 7. 使用#include命令可以包含一个头文件,也可以包含一个_程序_文件。 8. 在C程序中包含一个头文件或程序文件的预编译命令为_#include _。 9. 程序中的预处理命令是指以_#_字符开头的命令。10. 设有如下宏定义 #define MYSWAP(z,x,y) z=x; x=y; y=z;以下程序段通过宏调用实现变量a,b内容的交换,请填空。float a=5,b=16,c;MYSWAP(_c

17、_,a,b); 标准答案为:c11. 共用体变量(能/不能)_不能_用做函数的参数,函数(能/不能)_不能_返回共用体变量。12. 以下程序的的输出结果是_。#include #define M 5#define N M+Mmain() int k ; k=N*N*5; printf(%dn ,k);标准答案为:55 13. 有以下定义和语句,则sizeof(a)的值是_10或_16_,而sizeof(a.share)的值是_4_。 struct date int day; int mouth; int year; union int share1; float share2; share;

18、a;14. 下面程序的运行结果是:_80_。typedef union student char name10; long sno; char sex; float score4; STU;main() STU a5; printf(%dn,sizeof(a); 15.引用结构体变量中成员的一般形式是_ 结构体变量名.成员名 _。指针、结构体1 人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。函数fun的功能是:找出指定编号人员的数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。#include #include

19、#define N 8typedef struct char num10; int year,month,day ;STU;_ STU _ fun(STU *std, char *num) int i; STU a=,9999,99,99; for (i=0; iN; i+) if( strcmp(_stdi.num_,num)=0 ) return (_stdi_); return a;main() STU stdN= 111111,1984,2,15,222222,1983,9,21,333333,1984,9,1, 444444,1983,7,15,555555,1984,9,28,66

20、6666,1983,11,15, 777777,1983,6,22,888888,1984,8,19; STU p; char n10=666666; p=fun(std,n); if(p.num0=0) printf(nNot found !n); else printf(nSucceed !n ); printf(%s %d-%d-%dn,p.num,p.year,p.month,p.day); 第1 处内容为STU fun(STU *std, char *num)第2 处内容为if( strcmp(stdi.num,num)=0 )第3 处内容为return (stdi);2. 人员的记

21、录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中。函数fun的功能是:找出指定出生年份的人员,将其数据放在形参k所指的数组中,由主函数输出,同时由函数值返回满足指定条件的人数。#include #define N 8typedef struct int num; int year,month,day ;STU;int fun(STU *std, STU *k, int year) int i,n=0; for (i=0; iN; i+) if( _stdi.year_=year) kn+= _stdi_; return (_n_);main() STU stdN=

22、 1,1984,2,15,2,1983,9,21,3,1984,9,1,4,1983,7,15, 5,1985,9,28,6,1982,11,15,7,1982,6,22,8,1984,8,19; STU kN; int i,n,year; printf(Enter a year : ); scanf(%d,&year); n=fun(std,k,year); if(n=0) printf(nNo person was born in %d n,year); else printf(nThese persons were born in %d n,year); for(i=0; in; i+)

23、 printf(%d %d-%d-%dn,ki.num,ki.year,ki.month,ki.day); 第1 处内容为if( stdi.year=year)第2 处内容为kn+= stdi;第3 处内容为return (n);3. 给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和3门课的成绩。函数fun的功能是将该学生的各科成绩都乘以一个系数a。#include typedef struct int num; char name9; float score3;STU;void show(STU tt) int i; printf(%d %s : ,tt.num,t

24、t.name); for(i=0; i3; i+) printf(%5.1f,tt.scorei); printf(n);void modify(_STU_ *ss,float a) int i; for(i=0; i_scorei_ *=a;main( ) STU std= 1,Zhanghua,76.5,78.0,82.0 ; float a; printf(nThe original number and name and scores :n); show(std); printf(nInput a number : ); scanf(%f,&a); modify(_&std_,a);

25、printf(nA result of modifying :n); show(std);第1 处内容为void modify(STU *ss,float a)第2 处内容为ss-scorei *=a;第3 处内容为modify(&std,a);4. 给定程序中,函数fun的功能是:将形参指针所指结构体数组中的三个元素按num成员进行升序排列。#include typedef struct int num; char name10;PERSON;void fun(PERSON _1_) std或*std _2_ temp; PERSON if(std0.numstd1.num) temp=st

26、d0; std0=std1; std1=temp; if(std0.numstd2.num) temp=std0; std0=std2; std2=temp; if(std1.numstd2.num) temp=std1; std1=std2; std2=temp; main() PERSON std = 5,Zhanghu,2,WangLi,6,LinMin ; int i; fun(_3_); std printf(nThe result is :n); for(i=0; i3; i+) printf(%d,%sn,stdi.num,stdi.name);4.给定程序中,函数fun的功能是:将形参std所指结构体数组中年龄最大者的数据作为函数值返回,并在main函数中输出。#include typedef struct char name10; int age;STD;STD fun(STD std, int n) STD max; int i; max= _1_;*std或std0 for(i=1; in; i+) if(max.age_2_) max=stdi; return max;main( ) STD std5=aaa,17,bbb,16,ccc,18,ddd,17,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1