有以下程序int sub(int n){ return(n%10+n/10); }main(){ int x,y; scanf("%d",&x); y=sub(s

题目

有以下程序int sub(int n){ return(n%10+n/10); }main(){ int x,y; scanf("%d",&x); y=sub(sub(x)); printf("%d\n",y);}若运行时输入:248<回车>,程序的输出结果是

参考答案和解析
正确答案:5
在本题中,程序首先定义了一个返回类型为整型的sub函数,该函数带有一个整型变量的形参,函数体中只有一条返回语句,用来返回表达式n%10+n/10的结果。n%10部分的作用是求一个多位整数的个位数,而n/10是用来求一个多位整数的除个位数以外各位组成的新整数,如234,经过n/10处理后得到结果23。
在主函数中,定义两个整型变量x和y,如果通过scanf语句从键盘给变量x输入一个初值248,然后嵌套调用sub函数,首先运行sub(248),返回的结果为8+24=32,然后运行sub(32),返回结果为2+3=5,并将该结果保存到变量y中,程序最后运行输出语句输出变量y的值,因此,程序最后的输出结果为5。
更多“有以下程序int sub(int n){ return(n%10+n/10); }main(){ int x,y; scanf("%d",&amp;x); y=sub(s ”相关问题