2010年全国计算机二级C语言上机题库精选

需积分: 9 3 下载量 174 浏览量 更新于2024-08-01 1 收藏 664KB DOC 举报
本资源提供了2010年3月和9月全国计算机等级考试二级C语言的上机题库,包括程序填空题和函数实现。以下是两个具体题目及其解题关键部分的详细解析: 1. **程序填空题1** - 函数`fun`的目的是根据形参`i`的值返回`f1`或`f2`函数的结果。根据题目描述,我们需要完成以下代码: ```c double fun(int i, double x, double y) { if (i == 1) { return f1(x); // 此处应填入f1函数的调用 } else { return f2(x, y); // 此处应填入f2函数的调用 } } ``` 函数`fun`会根据`i`的值选择调用`f1(x)`(`x`的平方)或`f2(x, y)`(`x`和`y`的乘积)。在主函数中,已经调用了`fun(1, x1, x2)`和`fun(2, x1, x2)`。 2. **程序填空题2** - 这个问题是关于统计字符串中各字符出现频率的。函数`fun`的功能是找出最高频率的字母及其计数。这里需要将字母转换为小写并进行计数: ```c void fun(char *s) { int k[26] = {0}; // 初始化字母计数数组 ... while (*s) { if (isalpha(*s)) { ch = tolower(*s); // 转换为小写 n = ch - 'a'; // 将字符转换为整数索引 k[n]++; if (k[n] > max) { // 更新最大计数和对应字母 max = k[n]; letter[ch] = 'a' + n; // 保存字母(这里是'a'到'z') } } s++; // 移动指针到下一个字符 } } ``` 在这段代码中,我们使用`tolower`函数将字符转换为小写,然后通过计算字符在字母表中的位置来更新字母计数。如果当前字母的计数超过`max`,则更新`max`和最高频率字母。 这两个题目展示了C语言基础语法,包括函数调用、条件语句、字符串处理以及字符处理。考生需要熟悉这些概念才能正确解答题目。上机考试复习时,除了练习题目外,还需要理解每一步操作背后的逻辑和目的,以便在实际考试中灵活运用。