下载此文档

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


文档分类:中学教育 | 页数:约14页 举报非法文档有奖
1/14
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/14 下载此文档
文档列表 文档介绍
2011年蓝桥杯预赛题目和参考答案
1. 代码填空 (满分3分)
神秘的三位数
有这样一个3位数,组成它的3个数字阶乘之和正好等于它本身。即:abc = a! + b! + c!
下面的程序用于搜索这样的3位数。请补全缺失的代码。
//
#include <>
void main()
{
int JC[] = {1,1,2,6,24,120,720,5040,40320,};
int i;
int sum;
int x;
for (i=100; i<1000; 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 <>
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;i<10;i++)
{
sum = 0;
for (j=0; j<n ; j++)
{
if (j!=i) sum+=x[j];
}
t = x[i]-sum/(n-1);
if (t<0) t = -t;
if (t>dif)
{
dif = t;
bad = x[i];
printf("%d,%f\n",i,x[i]);
}
}
printf("bad = %lf\n",bad);
}
3、代码填空 (满分4分)
反转串
我们把“cba”称为“abc”的反转串。
下面的代码可以把buf中的字符反转。其中n表示buf中待反转的串的长度。请补充缺少的代码。
//
#include <>
#include <>
void reverse_str(char* buf, int n)
{
char tmp;
if (n<2) 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. 转换成 2 进制数为: 0.
十进制正小数 0. 转换成 3 进制数为: 0.
十进制正小数 0. 转换成 4 进制数为: 0.
十进制正小数 0. 转换成 5 进制数为: 0.
十进制正小数 0. 转换成 6 进制数为: 0.
十进制正小数 0. 转换成 7 进制数为: 0.
十进制正小数 0. 转换成 8 进制数为: 0.
十进制正小数 0. 转换成 9 进制数为: 0.
以下代码提供了

2011年蓝桥杯预赛题目答案 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数14
  • 收藏数0 收藏
  • 顶次数0
  • 上传人glfsnxh
  • 文件大小35 KB
  • 时间2021-02-19