文档介绍:第十四部分:结构体与共用体及用户定义类型
一、选择题:
(1)有以下程序段
 typedef struct NODE
 { int  num;     struct NODE  *next;
 } OLD;
以下叙述中正确的是
A)以上的说明形式非法   
B)NODE是一个结构体类型
C)OLD是一个结构体类型   
D)OLD是一个结构体变量
(2)有以下程序
 # include   <>
 struct STU
 { int  num; 
 float  TotalScore;  };
 void f(struct STU  p)
 { struct STU  s[2]={{20044,550},{20045,537}};
   = s[1].num;    = s[1].TotalScore;
 }
 main()
 { struct STU  s[2]={{20041,703},{20042,580}};
   f(s[0]);
   printf("%d  %\n", s[0].num, s[0].TotalScore);
 }
程序运行后的输出结果是
A)20045 537  
B)20044 550  
C)20042 580  
D)20041 703
(3)有以下程序
 # include    <>
 struct STU
 { char  name[10]; 
  int  num; };
 void f(char  *name,  int  num)
 { struct STU  s[2]={{"SunDan",20044},{"Penghua",20045}};
   num = s[0].num;
   strcpy(name, s[0].name);
 }
 main()
 { struct STU  s[2]={{"YangSan",20041},{"LiSiGuo",20042}},*p;
   p=&s[1];   f(p->name, p->num);
   printf("%s  %d\n", p->name, p->num);
 }
程序运行后的输出结果是
A)SunDan  20042    
B)SunDan  20044
C)LiSiGuo  20042     
D)YangSan  20041
(4)有以下程序
 struct STU
 { char  name[10];    int  num;    float  TotalScore;  };
 void f(struct STU  *p)
 { struct STU  s[2]={{"SunDan",20044,550},{"Penghua",20045,537}}, *q=s;
   ++p ;  ++q;  *p=*q;
 }
 main()
 { struct STU  s[3]={{"YangSan",20041,703},{"LiSiGuo",20042,580}};
   f(s);
   printf("%s  %d  %\n", s[1].name, s[1].num, s[1].TotalScore);
 }
程序运行后的输出结果是
A)SunDan  20044  550    
B)Penghua  20045  537
C)LiSiGuo  20042  580    
D)SunDan  20041 703
(5)若有以下说明和定义
union  dt
{
    int  a;   char  b;  double  c;
}data;
以下叙述中错误的是                         
A)data的每个成员起始地址都相同
B)变量data所占内存字节数与成员c所占字节数相等
C)程序段:=5;printf("%f\n",);输出结果为5.
D)data可以作为函数的实参
(6)设有如下说明
typedef  struct  ST
{
   long a;
   int  b;
   char  c[2];
} NEW;
则下面叙述中正确的是            
A)以上的说明形式非法
B)ST是一个结构体类型
C)NEW是一个结构体类型
D)NEW是一个结构体变量
(7)有以下结构体说明和变