以下选项中不能正确把cl定义成结构体变量的是( )。A.typedef struct { int red; int green; int blue; } COLOR; COLOR cl;B.struct color cl { int red; int green; int blue; }C.struct color { int red; int green; int blue; }cl;D.struct { int red; int green; int blue; }cl;

题目

以下选项中不能正确把cl定义成结构体变量的是( )。

A.typedef struct { int red; int green; int blue; } COLOR; COLOR cl;

B.struct color cl { int red; int green; int blue; }

C.struct color { int red; int green; int blue; }cl;

D.struct { int red; int green; int blue; }cl;


相似考题
更多“以下选项中不能正确把cl定义成结构体变量的是()。A.typedef struct { int red; int green; int bl ”相关问题
  • 第1题:

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

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

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

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

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


    正确答案:B

  • 第2题:

    以下对结构体类型变量的定义中,不正确的是______。

    A.typedef struct aa { int n; float m; }AA; AA td1;

    B.#define AA struct aa AA {int n; float m; }td1;

    C.struct {int n; float m; }aa; srtuct aa td1:

    D.struct {int n; float m; }tdl;


    正确答案:C
    解析:选项A是先定义一个结构体类型,然后再定义结构体变量。选项B是通过宏替换来定义结构变量的。选项D则是直接定义结构变量。

  • 第3题:

    以下选项中不能正确把cl定义成结构体变量的是

    A.typedef struct { int red; int green; int blue; } COLOR; COLOR cl;

    B.struct color cl { int red; int green; int blue; }

    C.struct color { int red; int green; int blue; } cl;

    D.struct { int red; int green; int blue; } cl;


    正确答案:B
    解析:选项A)是把结构体类型改名后定义为变量cl。选项C),D)则是在定义结构体类型时定义变量,而选项B)不符合结构体类型定义的语法规则。

  • 第4题:

    以下选项中不能正确把c1定义成结构体变量的是

    A.typedef struct { int red; int green;; int blue; }COLOR; COLOR cl;

    B.struct color cl { int red; int green; int blue; };

    C.struet color { int red; int green; int blue; }c1;

    D.struct { int red; int green; int blue; }cl;


    正确答案:B
    解析:结构体类型的定义格式为:
      stract结构体名
      成员说明列表};
      结构体变量的定义有3种形式:第一种,定义结构体类型的同时定义结构体变量,如: street结构体名{成员说明列表}变量;第二种,先定义一个结构体类型,然后使用该类型来定义结构体变量,如:strect student{成员说明列表};student变量;第三种,定义一个无名称的结构体类型的同时定义结构体变量,如:strect student{成员说明列表}变量;。

  • 第5题:

    以下对结构体类型变量td的定义中,错误的是 ______。

    A.typedef struct aa

    B.struct aa {int n; {int n; float m; float m; }AA; }td; AAtd; struct aa td;

    C.struct

    D.struct {int n; {int n; float m; float m; }aa; }td; struct aa td;


    正确答案:C
    解析:选项C中的aa本身就为结构体变量名,所以不能再用它来定义结构体变量,故此种定义方法是错误的。

  • 第6题:

    若定义下列结构体,结构体变量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。

  • 第7题:

    以下对结构体类型变量的定义中,不正确的是_______。

    A.typedef struct aa { int n; float m; }aa; aa td1;

    B.#define aa struct aa aa{ int n; float m; }td1;

    C.struct { int n; float m; }aa; struct aa td1;

    D.struct { int n; float m; }td1;


    正确答案:C
    解析:本题的考查点是结构体类型变量的定义。在选项C中,aa是—个结构体变量,而不是结构体名,所以structaatd1;是非法的。

  • 第8题:

    若有以下语句:typedef struct S{int 9;char h;}T;以下叙述中正确的是( )。

    A.可用s定义结构体变量

    B.可用T定义结构体变量

    C.S是struct类型的变量

    D.T是struct S类型的变量


    正确答案:B
    本题考查typledef重新声明一种结构体类型,那么T为结构体类型,而不是结构体变量,所以B选项正确。

  • 第9题:

    下列选项中不能正确定义结构体的是_______。

    A.typedef struct

    B.struct color cl {int red; {int red; int green; int green; int blue; int blue; }COLOR; }; COLOR cl;

    C.struct color

    D.struct {int red; {int red; int green; int green; int blue; int blue; }cl; }cl;


    正确答案:B
    解析:将一个变量定义为标准类型与定义为结构体类型不同之处在于:后者不仅要求指定变量为结构体类型,而且要求指定为某一特定的结构体类型(例如,struct color),不能只指定结构体名。其中可以不出现结构体名,答案D就是缺省结构体名的隋况。而变量名歹婊必须放在成员列表后面,所以B答案不能正确将cl定义为结构件变量。

  • 第10题:

    以下对结构体类型变量td的定义中,错误的是

    A.typedef struct aa { int n; float m; }AA; AA td;

    B.stmct aa{ int n;float m;}td;stmct aa td;

    C.struct { int n; float m; }aa; struct aa rd;

    D.struct{ int n;float m;}td;


    正确答案:C
    解析:选项A使用typedef语句给结构体aa定义了—个新的名称AA,因此使用AA直接声明结构体变量td是正确的。选项B中,前面一句是定义结构体同时声明了结构体变量td,后一句是使用结构体名sa声明结构体变量td,都是正确的写法。选项C的第1条语句和选项D使用的是无名结构体直接声明变量的语法,是正确的,但是选项C的第2条语句使用已经声明的结构体变量aa来声明td是错误的.故应该选择C。

  • 第11题:

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

    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

  • 第12题:

    以下对结构体类型变量td的定义中,错误的是( )。

    A.typedef struct aa { int n; float m; }AA; AA td;

    B.struct aa { int n; float m; }td; stmct aa td;

    C.stmct { int n; float m; }aa; stmct aa td;

    D.struct { int n; float m; }td;


    正确答案:C
    解析:选项A使用typedef语句给结构体8a定义了一个新的名称AA,因此使用AA直接声明结构体变量td是正确的。选项B中,前面一句是定义结构体同时声明了结构体变量td,后一句是使用结构体名aa声明结构体变量td,都是正确的写法。选项C的第1条语句和选项D使用的是无名结构体直接声明变量的语法,是正确的,但是选项C的第2条语句使用已经声明的结构体变量aa来声明td是错误的。故应该选择c。

  • 第13题:

    下面结构体的定义语句中,错误的是( )。 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选项错误。

  • 第14题:

    以下选项中不能正确把c1定义成结构体变量的是

    A.typedef struct {int red: int green: int blue; } COLOR; COLOR c1;

    B.struct color c1 {int red int green: int blue; };

    C.struct color {int red , int green : int blue : )cl;

    D.struct {int red; int green; int blue } c1 ;


    正确答案:B
    解析:本题考核的知识点是结构体类型定义。结构体类型的定义格式为:strcut结构体名{成虽说明列表};结构体变量的定义有3种形式:第一种,定义结构体型的同时定义结构体变量,如:strcut结构体名{成员说明列表}变量;选项C属于这种情况,故选项C正确:第二种,先定义一个结构体类型,然后使用该类型来定义结构体变量,如:strcutstudent{成员说明列表}:student变量;选项A属于这种情况,故选项A正确;第三种,定义一个无名称的结构体类型的同时定义结构体变量,如:strcutstudent{成员说明列表}变量;选项D属于这种情况,故选项D正确.所以,4个选项中选项B符合题意。

  • 第15题:

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

    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

  • 第16题:

    以下对结构体类型变量的定义中,不正确的是( )

    A.typedef struct aa { int n; float m; }AA; AA tdl;

    B.#define AA struct aa AA{ int n; float m; }tdl;

    C.struct { int n; float m; }aa; struct aa tdl;

    D.struct { int n; float m, }tdl;


    正确答案:C

  • 第17题:

    下列结构体类型说明和变量定义中正确的是( )。

    A.typedef struct {int n; char c;}REC; REC t1,t2;

    B.struct REC; {int n; char c;}; REC t1,t2;

    C.typedef struct REC; { int n=0; char c='A';} t1,t2;

    D.stmct { int n; char c;} REC; REC t1,t2;


    正确答案:A
    解析:定义结构体类型的一般形式为:struct结构体名{成员列表}:struct结构体名后不能加“:”号,所以选项B)、C)错误,选项D)中定义无名称的结构体类型同时定义结构体变量形式应为struet t1,t2;选项A)为用户自定义类型,其为正确的定义形式。

  • 第18题:

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

    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)所示。 

  • 第19题:

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

    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选项的格式。

  • 第20题:

    以下对结构体类型变量td的定义中,错误的是______。

    A.typedef struct aa { int n; float m; }AA; AA td;

    B.struct aa { int n; float m; }td; struct aa td;

    C.struct { int n; float m; }aa;

    D.struct { int n; float m; }td; struct aa td;


    正确答案:C
    解析: 本题的考点是C语言结构体的定义和自定义类型typedef。对于选项A,首先用typedef将结构体自定义为AA,再用AA定义结构体变量td是正确的。对于选项B首先定义结构体类型aa,再用struct aa定义结构体变量td也是正确的。选项D直接用无名结构体定义结构体变量td也是正确的。而选项C中,首先用无名结构体定义了结构体变量aa,再用结构体变量aa去定义结构体变量td是完全错误的。因此正确选项是C。

  • 第21题:

    以下选项中能正确把c1定义成结构体变量的是( )。

    A.typedef struct { int red; int red; int green; int blue; }COLOR; COLOR c1;

    B.struct color c1 { int red int red; int green int blue; };

    C.stmctcolor { int red, int green; int blue; }c1;

    D.struct { int red; int green; int blue; }c1;


    正确答案:D
    解析:因为结构体中不能出现同名的成员变量,所以选项A和B都是错误的;又因为结构体中成员的定义应该由分号隔开,所以选项C也是错误的。选项D定义了一个无名结构体,并同时定义该结构体变量c1,是正确的写法。故应该选择D。

  • 第22题:

    下列关于结构型变量的定义语句中,错误的是( )

    A.typedef struct CCC

    B.define GGG struct { char name[20];GGG CCC { char name[20]; int age; int age; }GGG; }; GGG abc ; GGG CCC abc;

    C.struct

    D.struct { char name[20]; { char name[20]; int age; int age; }ccc; }abc; CCC abc;


    正确答案:C
    分析备选答案A:利用“typedef”定义了用户自定义的数据类型符“GGG”,这个用户自定义的数据类型符是含有两个成员的结构型CCC,所以语句“GGGabc”是定义结构型CCC的变量abc,语法没有错误。分析备选答案B:利用“#define”定义了宏名“GGG”,这个宏名第一次出现是定义结构型CCC,第二次是定义了结构型CCC的变量allc,所以语法上没有错误。分析备选答案C:这是定义一个没有名称的结构型,同时定义了这种结构型的变量CCC,接着的语句“CCCabc;”显然是错误的,因为CCC是变量名,不是数据类型符,该答案符合题意。至于备选答案D:这是标准的通过定义没有名称的结构型来定义该结构型的变量abc,语法上没有错误。

  • 第23题:

    以下对结构体类型变量td的定义中,错误的是( )。

    A.typcdef struct aa { int n; float m; } AA; AA td;

    B.struct aa {int n; float m; } struct aa td;

    C.struct {int n; float m; } aa; struct aa td;

    D.struct {int n; float m; }td;


    正确答案:C
    解析:选项A)中typedef的作用是声明一个新的类型名AA代替已有的结构体类型名struetaa,然后用AA定义结构体类型变量td;选项B)直接用结构体类型名structaa定义结构体类型变量td;选项C)中的aa本身就为结构体变量名,所以不能再用它来定义结构体变量,该项错误;选项D)省去了结构体名,直接将td定义为结构体变量,正确。

  • 第24题:

    单选题
    若有以下程序: typedef struct S {int g;char h;}T; 以下叙述中正确的是(  )。
    A

    可用S定义结构体变量

    B

    可用T定义结构体变量

    C

    S是struct类型的变量

    D

    T是struct S类型的变量


    正确答案: D
    解析:
    AC两项,S是定义的结构体的名字,并不是struct类型的变量也不可用来定义结构体变量;D项,题目中T定义为struct S类型,即T被定义为一个类型名,而不是变量。答案选择B选项。