有以下程序段: typedef struct NODE { int num; struct NODE * nex; } OLD; 以下叙述中正确的是( )。A.以上的说明形式非法B.NODE是一个结构体类型C.OLD是一个结构体类型D.OLD是一个结构体变量

题目

有以下程序段: typedef struct NODE { int num; struct NODE * nex; } OLD; 以下叙述中正确的是( )。

A.以上的说明形式非法

B.NODE是一个结构体类型

C.OLD是一个结构体类型

D.OLD是一个结构体变量


相似考题
参考答案和解析
正确答案:C
解析:typedef关键字用于声明一个新的类型名代替已有的类型名。本题中如果没有用typedef进行定义的话,则structNODE为结构体类型,而用typedef定义后,相当于用OLD代表了struetNODE这一结构体类型,故OLD为结构体类型。
更多“有以下程序段: typedef struct NODE { int num; struct NODE * nex; } OLD; 以下叙述中正确的是( )。A.以上的说明形式非法B.NODE是一个结构体类型C.OLD是一个结构体类型D.OLD是一个结构体变量”相关问题
  • 第1题:

    设有以下语句 typedef struct TT {char c; int a[4];}CIN; 则下面叙述中正确的是______。

    A.可以用TT定义结构体变量

    B.TT是struct类型的变量

    C.可以用CIN定义结构体变量

    D.CIN是struct TT类型的变量


    正确答案:D
    解析:此题中说明了—个结构体类型struct TT的同时,定义了一个结构体变量CIN,结构体变量中的各成员在内存中按说明中的顺序依次排序。

  • 第2题:

    设有以下说明语句

    typedef struct

    { int n;

    char ch[8];

    } PER;

    则下面叙述中正确的是

    A.PER 是结构体变量名

    B.PER是结构体类型名

    C.typedef struct 是结构体类型

    D.struct 是结构体类型名


    正确答案:B
    解析:本题中,typedef声明新的类型名PER来代替已有的类型名,PER代表上面指定的一个结构体类型,此时,也可以用PER来定义变量。

  • 第3题:

    在C语言中,可以用typedef声明新的类型名来代替已有的类型名,比如有学生链表结点: typedef struct node{ int data; struct node * link; }NODE, * LinkList; 下述说法正确的是______。

    A.NODE是结构体struct node的别名

    B.* LinkList也是结构体struct node的别名

    C.LinkList也是结构体struct node的别名

    D.LinkList等价于node*


    正确答案:A
    解析:其实题中的定义相当于下述两个定义:typedefstructnode{intdata;structnode*link;}NODE;typedefstructnode{intdata;structnode*link;)*LinkList;前者给structnode取了个新名字NODE,即structnode和NODE是等价的;后者把structnode*命名为LinkList。

  • 第4题:

    有以下程序段: typedef struct NODE {int num; struct NODE *next; }OLD; 以下叙述中正确的是 ______。

    A.以上的说明形式非法

    B.NODE是一个结构体类型

    C.OLD是一一个结构体类型

    D.OLD是一个结构体变量


    正确答案:C
    解析:typedef关键字用于声明一个新的类型名代替已有的类型名。本题中如果没有用typedef进行定义的话,则struct NODE为结构体类型,现在用typedef定义后,相当于用OLD代表了struct NODE这一结构体类型,故OLD为结构体类型。

  • 第5题:

    有以下程序段:以下叙述中正确的是( )。

    A.以上的说明形式非法

    B.NODE是一个结构体类型

    C.OLD是一个结构体类型

    D.OLD是一个结构体变量


    正确答案:C
    本题考查的是结构体的定义。typedef关键字用于声明一个新的类型名代替已有的类型名。本题中如果没有用typedef进行定义,则struetNODE为结构体类型,现在用typedef定义后,相当于用0LD代表了struetNODE这一结构体类型,故0LD为结构体类型。

  • 第6题:

    设有以下语句

    typedef struct S

    { int g; char h; } T;

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

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

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

    C.S是struct类型的变量

    D.T是struct S类型的变量


    正确答案:A
    解析:S是自定义的一种结构体类型,T是S类型声明的一个变量。

  • 第7题:

    有下列程序段: typedef struct NODE {int num;struct NODE*next; }OLD; 下列叙述中正确的是( )。

    A.以上的说明形式非法

    B.NODE是一个结构体类型

    C.OLD是一个结构体类型

    D.OLD是一个结构体变量


    正确答案:C
    解析:C语言允许用typedef说明一种新类型名,其一般形式为:typedef类型名 标识符。typedef语句的作用仅仅是使“标识符”来代表已存在的“类型名”,并未产生新的数据类型。原有类型名依然有效。此题中,用使typedef定义了新的类型OLD结构,所以OLD为结构体类型。

  • 第8题:

    设有以下语句:typedef struct TY{char C;int a{4 1;}CIN;

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

    A.CIN是struct Tr类型的变量

    B.TT是struct类型的变量

    C.可以用,lr定义结构体变量

    D.可以用CIN定义结构体变量


    正确答案:D
    本题考查typcdef重新声明一种结构体类型,其中CIN为结构体类型名,而不是结构体变量,所以D选项正确。

  • 第9题:

    有以下程序: 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正确。

  • 第10题:

    设有如下说明: typedef struet ST { long a;int b;char c[2];} NEW;则下面叙述中正确的是( )。

    A.以上的说明形式非法

    B.ST是一个结构体类型

    C.NEW是一个结构体类型

    D.NEW是一个结构体变量


    正确答案:C
    解析:typedef关键字用于声明一个新的类型名代替已有的类型名。本题中如果没有用typedef进行定义的话,则structST为结构体类型,现在用typedef定义后,相当于用NEW代表了structST这一结构体类型,故NEW为结构体类型。

  • 第11题:

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

    有以下程序

    #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 *)malloc(sizeof(struet 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

  • 第12题:

    单选题
    设有以下语句 typedef struct TT {char c;int a[4]} CIN; 则下面叙述中正确的是( )。
    A

    CIN是structTT类型的变量

    B

    TT是struct类型的变量

    C

    可以用TT定义结构体变量

    D

    可以用CIN定义结构体变量


    正确答案: A
    解析:
    CIN使用typedef定义的类型名,可以用来定义结构体TT类型的变量。答案选择D选项。

  • 第13题:

    设有以下说明语句 struct num { int a; float b; }numl;则下面的叙述不正确的是______。

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

    B.struct num是用户定义的结构体类型

    C.numl是用户定义的结构体类型名

    D.a和b都是结构体成员名


    正确答案:C

  • 第14题:

    设有以下语句: typedef street S { int g; char h;} T;则下面叙述中正确的是( )。

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

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

    C.S是struct类型的变量

    D.T是struct S类型的变量


    正确答案:B
    解析:可以用typedef定义新的类型名来代替已有的类型名。T是所定义的新的类型名,它代表题中定义的一个结构体类型,这样就可以用T定义结构体变量了。

  • 第15题:

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

    A.可以用S定义结构体变量

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

    C.S是struct类型的变量

    D.T是stnictS类型的变量


    正确答案:B
    解析:本题使用typedef关键字将整个结构体的定义部分stmctS{intg;charh;}声明为别名T。此时T是一个结构体类型,可以直接使用T声明该结构体变量,而S只是一个结构体名,必须结合struct关键字才能声明变量。故本题的正确答案为B。

  • 第16题:

    设有如下说明 typedef struct ST {long a;int b;char c[2];}NEW; 则下面叙述中正确的是

    A.以上的说明形式非法

    B.ST是一个结构体类型

    C.NEW是一个结构体类型

    D.NEW是一个结构体变量


    正确答案:C
    解析:用typedef定义结构体类型,ST为结构体名称,NEW为结构体类型。

  • 第17题:

    有以下程序段: typedef struct NODE {int num; struct NODE * next; }OLD; 以下叙述中正确的是( )。

    A.以上的说明形式非法

    B.NODE是一个结构体类型

    C.OLD是一个结构体类犁

    D.OLD是一个结构体变量


    正确答案:C
    解析:将题目中的定义语句去掉前面的typedef和后面的OLD(分号保留),就是一条完整的结构体定义语句,其中struct是说明符,NODE是结构体名,大括号里面的是结构体成员的定义。此时要声明该结构体变量时需要使用struct加结构体名.起来声明,structNODE一起构成一个结构体类型,就好像字符类型char。若只去掉前面的typedcf,就是一条结构体定义同时声明一个结构体变量OLD的语句,因为OLD的前面部分是structNODE的完整写法,可以看作是structNODE。C语言允许用typedef说明一种新类型名,其语法格式为:typedef类型名标识符;以后就可以用该标识符来代替被说明的类型名了。因此,当前面存在typedef时,该语句就变成了给structNODE的完辖写法定义一个新的名称OLD。所以,此时的OLD是一个结构体类型,它相当于structNODE,即可以和char一样单独用来声明该结构体变量,而NODE只是一个结构体名,不能单独用来声明变量。所以,4个选项中C符合题意。

  • 第18题:

    设有以下说明语句 typedef struct { int n; char ch[8]; }PER;

    A.PER 是结构体变量名

    B.PER 是结构体类型名

    C.typedef struct 是结构体类型

    D.struct 是结构本类型名


    正确答案:B
    解析:本题考核的知识点是如何使用typedef定义新的类型。本题通过typedef在定义一个结构体类型的同时,把它自定义成类型名PER,故PER是结构体类型名。所以,4个选项中B为所选。

  • 第19题:

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

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

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

    C.S是struct类型的变量

    D.T是struct S类型的变量


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

  • 第20题:

    设有以下说明语句: typedef struct { int n; char ch[8]; }PER; 则下面叙述中,正确的是( )。

    A.PER是结构体变量名

    B.PER是结构体类型名

    C.typedef struct是结构体类型

    D.struct是结构类型名


    正确答案:B
    解析:本题考核用typedef定义自己的变量类型。C++语言允许定义用关键字typedef所命名的新的数据类型。实际上,没有建立一个新的数据类型,而仅是对存在的类型定义了一个新的名字。所定义的新名是现有的类型名的补充,而不是取代。

  • 第21题:

    设有以下说明语句:则下面叙述中正确的是( )。

    A.PER是结构体变量名

    B.PER是结构体类型名

    C.typedef struct是结构体类型

    D.struct是结构体类型名


    正确答案:B
    本题中,typedef声明新的类型名PER来代替已有的类型名,PER代表上面指定的一个结构体类型,此时,也可以用PER来定义变量。

  • 第22题:

    有以下程序段 typedef struct NODE {int num; struct NODE *next; }OLD; 以下叙述中正确的是

    A.以上的说朗形式非法

    B.NODE是一个结构体类型

    C.OLD是一个结构体类型

    D.OLD是一个结构体变量


    正确答案:C
    解析:将题目中的定义语句去掉前面的typedef和后面的OLD(分号保留),就是一条完整的结构体定义语句,其中struct是说明符,NODE是结构体名,大括号里面的是结构体成员的定义.此时要声明该结构体变量时需要使用struct加结构体名一起来声明,structNODE一起构成一个结构体类型,就好像字符类型char。若只去掉前面的typedef,就是一条结构体定义同时声明一个结构体变量OLD的语句,因为OLD的前面部分是structNODE的完整写法,可以看作是structNODE。C语言允许用typcdcf说明一种新类型名,其语法格式为:typedef类型名标识符;以后就可以用该标识符来代替被说明的类型名了。因此,当前面存在typedef时,该语句就变成7给structNODE的完整写法定义一个新的名称OLD。所以,此时的OLD是一个结构体类型,它相当于structNODE,即可以和char一样单独用来声明该结构体变量,而NODE只是一个结构体名,不能单独用来声明变量。所以,4个选项中C符合题意.

  • 第23题:

    单选题
    若有以下程序: 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选项。