单选题
1 当a=1,b=3,c=5,d=4时,执行完下面的程序段后x的值是( )
if(a<b)if(c<d)x=1;else if(a<c)if(b<d)x=2;else x=3;else x=6;else x=7;
A: 1
B: 2
C: 3
D: 4
答案为B。
由于a<c且b<d,所以x=2
2 已知 int x=10, y=20, z=30;
以下语句执行后x, y, z的值是( )。
if(x>y)
z=x;x=y;y=z;
A: x=10,y=20,z=30
B: x=20,y=30,z=30
C: x=20,y=30,z=10
D: x=20,y=30,z=20
答案为B。
判断语句执行体里只有一个句子,即z=x,因为没有大括号.x=10,y=20,所以判断条件不符合,因此if语句不执行.接着执行下面的语句,x=y,此时x=y=20,y=20,z=30;再执行下一条,y=z,此时y=z=30,x=20,z=30,因此选B
3 下列表达式中,不满足“当x的值为偶数时值为真,为奇数时值为假”要求的是( )
A: x%2==0
B: !x%2!=0
C: (x/2*2-x)==0
D: !(x%2)
答案为B
这是运算符的优先级问题。
Ax%2==0
即.(x%2)0 ,x为偶,这x%2结果为0,00结果为真。
B!x%2!=0
即 ((!x)%2)!=0
由于先运算!x,所以结果跟x是否为偶数没有关系
C.由于x是整数,x/2结果也为整数,例9/2=4,偶数时x/2*2=x
,结果为真,奇数时x/2*2
不等于x
判断题
1 int a=5,*p;p=&a
;则p的值为5.
错误,
p为指针,是地址,并非真正的值。
2 两个指针在任何情况下相减都是有意义的。
正确,
指针相减是两个地址之间相减。