-
注意:只有局部自动变量和形式参数可以作为寄存器变量;一个计算机系统中的寄存器数目有限,不能定义任意多个寄存器变量;局部静态变量不能定义为寄存器变量。
查看全部 -
%d 整形
%f 小数
%c 字符
%s 字符串查看全部 -
自定义的函数中可以有多个return语句,但是只能返回一个值
查看全部 -
函数的形参和实参具有以下特点:
形参只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量。
实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此应预先用赋值等办法使实参获得确定值。
在参数传递时,实参和形参在数量上,类型上,顺序上应严格一致,否则会发生类型不匹配”的错误。
查看全部 -
递归函数特点:
每一级函数调用时都有自己的变量,但是函数代码并不会得到复制,如计算5的阶乘时每递推一次变量都不同;
每次调用都会有一次返回,如计算5的阶乘时每递推一次都返回进行下一次;
递归函数中,位于递归调用前的语句和各级被调用函数具有相同的执行顺序;
递归函数中,位于递归调用后的语句的执行顺序和各个被调用函数的顺序相反;
递归函数中必须有终止语句。
一句话总结递归:自我调用且有完成状态。
查看全部 -
关于递归函数反向打印问题
1.递归函数中,位于递归调用前的语句和各级被调用函数具有相同的执行顺序;
2. 递归函数中,位于递归调用后的语句的执行顺序和各个被调用函数的顺序相反
如何理解这两句话,可以举个实际例子么
举例观察以下代码中printf的顺序:
#include <stdio.h>
a=0;
int getPeachNumber(n)
{
int num; //定义所剩桃子数
printf("第%d次\n",a++);
if(n==10)
{
return 1; //递归结束条件
}
else
{
num = (getPeachNumber(n+1)+1)*2; //这里是不应该用递归呢?
printf("第%d天所剩桃子%d个\n", n, num); //天数,所剩桃子个数
}
return num;
}
int main()
{
int num = getPeachNumber(1);
printf("猴子第一天摘了:%d个桃子。\n", num);
return 0;
}
查看全部 -
猴子第一天摘下X个桃子,当时就吃了一半,还不过瘾,就又多吃了一个。
设第二天剩下的桃子数为Y。则 Y=1/2*X-1 反过来X=(Y+1)*2
换算到该题中,设所求天数为n,此时 Y=n+1
查看全部 -
递归函数中,位于递归调用后的语句的执行顺序和各个被调用函数的顺序相反;
查看全部 -
假设n=5
factorial(5)=factorial(4)*5=factorial(3)*4*5=factorial(2)*3*4*5=factorial(1)*2*3*4*5
又因为factorial(1)=1
所以 factorial(5)=1*2*3*4*5
查看全部 -
#include <stdio.h>
int calculate(int arr[],int a)
{
int arr1[4];
int i,sum,max,min,average;
sum=arr[0];
max=arr[0];
min=arr[0];
for(i=1;i<10;i++)
{
if(max<arr[i])
{
max = arr[i];
}
if(min>arr[i])
{
min=arr[i];
}
sum +=arr[i];
}
average = sum/10;
switch(a)
{
case 0:
return sum;
case 1:
return max;
case 2:
return min;
case 3:
return average;
default:
return 0;
}
}
int main()
{
int score[10]={67,98,75,63,82,79,81,91,66,84};
printf("总 分: %d\n",calculate(score,0));
printf("最高分: %d\n",calculate(score,1));
printf("最低分: %d\n",calculate(score,2));
printf("平均分: %d\n",calculate(score,3));
printf("降序排列:\n");
int temp,i,j;
for(i=0;i<10;i++)
{
temp = score[i];
for(j=9;j>i;j--)
{
if(score[i]<score[j])
{
score[i]=score[j];
score[j]=temp;
temp=score[i];
}
}
printf("%d,",score[i]);
}
查看全部 -
#include <stdio.h> int main() { int arr[3][3] = {{1,2,3},{4,5,6},{7,8,9}}; int i,j; int sum=0; for(i=0;i<3;i++) { for(j=0;j<3;j++) { if(i+j==2||i==j) { sum +=arr[i][j]; } } } printf("对角线元素之和是:%d\n",sum); return 0; }
查看全部 -
int 返回值类型
main 函数名称
() 是 参数 参数为空 ()为空
return 返回值
返回值必须与返回值相同
查看全部 -
第一个问题:void不需要返回值。第二个问题:如果在#include下面不是int main()的话,比如是int一个变量,下面需要这个变量的返回值的时候,就需要第一个return,最后的结尾还需一个return第三个问题:return=return 0;第四个问题:对的,可以这样说,只要没有return返回值的,基本上都是void,都没有返回值了,自然也就没法调用这个值。
查看全部 -
自定义的函数中可以有多个return语句,但是只能返回一个值
查看全部 -
jackResult函数没有返回值,不能用printf语句打印出来
查看全部
举报