请教~C语言二级习题

这几道题目我都做错了,但不知道错在哪里。请高手指教!

第一题:
这题我搞了半天还是不知道希尔怎么算,请指点下啊!!
设有关键码序列(16,9,4,25,15,2,13,18,17,5,8,24),要按关键码值递增的次序排序,采用初始增量为4的希尔排序法,一趟扫描后的结果为?
标答是(15,2,4,18,16,5,8,24,17,9,13,25)

第二题:
已知char a=222; 执行语句a=a&052;后,变量a的值是?
标答是10

第三题:
fun(int a)
{ int b=0;static int c=3;
b++;c--;
return(a+b+c);
}
main()
{ int i,a=5;
for(i=0;i<3;i++)printf("%d %d",i,fun(a));
printf("\n");
}
标答是0 81 72 6

谢谢!!!

第一题:我不知道什么是希尔排序法;

第二题:&是按位与操作;052是八进制
换算成二进制后 a=11011110 ,052=00101010;所以 结果是10(十进制的)

第三题:static的问题。用了static的变量,其值不会随着函数的结束而消失,会被保存,所以,3次调用fun的时候c的值分别为3,2,1。所以导致答案的结果。
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜