25、下面程序段的运行结果是------ .

问题描述:

25、下面程序段的运行结果是______ .
for(y=1; y<10; ) y=((x=3*y,x+1),x-1);
printf(“x=%d,y=%d,x,y”);
A.x=27,
y=27
B.x=12,y=13
C.x=15,y=14
D.x=y=27
29、以下程序段______ .
int x=-1;
do
{x=x*x;}
while(!x);
A.是死循环
B.循环执行二次
C.循环执行一次
D.有语法错误
1个回答 分类:综合 2014-10-05

问题解答:

我来补答
第一题选C
第一次循环之前y=1,进入循环后先算x,x=3*y=3,然后再计算y,y的值取括号中最后一组计算结果,即x-1=2;
第二次循环之前y=2,进入循环之后先算x,x=3*y=6,然后计算y,y的值取括号中最后一组计算结果,即x-1=5;
第二次循环之前y=5,进入循环之后先算x,x=3*y=15,然后计算y,y的值取括号中最后一组计算结果,即x-1=14;
此时y的值超过10了,退出循环,最终x=15,y=14
顺便说一下,你最后的输出语句中双引号应该括在逗号之前,即printf(“x=%d,y=%d",x,y);,否则无法正确打印出x和y的值
第二题选C
进入循环之前x=-1
首次肯定会进入循环,计算x=x*x=(-1)*(-1)=1
然后判断!x,即x的非运算,1取非得0,而0代表假,所以不会再进入循环,循环只执行了一次.
 
 
展开全文阅读
剩余:2000
上一页:质点位移问题
也许感兴趣的知识