更多“结构声明 struct S1{int x; char y; in”相关问题
  • 第1题:

    下面结构体的定义语句中,错误的是( )。 A.struct ord{int x;int Y;int Z;};struet ord a;SXB

    下面结构体的定义语句中,错误的是( )。

    A.struct ord{int x;int Y;int Z;};struet ord a;

    B.struct ord{int x;int y;int Z;}struct ord a;

    C.struct ord{int X;int Y;int Z;}a;

    D.struct{int X;int y;int Z;}a;


    正确答案:B
    结构体定义的类型说明的一般形式为:struct结构体标识名{类型名1结构成员名表l;类型名2结构成员名表2;···};。注意:①结构体说明同样要以分号结尾;②紧跟在结构体类型说明之后进行定义;③在说明一个无名结构体类型的同时,直接进行定义;④先说明结构体类型,再单独进行变量定义等。所以B选项错误。

  • 第2题:

    下列对结构及其变量定义错误的是( )。

    A.struct My Struct

    B.struct MyStruct{ {int num; int num;char ch; char ch;} }My;

    C.strut

    D.struct{ {int num; int num;char ch; char ch;}My; };


    正确答案:D

  • 第3题:

    若有如下语句: struct a { char x[10] int y; }s,*t; t=&S; 则对结构体变量s中的成员y的正确引用是( )。

    A.a.y;

    B.t->y;

    C.t.y;

    D.*t->y;


    正确答案:B
    解析:本题中的a是结构体名,s是结构体a的变量,t是结构体a的指针。通过变量直接访问结构体成员应该使用“.”运算符,而通过指针间接访问结构体成员应该使用“->”运算符。故本题的正确答案为B。

  • 第4题:

    若定义下列结构体,结构体变量p的出生年份赋值正确的语句是( )。 struct st { int x; int y; int z; } struct worker { char name[20]; char sex; struct st birth; }p;

    A.x=1987

    B.birth.x=1987;

    C.p.birth.x=1987;

    D.p.x=1987;


    正确答案:C
    解析: 本题主要考查怎样为嵌套定义的结构中的成员赋值:由于worker中的birth是一个st型的结构,在给birth赋值时,不能将birth作为一个整体,要用“.”运算再深入一层访问到最基本的成员x、y、z。

  • 第5题:

    设有下列说明语句: strcut str {int x; float y; char z;}st; 则下列的叙述中不正确的是( )。

    A.struct是结构体类型的关键字

    B.st是结构体类型名

    C.x、y、x都是结构体成员名

    D.struct str是结构体类型名


    正确答案:B
    解析:本题主要考查结构类型的定义:struct是结构体类型的关键字:structstr是结构体类型名;x、y、z都是结构体成员名:st是结构变量名。

  • 第6题:

    设定义下列结构体,结构体变量p的出生年份赋值正确的语句是( )。 stmct st { int x; int y; int z; } struct worker { char name[20]; char sex; struct st birth; }p;

    A.x=1987

    B.birth.x=1987;

    C.p.birth.x=1987;

    D.p.x=1987;


    正确答案:C
    解析:本题主要考查怎样为嵌套定义的结构中的成员赋值:由于worker中的birth是一个st型的结构,在给birth赋值时,不能将 birth作为一个整体,要用“.”运算再深入一层访问到最基本的成员x、y\z。

  • 第7题:

    下面结构体的定义语句中,错误的是( )。

    A.struct ord{int x;int Y;int z;}struct ord a;

    B.struct ord{int x;im Y;im z;};struct ord a;

    C.struct ord{int x;int Y;int Z;}a;

    D.struct{int x;int Y;int z;}a;


    正确答案:A
    A选项stnletonl{intx;inty;int2;struetoraa;错误,不能在定义结构体的同时,又用结构体类型名定义变量。应该写成B选项或者D选项的格式。

  • 第8题:

    设有以下声明语句 street ex { int x;float y;char z;} example; 则下面的叙述中不正确的是 ______ 。

    A.struct是结构体类型的关键字

    B.example是结构体类型名

    C.x,y,z都是结构体成员名

    D.struct ex是结构体类型


    正确答案:B
    解析:example是结构体变量名。

  • 第9题:

    设有以下声明语句 struct ex { int x;float y;char z;}example; 则下面的叙述中不正确的是______。

    A.struct是结构体类型的关键字

    B.example是结构体类型名

    C.x,y,z都是结构体成员名

    D.struct ex是结构体类型


    正确答案:B
    解析:example是结构体变量名。

  • 第10题:

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

    A.struct { int x; float y; int a[2]; unsigned b[3]; char name[ 10]; };

    B.struct stu { unsigned a[3]; unsigned b[4]; }x; int *p=& x.a;

    C.street stu { int a; float x[4]; }y={1,1.0}; float data=y.x;

    D.struct nd {int a,b; unsigned c[2]=5; };


    正确答案:A
    解析:本题主要考查的知识点是结构类型的概念和定义,结构定义的一般形式是:struct结构类型名称{数据类型成员名1;数据类型成员名2;…数据类型成员名n;};struct为关键字,是结构的标识符:{}中包围的是组成该结构的成员项;每个成员的数据类型既可以是简单的数据类型,也可以是复杂的数据类型。整个定义作为一个完整的语句,用分号结束。结构类型名称是可以省略的,此时定义的结构称为无名结构。

  • 第11题:

    结构声明 struct S1{int x; char y; int z;};,考虑数据对齐要求,则整个结构的大小为()字节。

    • A、8
    • B、9
    • C、12
    • D、14

    正确答案:C

  • 第12题:

    单选题
    有如下定义:struct{  int num;  char name[10];  struct {  int y;  int m;  int d; }birth; }s,*ps=&s;以下对内嵌结构体成员的引用形式错误的是(  )。
    A

    ps.birth.y

    B

    s.birth.y

    C

    ps->birth.y

    D

    (*ps).birth.y


    正确答案: C
    解析:
    使用结构体指针对结构体成员进行访问时,形式为:结构指针名->结构成员名,或者(*结构指针名).结构成员名,题目中ps为结构体指针,答案选择A选项。

  • 第13题:

    若某C语句如下: struct ex {int x;float y;char z;}example; 则以下叙述中不正确的是(29)。

    A.struct结构体类型的关键字

    B.x,y,z都是结构体成员名

    C.stmct ex是结构体类型

    D.example是结构体类型名


    正确答案:D
    解析:在C语言环境中,结构体类型说明的一般形式:struct结构体名{类型名结构体成员名……}结构体变量名;其中,“struct”是结构体类型的关键字。对于本试题定义的语句“structex{intx;floaty;charz;}example;”,其中example是结构体变量名,而非结构体类型名。

  • 第14题:

    下列程序的输出结果是()。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
    解析: 本题主要考查结构体和联合内存使用的区别:结构中不同的成员分别使用不同的内存空间,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和,结构中每个成员相互独立;联合所占用的内存空间为最长的成员所占用的空间。

  • 第15题:

    设有以下C语言说明语句:

    struct ex{int x;float y;char z;} example

    则下面的叙述中不正确的是(52)。

    A.struct是结构体类型的关键字

    B.x、y、z都是结构体成员名

    C.struet ex是结构体类型

    D.example是结构体类型名


    正确答案:D
    解析:在C语言环境中,结构体类型说明的一般形式:struct结构体名{类型名结构体成员名…}结构体变量名;其中,“struct”是结构体类型的关键字。对于本题而言,example是结构体变量名,而非结构体类型名。

  • 第16题:

    设定义下列结构体,结构体变量p的出生年份赋值正确的语句是( )。

    Struct st

    { int x;

    inty;

    int z;

    }

    Struct worker

    { char name[20];

    char sex;

    struct st birth;

    }p;

    A.x=1987

    B.birth.x=1987;

    C.p.birth.x=1987;

    D.p.x=1987;


    正确答案:C
    解析:本题主要考查怎样为嵌套定义的结构中的成员赋值:由于worker中的birth是一个st型的结构,在给birth赋值时,不能将birth作为一个整体,要用“.”运算再深入一层访问到最基本的成员x、y、z。

  • 第17题:

    下面结构体的定义语句中,错误的是

    A.struct ord{int x;int y;int z;};struet ord a;

    B.atruet ord{int x;int y;int z;}struct ord a;

    C.struet ord{int x;int y;int z;}a;

    D.struct{int x;int y;int z;)a;


    正确答案:B
    解析:定义结构体变量有三种方式:①先声明结构体类型,再定义变量名,如选项A)所示;②在声明类型的同时定义变量,如选项C)所示;③直接定义结构体类型变量,如选项D)所示。 

  • 第18题:

    有如下程序段#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。

  • 第19题:

    设有以下说明语句: struct ex {int x;float y;char z; }example;在下面的叙述中,不正确的一条是______。

    A.struct是结构体类型的关键词

    B.example是结构体类型名

    C.x,y,2都是结构体成员名

    D.struct ex是结构体类型


    正确答案:B
    解析:example是结构体类型变量名,因此选项B的说法是不正确的。

  • 第20题:

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

    A.street { int x; float y; int a[2]; unsigned b[3]; char name[ 10]; };

    B.struct stu { unsigned a[3]; unsigned b[4]; }x; int *p=& x.a;

    C.stmct stu { int a; float x[4]; }y={1,1.0}; float data=y.x;

    D.struct nd { int a,b; unsigned c[2]=5; };


    正确答案:A
    解析:本题主要考查的知识点是结构类型的概念和定义,结构定义的一般形式是:struct结构类型名称{数据类型成员名1;数据类型成员名2;…数据类型成员名n;};struct为关键字,是结构的标识符:{}中包围的是组成该结构的成员项;每个成员的数据类型既可以是简单的数据类型,也可以是复杂的数据类型。整个定义作为一个完整的语句,用分号结束。结构类型名称是可以省略的,此时定义的结构称为无名结构。

  • 第21题:

    下列对结构及其变量定义错误的是( )。

    A.struct My Struct { int num; char ch; }

    B.struct MyStruct { int num; char ch; }My;

    C.strut { int num; char ch; }My;

    D.struct { int num; char ch; };


    正确答案:D

  • 第22题:

    下面的函数声明中,()是“void BC(int a, int b);”的重载函数

    • A、 int BC(int x, int y);
    • B、 void BC(int a, char b);
    • C、 float AA(int a, char b);
    • D、 int BC(int a, int b=0);

    正确答案:B

  • 第23题:

    单选题
    下面结构体的定义语句中,错误的是(  )。
    A

    struct ord{int x;int y;int z;};struct ord a;

    B

    struct ord{int x;int y;int z;}struct ord a;

    C

    struct ord{int x;int y;int z;}a;

    D

    struct {int x;int y;int z;}a;


    正确答案: A
    解析:
    C语言中结构体变量的定义有三种方法:①定义结构体类型的同时定义结构体变量,如C项;②使用无名结构体类型定义结构体变量,如D项;③先定义结构体类型,后定义结构体变量,如A项,B项错在分别定义结构体类型与结构体变量时需要用“;”隔开。故答案选择B选项。

  • 第24题:

    单选题
    结构声明 struct S1{int x; char y; int z;};,考虑数据对齐要求,则整个结构的大小为()字节。
    A

    8

    B

    9

    C

    12

    D

    14


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