几道C语言问题

a=1;while(a==5) a++; a++语句执行的次数为什么是4?

2.下面程序的运行结果是
main()
{ int a[6],i;
for(i=1;i<=6;i++)
{ a[i]=9*(i-2+4*(i>3))%5;
printf("%2d",a[i]);
}
} (看不懂4*(i>3)这段,为什么答案最后是- 40443)

3.下面程序段的运行结果是
int n=0;
while(n++<=2);printf("%d",n); 为什么最后答案是3?

第1个回答  2014-04-17
第1题
a++没有执行, 可能是你的程序有其他错误, 因为while里面不为真

第2题
4*(i>3) 就是先判断i是否大于3,如果大于3就是真,转换为int类型就是1,如果小于3就是假,转换为int类型就是0, 在C语言中会有类型转换,布尔类型转换为整型不需要强制转换
答案为什么是-404432因为,当i=1时, a[1]=-4, 当i=2时, a[2]=0,等等(这个你可要自己计算一下), 而你定义的a数组只有6个元素,数组是从0开始的,所在只到a[5],没有a[6]

第3题
因为while(n++<=2);这句多了一个" ; " 符号
第2个回答  2014-04-17
a++语句执行的次数为什么是4?——不是4,而是0。
2.看不懂4*(i>3)这段——当i为1、2、3时,4*(i>3)=4*0=0;而当i为4、5、6时,4*(i>3)=4*1=4。
3.为什么最后答案是3?——看见了吧?while(n++<=2);后面有个分号!所以当n<3时是不执行printf("%d",n);的,只有当n增加到3时,while循环停止,才执行printf("%d",n);印出3来。本回答被提问者和网友采纳
相似回答
大家正在搜