C程序的输出|集14

预测以下C程序的输出。 问题1

null

C

#include<stdio.h>
int main()
{
int a;
char *x;
x = ( char *) &a;
a = 512;
x[0] = 1;
x[1] = 2;
printf ( "%d" ,a);
getchar ();
return 0;
}


答:输出取决于 endianness 机器的。小端机的输出为513,大端机的输出为258。 让整数使用16位存储。在little endian机器中,当我们执行x[0]=1和x[1]=2时,数字a被更改为00000001 00000010,这是小endian机器中513的表示。32位数字的输出也相同。 在big-endian机器中,当我们执行x[0]=1和x[1]=2时,数字会更改为00000001 00000010,这是big-endian机器中258的表示。 问题2

C

int main()
{
int f = 0, g = 1;
int i;
for (i = 0; i < 15; i++)
{
printf ( "%d " , f);
f = f + g;
g = f - g;
}
getchar ();
return 0;
}


回答:函数打印前15个 斐波那契数 . 问题3 解释以下函数的功能。

C

int func( int i)
{
if (i%2) return (i++);
else return func(func(i-1));
}


答:如果n是奇数,则返回n,否则返回(n-1)。如果n是12,那么我们得到 11 如果n是11,那么我们得到11。 如果您发现任何答案/解释不正确,或者您想分享有关上述主题的更多信息,请发表评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享