2008年上半年程序员下午试卷.docxVIP

2008年上半年程序员下午试卷.docx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共15页,可阅读全部内容。
  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文档。上传文档
查看更多

2008年上半年程序员下午试卷

1.试题一(共15分)

阅读以下说明和流程图,填补流程图中的空缺(1)~(9),将解答填入答题纸的对应栏内。

[说明]

假设数组A中的各元素A(1),A(2),…,A(M)已经按从小到大排序(M≥1);数组B中的各元素B(1),B(2),…,B(N)也已经按从小到大排序(N≥1)。执行下面的流程图后,可以将数组A与数组B中所有的元素全都存入数组C中,且按从小到大排序(注意:序列中相同的数全部保留并不计排列顺序)。例如,设数组A中有元素:2,5,6,7,9;数组B中有元素:2,3,4,7;则数组C中将有元素:2,2,3,4,5,6,7,7,9。

[流程图]

[15分]

参考答案:

2.试题二(共15分)

阅读以下说明和C程序,将应填入(n)处的字句写在答题纸的对应栏内。

[说明]

下面的程序按照以下规则输出给定名词的复数形式:

a.若名词以“y”结尾,则删除y并添加“ies”;

b.若名词以“s”、“ch”或“sh”结尾,则添加“es”;

c.其他所有情况,直接添加“s”。

[C程序]

#include

#include

char*plural(char*word)

{

intn;

char*pstr;

n=strlen(word);/*求给定单词的长度*/

pstr=(char*)malloc(n+3);/*申请给定单词的复数形式存储空间*/

if(!pstr||n2)

returnNULL;

strcpy(pstr,word);/*复制给定单词*/

if((1))

{

pstr[n-1]=i;pstr[n]=e;pstr[n+1]=s;(2);

}

else

if(pstr[n-1]==s||pstr[n-1]==h((3)))

{

pstr[n]=e;pstr[n+1]=s;pstr[n+2]=\0;

}

else

{pstr[n]=s;pstr[n+1]=\0;}

(4);

}

main()

{inti;char*ps;

charwc[9][10]=

{chair,dairy,boss,circus,fly,dog,church,clue,dish};

for(i=0;i9;i++){

ps=(5);

printf(%s:%s\n,wc[i],ps);/*输出单词及其复数形式*/

free(ps);/*释放空间*/

}

system(pause);

}[15分]

参考答案:

3.试题三(共15分)

阅读以下说明和C程序,将应填入(n)处的字句写在答题纸的对应栏内。[说明]

下面的程序用DoleRob算法生成N阶(N为奇数)魔方阵(各行、列、对角线数字之和相等)。该算法的过程为:从1开始,按如下方法依次插入各自然数,直到N为止:2

a.在第一行的正中插入1;

b.新位置应当处于最近插入位置的右上方,若该位置已超出方阵的上边界,则新

位置取应选列的最下一个位置;若超出右边界,则新位置取应选行的最左一个

位置;

c.若最近插入的元素是N的整数倍,则选同列的下一行位置为新位置。

例如,3阶魔方阵如下所示:

816

357

492

[C程序]

#includestdio.h

#includestdlib.h

#defineSIZE50

main()

{introw,col,n,value;

inta[SIZE+1][SIZE+1];/*不使用下标为0的元素*/

printf(请输入要输出魔方阵的阶数n(奇数,%d):n=,SIZE);

scanf(%d,n);

if(!(n%2)||n1||(1)){

printf(输入数据有误!\n);exit(0);

}

row=1;col=(n+1)/2;value=1;

while(value=(2

文档评论(0)

151****7286 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档