信息学奥赛辅导——C语言复习题
C语言程序设计第9章、第10 章练习题
一、选择题
219、已知学生记录描述如下,下面对结构体成员"computer"的赋值方式正确的是_______ struct student
{ int num;
char name[8];
struct
{ float math;
float engl;
float computer;
} mark;
} std;
A、studentputer=84;
B、markputer=84;
C、std.markputer=84;
D、stdputer=84;
220、当定义一个结构体变量时系统分配给它的内存是________
A、结构中第一个成员所需的内存量
B、结构中最后一个成员所需的内存量
C、结构体成员中占内存量最大者所需的容量
D、结构体中各成员所需内存量的总和
221、以下对结构体类型变量rcard的定义中不正确的是________
A、#define REC struct card
REC { int id;
float sala;} rcard;
B、struct card
{ int id;
floar sala;};
card rcard;
C、struct card
{ int id;float sala;};
struct card rcard;
D、struct
{ int id;float sala;} rcard;
222、设有以下说明语句,则下面的叙述不正确的是________
struct abc
{ int m;float n;} stype;
A、struct是结构体类型的关键字
B、abc是用户定义的结构体类型名
C、m和n都是结构体成员名
D、stype是用户定义的结构体变量名
223、以下程序中编译和运行结果均正确的一个是________ A、main()
{ union
{ int n;
float x;
} comm={1};
printf("%d",comm.n);
}
B、main()
{ union
{ int n;
float x;} comm={12.5};
printf("%f",comm.x);
}
C、main()
{ union
{ float x;
int n;} comm=12.5;
printf("%f",comm.x);
}
D、main()
{ union
{ int n;
float x;} comm=5;
printf("%d",comm.n);
}
224、以下程序的运行结果是________
# include "stdio.h"
main()
{ struct date
{ int y,m,d;} today;
printf("%d\n", sizeof(struct date));
}
A、2
B、3
C、6
D、出错
225、根据下面的定义,能输出字符串"Li"的语句是________ struct person
{ char name[10];
int age;
} class[10]={"Zhang",18,
"Li", 17,
"Ma", 18,
"Huang", 18
};
A、printf("%s\n",class[2].name);
B、printf("%s\n",class[2].name[0]);
C、printf("%s\n",class[1].name);
D、printf("%s\n",class[1].name[0]);
226、下面程序的运行结果是________
main()
{ struct cmplx { int x;
int y;
} cm[2]={1,2,3,4};
printf("%d\n", 2*cm[0].x+
cm[1].y/cm[0].y);
}
A、5
B、2
C、3
D、4
227、若有以下定义和语句,则以下对结构体成员的引用不正确的是________
struct student
{ int num;int age;};
struct student stu[3]={{1001,20},
{1002,19},
{1003,20}};
main()
{ struct student *p;
p=stu;
enum c++…
}
A、(p++)->num
B、p++->age
C、(*p).num
D、p=&stu.age
228、若有如下定义,则下面在scanf函数调用语句中对结构体成员的引用不正确的是________
struct pupil
{ char name[20];
int age;
int sex;
} pup[5],*p;
A、scanf("%d",p->age);
B、scanf("%s",pup[0].name);
C、scanf("%d",&pup[0].age);
D、scanf("%d",&(p->sex));
229、设有以下定义和语句,则以下表达式值为6的是________
struct ss
{ int a;struct ss *b;};
static struct ss x[3]={5,&x[1],
7,&x[2],
9,'\0'},*ptr;
ptr=&x[0];
A、ptr->a++
B、ptr++->a
C、ptr->a
D、++ptr->a
230、设有如下定义,若要使px指向rec中的x域,正确的赋值语句是________
struct aa
{ int x;float y;} rec,*px;
A、*px=rec.x;
B、px=&rec.x
C、px=(struct aa *)rec.x
D、px=(struct aa *)&rec.x;
231、若有以下说明和语句,则对结构体变量std中成员id的引用方式不正确的是_______ struct work
{ int id;
int name;
} std,*p;
p=&str;
A、std.id
B、*p.id
C、(*p).id
D、p->id
232、若有以下程序段,则下面表达式中值为20的是________
struct com
{ int a;int *b;};
int x=10,y=20,z=30;
struct com s[3]={{1010,&x},
{1020,&y},
{1030,&z}};
main( )
{ struct com *p;
p=s;
…
}
A、(p++)->b
B、*(p++)->b
C、(*p).b
D、*(++p)->b
233、若有以下说明和语句,则对ttd中lab域的正确引用方式是________
struct example
{ char lab;
int num;
} ttd,*p;
p=&ttd;
A、(*p).lab
B、p->ttd.lab
C、(*p).ttd.lab
D、p.ttd.lab
234、以下程序的输出结果是________
struct s
{ int n;int *m;} *p;
int d[3]={10,20,30};
struct s arr[3]={100,&d[0],
200,&d[1],
300,&d[2]};
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、100,101,10
235、若要使指针变量p指向一个动态开辟的字符型存储单元,则①中应选择填入的是________
char *p;
p= ①malloc(sizeof(char));
A、char
B、char *
C、(*char)
D、(char *)
236、当说明一个共用体变量时系统分配给它的内存是________
A、共用体中第一个成员所需内存量
B、共用体中最后一个成员所需内存量
C、共用体成员中占内存量最大者所需的容量
D、共用体中各成员所需内存量的总和
237、以下对C语言中共用体类型数据的叙述正确的是________
A、可以对共用体变量名直接赋值
B、一个共用体变量中可以同时存放其所有成员
C、一个共用体变量中不能同时存放其所有成员
D、共用体类型定义中不能出现结构体类型的成员
238、若有以下定义和语句,则下面对共用体变量a的引用正确的是________
union data
{ int i;
char c;
float f;
} a;
int n;
A、a=5;
B、a={1,'x',5.0};
C、a.i=10;printf("%d\n",a);
D、n=a{5};
239、设有以下说明,则下面不正确的叙述是________
union data
{ int i;
char c;
float f;
} aa,bb;
A、aa所占的内存长度等于成员f的长度
B、aa的地址和它的各成员地址都是同一地址
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论