设有以下程序: struct st{int n;struct st *next;}; static struct st a[3]={5,&a[1],7,&amp

题目
设有以下程序: struct st{int n;struct st *next;}; static struct st a[3]={5,&a[1],7,&

设有以下程序: struct st{int n;struct st *next;}; static struct st a[3]={5,&a[1],7,&a[2],9,'\0'},*p; p=&a [0]; 下面选项中,表达式值为6的是______。

A.p++->n

B.p->n++

C.(*p).n++

D.++p->n

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

第1题:

设有下列说明语句: strcut str {int x; float y; char z;}st; 则下列的叙述中不正确的是( )。

A.struct是结构体类型的关键字

B.st是结构体类型名

C.x、y、x都是结构体成员名

D.struct str是结构体类型名


正确答案:B
解析:本题主要考查结构类型的定义:struct是结构体类型的关键字:structstr是结构体类型名;x、y、z都是结构体成员名:st是结构变量名。

第2题:

设有下列说明语句:

strcut str

{int x;float y;char z;}st;

则下列的叙述中不正确的是( )。

A.struct是结构体类型的关键字

B.st是结构体类型名

C.x、y、z都是结构体成员名

D.struct str是结构体类型名


正确答案:B
解析:本题主要考查结构类型的定义:struct是结构体类型的关键字;stmct str是结构体类型名;x、y、z都是结构体成员名;st是结构变量名。

第3题:

设有如下定义和声明:struct3{inta;structs*next};structsx[4]={1,&x[1],3,& x[2],5,&

设有如下定义和声明: struct 3 {int a; struct s *next }; struct s x[4]={1,&x[1],3,& x[2],5,&x[3],7,'\0'),*t; t=&x[0]; 则下列表达式值为2的是( )

A.++t->a

B.(*t).a++

C.t->a++

D.t++->a


正确答案:A

第4题:

08110052:以下定义结构体类型的变量st1,其中不正确的是()。

A.typedef struct student{ int num; int age; }STD; STD st1;

B.struct student{ int num ,age; }st1;

C.struct{ int num; float age; }st1;

D.struct student{ int num; int age; }; student st1;


C

第5题:

设有下列说明语句: Strcut Str {int x;float y;char z;}st; 则下列的叙述中不正确的是( )。

A.struct是结构体类型的关键字

B.st是结构体类型名

C.x、y、z都是结构体成员名

D.struct str是结构体类型名


正确答案:B
解析:本题主要考查结构类型的定义:struct是结构体类型的关键字;structstr是结构体类型名;x、y、z都是结构体成员名;st是结构变量名。

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

有以下程序: include struct NODE{int nurn;struct NODE *next; }; main() { struct

有以下程序:

#include <stdlib.h>

struct NODE{

int nurn;

struct NODE *next;

};

main()

{ struct NODE *p,*q,*r;

int sum=0;

P=(struct NODE*)malloc(sizeof(struct NODE));

q=(struct NODE*)malloc(sizeof(struct NODE));

r=(struct NODE*)malloc(sizeof(struct NODE));

p->num=1;q->num=2;r->num=3;

p->next=q;q->next=r;r->next=NULL;

sum+=q->next->num;sum+=p->num;

Printf("%d\n",sum);

}

执行后的输出结果是( )。

A.3

B.4

C.5

D.6


正确答案:B
解析:本题中定义了一个结点structNODE,在主函数中定义了三个结点变量指针p、q和r,接着通过malloc函数分配了三个结点并让p、q和r分别指向他们,再接着给p、q和r所指向的结点的num域赋值为1、2、3,然后让结点p指向小让q指向r,r指向NULL。显然q->next->num的值为指针r所指向结点的num域的值为3,p->num的值为指针p所指向结点的num域的值为1,故最后输出s的值为3+1=4。所以,4个选项中选项B符合题意。

第8题:

设有以下定义: char *st="how are you";下列程序段中正确的是______。

A.char a[11],*p;strcpy(p=a+1,&st[4]);

B.char a[11];strcpy(++a,st);

C.char a[11];strcpy(a,st);

D.char a[],*p;srtcpy(p=&a[1],st+2);


正确答案:A
解析:选项A表示把st所指串的第5个字符开始的后面的元素赋值给数组a的第2个元素开始的后面元素,形式正确;选项B中出现对数组名进行自加运算,因此错误:选项C中st所指字符串有11个字符,再加上'\0',有12个字符,超过数组长度,所以也是错误的;选项D的情况和选项C相似,也是形式正确,但超过了数组的长度。

第9题:

2、关于struct描述正确的是

A.struct不可以实现interface

B.struct可以包括无参数的默认构造函数

C.struct可以继承class

D.struct可以包括静态构造函数


struct可以包括静态构造函数

第10题:

下列序列检测器实现检测序列为“11101000”, 其verilog程序描述正确的是()。

A.说明部分程序 module sequ_detect(//检测序列11101000 input clk, input reset_n, input data_in, output check_flag ); localparam s0 = 0, s1= 1, s2 = 2, s3 = 3, s4 = 4, s5 = 5, s6 = 6, s7 = 7, s8 = 8; reg [3:0] c_st,next_st;#B.主控时序过程程序 always @(posedge clk,negedge reset_n) if(!reset_n) c_st <= 0; else c_st <= next_st;#C.主控组合过程程序 always @* case(c_st) s0 : if(data_in==1) next_st = s1; else next_st = s0; s1 : if(data_in==1) next_st = s2; el
正确