PTA第四章错题

1-3
表达式 (3==x==3) 的值恒为0

对。x的值不确定,一般来讲变量没有附初值的时候,某些IDM就会将变量弄成零。

1-9
if(a=5) 是允许的。对

1-10
如果变量已经正确定义,则执行以下程序段后,x的值不变。

x = 4; 
if (x < 0){ 
    y = -1;
}else if (x = 0){
    y = 0;
}else{ 
    y = 1;
}  

不对。第一个else if中将x赋值为0,要注意这种小陷阱

2-5
要调用数学函数时,在#include命令行中应包含__C__。
(2分)
A.
“stdio.h”
B.
“string.h”
C.
“math.h”
D.
“ctype.h”

2-6
判断 i 和 j 至少有一个值为非0的表达式是__C__。
(2)
A.i!=0 && j!=0
B.i+j!=0
C.i || j
D.i&&j

2-8
为表示“a和b都不等于0”,应使用的C语言表达式是(D)。
(1分)
A.(a!=0) || (b!=0)
B.a || b
C.!(a=0)&&(b!=0)
D.a && b

2-9
设 x、y、t均为int型变量,则执行语句:
x=y=3; t= ++x || ++y; 后,
y的值为__B__。
(2)
A.不定值
B.3
C.4
D.1

2-15
语句if(x=0) y=1; else y=2;与(B )等价。
(1分)
A.if(x!=0) y=2; else y=1;
B.x=0; if(x0) y=2; else y=1;
C.if(x
0) y=1; else y=2;
D.if(x=0) y=2; else y=1;

一个等号是赋值,如果在if语句中就是判断变量的值,非零为真。(个人感觉这样写没有什么意义:if语句主要是判断(可以有多个分支),如果直接赋值,就是先后顺序)
两个等号是判断,在if语句中就是判断等号两边的数值是否一样(相等)。

4-2
写出执行以下程序段后变量的值。请注意,直接填数字,前后不要加空格等任何其他字符。

int x, y;
scanf("%d", &x);
if (x > 0){ 
    y = 1;
}else if (x = 0){
    y = 0;
}else{
   y = -1;
}    

输入10,x的值是10
若输入-10,x的值是0

你可能感兴趣的:(PTA,c语言)