A)a=9,b=9,c=9 B)a=8,b=8,c=10 C)a=9,b=10,c=9 D)a=8,b=8,c=9 参考答案:B
参考分析:首先x进行--操作,x为9,然后与y进行等于比较,即9==9,然后y++为10。由于比较结果为真,故计算--x,为8,赋给a。
4.32 阅读以下程序,则执行下面语句后m的值是 。
int w=1,x=2,y=3,z=4,m; m=w A)1    B)2    C)3    D)4 参考答案:A  4.33 若有int w=1,x=2,y=3,z=4;则表达式w A)4    B)3    C)2    D)1 参考答案:D  *4.34 执行以下程序后的输出结果是      。  int w=3,z=7,x=10;  printf(\printf(\printf(\printf(\ A)0111    B)1111    C)0101    D)0100 参考答案:C 4.2 填空题  *4.35 若int a=3,b=2,c=1,f;表达式f=a>b>c的值是(  )。 参考答案:0  参考分析:计算过程如下,a>b计算为真,然后计算 真(1)>c,结果为假 4.36 若int a=5,b=4,c=2;表达式a>b!=c的值是(  )。 参考答案:1  *4.37 以下程序的运行结果是(  )。  #include  {int x=1,y,z; x*=3+2;  printf(\x*=y=z=5;  printf(\x=y==z;  printf(\}  参考答案:5□□□□□□□25□□□□□□1(制表符为7个) 4.38 在C语言中,表示逻辑―真‖值用(  )。 参考答案:非0的数值。  *4.39 设y为int型变量,请写出描述―y是奇数‖的表达式(  )。 参考答案:y%2==1  y%2!=0  y%2  (y-1)%2==0  !(y%2==0) 4.40 c语言提供的三种逻辑运算符是( )、( )和( )。 参考答案:&&  ||   !    4.41 设x,y,z均为int型变量,请写出描述―x或y中有一个小于z‖的表达式(  )。 参考答案:x *4.42设x,y,z均为int型变量,请写出描述―x,y,z中有两个为负数‖的表达式(  )。 参考答案:x*y*z>=0&&((x<0&&y<0)||(x<0&&z<0)||(y<0&&z<0))  参考分析:原书提供的答案是(x<0&&y<0)||(x<0&&z<0)||(y<0&&z<0),但当三个变量均为负数时不合适,后来本人思考了一个试图简化一些的答案,即x*y*z>0&&(x<0||y<0||z<0) 可是若有一个变量为零,其他为负数时也不合适,只有参考答案才无懈可击。  4.43 已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||AB的值是( )。 参考答案:0  参考分析:在本表达式的计算过程中A 4.44 若int a=6,b=4,c=2;表达式!(a-b)+c-1&&b+c/2的值是(  )。 参考答案:1  4.45 若a=2,b=4,则表达式!(x=a)||(y=b)&&0的值是(  )。 参考答案:0  4.46 若a=1,b=4,c=3,则表达式!(a 4.47 若a=6,b=4,c=3,则表达式a&&b+c||b-c的值是(  )。 参考答案:1  4.48 若a=5,b=2,c=1,则表达式a-b 4.49 若a=3,b=4,c=5,则表达式a||b+c&&b的值是(  )。 参考答案:1  4.50 条件―2 4.51 当m=2,n=1,a=1,b=2,c=3时,执行完d=(m=a!=b)&&(n=b>c)后,n的值为(  ),m的值为(  )。 参考答案:0  1  4.52 以下程序的运行结果是      。  main() {int x,y,z; x=1;y=2;z=3; x=y--<=x||x+y!=z; printf(\}  参考答案:1,1  参考分析:这是两个表达式的或运算,第一个表达式y--<=x相当于2<=1为假,y变量增为1,第二表达式x+y!=z相当于1+1!=3为真,故x的值为1。 4.53 以下程序的运行结果是      。  main()  {int a1,a2,b1,b2; int i=5,j=7,k=0; a1=!k; a2=i!=j;  printf(\b1=k&&j;    b2=k||j;  printf(\}  参考答案:a1=1    a2=1           b1=0    b2=1  *4.54 以下程序的运行结果是      。  main() {int x,y,z; x=1;y=1;z=0; x=x||y&&z;  printf(\}  参考答案:1,0  参考分析:本题采用短路算法,由于x为真,后面的或和与运算均被短路。 4.55 有int x,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值为(    )。 参考答案:1  4.56 有int x,y,z;且x=3,y=-4,z=5,则表达式!(x>y)+y!=z)||(x+y)&&(y-z)的值为(参考答案:1  4.57有int x,y,z;且x=3,y=-4,z=5,则表达式x++-y+(++z)的值为(    )。 参考答案:13  4.58 有int a=3,b=4,c=5;则表达式a||b+c&&b==c的值为(    )。 参考答案:1  4.59 有int a=3,b=4,c=5,x,y;则表达式!(x=a)&&(y=b)&&0的值为(    )。 参考答案:0  4.60 有int a=3,b=4,c=5;则表达式!(a+b)+c-1&&b+c/2的值为(    )。 参考答案:1  4.61 若运行时输入:16 #include  printf(\scanf(\if (year>=18)    printf(\else    printf(\}  参考答案:your $3.0 yuan/xiaoshi  4.62 若运行时输入:2 #include  printf(\scanf(\if (class=='1')     printf(\else     printf(\ 。    )   }  参考答案:2nd class postage is 14p  4.63 若运行时输入:4.4 #include  {float costprice,sellingprice; printf(\scanf(\if(costprice>=5)  {sellingprice=costprice+costprice*0.25;  printf(\} else  {sellingprice=costprice+costprice*0.30;  printf(\} }  参考答案:Selling Price(0.30)$  5.72 4.64 以下程序的运行结果是      。  main()  {if (2*2==5<2*2==4)   printf(\else    printf(\}  参考答案:F  *4.65 请阅读以下程序,若运行时输入:1605 main() {int t,h,m;  scanf(\h=t/100; if(h==0) h=12; printf(\m=t0;  if(m<10) printf(\printf(\if (t<1200||t==2400)   printf(\else     printf(\}  参考答案:4:05PM  4.66 以下程序实现:输入园的半径r和运算标志m,按照运算标志进行指定计算,请填空。  标志  运算 a   面积 c   周长  b   二者均计算