网友您好, 请在下方输入框内输入要搜索的题目:
题目内容
(请给出正确答案)
2-10 执行完下列语句后,a、b、c三个变量的值为多少? a = 30; b = a++; c = ++a;
参考答案和解析
D 解析:注意到本试题中x为结构体数组,则数组名x代表数组首地址。x[0]、x[1]代表结构体数组元素。对于指向结构体数组的指针变量p,每次“+1”则指向下一个结构体数组元素。本题中++p后,由x[0]改指向x[1]。结构体数组x在定义时赋初值,但未对结构体成员b赋初值。语句“x[0].b=x0;x[1].b=x1;”的作用是对结构体数组x的成员b赋初值。对于选项A,(++p)->a等价于x[1].a==200。选项B,*p->b等价于*(x->b)==*x0==110。选项C,*(p++)->b等价于*(x[0].b)==110=x0[0]。选项D,*(++p)->b等价于*(x[1].b)==210=x1[0]。注意,在测试以上1个选项的输出值时,不能放在同一个printf函数中进行输出。因为函数中的参数运算顺序在C语言中是自右向左进行的,而p的值又是不断变化的,所以相互之间会产生影响。
更多 “2-10 执行完下列语句后,a、b、c三个变量的值为多少? a = 30; b = a++; c = ++a;” 相关考题
考题
程序执行完这条语句后int i=1,j=1;i2+j;i的值是多少?A.1B.2C.8SXB
程序执行完这条语句后int i=1,j=1;i2+j;i的值是多少?A.1B.2C.8D.3
考题
单选题若有定义:int a=0,b=0,c=0,d=0; 有C语言表达式 (a++ b++)? c++ : d++,以下关于其执行顺序的叙述正确是( )。A
先执行a++,表达式a++的值为0,由此即可确定(a++ b++)值为0,因此执行d++B
先执行a++,表达式a++的值为0;再执行b++,表达式b++的值为0,由此可确定(a++ b++)值为0,因此执行d++C
先执行a++,表达式a++的值为1;再执行b++,表达式b++的值为1,由此可确定(a++ b++)值为1,因此执行c++D
先执行b++,表达式b++的值为1;再执行a++,表达式a++的值为1,由此可确定(a++ b++)值为1,因此执行c++
考题
单选题设有说明语句:intx;,执行语句x=10;x+=x-=x;后,变量x的值为()A
0B
10C
20D
30
热门标签
最新试卷