有如下定义:struct person{char name[9];int age;}struct person class[10]={"John",17, "Paul",

题目

有如下定义: 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
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

根据以下定义,不能输出字母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};

第2题:

根据以下定义,能输出字母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]);

第3题:

根据下面的定义,能输出字母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]);

第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题:

有如下定义: 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]。

第6题:

有如下定义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]。

第7题:

有如下定义: struct person{char name[9];int age;}; struct person class[10]={"Johu",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[O]);


正确答案:D
解析:该题主要考查C语言数组下标的概念,即C语言中数组的下标是从。开始的。

第8题:

有以下程序:includeincludeusingnameSpacestd;classperson{ intage; Char*nam

有以下程序:

include <iostream>

include <string>

using nameSpace std;

class person

{

int age;

Char * name;

public:

person ( int i, Char * str )

{

int j;

j = strlen( str ) + 1;

name = new char[ j ];

strcpy( name, str );

age = i;

}

~person()

{

delete name;

cout<<"D";

}

void display()

{

cout<<name<<":"<<age;

}

};

int main()

{

person demo( 30,"Smith" );

demo.display();

return 0;

}

则该程序的输出结果为:【 】。


正确答案:Smith:30 D
Smith:30 D 解析:本题考核类与对象的操作。主函数中定义类person的对象 demo,并赋初值(30,"smith")。然后调用成员函数display()输出赋值结果,即Smitch:30。程序结束时demo对象的析构函数被调用,再输出“D”。

第9题:

有如下定义

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]);


正确答案:B