第十三章单元测试
- 下列对结构类型变量不正确的定义是( )。
- 设有以下定义语句:
struct student{
int num;
char name[10];
float score;
}wang,zhang;
则变量wang所占的内存字节数(注:在VC环境下要考虑内存对齐规则)是( )。 - 假设有如下的定义:
struct{
int n;
char c;
float f;
}rec;
则以下各个输入语句中,正确的是( )。 - #include <stdio.h>
struct abc{
int a,b,c;
};
int main()
{ struct abc s[2]={{1,2,3},{4,5,6}};
int t;
t=s[0].a+s[1].b;
printf("%d\n",t);
return 0;
}
上面程序的输出结果是( )。 - 有以下说明和定义语句
struct student{
int age;
char num[8];
};
struct student stu[3]={{20,"200401"},{21,"200402"},{19,"200403"}};
struct student *p=stu;
则以下选项中引用结构体变量成员错误的是( )。 - struct person {
char name[9];
int age;
};
struct person class[10]={"John",17, "Paul",19,"Mary",18, "Adam",16};
根据上面的定义,能打印出字母M的语句是( )。 - 若有以下程序段:
struct st{
int n;
int *m;
};
int a=2,b=3,c=5;
struct st s[3]=({101,&a},{102,&b},{103,&c});
int main(){
struct st *p;
p=s;
...
}
则以下表达式中值为5的是( )。 - union{
short m;
char a[8];
}a,*p=&a;
a.m=100;
a.a[0]='A’;
p->a[1]=1;
printf("%d,%d",sizeof(a),a.m);
上面程序的运行结果是( )。 - 以下对共用体类型数据的描述中,错误的是( )。
- int 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);
return 0;
}
上面程序的输出结果是( )。 - #include<stdio.h>
union utype{
int i;
float f;
}u[2];
int main(){
printf("%d\n",sizeof(u)) ;
return 0;
}
在VC环境下上面程序的运行结果是( )。 - union U{
short a;
char b[4];
}u;
u.b[0]=2;
u.b[1]=1;
u.b[2]=3;
printf("%hd\n",u.a);
VC中,上面程序的执行结果是( )。 - 关于typedef,以下叙述中错误的是( )。
- 设有以下语句
typedef struct S{
int g;
char h;
}T;
则下面叙述中正确的是( )。 - 设有以下定义语句
struct student{
int num;
char name[8];
float score;
}a[2];
则在VC环境下数组a所占内存的字节数是( )。
A:struct{
int num;
int age; }teacher1,teacher2;
B:struct teacher{
int num,age;
}a;
C:struct{
int num;
int age;
}teacher
D:struct teacher{
int num;
int age;
}teacher1;
答案:struct{
int num;
int age;
}teacher
A:18
B:20
C:10
D:24
A:scanf("%d",rec);
B:scanf("%c",&rec.c);
C:scanf("%f",&rec);
D:scanf("%s",&rec.c);
A:8
B:7
C:6
D:5
A:(p++)->num
B:p->num
C:(*p).num
D:stu[2]->age
A:printf("%c\n",class[2].name[1]);
B:printf("%c\n",class[3].name[1]);
C:printf("%c\n",class[3].name);
D:printf("%c\n",class[2].name[0]);
A:*((p+2).m)
B:*((p+2)->n)
C:*((p+2)->m)
D:((p+2)->m)
A:8, 65
B:10, 100
C:8, 100
D:8, 321
A:共用体类型的定义可以出现在结构类型定义中
B:共用体变量所占的内存大小,等于占用内存最多的成员所占的内存大小
C:同一个共用体变量中,各成员长度不同,所以它们的首地址是不相同的
D:在定义共用体变量的同时允许对它的第一个成员进行初始化
A:3
B:1
C:0
D:6
A:6
B:4
C:8
D:16
A:513
B:其他三个答案都不对
C:258
D:130
A:用typedef定义新的类型名后,原有类型名仍有效
B:可以通过typedef增加新的类型
C:可以用typedef将已存在的类型名用一个新的名字来代表
D:用typedef可以给各种已有类型起别名,但不能给变量起别名
A:可用S定义结构体变量
B:S是struct类型的变量
C:可以用T定义结构体变量
D:T是struct S类型的变量
A:40
B:16
C:20
D:32
温馨提示支付 ¥3.00 元后可查看付费内容,请先翻页预览!