- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第1套、C语言操作
一、程序填空题
函数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中。
不得增行或删行,也不得更改程序的结构!
【2】参考答案
【1】b
【2】2
【3】b[k]
【3】解题思路
填空1:for循环中使用了一个数组b,用来临时存放交换位置后的牌,C语
言中变量需要先后使用,所以填空(1)处需要一个数组b。答案为b
填空2:第二个for循环是将数组a中前一半元素(即1-27编号的牌)放入数
组b的奇数位置,将数组a中的后一半元素(即28-54编号的牌)放入数组
b的偶数位置,实现牌的交叉洗牌。所以填空2是数组b的起始值为2的
偶数下标2k,答案为2.
填空3:由于数组b属于函数中的临时变量,所以将数组a的元素交叉到数
组b后,还需要将数组b的元素依次赋值给数组a,第三个for循环实现的功
能是将数组b赋值给数组a,所以填空3需要填入对应下标为k的数组b的元
素,答案为b[k]。
二、程序修改题
给定程序MODI1.C中,函数fun的功能是:判断输入的任何一个正整数n,是
否等于某个连续正整数序列之和。若是,则输出所有可能的序列。否则输出
“不能分解”。
例如:当输入100时,输出:
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
【2】参考答案
【1】m=n
【2】m=m-c;c++;
【3】if(m==0)
【3】解题思路
(1)每次循环,程序需要对n执行减去连续的正整数序列,来判断n是否刚好为
0,即n是否是连续的正整数序列之和,所以需要使用临时变量m寄存n的
值,每次循环对m执行减运算操作,不满足继续下一轮,另外程序变量m
时,未初始化它的值,所以此处应该修改为:m=n;
(2)语法错误,C语言中每个语句必须以分号结束,修改为:m=m-c;c++;
(3)题目判断n是否是连续的正整数序列之和,若是,则输出所有序列,程序中
m依次减去连续的正整数,当m为0时,表示m(即
文档评论(0)