(1)C语言结构类型变量在程序执行期间( )。
A: 所有成员一直驻留在内存中
B: 只有一个成员驻留在内存中
C: 部分成员驻留在内存
D: 没有成员驻留在内存中
标准答案:A
我的答案:B
解析:c语言结构体类型变量在程序执行期间所有成员一直驻留在内存中。
(2)若要用下面的程序片段使指针变量p指向一个存储整型数据的动态存储单元,则应填入( )。
int *p;
p= ------malloc(sizeof(int));
A: int
B: int *
C: (* int)
D: (int *)
标准答案:D
我的答案:C
解析:不论p是指向什么类型的指针变量,都可以通过强制类型转换的方法使之类型一致,强制类型转换的格式为(数据类型*)。
(3)以下选项中,能定义s为合法的结构体变量的是( )。
A) typedef struct abc
{
double a;
char b[10];
}s;
B) struct
{
double a;
char b[10];
}s;
C) struct ABC
{
double a;
char b[10];
}
ABC s;
D) typedef struct ABC
{
double a;
char b[10];
}
A: 在题目描述中
B: 在题目描述中
C: 在题目描述中
D: 在题目描述中
标准答案:B
我的答案:C
解析:本题的考查点是结构体变量的定义。定义一个结构体类型的变量,可采用三种方法:(1)先定义结构体类型再定义变量名;(2)在定义类型的同时定义变量;(3)直接定义结构类型变量,即不出现结构体名;选项B)符合第三种定义方法。故本题答案为B)。
(4)若有说明:long *p, a; 则不能通过scanf语句正确给输入项读入数据的程序段是( )。
A: *p=&a; scanf(“%ld”,p);
B: p=(long *)malloc(8); scanf(“%ld”,p);
C: scanf(“%ld”,p=&a);
D: scanf(“%ld”,&a);
标准答案:A
我的答案:D
(5)设有以下说明语句:
struct lie
{
int a;
float b;
}st;
则下面叙述中错误的是( )。
A: struct是结构类型的关键字
B: struct lie 是用户定义的结构类型
C: st是