此题有两个要点,1是局部变量与全局变量的作用范围,2是,函数f(&&a)返回的是表达式 (a)++的值,而不 a的值。
第四类,把关系表达式有别于数学上的关系式
题例:有以下程序
main()
{ int a=5,b=4,c=3,d=2;
if(a>b>c)
printf("%d\n",d);
else if((c-1>=d)==1)
printf("%d\n",d+1);
else
printf("%d\n",d+2);
}
执行后输出结果是 ( )
(A)2 (B)3
(C)4 (D)编译时有错,无结果
这道题的关键在(a>b>c),答案容易判断为A,5大于4也大于3,就把整个表达式判断为真值,其实,a>b已为真值,1>c则成了假值,所以答案为B。
第五类,字符串的拷贝,
拷成了同一个字符
题例:若有定义语句:char s[100],d[100]; int j=0, i=0;,且s中已赋字符串,请填空以实现字符串拷贝。(注:不得使用逗号表达式)
while([i]){ d[j]= 【 】;j++;}
d[j]=0;
这里容易只看到当前,忽略了还有其他字符,错填为s[i]。答案为s[i++]。
责任编辑:小草