有如下定义: struct person {char name[9];int age;}; struct person class[10]={"John",17,"paul",19,"Mary",18,"Adam",16}; 根据上述定义,能输出字母M的语句是( )。A.printf("%c\n",class[3].name);B.printf("%c\n",class[3].name[1]);C.printf("%c\n",class[2].name[1]);D.printf("%c\n",class[

题目

有如下定义: struct person {char name[9];int age;}; struct person class[10]={"John",17,"paul",19,"Mary",18,"Adam",16}; 根据上述定义,能输出字母M的语句是( )。

A.printf("%c\n",class[3].name);

B.printf("%c\n",class[3].name[1]);

C.printf("%c\n",class[2].name[1]);

D.printf("%c\n",class[2].name[0]);


相似考题
参考答案和解析
正确答案:D
解析:本题的关键是弄清楚给结构体数组赋初值的问题。初始值将按数组的各个元素在内存中的存放次序逐个地赋给各元素。结构体数组的各个元素在内存中的存放次序是:class[0].name,class[0].age,class[1].name,class[1].age,…,由此可知,包含字符“M”的字符串“Mary”赋值给了元素class[2].name,则与字符“M”相对应的表达式是class[2].name[0]。
更多“有如下定义:struct person {char name[9];int age;};struct person class[10]={"John",17,"paul" ”相关问题
  • 第1题:

    有如下定义struct person {char name[9];int age;};struct person class[10]={"John",17,"paul",19,"Mary",18,"Adam",16,};根据上述定义,能输出字母M的语句是

    A.printf("%c\n",class[3].name);

    B.printf("%c\n",class[3].name[1]);

    C.printf("%c\n",class[2].name[1]);

    D.printf("%c\n",class[2].name[0));


    正确答案:D
    解析:这是一个给结构体数组赋初值的问题。它的赋初值过程与上述二维数组赋初值很相似。只是这里的大括号中的初始值没有按行给出(也即没有用大括号分开来),在这种情况下,初始值将按数组的各个元素在内存中的存放次序逐个逐个地赋给各元素。现在结构体数组的各个元素在内存中的存放次序是这样的:class[0].name,class[0].age,class[1].name,class[1].age…,由此可以知道,包含字母‘M’的字符串"Mary"赋值给了元素class[2].name,则与字符‘M’先相对应的表达式是class[2].name[0]。

  • 第2题:

    根据下面的定义,能输出字母M的语句为()。 struct person{ char name[9]; int age; }; struct person class[10]={{“John”,17},{“Paul”,19},{“Mary”,18}};

    A.printf(“%cn”,class[3].name);

    B.printf(“%cn”,class[3].name[1]);

    C.printf(“%cn”,class[2].name[1]);

    D.printf(“%cn”,class[2].name[0]);


    printf(“%c\n”,class[2].name[0]);

  • 第3题:

    根据以下定义,不能输出字母M的语句是(). struct person {char name[9]; int age; }; struct person class[4]={{"John",17},{"Paul",19},{"Mary",18},{"Adam",16}};

    A.printf("%cn",class[2].name);

    B.printf("%cn",*class[2].name);

    C.printf("%cn",class[2].name[0]);

    D.printf("%cn",class[2].name[0]++);


    10]={“John”,17,“Paul”,19,“Mary”,18,“Adam”,16};

  • 第4题:

    若有如下定义,则下面能输出字母M的语句是()。struct person{ char name[9]; int age; }; struct person class[10]={"John",17,"paul",19,"Mary",18,"Adam",16};

    A.printf("%cn",class[3].name);

    B.printf("%cn",class[3].name[1]);

    C.printf("%cn",class[2].name[1]);

    D.printf("%cn",class[2].name[0]);


    A

  • 第5题:

    根据以下定义,能输出字母M的语句是(). struct person {char name[9]; int age; }; struct person class[4]={{"John",17},{"Paul",19},{"Mary",18},{"Adam",16}};

    A.printf("%cn",class[3].name);

    B.printf("%cn",class[2].name[1]);

    C.printf("%cn",class[3].name[1]);

    D.printf("%cn",class[2].name[0]);


    printf("%c\n",class[2].name[0]);