以下程序段的输出结果是()。      union node      {int a;      float b;      Char C[10];};    printf(”%d”,sizeof(union node));

题目

以下程序段的输出结果是()。      union node      {int a;      float b;      Char C[10];};    printf(”%d”,sizeof(union node));


相似考题
更多“以下程序段的输出结果是()。      union node      {int a;      float b;      Char C[10];};    printf(”%d”,sizeof(union node));”相关问题
  • 第1题:

    下列程序的输出结果是( )。 #include<stdio.h> main { struct st { int y,x,z; }; union { long i; int j; char k; }un; printf("%d,%d\n",sizeof(struct st),sizeof(un)) }

    A.6,2

    B.6,4

    C.8,4

    D.8,6


    正确答案:B
    本题主要考查结构和联合内存使用的一些区别:结构中每个成员相互独立,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和;联合所占用内存空间是指最长的成员占用的空间。

  • 第2题:

    下列程序的输出结果是()。includemain(){struct st{int y,x,z;};union{long i; int j;

    下列程序的输出结果是( )。 #include<stdio.h> main() { struct st { int y,x,z; }; union { long i; int j; char k; }un; printf("%d,%d\n",sizeof(struct st),sizeof(un)); }

    A.6,2

    B.6,4

    C.8,4

    D.8,6


    正确答案:B
    解析: 本题主要考查结构体和联合内存使用的区别:结构中不同的成员分别使用不同的内存空间,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和,结构中每个成员相互独立;联合所占用的内存空间为最长的成员所占用的空间。

  • 第3题:

    以下程序的输出结果是【】。 include main() {struct stru {int a; float b; char d[4]; }

    以下程序的输出结果是【 】。

    include<stdio.h>

    main()

    { struct stru

    { int a;

    float b;

    char d[4];

    };

    printf("%d\n",sizeof(struct stru));

    }


    正确答案:10
    10 解析:结构体变量占用内存空间的字节数是结构体各分量占用内存空间的字节数的总和。int型变量占用2字节,float型变量占用4字节,char型占用1字节,char d[4]是含有4个元素的char型数组,占用4字节。sizeof(struct stru)是计算结构体变量占用内存空间的字节数,2+4+4=10。

  • 第4题:

    有以下程序 include struct NODE{ int num; struct NODE *next;}; main( )

    有以下程序

    #include <stdlib.h>

    struct NODE{

    int num;

    struct NODE *next;};

    main( )

    { struct NODE *p,*q,*r;

    int sum=0;

    p=(struct NODE *)malloc(sizeof(struct NODE));

    q=(struct NODE *)malloc(sizeof(struct NODE));

    r=(struct NODE *)malloc(sizeof(struct NODE));

    p->num=1;q->num=2;r->num=3;

    p->next=q;q->next=r;r->next=NULL;

    sum+=q->next->num;sum+=p->num;

    printf(“%d\n”,sum);}

    执行后的输出结果是

    A.3

    B.4

    C.5

    D.6


    正确答案:B
    解析:q—>next—>num=3,p—>num=1,所以结果为4。

  • 第5题:

    有如下程序段#include "stdio.h"typedef union{ long x[2]; int y[4]; char z[8];}atx;typedef struct aa { long x[2]; int y[4]; char z[8];} stx;main(){ printf("union=%d,struct aa=%d\n",sizeof(atx),sizeof(stx));}则程序执行后输出的结果是A.union=8,struct aa=8 B.union=8,struct aa=24C.union=24,struct aa=8 D.union=24,struct aa=24


    正确答案:B
    本题主要考查结构体和联合体所占的存储空间。
    在本题程序中,首先定义了一个联合体,联合体中具有三个成员,它们的类型分别为长整型、整型和字符型。按照C语言的规定,这三种类型的变量所占的存储空间分别为4个字节、2个字节和1个字节。但由于定义的成员都是数组,长整型数组的大小为2,那么需要的总空间为8个字节;整型数组的大小为4,那么需要的总空间为8个字节;字符数组的大小为8,需要的总空间也为8个字节,因此,可以看出三个成员需要的存储空间一样,都为8。根据联合体变量中的所有成员共享存储空间,联合变量的长度等于各成员中最长的长度的特点,我们可知,系统只需为该联合体变量准备8个字节存储空间即可。
    然后,定义了一个结构体,结构体中的成员类型及数组大小与联合体完全一致,即三个成员所需的空间都为8个字节。但是结构体与联合体不一样的是,结构体不能共享空间,一个结构体变量的总长度是各成员长度之和。因此,该结构体所需的存储空间为24个字节。
    综上所述,我们可以知道程序中的联合体和结构体所需要的存储空间分别为8个字节和24个字节。因此,用sizeof运算符计算这两者的存储空间,输出的结果应该为union=8,struct aa=24,本题正确答案选B。

  • 第6题:

    下面程序的输出结果是_______。 union un { int a[4]; long b; char c[6];} main() { union un u; printf("%d%d",sizeof(u),sizeof(uA) ); }

    A.82

    B.88

    C.188

    D.182


    正确答案:B
    解析:sizeof函数计算已知类型所占的字节数。共用体变量所占的内存长度等于最长的成员的长度。

  • 第7题:

    以下程序的输出结果是includemain(){ union un{ int i;long k;char c;};struct byte{i

    以下程序的输出结果是 #include<stdio.h> main() { union un{ int i; long k; char c;}; struct byte{ int a; long b; union un c;}r; printf("%d\n",sizeof(r));}

    A.10

    B.13

    C.7

    D.8


    正确答案:A
    解析:本题主要考查了结构体和共用体数据的存储形式。共用体的一个特点是所有数据成员共用一段存储单元,而结构体每个数据成员都单独占据一段存储单元。共用体所占存储单元的大小由长度最长的数据成员的长度决定。题中共用体变量c占据4个字节的长度,结构体r所占存储空间的大小为int(2个字节)+long(4个字节)+共用体c(4个字节)=10个字节,所以答案为A)。

  • 第8题:

    有以下程序 include gtruet NODE {intnum;struct NODE *next;}; main() {struct NODE

    有以下程序

    #include <stdlib.h>

    gtruet NODE

    { int num; struct NODE *next; };

    main()

    {

    struct NODE *p,*q,*r;

    p=(struct NODE*)malloc(sizeof (struct NODE));

    q=(struct NODE*)malloc(sizeof (struct NODE));

    r=(struct NODE*)malloc(sizeef (struct NODE));

    p->num=10; q->num=20; r->num=30;

    p->next=q; q->next-r;

    printf("%d\n",p->num+q->next->num);

    }

    程序运行后的输出结果是

    A.10

    B.20

    C.30

    D.50


    正确答案:D
    解析:本题考查的知识点是对结构体指针变量的正确引用与计算。主函数中首先定义了三个结构体指针变量p,q,r。然后调用内存分配函数分别为其分配地址空间,程序中变量q->num的值为20,指针变量q->next指向指针变量r,r->nnm的值为30,所以变量q->next->nm的值为30,因此,表达式q->num+q->next->num的值为20+30=50.所以4个选项中D正确。

  • 第9题:

    在以下程序段中,已知血型数据占两个字节,则输出结果是 union un { int i; double y; } struct st { char a[10]; union un b; }; printf("%",sizeof(struct st));

    A.14

    B.18

    C.20

    D.16


    正确答案:B
    解析:本题考查了结构体和共用体类型的特点。结构体变量的各个数据成员分别占据不同的存储空间,而共用体变量的数据成员共同占据一段存储空间。所以共用体un的变量占8个字节,而结构st中,变量所占据的存储空间为成员a和b的存储空间之和,所以答案为B。

  • 第10题:

    若有下面的说明和定义: union un { char s[10]; long d[3]; }ua; struet std { char c[10];double d;int a; union un vb; }a;则printf("%d\n", sizeof(struct std)+sizeof(union un));输出的值为______。

    A.34

    B.52

    C.54

    D.64


    正确答案:B
    解析:结构体中的每个成员分别占用独立的存储空间,因此它所占的内存字节数是其成员所占字节数的总和;共用体变量所占内存字节数与其成员中占字节数最多的那个成员相等。

  • 第11题:

    以下程序段的输出结果是()。      struct node         {int a;  float b;  char c[10];}  printf(“%d”,sizeof(struet node)) ;


    正确答案:16

  • 第12题:

    填空题
    以下程序段的输出结果是()。      struct node         {int a;  float b;  char c[10];}  printf(“%d”,sizeof(struet node)) ;

    正确答案: 16
    解析: 暂无解析

  • 第13题:

    下面程序和运行运行结果是【 】。

    typedef union student

    { char name [10];

    long sno;

    char sex;

    float score [4];

    } STU;

    main ( )

    { STU a[5];

    prinff( "% d\n", sizeof(a) );

    }


    正确答案:80
    80

  • 第14题:

    下列程序的输出结果是()。 include main() {stmct st {int y,x,z; }; union {long i; i

    下列程序的输出结果是( )。

    #include<stdio.h>

    main()

    { stmct st

    { int y,x,z;

    };

    union

    { long i;

    int j;

    char k;

    }un;

    printf("%d,%d\n",sizeof(stmct st),sizeof(un));

    }

    A.6,2

    B.6,4

    C.8,4

    D.8,6


    正确答案:B
    解析:本题主要考查结构体和联合内存使用的区别:结构中不同的成员分别使用不同的内存空间,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和,结构中每个成员相互独立;联合所占用的内存空间为最长的成员所占用的空间。

  • 第15题:

    有以下程序 include struct NODE {int num;stmct NODE*next;}; main() { struct NODE

    有以下程序

    #include<stdlib.h>

    struct NODE

    { int num;stmct NODE*next;};

    main()

    { struct NODE*p,*q,*r;

    p=(struct NODE*)malloc(sizeof(struct NODE));

    q=(struct NODE*)malloc(sizeof(struct NODE));

    r=(struct NODE*)malloc(sizeof(struct NODE));

    p->num=10;q->num=20;r->num=30;

    p->next=q;q->next=r;

    printf(“%d\n”,p->num+q->next->num);

    }

    程序运行后的输出结果是

    A.10

    B.20

    C.30

    D.40


    正确答案:D
    解析:主函数中首先定义了三个结构体指针变量p,q,r。然后调用内存分配函数分别为其分配地址空间,程序中变量q->num的值为20,指针变量q->next指向指针变量r,r->num的值为30,所以变量q->next->num的值为30,因此,表达式q-> num+q->next->num的值为20+30=50。

  • 第16题:

    以下程序的输出结果是 typedef union{long x[2] int y[4]; char z[8]; } MYTYPE; MYTYPE them; main() { printf("%d\n",sizeof(them));}

    A.32

    B.16

    C.8

    D.24


    正确答案:C
    解析:共用体所占存储空间的大小是所有成员所占存储单元的和;共用体变量所占存储单元的大小是所有成员中占据存储空间最大的成员所占存储空间的大小。本题中字符数组成员z占8个字节的长度,长度最长,所以共用体变量them用sizeof计算长度为8。

  • 第17题:

    下面程序的运行结果是typedef union student{ char name[10]; long sno; char sex; float score[4];}STU;main(){ STU a[5]; printf("%d\n",sizeof(a));}


    正确答案:80
    根据共用体变量的特点可知,共用体变量所占的内存长度等于最长的成员的长度,所以变量STU所占的字节数等于其成员score[4]所占的字节数,即为16个字节,最终打印出共用体数组a[5]的长度为16´5=80。

  • 第18题:

    有以下程序: include struct NODE { int num; struct NODE*next; }; main() { struct

    有以下程序:

    #include <stdlib.h>

    struct NODE

    { int num; struct NODE *next; };

    main()

    { struct NODE *p,*q,*r;

    p=(struct NODE*)malloc(sizeof(struct NODE));

    q=(struct NODE*)mallloc(sizeof(struct NODE));

    r=(struct NODE*)malloc(sizeof(struct NODE));

    p->num=10;q->num=20; r->num=30;

    p->next=q;q->next=r;

    printf("%d\n",p->num+q->next->num);

    }

    程序运行后的输出结果是( )。

    A.10

    B.20

    C.30

    D.40


    正确答案:D
    解析:本题在主函数中首先定义了3个结构体指针变量p,q,r。然后调用内存分配函数分别为其分配地址空间,程序中变量p->num的值为10,指针变量q->next指向指针变量r,r->num的值为30,所以变量q->next->num的值为30,因此,表达式p->num+q->next->num的值为10+30=40。所以4个选项中D正确。

  • 第19题:

    下列程序的执行结果是______。include union {int i;char c[2]; }; void main() {union

    下列程序的执行结果是______。 #include<stdio.h> union { int i; char c[2]; }; void main() { union un x; x.c[0]=10; x.c[1]=1; printf("\n%d",x.i); }

    A.266

    B.11

    C.265

    D.138


    正确答案:A
    解析:由于本题定义的是共用体,所以成员表列中的整型变量x与字符数组c共占用同—个存储单元,且此存储单元为2个字节,通常c[0]位于低字节,c[1]位于高字节,所以兄i的值为266。

  • 第20题:

    以下程序的输出结果是() includemain(){ union un{int i; long k; char c;};struct by

    以下程序的输出结果是( ) # include<stdio.h> main() { union un{int i; long k; char c; }; struct byte{ int a; long b; union un c; } r; printf("%d\n",sizeof(r)); }

    A.10

    B.13

    C.7

    D.8


    正确答案:A

  • 第21题:

    下列程序的执行结果是______。include union un{ int i;char c[2];};void main(){union

    下列程序的执行结果是______。 #include <stdio.h> union un { int i; char c[2]; }; void main() { union un x; x.c[0]=10; x.c[1]=1; printf("\n%d",x.i) }

    A.266

    B.11

    C.265

    D.138


    正确答案:A
    解析:由于本题定义的是共用体,所以成员表列中的整型变量x与字符数组c共占用同一个存储单元,且此存储单元为2个字节,通常c[0]位于低字节,c[1]位于高字节,所以x.i的值为266。

  • 第22题:

    变量W_data定义如下:union data_node{float ff'int n;char ch;}W_data;则变量W_data所占的内存存储空间可表示为______。

    A.sizeof(int)
    B.sizeof(char)
    C.sizeof(float)
    D.sizeof(int)+sizeof(char)+sizeof(float)

    答案:C
    解析:
    本题考查C语言编程的基本知识。本题中变量W_data类型为联合。联合中所有数据项占有相同的内存空间。联合体所占的内存存储空间为所包含数据项所占的内存存储空间的最大值。

  • 第23题:

    填空题
    以下程序段的输出结果是()。      union node      {int a;      float b;      Char C[10];};    printf(”%d”,sizeof(union node));

    正确答案: 10
    解析: 暂无解析