对于结构声明: struct{ double c; long long g; float e; char *a; void *d; short b; char d; char f; }foo; 假设咋Windows机器上编译它,这里每个K字节的基本数据类型的偏移量必须是K的倍数,问这个结构总的大小是多少?()A、31B、32C、48D、64

题目

对于结构声明: struct{ double c; long long g; float e; char *a; void *d; short b; char d; char f; }foo; 假设咋Windows机器上编译它,这里每个K字节的基本数据类型的偏移量必须是K的倍数,问这个结构总的大小是多少?()

  • A、31
  • B、32
  • C、48
  • D、64

相似考题
参考答案和解析
正确答案:B
更多“对于结构声明: struct{ double c; long long g; float e; char *a; void *d; short b; char d; char f; }foo; 假设咋Windows机器上编译它,这里每个K字节的基本数据类型的偏移量必须是K的倍数,问这个结构总的大小是多少?()A、31B、32C、48D、64”相关问题
  • 第1题:

    现有定义int a;double b;float c;char k;,则表达式a/b+c-k值的类型为

    A.int

    B.double

    C.float

    D.char


    正确答案:B

  • 第2题:

    设有以下说明和定义:includeVoid main() {typedef union{long i; int k[5]; char

    设有以下说明和定义:#include<iostream. h>Void main() {typedef union{long i; int k[5]; char c;}DATE;struct date{iNt cat; DATE cow; double. dog;}too;DATE max;则下列语句的执行结果是( )。cout<<(sizeof(struct date)+sizeof(max))<<end1;}

    A.26

    B.52

    C.18

    D.8


    正确答案:B

  • 第3题:

    下列语句中正确的是( )。

    A.char c='ccc';

    B.float f=0.73;

    C.long l=xffff;

    D.double d=0.6E-2;


    正确答案:D
    解析:char类型数据为单引号括起的一个字符,所以A错误。小数0.73在Java中默认为 double类型,它的精度比float类型高,只有通过强制类型转换才能赋给float类型变量,所以B错误。整型常数的十六进制表示是以0x或0X开头,而不是以x开头,所以C错误。0.6E-2是 0.6×10-2的科学计数法表示,正确。

  • 第4题:

    设有以下说明和定义:includeVoid main() {typedef union{long i; int k[5]; char

    设有以下说明和定义: #include<iostream. h> Void main() { typedef union { long i; int k[5]; char c; } DATE; struct date {int cat; DATE cow; double dog; }too; DATE max; cout<<(sizeof(struct date)+sizeof(max))<<end1;}

    A.26

    B.52

    C.18

    D.8


    正确答案:B

  • 第5题:

    自动类型转换规定的优先次序是( )。

    A.short,byte,char→long→int→float→double

    B.short,byte,char→int→long―float→double

    C.byte,short,char→long→int→float→double

    D.byte,short,char→int→long→float→double


    正确答案:D

  • 第6题:

    以下程序的输出结果是() 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

  • 第7题:

    自动类型转换是按优先关系从低级数据转换成高级数据,规定的优先次序是( )。

    A.byte,short,char→int→long→float→double

    B.float→int→long→byte,short,char→double

    C.int→long→float→double←byte,short,char

    D.double→int→folat→long→byte,short,char


    正确答案:A

  • 第8题:

    以下代码中变量result的可能类型有哪些?byte b = 11;short s = 13;result = b * ++s;

    A.byte, short, int, long, float, double

    B.boolean, byte, short, char, int, long, float, double

    C.byte, short, char, int, long, float, double

    D.byte, short, char

    E.int, long, float, double


    正确答案:E
     

  • 第9题:

    在C语言中,5种基本数据类型的存储空间长度的排列顺序是()。

    • A、char<int<long int<=float<double      
    • B、char=int<long int<=float<double 
    • C、char<int<long int<float=double       
    • D、char=int=long int<=float<double

    正确答案:A

  • 第10题:

    下面语句正确的是()。

    • A、char=’abc’;
    • B、long l=oxfff;
    • C、float f=0.23;
    • D、double d=0.7E-3;

    正确答案:D

  • 第11题:

    对于结构声明: struct{ double c; long long g; float e; char *a; void *d; short b; char d; char f; }foo; 假设咋Windows机器上编译它,这里每个K字节的基本数据类型的偏移量必须是K的倍数,问这个结构总的大小是多少?()

    • A、31
    • B、32
    • C、48
    • D、64

    正确答案:B

  • 第12题:

    在C语言中(以16为PC机为例),5种基本数据类型的存储空间长度的排列顺序为()。

    • A、char < int < long int <= float < double
    • B、char = int < long int <= float < double
    • C、char < int < long int <= float = double
    • D、char = int = long int <= float < double

    正确答案:A

  • 第13题:

    Java语言中数据类型之间的自动类型转换是由优先关系从低级数据类型转换成高级数据类型,下面选项中自动类型转换优先级由低到高排列正确的是

    A.char→long→int→double→float

    B.char→int→long→double→float

    C.char→int→long→float→double

    D.char→int→float→double→long


    正确答案:C
    解析:自动类型转换是按优先关系从低级数据转换成高级数据,规定的优先次序是char→int→long→float→double。对自动类型转换的优先关系不了解。

  • 第14题:

    以下选项中,能定义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 ABC { double a; char b[10]; } ABC s;


    正确答案:B
    解析:定义一个结构体类型的变量,可采用三种方法:①先定义结构体类型,再定义变量名。②在定义类型的同时定义变量。③直接定义结构体类型变量,即不出现结构体名。选项B)符合第三种定义方法。

  • 第15题:

    在下列定义中的共用体所占内存字节数是( )。 union { char k[6]; struct { int m; floar f; }a; double d; }b;

    A.8

    B.14

    C.18

    D.10


    正确答案:A
    解析:结构体变量所占的存储空间是各个分量所占空间的总和。共用体变量中的所有成员占有同一个存储空间,其字节数与成员中占字节数最多的那个成员相等。m占2个字节,f占4个字节,因此结构体变量a所占的存储空间为6字节。k[6]占6个字节,d占8个字节。共用体变量b所占的存储空间与占存储空间最多的d所占存储空间的字节数相同。所以,A选项为所选。

  • 第16题:

    以下选项中,能定义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]; } ABCs;

    D.typedef ABC { double a; char b[10]; } ABCs;


    正确答案:B
    解析:定义一个结构体类型的变量,可采用三种方法:①先定义结构体类型,再定义变量名;②在定义类型的同时定义变量;③直接定义结构类型变量,即不出现结构体名;选项B符合第三种定义方法。

  • 第17题:

    以下程序的输出结果是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)。

  • 第18题:

    在下列定义中的共用体所占内存字节数是( ) Union {char k[6]; struct {int m; float f;}a; double d;}b;

    A.8

    B.14

    C.18

    D.10


    正确答案:A

  • 第19题:

    下面语句______是正确的? ( )

    A.char c='ccc';

    B.float f=0.73;

    C.long 1=oxfff;

    D.double d=0.6E-2;


    正确答案:D
    解析:本题考查Java语言中的赋值运算。赋值运算符(=)是把一个表达式的值赋给一个变量,赋值运算符两侧的类型不一致的情况下,如果左侧变量类型的级别高,则右侧的数据被转化为与左侧相同的高级数据类型后赋给左侧变量;否则,需要使用强制类型运算符。Char类型数据为单引号括起的一个字符,所以A错误。小数0.73在Java中默认为double类型,它的精度比float类型高,只有通过强制类型转换才能赋值给float类型变量,所以B错误。整型常数的十六进制表示是以0x或OX开头,不是ox开头,所以C错误。0.6E-2是0.6×10(上标)-2的科学计数法表示,正确。

  • 第20题:

    假设以下代码运行环境为32位系统,其中,__attribute__((packed))的作用是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐。代码段1:struct student1{char name[10];long sno;char sex;float score[4];}__attribute__((packed))*p1,a1,b1;代码段2:union student2{char name[10];long sno;char sex;float score[4];}*p2,a2,b2;sizeof(struct student1)、sizeof(union student2)的结果分别是______。

    A.248和128
    B.31和31
    C.31和16
    D.16和16

    答案:C
    解析:
    本题考查程序开发的基础知识。题目中student1是一个结构体,sizeof(struct student1)结果为结构体student1所有元素字节数之和,因此sizeof(struct student1)结果为:10+4+1+16=31字节。题目中student2是个联合,sizeof(union student2)结果是联合student2中最长一个元素的字节数。因此sizeof(union student2)结果为:16字节。

  • 第21题:

    在32位机器和64位机器中,C语言中同种数字数据类型字节数不同的是()。

    • A、Char和longint
    • B、Char *和float
    • C、Char *和longint
    • D、Char和float

    正确答案:B

  • 第22题:

    StringBuffer append(数值类型 t),参数t可以是boolean、int、char、float、double、long


    正确答案:正确

  • 第23题:

    在C语言中,5种基本数据类型的存储空间长度的排列顺序为:char<int<long int<=float<double


    正确答案:正确

  • 第24题:

    单选题
    对于结构声明: struct{ double c; long long g; float e; char *a; void *d; short b; char d; char f; }foo; 假设咋Windows机器上编译它,这里每个K字节的基本数据类型的偏移量必须是K的倍数,问这个结构总的大小是多少?()
    A

    31

    B

    32

    C

    48

    D

    64


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