第九章测试
1.下面对typedef的叙述中不正确的是( )。
A:用typedef可以定义多种类型名,但不能用来定义变量
B:使用typedef有利于程序的同样和移植
C:用typedef可以增加新类型
D:用typedef只是将已存在的类型用一个新的标识符来代表

答案:C
2.若要说明一个类型名STP,使定义语句STP s等价于char *s,以下选项中正确的是( )。
A:typedef STP char *s;
B:typedef *char STP;
C:typedef char *STP;
D:typedef stp *char;
3.以下结构体变量的定义方式不正确的是( )。
A:声明结构体类型的同时定义该类型结构体变量
B:先定义该类型结构体变量,再声明结构体类型
C:先声明结构体类型,再定义该类型的结构体变量
D:声明无名结构体类型的同时直接定义结构体类型变量
4.设有以下说明语句,
struct abc { int m; int n; } stype;
则下面的叙述不正确的是( )。
A:abc是用户定义的结构体类型名
B:struct是结构体类型的关键字
C:stype是用户定义的结构体变量名
D:m和n都是结构体成员
5.设struct { int a; char b; } q,*p=q; 则错误的表达式是( )。
A:p->a
B:(*p).b
C:*p.b
D:q.a
6.若有以下程序段:
union data{ int i; char c; float f; } a;
int n;
则以下语句正确的是( )。
A:a=5;
B:n=a;
C:printf(“%d”,a);
D:a={2,’a’,1.2};
7.
union myun {struct { int x,y,z; } u; int k; } a;
void main() { a.u.x=4; a.u.y=5; a.u.z=6; a.k=0; printf(“%d\n”,a.u.x); }
以上程序的输出结果是( )。
A:0
B:6
C:5
D:4
8.
#include<stdio.h>
void main()
{
union {struct { int x,y; } in; int a,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”,e.in.x,e.in.y);
}
以上程序的输出结果是( )。
A:4 8
B:4 4
C:2 4
D:2 2

温馨提示支付 ¥3.00 元后可查看付费内容,请先翻页预览!
点赞(98) dxwkbang
返回
顶部