计算机二级

定义下列结构体(联合)数组:struct st{ charn ame[15];int age;}a[10]={"ZHAO",14,"WANG",15,"LIU",16,"ZHANG",17};执行语句printf("%d,%c",a[2].age,*(a[3].name+2) )的输出结果为( )。A.15,AB.16,HC.16,AD.17,H

题目

定义下列结构体(联合)数组:

struct st

{ charn ame[15];

int age;

}a[10]={"ZHAO",14,"WANG",15,"LIU",16,"ZHANG",17};

执行语句printf("%d,%c",a[2].age,*(a[3].name+2) )的输出结果为( )。

A.15,A

B.16,H

C.16,A

D.17,H

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有以下说明和定义语句 struct student {int age;char num[8]; }; struct student stu[3]={{20,"200401"},{21,"200402"},{10\9,"200403"}}; struct student*p=stu;以下选项中引用结构体变量成员的表达式错误的是______。

A.(p++)->num

B.p->num

C.*p.num

D.stu[0].age


正确答案:C

第2题:

有以下程序:

#include<

struct stu { int num;char name[10];int age;}

void fun(struct stu*p)

{ printf("%s\n",(*p).name);}

main

{ struct stu students[3]={{9801,"Zhang".20}, {9802,"Wang",19},{9803,"Zhao",1 8}}

fun(students+2); }

输出的结果是( )。

A.Zhang

B.Zhao

C.Wang

D.18


正确答案:B
从实参传递过去的是结构体系数组的第3个元素,所以输出的name为Zhao。

第3题:

定义结构体数组:

struct stu

{int num;

charname[20];

}x[5]={1,"LI",2,"ZHAO",3,"WANG",4,"ZHANG",5,"LIU"};

for(i=1;i<5;i++)

printf("%d%C",x[i].num,x[i]name[2]);

以上程序段的输出结果为( )。

A.2A3N4A5U

B.112A3H41

C.1A2N3A4U

D.2H3A4H51


正确答案:A
解析:本题主要考查结构体数组的使用。x[i].num为结构体x[i]中的num成员,x[i].name[2]是结构体 x[i]中name成员的第3个元素。程序执行循环过程时:第1次循环,i=1,输出x[1].num,x[1].name[2]的值,即2A:第2次循环,i=2,输出x[2].num,x[2].name[2]的值,即3N;第3次循环,i=3,输出x[3].num,x[3].name[2]的值,即4A:第4次循环,i=4,输出x[4].num,x[4].name[2]的值,即5U。

第4题:

有以下程序

#include <stdio.h>

struct stu

{ int num; char name [10];int age;};

Void fun(struct stu *p)

{ printf("%s\n,p->name);}

main( )

{ struct stu x[3]={ {01,”Zhang”,20},{02, ” Wang”,19},{03, ”zhao”,18} };

fun(x+2);

}

程序运行后的输出结果是

A)Zhang

B)Zhao

C)Wang

D)19


正确答案:B
【答案】B
【知识点】结构体数组与函数调用
【解析】函数调用中 “x+2”即为结构体变量x[2]的地址,所以形参变量p指向x[2]的地址,所以打印输出成员name的值“zhao”。

第5题:

若有如下说明,则_______的叙述是正确的。 struct st { int a; int b[2]; }a;

A.结构体变量a与结构体成员a同名,定义是非法的

B.程序只在执行到该定义时才为结构体st分配存储单元

C.程序运行时为结构体st分配6个字节存储单元

D.类型名struct st可以通过extern关键字提前引用(即引用在前,说明在后)


正确答案:D
解析:结构体变量a与结构体成员a同名是合法的定义,引用成员a的方法是aa,变量a处于不同的“层次”上,系统完全能够分情。st是一个结构体名,不会为结构体名分配存储空间,应该是在运行时为结构体变量a分配6个字节的存储单元,故选项B和选项C错误。

第6题:

下面结构体的定义语句中,错误的是( )。 A.struct ord{int x;int Y;int Z;};struet ord a;SXB

下面结构体的定义语句中,错误的是( )。

A.struct ord{int x;int Y;int Z;};struet ord a;

B.struct ord{int x;int y;int Z;}struct ord a;

C.struct ord{int X;int Y;int Z;}a;

D.struct{int X;int y;int Z;}a;


正确答案:B
结构体定义的类型说明的一般形式为:struct结构体标识名{类型名1结构成员名表l;类型名2结构成员名表2;···};。注意:①结构体说明同样要以分号结尾;②紧跟在结构体类型说明之后进行定义;③在说明一个无名结构体类型的同时,直接进行定义;④先说明结构体类型,再单独进行变量定义等。所以B选项错误。

第7题:

定义结构体数组: struct stu { int num; char name[20]; }x[5];{1,"L1",2,"ZHAO",3,"WANG",4,"ZHANG",5,"LIU"}; for(i=1;i<5;i++) printf("%d%c",x[i].num,x[i].name[2]); 以上程序段的输出结果为( )。

A.2A3N4A5U

B.1I2A3H4I

C.1A2N3A4U

D.2H3A4H5I


正确答案:A
解析:本题主要考查结构体数组的使用。x[i].num为结构体x[i]中的num成员,x[i].name[2]是结构体x[i]中name成员的第3个元素。程序执行循环过程时:第1次循环,i=1,输出x[1].num,x[1].name[2]的值,即2A;第2次循环,i=2,输出x[2].num,x[2].name[2]的值,即3N:第3次循环,i=3,输出x[3].num,x[3].name[2]的值,即4A;第4次循环,i=4,输出x[4].num,x[4].name[2]的值,即5U。

第8题:

若有结构体定义:

struct stu {int num;

char sex;

int age;

}a1,a2;

则下列语句中错误的是( )。

A.printf("%d%c,%d",a1);

B.a2.age=a1.age;

C.a1.age++;

D.a1.num=5;


正确答案:A
解析:题中a1和a2两个结构体变量名所对应的成员相同,可以与运算“++”相结合。结构体变量的输出格式为:printf("要输出变量名:%d\t",结构变量名.要输出的成员变量名)。

第9题:

若有结构体定义:

struct stu{int num;

char sex;

int age;

}al,a2;

则下列语句中错误的是( )。

A.printf("%d,%C,%d",a1);

B.a2.age=a1.age;

C.a1.age++;

D.a1.num=5;


正确答案:A
解析:题中a1和a2两个结构体变量名所对应的成员相同,可以与运算"++"相结合。结构体变量的输出格式:prinf("要输出变量名:%d\t",结构变量名.要输出的成员变量名)。

第10题:

若有如下说明,且int类型占两个字节,则正确的叙述为( )。 struct st {int a; int b[2]; }a;

A.结构体变量a与结构体成员a同名,定义是合法的

B.程序只在执行到该结构体时才为结构体st分配存储单元

C.程序运行时为结构体st分配8字节存储单元

D.类型名struct st可以通过extern关键字提前引用


正确答案:A

更多相关问题