C语言结构体习题及答案

第9章  结构体
1.定义以下结构体类型
struct  s
{
    int  a;
    char  b;
    float  f;
};
则语句printf("%d",sizeof(struct  s))的输出结果为【 】。
A) 3    B) 7    C) 6    D)  4
2.当定义一个结构体变量时,系统为它分配的内存空间是【 】
    A)结构中一个成员所需的内存容量
      B)结构中第一个成员所需的内存容量
        C)结构体中占内存容量最大者所需的容量
    D)结构中各成员所需内存容量之和
3.定义以下结构体类型
    struct s
      { int x;
        float f;
      }a[3];
语句printf("%d",sizeof(a))的输出结果为 【 】
    A) 4    B) 12     C) 18    D) 6
4.定义以下结构体数组
  struct c
    { int x;
      int y;
      }s[2]={1,3,2,7};
语句printf("%d",s[0].x*s[1].x)的输出结果为 【 】
    A) 14    B) 6     C) 2    c语言中structD) 21
5.运行下列程序段,输出结果是 【 】
    struct country
      { int num;
        char name[10];
      }x[5]={1,"China",2,"USA",3,"France",4, "England",5, "Spanish"};
    struct country *p;
    p=x+2;
    printf("%d,%c",p->num,(*p).name[2]);
    A) 3,a            B) 4,g            C) 2,U              D) 5,S
6.下面程序的运行结果是【 】。
struct  KeyWord
{
    char Key[20];
    int ID;
}kw[]={"void",1,"char",2,"int",3,"float",4,"double",5};
main()
{
    printf("%c,%d\n",kw[3].Key[0], kw[3].ID);
}
A) i,3        B) n,3        C) f,4        D)  l,4
7.定义以下结构体类型
struct  student
{
    char  name[10];
int  score[50];
    float  average;
}stud1;
则stud1占用内存的字节数是【 】。
A) 64        B) 114        C) 228        D)  7
8.如果有下面的定义和赋值,则使用【 】不可以输出n中data的值。
struct  SNode
{
    unsigned id;
    int data;
}n,*p;
p=&n;
A) p.data        B) n.data        C) p->data        D)  (*p).data
9.根据下面的定义,能输出Mary的语句是【】。
    struct person
    {
        char name[9];
        int age;
    };
struct person class[5]={"John",17,"Paul",19,"Mary",18,"Adam",16};
A) printf("%s\n",class[1].name); 
B) printf("%s\n",class[2].name);
C) printf("%s\n",class[3].name); 
D) printf("%s\n",class[0].name);
10.定义以下结构体数组
struct date
{ int year;
  int month;
  int day; };
struct s
{ struct date birthday;
  char name[20];
} x[4]={{2008, 10, 1, "guangzhou"}, {2009, 12, 25, "Tianjin"}};
语句
printf("%s,%d,%d,%d",x[0].name,x[1].ar); 的输出结果为 【 】
A) guangzhou,2009           B)  guangzhou,2008
C)  Tianjin,2008             D)  Tianjin,2009
11.运行下列程序段,输出结果是【】
struct country
{ int num;
  char name[20];
}x[5]={1, "China", 2, "USA", 3, "France", 4, "England", 5, "Spanish"};
struct country *p;
p=x+2;
printf("%d,%s",p->num,x[0].name);
A)  2,France    B)  3,France    C)  4,England    D)  3, China
12. 定义以下结构体数组
  struct
  {
    int num;
    char name[10];
  }x[3]={1,"china",2,"USA",3,"England"};
语句printf("\n%d,%s",x[1].num,x[2].name)的输出结果为【 】
A)2,USA       
B)3,England 
C)1,china       
D)2,England
13. 定义以下结构体数组
struct  date
  {
    int  year;
    int  month;
  };
struct  s
  {
  struct date birth;
  char  name[20];
  }x[4]={{2008,8,"hangzhou"},{2009,3,"Tianjin"}};
语句printf("%c,%d",x[1].name[1],x[1].ar);的输出结果为【 】
A)a,2008       
B)hangzhou,2008       
C)i,2009   
D)Tianjin,2009
14. 运行下列程序,输出结果是【 】

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。