C语言程序题
有以下程序main(){intx=0,y=5,z=3;while(z-->0&&++x<5?x:y--)y=y-1printf("%d,%d,%d\n",x,y,z);}...
有以下程序
main()
{int x=0,y=5,z=3;
while(z-->0&&++x<5?x:y--)y=y-1
printf("%d,%d,%d\n",x,y,z);
}
写下程序运行过程啊.
4.已知:
struct st
{ int n;
struct st *next;
};
static struct st a[3]={1,&a[1],3,a&[2],5,&a[0]},*p;
如果下述语句的显示是2,则对p的赋值是()
A:P=&A[0]; B:p=&a[1]; C:p=&a[2];
第一题是求出运行的结果是() 第一答案是3,-1,-2.
第2题printf("%d",++(p->next->n)); 展开
main()
{int x=0,y=5,z=3;
while(z-->0&&++x<5?x:y--)y=y-1
printf("%d,%d,%d\n",x,y,z);
}
写下程序运行过程啊.
4.已知:
struct st
{ int n;
struct st *next;
};
static struct st a[3]={1,&a[1],3,a&[2],5,&a[0]},*p;
如果下述语句的显示是2,则对p的赋值是()
A:P=&A[0]; B:p=&a[1]; C:p=&a[2];
第一题是求出运行的结果是() 第一答案是3,-1,-2.
第2题printf("%d",++(p->next->n)); 展开
展开全部
第一题:
这里主要考点是while循环条件的运算符组合问题,按着运算符的优先级规定,条件运算符低于逻辑与运算符,此表达式是如下这样组合的:
while(((z-->0)&&(++x<5))?x:y--)
因此最终决定循环结束的是x和y值,经过第一次运算
z==2,x==1,y==4
这时可看出,决定循环的变成只有y值,因为x值已经增为1,并且表达式中对x的操作只增加没有减少,只有条件运算表达式中条件为假,同时y值等于0时,循环才会结束。这样如下结果:
x——y——z
第一轮循环判断完:
1——4——2
第二轮
2——3——1
第三轮:
3 —— 2 —— 0 //这里注意,逻辑与运算中,一旦前一个表达式值为假,那么不会去对第二个表达式进行判断,因为逻辑与运算中只要有一个为假,那么结果就是假,因此在z<=0以后不会执行到++x<5。因此x值就定格在了3
第四轮:
3 —— 0 —— (-1)
第五轮:
3 —— (-1) —— (-2)
第二题:
a是结构体数组,在赋值后各成员获得值情况如下:
a[0].n==1,a[0].next == &a[1]
a[1].n==3,a[1].next == &a[2]
a[2].n==5,a[2].next == &a[0]
++(p->next->n),最终输出的是n值,并且是n值增1后等于2,
因此只有结构体数组a[0]的n值符合条件,接着就看谁的next指针
指向了a[0],而只有a[2]的next指针取的是a[0]的地址,因此p指针取的是a[2]的地址。选择c.p=&a[2];
这里主要考点是while循环条件的运算符组合问题,按着运算符的优先级规定,条件运算符低于逻辑与运算符,此表达式是如下这样组合的:
while(((z-->0)&&(++x<5))?x:y--)
因此最终决定循环结束的是x和y值,经过第一次运算
z==2,x==1,y==4
这时可看出,决定循环的变成只有y值,因为x值已经增为1,并且表达式中对x的操作只增加没有减少,只有条件运算表达式中条件为假,同时y值等于0时,循环才会结束。这样如下结果:
x——y——z
第一轮循环判断完:
1——4——2
第二轮
2——3——1
第三轮:
3 —— 2 —— 0 //这里注意,逻辑与运算中,一旦前一个表达式值为假,那么不会去对第二个表达式进行判断,因为逻辑与运算中只要有一个为假,那么结果就是假,因此在z<=0以后不会执行到++x<5。因此x值就定格在了3
第四轮:
3 —— 0 —— (-1)
第五轮:
3 —— (-1) —— (-2)
第二题:
a是结构体数组,在赋值后各成员获得值情况如下:
a[0].n==1,a[0].next == &a[1]
a[1].n==3,a[1].next == &a[2]
a[2].n==5,a[2].next == &a[0]
++(p->next->n),最终输出的是n值,并且是n值增1后等于2,
因此只有结构体数组a[0]的n值符合条件,接着就看谁的next指针
指向了a[0],而只有a[2]的next指针取的是a[0]的地址,因此p指针取的是a[2]的地址。选择c.p=&a[2];
--
2022-12-05 广告
2022-12-05 广告
图形化编程简单理解为用积木块形式编程,scratch和python也是其中的一种,属于入门级编程,以其简单生动的画面获得无数学生的喜爱,深圳市创客火科技有限公司是一家做教育无人机的公司,旗下有编程无人机,积木无人机及室内外编队,每款飞机含有...
点击进入详情页
本回答由--提供
展开全部
第一题的运行结果是:3 -1 -2
运行过程:在第一轮结束后,x=1 y=4 z=2
在第二轮结束后,x=2 y=3 z=1
在第三轮结束后,x=3 y=2 z=0
在第四轮中,由于z=0,故while后的括号中,z--的值为0,z-->0不成立,出现短路,不再执行++x,整个语句的值为y的值2,循环结束后,x=3 y=0 z=-1
在第五轮中,z=-1,z-->0不成立,不再执行++x,括号中的语句的值为y--的值0,故循环终止,不再执行循环体,最后,x=3 y=-1 z=-2
第二题答案:C
运行过程:在第一轮结束后,x=1 y=4 z=2
在第二轮结束后,x=2 y=3 z=1
在第三轮结束后,x=3 y=2 z=0
在第四轮中,由于z=0,故while后的括号中,z--的值为0,z-->0不成立,出现短路,不再执行++x,整个语句的值为y的值2,循环结束后,x=3 y=0 z=-1
在第五轮中,z=-1,z-->0不成立,不再执行++x,括号中的语句的值为y--的值0,故循环终止,不再执行循环体,最后,x=3 y=-1 z=-2
第二题答案:C
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询