一、实验目的
掌握C语言运算符的优先级和结合方向。
二、实验内容
(一)、题目1
若有定义int x,a,b,c;
写出顺序执行下列表达式后x的值,然后通过程序验证。
① x=a=b=10 x=10
② x=25%(c=3) x=1
③ x+=2+3 x=6
④ x/=(x+(x%=2),(a&&5+3)) x=6 错误
⑤ x*=x+=x-=x x=0
⑥ x=((a=4%3,a!=1),++x>10) x=0
要求:先写出运算结果,然后利用程序验证。
(二)、题目2
若有定义int a=2,b=-3,c=4; 计算下列各表达式的值,然后通过程序验证。
要求:先写出运算结果,然后利用程序验证。
① a>b&&b>c 0
② !(b>c)+(b!=a)||(a+b) 1
③ a++-c+b -5
④ ++a-c+++b -2 错误
⑤ b%=c+a-c/7 -2 错误
⑥ (float)(a+b)/2+b -1
⑦ !(a==b+c)&&(a-a) 0
⑧ !c+1+c&&b+c/2 1题目1
#include
int main()
{
int x,a,b,c;
x = a = b = 10;
printf("x1 = %d\n",x);
x = 25%(c = 3);
printf("x2 = %d\n",x);
x+=2+3;
printf("x3 = %d\n",x);
x/=(x+(x%=2),(a&&5+3));
printf("x4 = %d\n",x);
x*=x+=x-=x;
printf("x5 = %d\n",x);
x = ((a = 4%3,a!=1),++x>10);
printf("x6 = %d\n",x);
return 0;
}
题目2
#include
int main()
{
int a = 2,b = -3,c = 4;
printf("1 = %d\n",a>b&&b>c);
printf("2 = %d\n",!(b>c)+(b!=a)||a+b);
printf("3 = %d\n",a++-c+b);
printf("4 = %d\n",++a-c+++b);
b%=c+a-c/7;
printf("5 = %d\n",b);
printf("6 = %d\n",(float)(a+b)/2+b);
printf("7 = %d\n",!(a==b+c)&&(a-a));
printf("8 = %d\n",!c+1+c&&b+c/2);
return 0;
}