第一次s+=a++就是s=s+(a++)=0+5=5,然后a自加1变为6,第二个 s+=a++就变成了s=5+6=11,a自加过后变成了7;
第二题:B
do while循环最少都要执行一次循环,先执行do里面的循环体,所以x--=23,x=22,!x=0,退出循环
第三题:D
进入for循环,x=10,i=0,x>8为真,执行循环体,x--=10,y=10,此时x=9,然后回去执行y=++i之后,y=1 i=1,继续回到for循环的开始,i=1,x=9,x>8为真,进入循环体,x--=9,y=1,此时x=8,回去y=++i,y=2,i=2,继续回到for循环的开始,i=2,x=8,x>8为假,退出循环。
第四题:A
“<”“>”属于是逻辑运算,运算出来的值只能是0或1,a=1b=2c=2,先判定while循环的条件语句,(a<b<c)从左往右运算,a<b为真,表达式的值为1,然后1<c为真,整个条件语句就为真,进入循环体,(t=aa=bb=t就是做a与b值的交换)此时a=2,b=1,c--=2,c=1;回到条件判定,a<b为假,表达是的值为0,然后0<c为真,整个条件表达式为真,执行循环体中的语句过后,a=1,b=2,c--=1,c=0,回到条件判定,a<b为真,表达式的值为1,然后1<c为假,整个条件语句就为假,退出while循环,打印出最后a b c的值。
应该选B。
程序结果:
解析:
*p 表示p是一个储存地址的变量
在这个程序中当运行完p=a时,*p为"1",*p++也为"1"
*p++和*(p++)相同
printf的运行顺序是从左到右
*p++是把*p存储的地址+1,而p的存储地址是数组的第一个,所以相当于把p的指针往后移一位,也就是说把p指向的数组的位置往后移一位。所以就是321
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)