9.3.1 选择题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",18}};
fun(students+2);
}
A.Zhang B.Zhao C.Wang D.18
4. 设有如下定义:
truct sk
{
int a;
loat b;
data,*p;
有p=&data;则对data中的a 域的正确引用是( )。
.(*p).data.a B.(*p).a C.p->data.a D.p.data.a
.根据下面的定义,能打出字母M的语句是( )。
truct person
{
char name[9];nt age;
struct person class[10]={ 〞John〞,17, 〞Paul〞,19, 〞Mary〞,18, 〞Adam〞,16};
.printf(〞%c\n〞,class[3].name);.printf(〞%c\n〞,class[3].name[1]);
.printf(〞%c\n〞,class[2].name[1]);.printf(〞%c\n〞,class[2].name[0];
. 下列程序的执行结果为( )。
include
struct s1
{
char *s;
int i;
struct s1 *sip;
}
main()
{
static struct s1 a[]={{"abcd",1,a+1},{"efgh",2,a+2},{"ijkl",3,a}};
struct s1 *p=a;
int i=0;
printf("%s%s%s",a[0].s,p->s,a[2].sip->s);
printf("%d%d",i+2,--a[i].i);
printf("%c\n",++a[i].s[3]); //VC下运行,出现错误
}
A.abcd abcd abcd 2 0 e B.abcd efgh ijkl 2 0 e
C.abcd abcd ijkl 2 0 e D.abcd abcd abcd 2 1 e
8. 下面程序的输出结果为( )。
include
struct st
{
int x;
int *y;
} *p;
int dt[4]={10,20,30,40};
struct st aa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]};
main()
{
p=aa;
printf("%d\n",++p->x);
printf("%d\n",(++p)->x);
printf("%d\n",++(*p->y));
}
A.10 B.50 C. 51 D.60
20 60 60 70
20 21 21 31
9. 有以下程序
#include
main()
{
struct STU
{
char name[9];
char sex;
double score[2];
};
struct STU a={“Zhao”,’m’,85.0,90.0},b={“Qian”,’f’,95.0,92.0};
b=a;
printf(“%s,%c,%2.0f,%2.0f\n”,b.name,b.sex,b.score[0],b.score[1]);
}
程序的运行结果是:( )。
A. Qian, f, 95, 92 B. Qian, m, 85, 90 C. Zhao, f, 95, 92 D. Zhao, m, 85, 90
10. 下面结构体的定义语句中,错误的是( )。