当前位置:   article > 正文

2011年第二届蓝桥杯(C/C++)预赛题目及个人答案(欢迎指正)_蓝桥杯2011初赛 c++ a组j题答案

蓝桥杯2011初赛 c++ a组j题答案

第一题

代码填空 (满分3分)

神秘的三位数

有这样一个3位数,组成它的3个数字阶乘之和正好等于它本身。即:abc = a! + b! + c!

下面的程序用于搜索这样的3位数。请补全缺失的代码。

把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。

    int JC[] = {1,1,2,6,24,120,720,5040,40320,362880};

    int i;

    for(i=100; i<1000; i++)

    {

        int sum = 0;

        int x = i;

        while(__________)

        {

            sum += JC[x%10];

            x /= 10;

        }

        if(i==sum) printf("%d\n", i);

    }


答案:x>0



第二题

代码填空 (满分4分)

歌赛新规则

歌手大赛的评分规则一般是去掉一个最高分,去掉一个最低分,剩下的分数求平均。当评委较少的时候,如果我们只允许去掉一个分数,该如何设计规则呢?

有人提出:应该去掉与其余的分数平均值相差最远的那个分数。即“最离群”的分数。

以下的程序用于实现这个功能。其中x存放所有评分,n表示数组中元素的个数。函数返回最“离群”的那个分数值。请补全缺失的代码。

把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。

double score(doublex[], int n)

{

    int i,j;

    double dif = -1;

    double bad;

    for(i=0; i<n; i++)

    {

        double sum = 0;

        for(j=0; j<n; j++)

        {

            if(________) sum += x[j];

        }

        double 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]);

        }

    }

 

    return bad;

}


答案:i!=j


第三题

代码填空 (满分4分)

反转串

我们把“cba”称为“abc”的反转串。

下面的代码可以把buf中的字符反转。其中n表示buf中待反转的串的长度。请补充缺少的代码。

把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。

void reverse_str(char*buf, int n)

{

    if(n<2) return;

    char tmp = buf[0];

    buf[0] = buf[n-1];

    buf[n-1] = tmp;

    _______________________________;

}


交换完第一个和倒数第一个后,又交换第二个和倒数第二个,依次进行下去。注意比如进行第二个和倒数第二个的交换时,第二个数成为buf的第一个数,那么倒数第二个数的位置相应减去1位,所以累计要减去2.


答案:reverse_str(buf+1, n-2)



第四题

代码填空 (满分5分)

n进制小数

将任意十进制正小数分别转换成2,3,4,5,6,7,8,

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/482774
推荐阅读
相关标签
  

闽ICP备14008679号