一、程序填空题
1 [填空题]
函数 fun 的功能是:将一副扑克牌编号为 1,2,3,…,53,54,以某种特定的方式洗
牌,这种方式是将这副牌分成两半,然后将它们交叉,并始终保持编号为 1 的牌在最上方,
如第一次这样洗牌后的结果为:1,28,2,29,…,53,27,54。两次洗牌后的结果为:1,
41,28,15,2,42…,53,40,27,14,54。
程序的功能是:输出经过 n 次这样洗牌后的结果。
请在程序的下画线处填入正确的内容,并把下画线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的 BLANK1.C 中。不得增行或删行,也不得更改程序
的结构!
试题程序:
参考解析:
【参考答案】 (1)b (2)2 (3)b[k]
【解题思路】
填空 1:for 循环中使用了一个数组 b.用来临时存放交换位置后的扑克牌,C 语言中变
量需要先声明后使甩,所以填空(1)处需要声明一个数组 b。答案为 b。
填空 2:第二个 for 循环是将数组 a 中前一半元素(即 1~27 编号的扑克牌)放人数组 b
的奇数位置,将数组 a 中的后一半元素(即 28~54 编号的扑克牌)放人数组 b 的偶数位置,
实现扑克牌的交叉洗牌。所以填空(2)处是数组 b 的起始值为 2 的偶数下标 2k,答案为 2。