"2011年3月全国计算机等级考试二级C语言上机题库,包含50套题目,主要涉及程序填空题,旨在考察考生对C语言的理解和应用能力。"
这篇描述提到了一个针对2011年3月份全国计算机等级考试二级C语言部分的上机题库,其中包含了50道题目,主要是程序填空题。这类题目要求考生根据题目给出的代码框架,填写正确的代码片段,以实现指定的功能。
第一道题目要求完善一个名为`fun`的函数,这个函数根据输入的整型参数`i`的值来决定返回哪个函数的结果。当`i`等于1时,函数应返回`f1(x)`的结果;当`i`不等于1时,函数应返回`f2(x, y)`的结果。为了得到正确的输出`x1=5.000000, x2=3.000000, x1*x1+x1*x2=40.000000`,需要在下划线处填入适当的函数调用。因此,正确的填写应该是:
```c
double fun(int i, double x, double y)
{
if (i == 1)
return f1(x);
else
return f2(x, y);
}
```
第二道题目涉及的是一个函数`fun`,该函数需要找出输入字符串`s`中出现频率最高的字母(忽略大小写),并输出其出现的次数。为了实现这个功能,可以创建一个大小为26的整型数组`k`,用于统计每个字母出现的次数。遍历字符串中的每个字符,如果它是字母,则转换为小写并增加对应索引的计数。最后,遍历`k`数组找到最大值,并输出对应的字母及其频率。因此,正确的填写可能是:
```c
void fun(char *s)
{
int k[26] = {0}, n, i, max = 0;
char ch;
while (*s)
{
if (isalpha(*s))
{
ch = tolower(*s) - 'a';
k[ch]++;
if (k[ch] > max)
{
max = k[ch];
}
}
s++;
}
for (i = 0; i < 26; i++)
{
if (k[i] == max)
{
printf("letter'%.c':%d times\n", i + 'a', max);
}
}
}
```
这些题目旨在测试考生对C语言的基本语法、函数使用、条件判断、循环控制以及字符串处理等方面的能力。通过这样的练习,考生能够更好地准备全国计算机等级考试二级C语言的上机考试部分。