若有以下说明和语句:struct st{int n;char * ch;};struct st a[3]={5,"abc",7,"def",9,"ghk"},*p

题目

若有以下说明和语句: 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.++p->n

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

若有以下定义和语句 struct a { int n,m;}; struct a st[3]={{1,20},{2,19},{3,21}}; struct a*p=st; 则以下错误的引用是

A.(p++)->n;

B.st[0].n;

C.(*p).n;

D.p=&st.m;


正确答案:D
解析:可以用以下三种形式来引用结构体变量中的成员:结构体变量名.成员名、指针变量名->成员名和(*指针变量名).成员名。选项D)中“&st.m”取的是结构体中成员的地址而不是结构的地址。

第2题:

若有以下说明和语句: 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.++p->n


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

第3题:

若有以下说明和语句: 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.++p->n


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

第4题:

若有以下说明和语句: 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.++p->n


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

第5题:

若有下列说明和语句,则对结构体变量st中成员i的引用方式不正确的是( )。Struct stu{ int i; int name;}st,*p;p=&st;

A.st.i

B.*p.i

C.(*p).i

D.p->i


正确答案:B
解析:本题主要考查结构指针:p=&st,访问结构体的成员,可以通过结构变量访问,即st.i,也可以用等价的指针形式,即(*p).i和p->1。

第6题:

若有以下定义和语句 struct a{ int n,m;}; struct a st[3]={{2,3},{4,5},{6,7}}; struct a*p=st;则以下错误的引用是A.(p++)->n; B.st[0].n; C.(*p).n; D.P=&st.m,


正确答案:D
题目中给出了一个结构体,结构体类型名为 struct  a。该结构体成员列表包括两个整型变量。随后定义了一个结构体数组st[3],该数组的大小为3,同时定义了一个结构体指针p,指向数组st。
选项A为(p++)->n,是指先将p的指针执行++操作,指向st[1],然后得到该结构体变量中的值n。
选项B为st[0].n,这个是标准的结构体数组变量引用,得到结构体数组变量st[0]中的值n。
选项C为(*p).n,该表达式与p->n是等价的,得到当前指针所指结构体变量中的值n。
选项D为p=&st.m,该选项是错误的。若p是一个定义过的指向结构体变量的指针,则用它指向结构体变量的某一个成员,编译时将指出地址的类型不匹配。

第7题:

若有下列说明和语句,则对结构体变量st中成员i的引用方式不正确的是( )。 Struct stu { int i; int name; }st,*p; p=&st;

A.st.i

B.*p.i

C.(*p).i

D.p->i


正确答案:B
解析: 本题主要考查结构指针:p=&st,访问结构体的成员,可以通过结构变量访问,即st.i,也可以用等价的指针形式,即(*p).i和p->i。

第8题:

若有以下说明和语句: 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。

第9题:

若有以下说明和语句:sturct 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)++p->n


正确答案:D
*p=a,使p指向a的首地址,p->n的值为5,++5的值为6.