根据下面的定义,能打印出字母M的语句是()。struct person{char name[9];int age;}; structpersonc

题目

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

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

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

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

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

参考答案和解析
正确答案:B
解析:在结构体数组class[10]的初始化列表中只有第5个初始值中包含大写字母M,而该结构体只有两个成员变量,所以每两个初始值初始化一个数组元素,故第5个初始值是属于第3个数组元素class[2]的前一个成员变量的,选项A和C不正确。又因为‘M’是“Mary”的第一个元素,所以应该输出class[2]的name[0],B是正确答案。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

【单选题】根据下面的定义,能打印出字母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]);


printf ("%c", c [2].Name [0] );

第2题:

【单选题】根据下面的定义,能打印出字母“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[l]);

C.Printf("%cn",class[2].name[l]);

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


D

第3题:

【单选题】根据下面的定义,能打印出字母M的语句是_____。 structperson { char name[9]; int age;}; structperson 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]);


printf ("%c", c [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]);


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

第5题:

根据下面的定义,能打印出字母P的语句是() struct person { char name[9]; int age;}; struct person classes[10]={"John",17, "Paul",19,"Mary",18, "Adam",16};

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

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

C.printf("%cn",classes[1].name[0]);

D.printf("%cn",classes[1].name[1]);


D

第6题:

【单选题】根据下面的定义,能打印出字母 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]);


D

第7题:

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

第8题:

使用VC6打开考生文件夹下的工程test4_3。此工程包含一个源程序文件test4_3.cpp,其对一个学校的教师和考生情况进行了描述。由于教师和考生之间有相同的信息,如姓名、年龄等,所以可抽象出一个基类person,考生类student和教师类teacher作为person类的派生类。请按要求完成下列操作,将程序中的类定义补充完整。

(1)定义基类person的私有数据成员name和age,分别用于表示姓名和年龄,name为字符指针,age为血型的数据。请在注释“//**1**”之后添加适当的语句。

(2)完成基类person的重载构造函数person(char *mint a)的定义,把数据成员name,age分别初始化为参数n,a的值,请在注释“//**2**”之后添加适当的语句。

(3)根据主函数main中对s1的声明,定义派生类student的构造函数。在注释“//**3**”之后添加适当的语句。

(4)完成派生类teacher成员函数void setinf(ehar *n,int a,char *d,char *1)的定义,其功能为记录教师的姓名、年龄、院,系与职称信息。请在注释“//**4**”之后添加适当的语句。

输出结果如下:

刘雷(45)destructor

蒋军(23)destructor

注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。

源程序文件test4_3.cpp清单如下:

include<iostream.h>

class person

{

//**1**

public:

person(){}

person(char *n,int a)

{

//**2**

}

void setname(char *n){name=n;)

void setage(int a){age=a;}

~person(){cout<<name<<"("<<age<<")destructor"<<endl;)

};

class student:public person

{

char *department;

int code;

public:

//**3**

{

department=d;

code=c;

}

};

class teacher:public person

{

char *department;

char *level;

public:

teacher(){}

void setinf(char *n,int a,char *d,char *1)

{

//**4**

department=d;

level=1;

}

};

void main()

{

student s1("蒋军",23,"计算机学院",2);

teacher t1;

t1.setinf("刘雷",45,"计算机学院","教授");

}


正确答案:(1) char *name; int age; (2) name=n; age=a; (3) student(char *nint achar *dint c):persomn(na) (4) setname(n); setage(a);
(1) char *name; int age; (2) name=n; age=a; (3) student(char *n,int a,char *d,int c):persomn(n,a) (4) setname(n); setage(a); 解析:本题考查考生对类的继承与派生的掌握,包括派生类对基类成员的访问和派生类构造函数的定义等知识点。注意派生类构造函数传递参数的功能。

第9题:

根据下面的定义,能印出字母m的语句是()根据下面的定义,能印出字母M的语句是()structperson{charname[9];intage;};structpersonclass[10]={“john”,17,“paul”,19,“mary”,18,“adam”,16};。

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”,clsaa[2].name[0]);


正确答案:D