1、设有下面的结构体和结构变量定义:
struct student
{
int id;
char* name;
int math;
};
struct student studl;
关于结构体类型变量赋值正确的是(A)
A、 studl.id=1001;studl.name=”Tom”;
B、id=1001;*studl.name=”Tom”;
C、 studl.id=1001;studl.*name=”Tom”;
D、studl.id=1001L;*studl.name=”Tom”;
2、指向结构体对象的指针变量既可以指向结构体变量,也可以用来指向(结构体本身)。
2.1、结构体类型只有一种。请问这句话的说法是正确的吗?(错误)
A. 正确
B. 错误
3、当说明一个结构体变量时系统分配给它的内存是(A)
A. 各成员所需内存的总和
B. 结构中第一个成员所需内存量
C. 成员中占内存量最大者所需的容量
D. 结构中最后一个成员所需内存量
4、在结构体中,成员的缺省存取权限是公有 有的
5、在32位cpu上选择缺省对齐的情况下,有如下结构体定义:
struct A{
unsigned a : 19;
unsigned b : 11;
unsigned c : 4;
unsigned d : 29;
char index;
};
则sizeof(struct A)的值为(16)
9
12
16
20
6、下列代码的功能包括:定义一个x数组,说明一个结构体,同时对变量t进行初始化,使得t的a成员的值为50,b成员的值为x数组的首地址。
请在空白处(方框内)填入合适的内容,一完成上述功能。
int x[5]={
1,2,3,4,5};
struct {
int a;
int *b;
}t={ (50),(x)};
7、开发C代码时,经常见到如下类型的结构体定义:
typedef struct list_t
{
struct list_t *next;
struct list_t *prev;
char data[0];
}list_t;
请问在32位系统中,sizeof(list_t)的值为? (8byte)
4byte
8byte
5byte
9byte
8、定义一个结构体变量(包括年、月、日),计算该日在本年中为第几天?(注意考虑闰年问题),要求写一个函数days,实现上面的计算。由主函数将年月日传递给days函数,计算后将日子传递回主函数输出 。
#include <stdio.h>