1.
运行包含以下代码段的程序将可能进入死循环。
int i=0;
while(i>0)
{
i++;
cout<<i;
}
答案:❌ 死循环的定义是能够不停的执行下去。而本题中int最大达到2的31次方减1,当 i 递增到最大值后,就会溢出,将会变为负数,此时循环结束。
2.
执行以下程序段后,x
的值为0,y
的值为1。
int x, y;
if (x = 0) y = 0;
else y = 1;
答案:✔ if中语句不是判断句,而是赋值语句,相当于:int x ;if(x) y=0;因此条件为false,y=0不执行, 执行下一行y=1。
3.
为了检查以下省略else的if语句的分支是否正确,至少需要设计3组测试用例,即grade
的取值至少有三组(小于、大于、等于60)。
if(grade < 60)
{
printf("Fail\n");
}
答案:✔ 只要是比大小就三组以上样例,如果是判断,比如:a!=0 .只需要两组样例 。
4.
C语言程序是从源文件的第一条语句开始执行的。
答案:❌ C语言执行顺序一定是从mian函数开始,读到调用函数时再读调用函数内容。
5.
执行以下程序段后,k
的值为4。
int k = 3;
sizeof(++k);
答案: ❌ 因为sizeof中不进行计算,所以k依然是3,sizeof(++k)为4不受影响。