C语言程序设计结构体与共用体

上传人:新** 文档编号:459263781 上传时间:2023-09-14 格式:DOC 页数:10 大小:48.50KB
返回 下载 相关 举报
C语言程序设计结构体与共用体_第1页
第1页 / 共10页
C语言程序设计结构体与共用体_第2页
第2页 / 共10页
C语言程序设计结构体与共用体_第3页
第3页 / 共10页
C语言程序设计结构体与共用体_第4页
第4页 / 共10页
C语言程序设计结构体与共用体_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《C语言程序设计结构体与共用体》由会员分享,可在线阅读,更多相关《C语言程序设计结构体与共用体(10页珍藏版)》请在金锄头文库上搜索。

1、一、选择题1、定义结构类型时,下列叙述正确的是()A、系统会按成员大小分配每个空间 B、系统会按最大成员大小分配空间C、系统不会分配空间 D、以上说法均不正确2、已知结构类型变量x的初始化值为“20”,30,40,35.5,请问合适的结构定义是()A、Struct sint no;int x,y,z; B、Struct schar no2;int x,y,z;C、Struct sint no;float x,y,z; D、Struct schar no2;float x,y,z;3、若程序中有定义struct abcint x;char y;abc s1,s2;则会发生的情况是()A、编译时会

2、有错误 B、链接时会有错误C、运行时会有错误 D、程序没有错误4、已知学生记录描述为 struct studentint no; char name20;char set; structint year;int month;int day;birth; struct student s;设变量s中的“生日”应是“1984年11月11日”,下列对生日的正确赋值方式是( ).A)year=1984; B)birth.year=1984;month=11; birth.month=11; day=11; birth.day=11;C)s.year=1984; D)s.birth.year=1984;

3、 s.month=11; s.birth.month=11; s.day=11; s.birth.day=11;5、当说明一个结构体变量时系统分配给它的内存是( ).A)各成员所需内存量的总和 B)结构中第一个成员所需内存量C)成员中占内存量最大者所需的容量 D)结构中最后一个成员所需内存量6、以下对结构体类型变量的定义中不正确的是( ).A)#define STUDENT struct student B)struct student STUDENT int num;int num; float age;float age; std1;std1; C)struct D)structint n

4、um; int num;float age; float age;std1; student; struct student std1;7、设有以下说明语句struct stu int a; float b; stutype;则下面的叙述不正确的是( ).A)struct是结构体类型的关键字B)struct stu是用户定义的结构体类型C)stutype是用户定义的结构体类型名D)a和b都是结构体成员名8、C语言结构体类型变量在程序执行期间( ).A)所有成员一直驻留在内存中B)只有一个成员驻留在内存中C)部分成员驻留在内存中D)没有成员驻留在内存中9、在16位IBM-PC机上使用C语言,若有

5、如下定义: struct dataint i;char ch;double f;b; 则结构变量b占用内存的字节数是( ). A)1 B)2 C)3 D)410、以下程序的运行结果是( ).include “stdio.h”main()struct data int year,month,day; today; printf(“%dn”,sizeof(struct data);A)6 B)8 C)10 D)1211、若有以下定义和语句;struct student int age; int num ;struct student stu 3=1001,20 ,1002,19,1003,21;m

6、ain()struct student *p; p=stu;.则以下不正确的引用是( )。A)(P+) num B)p+ C)(*p).numD)p=&stu.age 12、以下scanf函数调用语句中对结构体 变量成员的不正确引用是( )。 stuct pupilchar name20 ; int age ;int sex;pup5,*p;p=pup;A) scanf(“%s”,pup0.name); B) scanf(“”%d),&pup0.age;C) scanf(“%d”,&sex);D) scanf(“%d”,P-age);13、有以下定义和语句,则以下引用形式不合法的是( )。 S

7、truct s int i1; struct s*i2,i0; ; static struct s a3 =2,&a1,0,4,%a2,&a0,6,0,&a1, *ptr; ptr=a; A) ptr-i1+ B)*ptr-i2 C)+ptr-i0 D)ptr-i114、设有如下定义: struct sk int n; float x; data,*p; 若要使P指向data中的n域, 正确的负值语句的是( )。A、p=&data.n;B) *p=data.n;C)p=(struct sk*)&data.n;D)p=(struct sk*)data.n;15、若哟于以下说明和语句: struc

8、t studentint age; int num; std,*p; p=&std;则以下对结构体变量std中成员age的引用方式不正确的是( )。 A)std.age B)p-age C)(*p).age D)*p.age 16、若有以下说明和语句,则下面表达式中值为1002的是( )。Struct studentint age; int num;struct student stu3=1001,20,1002,19,1003,21;struct student *p;p=stu;A)(p+)num B)(p+)age C)(*p).num D)(*+p).age17、以下对结构体变量stu

9、l 中成员age 的非法引用是( )。struct studentint age; int num;stul,*p;p=&stul;A)stul.age B)student.age C)page D)(*p).age18、若要利用下面的程序片段使指针变量p指向一个存储整型变量的存储单元,则 中应填入的内容是( )。int *p;P= malloc(sizeof(int);A)int B)int* C)(*int) D)(int*)19、当说明一个共用体变量时系统分配给它的内存是( )。 A)各成员所需内存量的总和 B)结构中第一个成员所需内存量 C)成员中占内存量最大者所需的容量 D)结构中最

10、后一个成员所需内存量20、以下对C语言中共用体类型数据的叙述正确的是( )。 A)可以对共用体变量名直接赋值 B)一个共用体变量中可以同时存放其所有成员 C)一个共用体变量中不可能同时存放其所有成员 D)共用体类型定义中不能出现结构体类型的成员21、若有以下定义和语句: union data int i; char c; float f; a; int n; 则以下语句正确的是( )。A)a=5; B)a=2,a,1.2; C)printf(“%dn”,a); D)n=a;22、设有以下说明,则下面不正确的叙述是( )。union data int i;char c;float f;un;A)

11、un所占的内存长度等于成员f的长度 B)un的地址和它的各成员地址都是同一地址C)un可以作为函数参数 D)不能对un赋值,但可以在定义un时对它初始化23、C语言共用体型变量在程序运行期间 ( ) 。 A)所有成员一直驻留在内存中 B)只有一个成员驻留在内存中 C)部分成员驻留在内存中 D)没有成员驻留在内存中24、以下程序的运行结果是 ( ) 。 #include “stdio.h” main() union long a; int b; char c;m;printf(“%dn”,sizeof(m);A) 2 B)4 C)6 D)825、以下程序的运行结果是 ( ) .#include “stdio.h”union pwint i; char ch2; a; main() ch0=13;ch1=0;printf(“%dn”,a,i); A)13 B)14 C)208 D)209二、填空题1、以下程序的运行结果是 【 】. . struct n int x; char c; ; main() struct n a=10,x; func(a);printf(“%d,%c”,a.x,a.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 汽车技术

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号