下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922
试卷 > 软考初级 > 程序员 > 2026下半年软考程序员模考试卷(应用技术)及答案解析 > 本题我的试卷
试题三(15分) 阅读以下说明和C代码,填写程序中的空缺。 【说明】 黑洞数又称陷阱数,任何一个各位数字不全相同的整数,经有限次"重排求差"操作,总会得到某一个数或一些数,这些数即为黑洞数。例如:897,"重排求差"操作序列是987-789=198,981-189=792,972-279=693,963-369=594,954-459=495,954-459=495,再做下去就不变了,所以495是三位数字的黑洞数。 下面用代码实现,算法如下:通过键盘输入一个三位数字互不相同的三位数,然后用一个数组存储。每次计算三位数中的每一位上的数字,对这些数字进行排序后重组这个数组,分别用max和min保留这些数字所构成的最大的三位数和最小的三位数,将差值和前一次差值进行比较,如果相同,则表示这个差值就是黑洞数,如果不同,则将新的差值作为新的三位数。 【代码】

【问题1】(15分)请将代码中(1)~(6)空缺处的答案填写在答题纸对应位置。 (1)补充代码,和已有语句配合,求出三个数字里的最大值存入x; (2)补充代码,和已有语句配合,求出三个数字里的最小值存入z; (3)写出调用 sort 函数的实参,传入数组 a 三个元素的地址; (4)写出由排序后的数组元素构造最大三位数的表达式; (5)写出由排序后的数组元素构造最小三位数的表达式; (6)填写循环内更新 hole 变量的表达式。

参考答案
(1)*x = (*x >= c) ? *x : c (2)*z = (*z <= c) ? *z : c (3)&a[0], &a[1], &a[2] (4)a[0] * 100 + a[1] * 10 + a[2] (5)a[2] * 100 + a[1] * 10 + a[0] (6)max3 - min3 【解析】 本题考察指针作为函数参数、数位拆分和重排求差算法。 空(1)(2):sort函数要对三个数从大到小排序。*x存最大值,*z存最小值,需要和第三个数c比较更新。 空(3):调用sort函数,传入数组三个元素的地址。注意sort函数参数是指针,所以要用取地址符&。 空(4)(5):排序后a[0]最大,a[2]最小。最大三位数是a[0]×100+a[1]×10+a[2],最小三位数是a[2]×100+a[1]×10+a[0]。 空(6):如果当前差值不等于hole,则把新的差值max3-min3作为下一轮的hole继续计算。
答案解析
本题暂无答案解析,正确答案已在上方给出。