C语言的一道问题,可以请教一下么

string fun(int k)
{
    strint strList = "0123456789ABCDEF", numResult = "";
    stack<char> stk ;
    do{
        stk.push(strList[k % 16]);
        k/=16;
    }while(k != 0);
    while(!stk.empty())
    {
        numResult += stk.top();
        stk.top();
    }
    return numResult;}

这个函数运行 K=121的结果是多少?

代码有几处错误的地方,

这里是英文的括号

这里是string,不是strint

这里是stk.pop();,不然会进入死循环,f(121)的运行结果是79,也就是121的16进制表示