2011蓝桥杯C语言本科竞赛试题详解:代码填空与程序设计

需积分: 9 2 下载量 102 浏览量 更新于2024-09-15 收藏 57KB DOC 举报
2011年的蓝桥杯C语言本科竞赛提供了两部分的试题:代码填空和程序设计。总分为100分,其中代码填空占41分,程序设计占59分。以下是两道具体题目及其知识点: 1. **神秘的三位数** (满分3分) 这是一道寻找满足条件的三位数的问题,即该数等于其各位数字的阶乘之和。给定的程序使用了一个预定义的阶乘数组`JC[]`,通过循环遍历100到999之间的整数。在循环中,首先初始化`sum`为0,然后计算当前数字的阶乘并累加到`sum`上,通过取模运算`x%10`得到个位数,然后除以10进行下一位的处理。如果找到一个数`i`,其阶乘之和等于自身,即`i == sum`,则输出这个数。题目要求考生填写的是`while`循环中的条件,即判断`x`是否为0的表达式,这部分缺失的代码应为`while(x != 0)`。 2. **歌赛新规则** (满分4分) 该问题涉及到设计一个评分规则,当评委数量较少时,仅保留一个分数。已知规则是选择与剩余分数平均值差距最大的那个分数作为需要去掉的。给出的程序中,`x`存储评委的评分,`n`代表评分数组的长度。函数的目标是找出最“离群”的分数。函数可能需要遍历整个数组,计算每个分数与当前平均值的差值,然后保存最大差值对应的分数。缺失的代码可能包括计算平均值的部分,以及遍历过程中找到最大差值的逻辑。这部分的实现可能涉及以下步骤: - 初始化一个变量`avg`为所有分数之和除以`n`,得到初始平均值。 - 使用一个变量`maxDiff`记录当前找到的最大差值,`maxScore`记录对应的分数,初始化为`x[0]`(数组的第一个元素)。 - 遍历数组,计算每个`x[i]`与`avg`的差值`diff = |x[i] - avg|`。 - 如果`diff`大于`maxDiff`,更新`maxDiff`和`maxScore`。 - 遍历结束后,返回`maxScore`作为最“离群”的分数。 完成这两个填空题后,考生需将答案分别存入对应题号的"解答.txt"文件中,并确保遵循C语言标准,避免使用C++特性或与硬件和操作系统相关的API。程序设计题要求编写通用的代码,应对不同输入给出正确结果。