2011年度蓝桥杯预赛题目答案.docVIP

  • 10
  • 0
  • 约1.02万字
  • 约 14页
  • 2018-06-28 发布于湖北
  • 举报
2011年蓝桥杯预赛题目和参考答案1. 代码填空 (满分3分)神秘的三位数有这样一个3位数,组成它的3个数字阶乘之和正好等于它本身。即:abc = a! + b! + c!下面的程序用于搜索这样的3位数。请补全缺失的代码。// NO.1题 #include stdio.h void main() { int JC[] = {1,1,2,6,24,120,720,5040,40320,362880}; int i; int sum; int x; for (i=100; i1000; i++) { sum = 0; x = i; while (x) { sum += JC[x%10]; x /= 10; } if (i == sum) { printf(%d\n,i); } } }2. 代码填空 (满分4分)歌赛新规则歌手大赛的评分规则一般是去掉一个最高分,去掉一个最低分,剩下的分数求平均。当评委较少的时候,如果我们只允许去掉一个分数,该如何设计规则呢?有人提出:应该去掉与其余的分数平均值相差最远的那个分数。即“最离群”的分数。以下的程序用于实现这个功能。其中x存放所有评分,n表示数组中元素的个数。函数返回最“离群”的那个分数值。请补全缺失的代码。#include stdio.h void main() { double x[10] = {7,8,8,8,8,20,8,8,8,8}; int i,j; double dif = -1; double bad; double sum; int n=10; double t; for (i=0;i10;i++) { sum = 0; for (j=0; jn ; j++) { if (j!=i) sum+=x[j]; } t = x[i]-sum/(n-1); if (t0) t = -t; if (tdif) { dif = t; bad = x[i]; printf(%d,%f\n,i,x[i]); } } printf(bad = %lf\n,bad); }3、代码填空 (满分4分)反转串我们把“cba”称为“abc”的反转串。下面的代码可以把buf中的字符反转。其中n表示buf中待反转的串的长度。请补充缺少的代码。// NO.3题 #include stdio.h #include string.h void reverse_str(char* buf, int n) { char tmp; if (n2) return; tmp = buf[0]; buf[0] = buf[n-1]; buf[n-1] = tmp; reverse_str(buf+1,n-2); } void main() { char a[10] = zhanghe; reverse_str(a,strlen(a)); printf(%s\n,a); }4. 代码填空 (满分5分)n进制小数将任意十进制正小数分别转换成2,3,4,5,6,7,8,9进制正小数,小数点后保留8位,并输出。例如:若十进制小数为0.795,则输出:十进制正小数 0.795000 转换成 2 进制数为: 0进制正小数 0.795000 转换成 3 进制数为: 0进制正小数 0.795000 转换成 4 进制数为: 0进制正小数 0.795000 转换成 5 进制数为: 0进制正小数 0.795000 转换成 6 进制数为: 0进制正小数 0.795000 转换成 7 进制数为: 0进制正小数 0.795000 转换成 8 进制数为: 0进制正小数 0.795000 转换成 9 进制数为: 0下代码提供了这个功能。其中,dTestNo表示待转的十进制小数。iBase表示进制数。请填写缺失的部分。#inc

文档评论(0)

1亿VIP精品文档

相关文档