[计算机软件及应用]南开二级C语言上机题库.docVIP

[计算机软件及应用]南开二级C语言上机题库.doc

  1. 1、本文档共47页,可阅读全部内容。
  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文档。上传文档
查看更多
[计算机软件及应用]南开二级C语言上机题库

1 分析: ? 由题意已知m个人的成绩存放在score数组中,题目要求编写fun函数返回低于平均分的人数,并将低于平均分的分数放在below所指的数组中。 ? 例如,当score数组中的数据为10、20、30、40、50、60、70、80、90时,函数返回的人数应该是4,below中的数据应为10、20、30、40。 ? 为了实现题目要求,fun函数必须首先计算平均分数。计算平均分的方法只要使用循环累加score数组中的所有成绩,然后将累加得到的合计值除以人数m就得到平均分。 ? 得到平均分之后,可以再次使用循环逐个地判断score数组中的每一个成绩是否低于平均分,如果的确低于平均分,则将该分数放入below数组最后位置,同时将记录低于平均分的人数的变量增加一。当循环结束的时候,就能完成题目的要求。 ? 官方答案注解如下: ? #include conio.h ? #include stdio.h ? #include string.h ? int fun(int score[],int m, int below[]) ? { ?   /* aver变量用于累加score数组中所有的分数,所以初始化为0 */ ?   int i,k=0,aver=0; ?   /* 累加score数组中所有的成绩,aver存放最新的合计值 */ ?   for(i=0;im;i++) ?     aver+=score[i]; ?   /* 将成绩合计值除以人数m,得到平均分,将其放入aver中 */ ?   aver/=m; ?   /* 再次使用循环统计score数组中低于平均分的人数 */ ?   /* 并将低于平均分的分数放在below所指的数组中 */ ?   for(i=0;im;i++) ?     /* 判断当前检查的分数是否低于平均分 */ ?     if(score[i]aver) ?     { ?       /* 将低于平均分的分数放在below所指的数组中 */ ?       below[k]=score[i]; ?       /* k变量的值指示分数放入below数组中的下标 */ ?       /* 所以放入一分数后需将k加一,否则下一分数放入将覆盖已有分数 */ ?       k++; ?     } ?   /* 返回低于平均分的人数k */ ?   return k;??? ? } ? main() ? { ?   int i,n,below[9]; ?   int score[9]={10,20,30,40,50,60,70,80,90}; ?   /* clrscr函数定义在conio.h,所以存在#include conio.h */ ?   /* clrscr函数作用是清除输出窗口中已经存在的所有信息 */ ?   clrscr(); ?   n=fun(score,9,below); ?   printf(people=%d\n,n); ?   printf(\nBelow the average score are :); ?   for(i=0;in;i++) ?     printf(%d ,below[i]); ?   printf(\n); ? } ? 2 分析: ? 题目要求编写fun函数求出1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。 ? 要实现以上要求,只要使用循环从1至1000逐个地检查在这个范围之内的所有整数是否能被7或11整除、但不能同时被7和11整除。如果符合能被7或11整除、但不能同时被7和11整除的要求,则将这个符合条件的整数放入a数组中。 ? 另外能被7或11整除、但不能同时被7和11整除的条件可以分为两大条件: ? (1)能被7或11整除 ? (2)但不能同时被7和11整除 ? 以上两个条件的关系是并且的关系,在C语言中可以使用连接这两个条件。 ? 第一个条件能被7或11整除可以使用(i%7==0 || i%11==0)来表示,其中i表示要检查的整数。 ? 第二个条件但不能同时被7和11整除可以使用(i%7!=0 i%11!=0)来表示。下面给出的答案使用了i%77!=0来表示这个条件,这也是可以的。因为不能整除77的整数当然也不能同时整除7和11。 ? 官方答案注解如下: ? #include conio.h ? #include stdio.h ? void fun(int * a, int * n) ? { ?   int i,j=0; ?   /* 从2至999检查在这个范围之内的整数是否符合条件 */ ?   for(i=2;i1000;i++) ?   /* 判

文档评论(0)

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

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

1亿VIP精品文档

相关文档