下列程序的输出结果是
1、变量a 所占的内存字节数是________。
struct stu
{ char name[20];
long int n;
int score[4];
} a ;
A) 28 B) 30
C) 32 D) 36
C
2、下列程序的输出结果是
A)5 B)6 C)7
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);
}
B
3、有如下定义
struct person{ char name[9]; int age;};
struct person calss[4]={ "Johu",17,
"Paul",19,
"Mary",18,
"Adam",16,};
根据以上定义, 能输出字母M 的语句是________。
A) printf("%c\n",class[3].name);
B) printf("%c\n",class[3].name[1]);
C) printf("%c\n",class[2].name[1]);
D) printf("%c\n",class[2].name[0]);
D
4、设有以下说明语句
struct ex
{ int x;float y; char z; } example;
则下面的叙述中不正确的是_________。
A) struct是结构体类型的关键字
B) example是结构体类型名
C) x,y,z都是结构体成员名
D) struct ex是结构类型
B D)8
5、若定义了以下函数:
void f(.......)
{ ........
*p=(double *)malloc(10*sizeof(double));
........
}
p 是该函数的形参, 要求通过p 把动态分配存储单元的地址传回 主调函数, 则形参p 的正确定义应是________。
A) double *p B) float **p
C) double **p D) float *p
C
6、若定义了以下函数:
void f(.......)
{ ........
p=(double *)malloc(10*sizeof(double));
........
}
p 是该函数的形参, 要求通过p 把动态分配存储单元的地址传回 主调函数, 则形参p 的正确定义应是________。
A) double *p B) float **p
C) double **p D) float *p
A
7、以下程序的输出是________。
struct st
{int x;int *y;} *p;
int dt[4]={10,20,30,40};
struct st aa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,dt[0],}; main()
{ p=aa;
printf("%d\n",++(p->x));
}
A) 10 B) 11
C) 51 D) 60
C
8、设有以下定义和语句, 则输出的结果
是________(用small 模式编译, 指针变量占2个字节) 。
struct date
{ long *cat;
struct date *next;
double dog;
} too;
printf("%d",sizeof(too));
A) 20 B) 16
C) 14 D) 12
D
9、以下程序的输出结果是________。
struct HAR
{ int x,y; struct HAR *p; } h[2];
main()
{ int h[0].x=1; h[0].y=2;
h[1].x=3;h[1].y=4;
h[0].p=&h[1]; h[1].p=h;
printf("%d%d\n",(h[0].p)->x,(h[1].p)->y); }
A) 12 B) 23
C) 14 D) 32
D
10、下面程序的输出是________。
main()
{
struct cmplx { int x; int y; } cnum[2]={1,3,2,7};
printf("%d\n",cnum[0].y /cnum[0].x * cnum[1].x);
}
A) 0 B) 1
C) 3 D) 6
D
11、设有变量定义
struct stu
{int age ;
int num ;
}std,*p=&std;
能正确引用结构体变量std 中成员age 的表达式是
A) std->age B) *std->age
C) *p.age D) (*p).age
D
12、设有定义语句
"struct {int x;int y;}d[2]={{1,3},{2,7}};" , 则printf("%d\n",d[0].y/d[0].x*d[1].x);的输出结果是
A) 0 B) 1
C) 3 D) 6
D
13、若有如下定义
union {long x[2];int y[4];char z[8];}them;
则printf("%d\n",sizeof(them));的输出是
A) 32 B) 16
C) 8 D) 24
C
14、若有如下定义,则对data 中的a 成员的正确引用是
struct sk {int a ;float b ;}data,*p=&data;
A) (*p).data.a B) (*p).a
C) p->data.a D) p.data.a
B
15、若有以下说明和定义语句,则变量w 在内存中所占的字节数是 union aa {float x ;float y ;char c[6];};
struct st {union aa v ;float w[5];double ave ;}w;
A) 42 B) 34
C) 30 D) 26
B
16、若有变量定义语句
union {long x[2];short y[4][5];char[10];}u1;
则表达式sizeof(u1)的值是
A) 8 B) 10
C) 40 D) 58
C
17、下列程序的输出结果是:
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) ;
}
A) 5 B) 6
C) 7 D) 8
B
18、变量a 所占的内存字节数是
union U
{char st[4];
int i ;
long l ;
};
struct A
{int c ;
union U u ;
}a;
A) 4 B) 5
C) 6 D) 8
C
19、以下对结构体类型变量的定义中,不正确的是:
A) typedef struct aa B) #define AA struct aa {int n ; AA{int n ;
float m ; float m ; }AA; }td1;
AA td1;
C) struct D) struct
{int n ; { int n ;
float m ; float m ; }aa; }td1;
struct aa td1;
C
20、以下程序的输出结果是
main()
{union {char i[2];
int k ;
}r;
r.i[0]=2;r.i[1]=0;
printf("%d\n",r.k) ;
}
A) 2 B) 1
C) 0 D) 不确定
D
21、变量a 所占内存字节数是
union U
{char st[4];int i ;long l ;};
srruct A
{int c ;union U u ;}a;
A) 4 B) 5
C) 6 D) 8
C
22、执行下面的程序后,输出的结果是
struct abc
{int a ,b ,c ;}
main()
{struct abc s[2]={{1,2,3},{4,5,6}};int
t=s[0].a+s[1].b;printf("%d\n",t) ;
}
A) 5 B) 6
C) 7 D) 8 t ;
C
23、下列程序的输出结果是
#indlude "stdio.h"
main()
{struct date
{int year ,month ,day ;
}today;
union
{ long i ;
int k ;
char c ;
} mix;
printf("%d\n",sizeof(struct date)) ;
printf("%d\n",sizeof(mix));
}
A) 6 B) 6
2 4
C) 8 D) 8
4 6
B
24、若有以下说明语句,则下列表达试中的值为101的是 struct wc
{int a ;
int *b;
} *p;
int x0[ ]={11,12},x1[ ]={31,32};
static struct wc x[2]={100,x0,300,x1};
p=x;
A) *p- >b B) p->a
C) ++p->a D) (p++)->a
C
25、设有以下语句,则下列表达式中的值为6的是 struct st
{int n ;
struct st *next;
};
static struct st a[3]={5,&a[1],7,&a[2],9,'\0'},*p;
p=&a[0];
A) p++->n B) p->n++
C) (*p).n++ D) ++p->n
D
26、下面程序的输出结果是
main()
{struct cmplx{int x ;int y ;}cnum[2]={1,3,2,7};
printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].x);
}
A) 0 B) 1
C) 3 D) 6
D
27、下面程序的输出结果是
typedef union
{long x[2];
int y[4];
char z[8];
}MYTYPE;
MYTYPE them ;
main()
{printf("%d\n",sizeof(them));}
A) 32 B) 16
C) 8 D) 24
C
28、若有下面的说明和语句,则以下的输出结果是 struct st
{char a[10];
int b ;
double c ;
};
printf("%d\n",sizeof(struct st)) ;
A) 10 B) 8
C) 20 D) 28
C
29、若有下面的说明和语句,则以下的输出结果是 union un ;
{int i ;
double y ;
};
struct st
{char a[10];
union un b ;
};
printf(""%d\n",sizeof(struct st)) ;
A) 14 B) 18
C) 20 D) 16
B
30、若有下面的说明和语句,则以下的输出结果是 (已知A 的ASCII 码值为十进制数65)
union un
{int a ;
} w;
w.c[0]='A';w.c[1]='a';
printf("%o\n",w.a) ;
A) 60501 B) 30240
C) 9765 D) 以上答案均错
A
31、若有以下的说明:
struct person
{char name[20];
int age ;
char sex ;
}a={"li ning",20,'m'},*p=&a;
则对字符串li ning的引用方式不可以的是
A) (*p).name B) p.name
C) a.name D) p->name
B
32、若有以下定义,则下列哪个语句是正确的
union data
{ int i ;
char c ;
float f ;
}a;
int n ;
A) a=5 ; B) a={2,'a',1.2};
C) printf("%d\n",a); D) n=a;
B
33、下列程序执行后的输出结果是
#include
union p
{int i;
char c[2];
}x;
main( )
{x.c[0]=13;
x.c[1]=0;
printf("%d\n",x.i);
}
A) 208 B) 14
C) 13 D) 209
C
34、下列程序的运行结果是
struct s
{int n ;
}*p;
int d[5]={10,20,30,40,50};
struc s arr[5]={100,&d[0],200,&d[1],300,&d[2],
400,&d[3],500,&d[4]};
#include
main()
{p=arr;
printf("%d ",++p->n);
printf("%d ",(++p)->n);
printf("%d\n",++(*p->m));
}
A) 101 200 21 B) 101 20 30
C) 200 101 21 D) 101 101 10
A
35、下列程序的输出结果是
main()
{union u
{char *name;
int age ;
int income ;}s;
s.name="WANGLING";
s.age=20;
s.income=1000;
printf("%d\n",s.age) ;
}
A) 28 B) 1000
C) 0 D) 不确定
B
36、若有共用体变量定义如下:
union data
{ long w ;
float x ;
int y ;
char z ;
};
union data beta ;
执行下列赋值语句后,共用体变量beta 的值是
beta.w =123456;
beta.y=888;
beta.x=3.1416;
beta.z='x';
A) 123456 B) 888
C) 3.1416 D) 'x'
D
37、以下对C 语言中共用体类型数据的正确叙述是
A) 一旦定义了一个共用体变量后,即可引用该变量或该 变量中的任意成员。
B) 一个共用体变量中可以同时存放其它所有成员
C) 一个共用体变量中不能同时存放其它所有成员
D) 共用体类型数据可以出现在结构体类型定义中,但结构 体类型数据不能出现在共用体类型定义中
C
38、根据下面的定义,能打印出字母M 的语句是 struct person
{char name[9];
int age ;
};
struct person class[10]={"john",17,"paul" ,19,
"Mary" ,18,"Adam" ,16};
A) printf("%c\n",class[3].name;
B) printf("%c\n",class[3].name[1]);
C) printf("%c\n",class[2].name[1]);
D) printf("%c\n",class[2].name[0]);
D
39、若有下列共用体定义:
union utepy
{int i ;
char ch ;
}temp;
当执行"temp.i=266;" 语句后,temp.ch 的值是
A) 266 B) 256
C) 10 D) 1
C
40、运行下列程序后,变量t.x 和t.s 的输出结果是 struct tree
{int x ;
char *s;
}t;
fun(struct tree t)
{t.x=10;
t.s="computer";
return(0);
}
main()
{t.x=1;
t.s="minicomputer";
fun(t);
printf("%/d,%s\n",t.x ,t.s) ;
}
A) 10,computer B) 1,minicomputer
C) 1,computer D) 10,minicomputer B
41、变量a 所占的内存字节数是________。
union U
{ char st[4];
int i;
long l;
};
struct A
{ int c;
union U u;
} a;
A) 4 B) 5
C) 6 D) 8
C
42、变量a 所占的内存字节数是________。
union U
{ char st[4];
int i;
long l;
};
struct A
{ char c;
union U u;
} a;
A) 4 B) 5
C) 6 D) 8
B
43、以下程序的输出结果是________。
union myun
{ struct
{ int x,y,z;} u;
int k; } a;
main()
{ a.u.x=4; a.u.y=5;a.u.z=6;
a.k=0;
printf("%d\n",a.u.x); }
A) 4 B) 5
C) 6 D) 0
D
44、以下程序的输出结果是________。
union myun
{ struct
{ int x,y,z;} u;
int k; } a;
main()
{ a.k=0;
a.u.x=4; a.u.y=5;a.u.z=6;
printf("%d\n",a.u.x); }
A) 4 B) 5
C) 6 D) 0
A
45、已知字符0的ASCII 码为十六进制的30, 下面程序的 输出是________。
main()
{ union { unsigned char c;
unsigned int i[4];
} z;
z.i[0]=0x39;
z.i[1]=0x36;
printf("%c\n",z.c);}
A) 6 B) 9
C) 0 D) 3
B
46、已知字符0的ASCII 码为十六进制的30, 下面程序的 输出是________。
main()
{ union { unsigned char c;
unsigned int i[4];
} z;
z.i[0]=0x39;
z.i[1]=0x36;
printf("%x\n",z.c);}
A) 39 B) 9
C) 57 D) 7
A