C语言的问题,求解释 5
A)a=a+7
B)a=7+b+c,a++
C)int(12.3%4)
D)a=a+7=c+b
求一一解释,谢谢啦 展开
A。对。举个例子:
#include<stdio.h>
int main()
{ int a=1;
a=a+7; printf("%d\n",a);
return 0;
}
B.不对,虽然能得到正确答案,但不符合c语言语法。a=7+b+c,a++;应该为a=7+b+c;a++;
a=7+b+c与a++是两个语句,应该用分号隔开,而不是用逗号!
举例:
#include<stdio.h>
int main()
{ int a=1,b=1,c=1;
a=7+b+c,a++;
printf("%d\n",a);
return 0;
}
#include<stdio.h>
int main()
{ int a=1,b=1,c=1;
a=7+b+c;a++;
printf("%d\n",a);
return 0;
}
C.错误。
举例:
#include<stdio.h>
int main()
{ int a;
printf("%d\n",int(12.3%4));
return 0;
}
即使是int(12%4),也不对啊。举例:
#include<stdio.h>
int main()
{ int a;
printf("%d\n",a=int(12%4));
return 0;
}
D.错的。“=”,两边都不等。系统肯定无法判断要把那个值输出了。
#include<stdio.h>
int main()
{ int a=1,b=1,c=2;
a=a+7=c+b; printf("%d\n",a);
return 0;
}
A就是把a加上7之后再把计算出的值赋给a。
B也是错的。本意是把b,c,7相加后赋给a,再把a加上1得到的值赋给a,可是却用“,”连接。应该用“;”连接。
C是错的,因为%取余符号左右应该是整数吧。
D也是错的,因为a+7不是左值,所以不能直接赋值。
我觉得选A吧~