套真题单套版题目答案分析.pdfVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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)

wx5620 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档