预测以下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