程序填充题(
6
题,
5
?/p>
/
题,?/p>
30
分)
1
、下列代码欲实现将一个二进制字符串转换为整数。请填写缺少的语句:
char *p = "1010110001100 ";
int n=0;
for(int i=0; i< strlen(p); i++) {
;
}
printf(" %d\n ", n);
【分
数?/p>
5
?/p>
【评分标准?/p>
n=n*2+(*(p+i)-48)
?/p>
5
分?/p>
2
、计?/p>
3
?/p>
A
?/p>
2
?/p>
B
可以组成多少种排列的问题(如?/p>
AAABB
?/p>
AABBA
)属于组合数
学的研究领域。下列程序将计算?/p>
m
?/p>
A
?/p>
n
?/p>
B
可以组合成多少个不同的排列。请补充
缺少的代码?/p>
int f(int m, int n)
{
if(m==0 || n==0) return 1;
return
;
}
【分
数?/p>
5
?/p>
【评分标准?/p>
f(m-1,n)+f(m,n-1)
?/p>
5
分?/p>
3
、下列代码是把一个缓冲区中的整数重新排列,使得所有负数都在正数的左边。请分析?/p>
工作流程,补充缺失的代码?/p>
void reorder(int *pData, int len)
{
if(pData == NULL || len == 0) return;
int *pBegin = pData;
int *pEnd =
?/p>
;
while(pBegin < pEnd) {