itgle.com
参考答案和解析
正确答案:B
以上形式定义NEW表示sT的结构类型,然后可以用NEW来说明结构体变量。因此选项B)正确。
更多“ 设有如下说明:以下说法正确的是( )。A.NEW是一个结构体变量B.NEW是一个结构体类型C.ST是一个结构体类型D.以上说明形式非法 ”相关问题
  • 第1题:

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

    A.以上的说明形式非法

    B.NODE是一个结构体类型

    C.OLD是一个结构体类型

    D.OLD是一个结构体变量


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

  • 第2题:

    设有如下说明: 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为结构体类型。

  • 第3题:

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

    A.以上的说明形式非法

    B.NODE是一个结构体类型

    C.OLD是一个结构体类型

    D.OLD是一个结构体变量


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

  • 第4题:

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

    A.以上的说明形式非法

    B.ST是一个结构体类型

    C.NEW是一个结构体类型

    D.NEW是一个结构体变量


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

  • 第5题:

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

    A.以上的说明形式非法

    B.ST是一个结构体类型

    C.NEW是一个结构体类型

    D.NEW是一个结构体变量


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