C++的几道题目

来源:百度知道 编辑:UC知道 时间:2024/05/22 08:02:53
1.设变量x,y,a,b,c,d的值为1,计算表达式(x=a!=b)&&(y=c!=d)后,变量x,y的值分别是:B
(A)0,0
(B)0,1
(C)1,0
(D)1,1
2.设变量定义int x=6,y,z;执行语句y=z=x--;y=x==z;后变量y的值是:0
3.设有变量定义int a[]={2,3,5,9,11,13},*pa=a,w;执行语句w=++(*++pa);后,变量w和*pa的值是:D
(A)3和3
(B)4和3
(C)3的4
(D)4和4
4.语句if(w)…;else…;中的表达式w的等价表示是:C
(A)w==0
(B)w==1
(C)w!=0
(D)w!=1
5.设有函数说明和变量定义:int max(int x,int y);int(*p)(int,int)=max;int a,b;以下正确调用函数的代码是:
(A)*p(a,b)
(B)p(a,b)
(C)*(p(a,b))
(D)p(&a,&b)
谢谢了,如果能附带些方法技巧就更好了,如果有好的方法技巧我给你加分哦

1.先计算 a!=b 为假,则a=0.因为后面是与运算,则右面表达式不用计算,y仍然为1

2.那两条语句相当于下面的语句:
z=x;x--;y=z;y=(x==z);
==优先级高于=

3.w=++(*++pa)相当于
++pa;++(*pa);w=*pa;

4,0为假,非0为真

5,B,p(a,b)等价于(*p)(a,b)

第一题主要考察!=和=的优先级问题和&&判断的机制前部分判断完已经确定为0则&&后的部分不再做判断了 选B
第二题 0
第三题 d
第四题 c
第五题a 函数指针的调用