int fun(int x) {
int t;
f(-1), f(0), f(1) f(2) f(3)
if(x<=0)
-1 0 -1 -1 -2
t=x; else
t=fun(x-1)+fun(x-2);
return t;
}
void main() {
int i;
for(i=1;i<=3;i++)
printf(\
}
28. 下列程序将会打印出__9#1#___。
#include
#define my_square_add(a, b) (a * a + b * b)
宏定义展开
#define my_square_sub(a, b) (a * a - b * b)
msadd(a+b,b) ? a+b*a+b+b*b = 9
int main()
mssub(a+b,b) ? a+b*a+b-b*b = 1
{
int a = 1, b = 2;
printf(\ printf(\ return 0; }
29. 下列程序的输出结果是_1#3#5#____。
执行f(0)后:static k=1,返回1+0=1
# include
执行f(1)后:static k=2,返回2+1=3
int f(int x)
执行f(2)后:static k=3,返回3+2=5
{ static int k=0; return ++k+x;
}
main( ) { int k;
for(k=0;k<3;k++) printf(\}
30. 下列命令行参数程序生成的执行程序为,执行test 123 abc<回车>,输出结果是
_abc#123#____。
argc 为3
# include
argv[0]为test
main(int argc,char *argv[])
argv[1]为123
{
argv[2]为abc while的条件表达式为while(--argc)
printf(\--argc,所以当argc为3、2
时,该条件成立。条件成立}
时,分别输出argv[2]和argv[1]。因此答案为。。。。 31. 假设有下列函数定义:
void foo(int sum) {
int j;
for (j = 0; j < 10; ++j) sum += (j + 1) * sum; }
在main函数中有如下代码段:
Main函数调用foo(sum)之后,sum的值不 int sum = 0;
会被foo函数改变。 foo(sum);
printf(“%d”, sum);
执行后,输出结果为___0______。