结构体公用体枚举类型习题PPT教学课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
short word; }w;
word value:6b7d low value:7d high value:6b word value:567d
main( )
{ w.word=0x6b7d;
printf("word value:%x\n",w.word);
printf("low value:%x\n",w.byte.low);
2020/12/10
4
6.下面程序的运行结果为: 6 struct abc{
int a, b, c; }; main() { struct abc s[2]={{1,2,3},{4,5,6}}; int t; t=s[0].a+s[1].b; printf("%d\n",t); }
2020/12/10
int i; char c[2]; }x; main() { x.c[0]=13; x.c[1]=0; printf("%d\n",x.i); }
(提示:
2020/12/10
11
14.下面程序的运行结果为: main() { union{
long i; int k; unsigned char s; }abc; abc.i=0x12345678; printf("%x\n",abc.k); printf("%x\n",abc.s); }
5
7.以下 是对C语言中共用体类型数据的正确叙述: C
A)一旦定义了一个共用体变量后,即可引用该变量或该变 量中的任意成员;
B)一个共用体变量中可以同时存放其所有成员; C)一个共用体变量中不能同时存放其所有成员; D)共用体类型数据可以出现在结构体类型定义中,但结构
体类型数据不能出现在共用体类型定义中。
int y;}in;
int a;
int b;
}e;
e.a=1;
e.b=2;
e.in.x=e.a*e.b;
e.in.y=e.a+e.b;
printf("%d,%d\n",e.in.x,e.in.y);
}
2020/12/10
9
12.下面程序的运行结果为: struct tag{ char low;
char high; }; union word{struct tag byte;
printf("high value:%x\n",w.byte.high);
w.byte.high=0x56;
printf("word value:%x\n",w.word);
}
2020/12/10
10
13.下面程序的运行结果为: 13 c[0]在低字节,c[1]在高字节)
#include <stdio.h> union p{
static struct{char ch;
A
int j;
double x; }arr[2][3]=
{{{'a',1,3.45},{'b',2,7.98},{'c',3,1.93}}};
A)arr[0][1].j
B)arr[0][1].ch
C)arr[1][0].ch D)arr[1][0].j
2020/12/10
char c;
}DATE;
struct date{
int cat;
DATE cow;
double dog;
}too;
DATE max; 则下列语句的执行结果是 。
printf ("%d\n",sizeof(struct date)+sizeof(max));
A)26
B)30
C)18
D)8
2020/12/10
2020/12/10
1
3.若int类型占2个字节,则以下的输出结果为 。
struct st{
char a[10];
A
int b;
double c;};
printf(“%d”,sizeof(struct st));
A)20
B)10
C)2
D)8
2020/12/10
2
4.对以下初值中的整数2的引用方式为 。
1.若程序中有下面的说明和定义
struct abc{ int x;
A
char y;}
struct abc s1,s2; 则会发生的情况是 。
A)编译出错; B)程序将顺利编译、连接、执行; C)能顺利通过编译、连接,但不能执行 D)能顺利通过编译,但连接出错
2.给结构体变量分配的内存是 。 A
A)各成员所占的字节和; B)各成员所占的字节中最大的容量; C)第一个成员所占的字节的容量; D)最后一个成员所占的字节的容量
8.若已定义了如下的共用体类型变量x,则x所占用的 内存字节数为 (设在16位PC机的环境下)C。
union data
{ int i;
char ch;
double f; }x;
A)7
2020/12/10
B)11
C)8
D)10
6
9.设有以下说明和定义:
B
typedef union{
long i;
int k[5];
5678 78
2020/12/10
12
15.下面程序的运行结果为:
main( ) {
177771,177777
union bt{
int k;
char c[2];
}a;
a.k=-7;
printf("%o,%o",a.c[0],a.c[1]);
}
2020/12/10
13
16.以下对枚举类型名的定义中正确的是 B。 A)enum a={one,two,three}; B)enum a{one=9,two,three}; C)enum a={“one”,“two”,“three”}; D)enum a{“one”,“two”,“three”};
5.根据下面的定义,能打印出字母M的语句是 。 D struct person{
char name[9];
int age;
}; struct person
c[10]={"John",17,"Paul",19,"Mary",18,"Adam",1
6}; A)printf("%c\n",c[3].name); B)printf("%c\n",c[3].name[1]); C)printf("%c\n",c[2].name[1]); D)printf("%c\n",c[2].name[0]);
7
10.变量a所占内存字节数是 C
A) 4
B) 5
C) 6
union u{ char st[4];
int i;
long l;};
struct A{ int c;
union u;}a;
D) 8
2020/12/10
8
11.下面程序的运行结果为:
main( )
4,8
{ union example{ struct{ int x;
word value:6b7d low value:7d high value:6b word value:567d
main( )
{ w.word=0x6b7d;
printf("word value:%x\n",w.word);
printf("low value:%x\n",w.byte.low);
2020/12/10
4
6.下面程序的运行结果为: 6 struct abc{
int a, b, c; }; main() { struct abc s[2]={{1,2,3},{4,5,6}}; int t; t=s[0].a+s[1].b; printf("%d\n",t); }
2020/12/10
int i; char c[2]; }x; main() { x.c[0]=13; x.c[1]=0; printf("%d\n",x.i); }
(提示:
2020/12/10
11
14.下面程序的运行结果为: main() { union{
long i; int k; unsigned char s; }abc; abc.i=0x12345678; printf("%x\n",abc.k); printf("%x\n",abc.s); }
5
7.以下 是对C语言中共用体类型数据的正确叙述: C
A)一旦定义了一个共用体变量后,即可引用该变量或该变 量中的任意成员;
B)一个共用体变量中可以同时存放其所有成员; C)一个共用体变量中不能同时存放其所有成员; D)共用体类型数据可以出现在结构体类型定义中,但结构
体类型数据不能出现在共用体类型定义中。
int y;}in;
int a;
int b;
}e;
e.a=1;
e.b=2;
e.in.x=e.a*e.b;
e.in.y=e.a+e.b;
printf("%d,%d\n",e.in.x,e.in.y);
}
2020/12/10
9
12.下面程序的运行结果为: struct tag{ char low;
char high; }; union word{struct tag byte;
printf("high value:%x\n",w.byte.high);
w.byte.high=0x56;
printf("word value:%x\n",w.word);
}
2020/12/10
10
13.下面程序的运行结果为: 13 c[0]在低字节,c[1]在高字节)
#include <stdio.h> union p{
static struct{char ch;
A
int j;
double x; }arr[2][3]=
{{{'a',1,3.45},{'b',2,7.98},{'c',3,1.93}}};
A)arr[0][1].j
B)arr[0][1].ch
C)arr[1][0].ch D)arr[1][0].j
2020/12/10
char c;
}DATE;
struct date{
int cat;
DATE cow;
double dog;
}too;
DATE max; 则下列语句的执行结果是 。
printf ("%d\n",sizeof(struct date)+sizeof(max));
A)26
B)30
C)18
D)8
2020/12/10
2020/12/10
1
3.若int类型占2个字节,则以下的输出结果为 。
struct st{
char a[10];
A
int b;
double c;};
printf(“%d”,sizeof(struct st));
A)20
B)10
C)2
D)8
2020/12/10
2
4.对以下初值中的整数2的引用方式为 。
1.若程序中有下面的说明和定义
struct abc{ int x;
A
char y;}
struct abc s1,s2; 则会发生的情况是 。
A)编译出错; B)程序将顺利编译、连接、执行; C)能顺利通过编译、连接,但不能执行 D)能顺利通过编译,但连接出错
2.给结构体变量分配的内存是 。 A
A)各成员所占的字节和; B)各成员所占的字节中最大的容量; C)第一个成员所占的字节的容量; D)最后一个成员所占的字节的容量
8.若已定义了如下的共用体类型变量x,则x所占用的 内存字节数为 (设在16位PC机的环境下)C。
union data
{ int i;
char ch;
double f; }x;
A)7
2020/12/10
B)11
C)8
D)10
6
9.设有以下说明和定义:
B
typedef union{
long i;
int k[5];
5678 78
2020/12/10
12
15.下面程序的运行结果为:
main( ) {
177771,177777
union bt{
int k;
char c[2];
}a;
a.k=-7;
printf("%o,%o",a.c[0],a.c[1]);
}
2020/12/10
13
16.以下对枚举类型名的定义中正确的是 B。 A)enum a={one,two,three}; B)enum a{one=9,two,three}; C)enum a={“one”,“two”,“three”}; D)enum a{“one”,“two”,“three”};
5.根据下面的定义,能打印出字母M的语句是 。 D struct person{
char name[9];
int age;
}; struct person
c[10]={"John",17,"Paul",19,"Mary",18,"Adam",1
6}; A)printf("%c\n",c[3].name); B)printf("%c\n",c[3].name[1]); C)printf("%c\n",c[2].name[1]); D)printf("%c\n",c[2].name[0]);
7
10.变量a所占内存字节数是 C
A) 4
B) 5
C) 6
union u{ char st[4];
int i;
long l;};
struct A{ int c;
union u;}a;
D) 8
2020/12/10
8
11.下面程序的运行结果为:
main( )
4,8
{ union example{ struct{ int x;