niusouti.com

若有以下说明,则对初值中字符a的引用方式为( )。 static struct { char ch; double x; char a(); }c[2] [3]={ { {'a',3.5,"bc"}, {'c',4.5,"de"}, {'m',8.6,"abc"} }, { {'d',8.5,"ic"}, {'b',5.5,"dc"}, {'n',8.6,"anc'} }};A.c.chB.c[0][0].chC.c[1][1].chD.a[0]

题目

若有以下说明,则对初值中字符a的引用方式为( )。 static struct { char ch; double x; char a(); }c[2] [3]={ { {'a',3.5,"bc"}, {'c',4.5,"de"}, {'m',8.6,"abc"} }, { {'d',8.5,"ic"}, {'b',5.5,"dc"}, {'n',8.6,"anc'} }};

A.c.ch

B.c[0][0].ch

C.c[1][1].ch

D.a[0]


相似考题
更多“若有以下说明,则对初值中字符a的引用方式为()。static struct{ char ch; double x; char a();}c[2 ”相关问题
  • 第1题:

    阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。

    【说明1】 递归函数is_elem(char ch, char *set)的功能是判断ch中的字符是否在set表示的字符集合中,若是,则返回1,否则返回0。 【C代码1】 int is_elem (char ch ,char*set) { If(*set==‘\0’) return 0; else If( (1) ) return 1; else return is_elem( (2) ) } 【说明2】 函数char*combine(char* setA,char *setB)的功能是将字符集合A(元素互异,由setA表示)和字符集合B(元素互异,由setB表示)合并,并返回合并后的字符集合。 【C代码2】 char*combine(char *setA, char*setB) { int i,lenA, lenB, lenC; lenA=strlen(setA); lenB=strlen(setB); char*setC=(char*)malloc(lenA+lenB+1); if(!setC) return NULL; strncpy(setC,setA,lenA); //将setA的前lenA个字符复制后存入setC lenC= (3) ; for(i=0;i<lenB;i++) if( (4) ) //调用is_elem判断字符是否在setA中 setC[lenC++]=setB[i]; (5) =‘/0’; //设置合并后字符集的结尾标识 return setC; }


    正确答案:(1)set[0]==ch
    (2)ch,*set-1
    (3)lenA
    (4)is_elem(setB[i],*setA)==0
    (5)setC[lenC+1]

  • 第2题:

    若有以下说明和语句,则以下引用方式中不正确的是()。 struct worker { int no; char *name; }work, *p=&work;

    A.work.no

    B.(*p).no

    C.p->no

    D.work->no


    D解析:?的优先级远高于'&'和'*'。

  • 第3题:

    若有以下说明和语句,则引用方式不正确的是? struct worker{ int no; char *name; }work, *p=&work;

    A.work.no

    B.(*p).no

    C.p->no

    D.work->no


    D

  • 第4题:

    阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。【说明1】递归函数is_elem(char ch, char *set)的功能是判断ch中的字符是否在set表示的字符集合中,若是,则返回1,否则返回0。【C代码1】

    int is_elem (char ch ,char*set){ If(*set==‘\0’) return 0; else If((1)) return 1; else return is_elem((2))}

    【说明2】函数char*combine(char* setA,char *setB)的功能是将字符集合A(元素互异,由setA表示)和字符集合B(元素互异,由setB表示)合并,并返回合并后的字符集合。
    【C代码2】

    char*combine(char *setA, char*setB){ int i,lenA, lenB, lenC; lenA=strlen(setA); lenB=strlen(setB); char*setC=(char*)malloc(lenA+lenB+1);if(!setC)return NULL;strncpy(setC,setA,lenA); //将setA的前lenA个字符复制后存入setClenC = (3);for(i=0;i<lenB;i++) if((4)) //调用is_elem判断字符是否在setA中 setC[lenC++]=setB[i]; (5) =‘/0’; //设置合并后字符集的结尾标识return setC;}


    答案:
    解析:
    (1)set[0]==ch或*set==ch或其他等价形式(2)ch,set+1或ch,++set或其他等价形式(3)lenA或其他等价形式(4)is_elem(setB[i],*setA)==0或!is_elem(setB[i],*setA)或其他等价形式(5)setC[lenC]或其他等价形式
    【解析】

    If(set[0]==ch)//取出set第一个元素与ch字符比较是否相等return is_elem(ch,*set-1) // 从set第二个元素开始重新递归代入函数执行strncpy(setC,setA,lenA); //将setA的前lenA个字符复制后存入setClenC=lenA;for(i=0;i<lenB;i++)ifis_elem(setB[i],*setA)==0) //调用is_elem判断字符是否在setA中setC[lenC++]=setB[i];setC[lenC+1]=‘/0’;//设置合并后字符集的结尾标识returnsetC;

  • 第5题:

    2、若有以下说明和语句,则引用方式不正确的是? struct worker{ int no; char *name; }work, *p=&work;

    A.work.no

    B.(*p).no

    C.p->no

    D.work->no


    work->no