1.int a=5,则 ++(a++)的值是?
答案:编译出错
解析:
++ 是一目运算符,自增运算,它只能用于一个变量,即变量值自增1, 不能用于表达式。 ++(a++) 里,小括号优先。 (a++) 是 表达式,按运算规则,不能对 表达式 作 自增运算
2.考虑以下代码,fun(5)的结果为
int fun (int n) {
int x = 1, k;
if (n == 1) return x;
for(k = 1; k < n; ++k)
x = x + fun(k) * fun(n - k);
return x;
}
答案:51
解析:
f(1)=1;
f(2)=1+f(1)*f(1)=2;
f(3)=1+f(1)*f(2)+f(2)*f(1)=5;
f(4)=1+f(1)*f(3)+f(2)*f(2)+f(3)*f(1)=15;
f(5)=1+f(1)*f(4)+f(2)*f(3)+f(3)*f(2)+f(4)*f(1)=51;
3.若输入ab('a'的ascii码是97),程序运行结果为()
int main(){
static char a[3];
scanf("%s",a);
printf("%d,%d",a[1],a[2]);
return 0;
}
答案:98,0
解析:静态局部变量执行默认初始化,所以a的值为空格空格空格,输入ab以后,a[0]="a",a[1]="b",a[2]=" ",打印就是C
4.return只能返回一个符合返回类型的值,不能返回多个
5.指针就是地址,因此一个变量的指针就是该变量的地址。请问这句话的说法是正确的吗?
答案:错误
解析:一个变量的指针指向的内容才是这个变量的地址