关于循环结构的问题

来源:百度知道 编辑:UC知道 时间:2024/05/07 03:00:40
1.#include<stidio.h>
int a=3;
main()
{ int s=0;
{
int a=5;
s+=a++;
}
s+=a++;printf("%d\n",s);
}
程序运行后的输出结果是8 为什么啊?
2.a=1;b=2;c=2;
while(a<b<c){t=a;a=b;b=t;c++;};
printf("%d,%d,%d",a,b,c);
答案是1,2,0 为什么?
3.#include<stido.h>
main()
{ char c;
while((c=getchar())!=`?`)putchar(--c);
}
程序运行时,如果从键盘输入:Y?N?<回车>,则输出结果为X 为什么?

1
#include<stidio.h>
int a=3;
main()
{ int s=0;
{
int a=5;
s+=a++; //s = s + 5;//s = 5,这里的是{}内的a
}
s+=a++;//s = s + 3;//s = 8,这里的是全局变量a
printf("%d\n",s);
}

2
死循环,请检查程序
a=1;b=2;c=2;
while(a<b<c){t=a;a=b;b=t;c--;}
printf("%d,%d,%d",a,b,c);
改成上面有你要的效果
第一次
a = 1;b = 2; c= 2;
a<b<c = (a<b)<c = (1 < 2) < 2 = 1 < 2 = 真
交换a,b c的值减1
第二次
a = 2; b = 1; c = 1
a<b<c = (a<b)<c = (2 < 1) < 1 = 0 < 1 = 真
交换a,b c的值减1
a = 1; b = 2; c = 0
a<b<c = (a<b)<c = (1 < 2) < 0 = 1 < 0 = 假
结束循环
a = 1; b = 2; c = 0
晕,一开始写反了...现在改了

3
输入流为Y?N?
第一次c='Y',输出 X
第二次c='?',终止循环
程序结束

1.#include<stdio.h>
int a=3;
main()
{ int s=0; //定义main()内的局部变量s
{
int a=5; //定义局部变量a