若有以下说明,则能打印出“Yu”的语句是______。struct samp{ char name[10];int number;}kk[3]={{"

题目

若有以下说明,则能打印出“Yu”的语句是______。 struct samp { char name[10]; int number; }kk[3]={{"WarBin",1},{"LiYu",2},{"LuHui",3}}; struct samp*str[3]; str[0]=&kk[0];str[1]=&kk[1];str[2]=&kk[2];

A.printf("%s\n",str[1].name[2]);

B.printf("%s\n",str[1]->name+2);

C.printf("%s\n",str[2].name[2]);

D.printf("%s\n",str[2]->name+2);

参考答案和解析
正确答案:B
解析:str是指针数组,每个元素存放的是指向结构体类型数据的地址,每个元素可看作是一个指针变量,通过结构体指针变量引用结构体变量各成员的形式有两种:一是(*指针变量名).成员名;二是指针变量名->成员名。本题可以是"(*str[1]).name+2"或"str[1]->name+2"。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

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

A.work.no

B.(*p).no

C.p->no

D.work->no


D

第2题:

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

A.work.no

B.(*p).no

C.p->no

D.work->no


work->no

第3题:

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

A.work.no

B.(*p).no

C.p->no

D.work->no


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

第4题:

若定义如下结构,则能打印出字母M的语句是()。 struct person{ char name[9]; int age;}; struct person class[10]={"Wujun",20, "Liudan",23, "Maling",21, "zhangming",22};

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

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

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

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


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

第5题:

如果Number=3,请指出下列语句的真与假。 If Number = 3, point out the truth and false of the following statements. Int(Number * Number) = Number * Number


错误

第6题:

若有以下定义,则能打印出字母M的语句是()。 struct person { char name[12]; int num; }; struct person class[8]={"Linan",20,"zhanghai",18,"Maming",23,"wanghua",25,"chenqi",17};

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

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

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

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


D

第7题:

若有以下说明,则能打印出”An”的语句的是( )。

A.

B.

C.

D.


正确答案:C
str是指针数组,每个元素存放的是指向结构体类型数据的地址,每个元素可看作是一个指针变量,通过结构体指针变量引用结构体变量各成员的形式有两种,一是(*指针变量名).成员名;二是指针变量名->成员名,本题可以是“(*str[1]).name+2”或“str[1].>name+2”。

第8题:

有以下程序: #include 〈iostream〉 #include 〈string〉 using namespace std; class visited { private: int number; char *name; public: static int glob; void set mes(char *a); }; void visited::set mes(char *a) { name=new char[strlen(A) +1]; strcpy(name,A) ; number=++glob; } int visited::glob-O; int main() { visited person[10]; int i; char str[8]; for(i=0;i<5;i++) { cin>>str; person[i] .set mes(str); } cout<

A.5

B.4

C.3

D.2


正确答案:A
解析:本题考核静态数据成员的应用。分析程序:①类visited中,定义了两个私有成员:整型变量number和指针变量name。两个公有成员:静态数据变量glob和函数setmes()。②在函数setmes中,把传入的字符串保存在类的私有成员name中,并把静态数据成员glob自加,同时赋值给私有成员number。通过以上分析可知,函数setmes()用来记录输入的名字(即来访者的姓名),静态数据变量glob用来记录有多少来访者。在主函数中,输入5个字符串(即5个来访者的姓名)后,用来记录来访者数目的静态数据成员glob的值变成5。所以程序最后的输出结果是5。

第9题:

若有以下说明和语句: struct st{int n;char*ch;} struct st a[3]={5,"abc"7,"def",9",ghk"),*p=a; 则值为6的表达式是______。

A.p++->n

B.p->n++

C.(*p).n++

D.#NAME?


正确答案:D
解析:根据结构变量的存储特点,p+l意味着增加地址值为结构体数组a的—个元素所占的字节数,即P++使p由a[0]指向a[1]起始地址。本题++p->n得到p指向的结构体变量中成员n的值使之加1。因为p指向数组a起始地址,p->n的值为5,再执行自加l运行,结果为6。