お言葉に甘えてネタ投下

関数search()が引数bitmapの最も右に
立っているbitの位置(右端が0)を返すように
{ ... } の部分に入る配列を答えなさい
ただし立っているbitが無い場合-1を返す

int search(unsigned long bitmap)
{
int smap[] = { ... };
int n = 0;
if(!(bitmap & 0xffff)){
bitmap >>= 16;
n += 16;
}
if(!(bitmap & 0xff)){
bitmap >>= 8;
n += 8;
}
if(!(bitmap & 0xf)){
bitmap >>= 4;
n += 4;
}
n += smap[bitmap & 0xf];
return n;
}