我们来分析下:
1)先传递0和1234给fun函数,因为s2>10,函数往下执行,s1=4,然后把s1和s2/10(123)再次传递给
fun函数。
2)由于s2/10(123)是第二次传递中s2<10判断式中的S2,他还是不能满足条件,函数往下执行。由于s1=s1*10+s2%10;s1变成了43,s2/10就是把123/10=12,把43和12再次传递给fun
3)12依然满足不了if的条件,根据上面的规则,s1变成43*10+12%10就是432,s2变成1
4)s2变成1满足if条件,函数返回s1*10+s2%10的值,其中s1传递过来的是432,s2是1,算出得4321.
在函数迭代过程把上一次的s1提升一个位数(乘以10)再与这一次的s2的个位数相加(s2%10),当s2已经是个位数的时候,迭代就开始返回了
这是一个递归 只看fun函数很容易发现它的作用是把s2倒叙加在s1后面 所以该题选A 4321
这明显是一个排序问题,SI和S2比较以后,取大的,所以先取到的是4,依次是3,2,1如此排序,C语言教科书上就经典的冒泡排序法,你可以看看哇!记得选我哟
你的c有问题