6
因为a=f(0)+f(1)+f(2)=1+2+3=6
其中s的值在每次调用时都初始化为1;而i是静态变量,初始化只执行一次,本次执行结束时i的值会保留到下次调用时继续存在。所以三次调用开始时,i的值分别为0,1,2
//问题1:
#include <stdio.h>
int main()
{
char s1[]="abcde", s2[10]
int i=0
while( s1[i] !='\0')
{
s2[ i ]= s1[ i ]+3 //把数组s1[i]的值+3,然后复制到s2数组中
i++
}
s2[ i ]= '\0' //添加字符串结束符
printf("%s", s2)
//最后输出:defgh
return 0
}
//问题 2:
#include <stdio.h>
int main()
{
char ch1='A',ch2='B'
switch(ch1)
{
case 'A': // ch1='A',所以执行这句
switch(ch2)
{
case 'B': //ch2='B',所以执行这句
printf("Good! ")
break
case'A':
printf("Better! ")
break
}
//因为这里没有 break 语句,程序继续向下运行。
case 'B':
printf("Best!\n") //所以,会执行这句。
break //遇到break退出switch语句
}
//最后输出:Good! Best!
return 0
}
//问题 3:
#include <stdio.h>
int age(int n)
{
int c
if(n==1)
c=10 //当 n=1时,返回 10
else
c=age(n-1)+2 //嵌套调用,把 age函数返回的数据 +2 后,输出。
return(c)
}
int main()
{
printf("%d",age(5))//经过5次嵌套,实际过程是 10+2+2+2+2 = 18
//最后输出:18
return 0
}
try(void)是一个函数,void表示参数为空,即不需要外部传参数。在main()主函数中循环调用try(void)函数,一共调用了3次,第一次调用后x=4,第二次调用后x=5,第三次调用后x=6.
所以结果输出是6。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)