判断题
-
执行以下程序段,sum的值是55。(F)
int i, sum; for (i = 1; i <= 10; i++){ sum = sum + i; }
解析:sum没有初始化:sum=0
-
执行以下程序段,sum的值是0.75。(F)
int i; double sum; sum = 0; for (i = 2; i <= 4; i = i + 2){ sum = sum + 1/i; }
解析:sum=0
-
使用输入语句“scanf(" a=%d, b=%d", &a,&b);”给a赋值1,给b赋值2,输入数据的形式可以是 1, 2。 (T)解析:严格来说应该输入a=1,b=2;但输入1,2也是可以的 注意:不能把逗号替换成空格、回车、Tab键或遇非法字符(不属于数值的字符),会认为该数据结束。
-
int x; 计算(double)x后,x的类型为double。(F)
解析:(double)是强制类型转换,转换成double型,这里要注意一个问题,就是强制类型更转换只是生成一个中间结果,不会改变变量的类型。
-
若变量定义为double x;,则x % 2是符合C语言语法的表达式。(F)
解析:double表示双精度浮点数,也就是小数,取余运算%只能对整数做,因此不符合C语言语法。
- 在switch语句中,每一个的case常量表达式的值可以相同。(F)
-
若有int ⅰ=10, j=0;则执行完下面的语句后ⅰ的值为11。(F)
if (j = 0) ⅰ++; else ⅰ--;
解析:表达式j=0的值是0
if(j=0)就等于if(0)
0又代表假
所以执行else后的语句i--,10--值为9
-
break语句只能用于循环语句中。(F)
解析:对break只能用在循环体内和switch语句体内,不能单独使用或用于其它语句中。
选择题
-
定义变量 int a;,则表达式 a = 3, 5;执行过后,a的值和表达式的值分别是: A
A.3 , 5
B.5 , 3
C.3 , 3
D.5 , 5
解析:a=3,5;执行的时候是 (a=3),(5);,3会赋值给a,一个语句执行的顺序是从左往右,最后执行到5,所以表达式的值是5。
-
对于循环while(!e) 语句,!e等价于_C_。
A.e==0
B.e!=0
C.e==1
D.e!=1
-
下列程序段的输出结果是(C)。 (2分)
int main(void) { int a = 2, b = -1, c = 2; if(a < b) if(b < 0) c = 0; else c++; printf("%d\n",c); return 0; }
A.0
B.1
C.2
D.3
解析:else对应的是第二个if,所有c的值没变 -
下列程序段运行后x的值是 (B)
int a = 0, b = 0, c = 0, x = 35; if (!a)x--; else if (b); if (c)x = 3; else x = 4;
A.34
B.4
C.35
D.3