C语言程序设计:矩阵对角线元素交换与函数填空题解析

需积分: 4 7 下载量 201 浏览量 更新于2024-08-01 收藏 254KB DOC 举报
"该资源为2010年计算机二级C考试的机试预测题,包含程序填空题。题目要求填写缺失的代码以实现特定功能。第一题中,函数fun应根据输入的整数i返回相应函数的值,使得在主程序中,输出x1, x2的值及它们的乘积。第二题中,函数fun需找出字符串s中出现频率最高的字母,并计算其出现次数。" 在这两个程序填空题中,我们首先分析第一题: 1. 函数`fun`有两个可能的返回值,取决于形参`i`的值。当`i==1`时,它应该返回`x`的平方,即调用`f1(x)`;否则,它应该返回`x`和`y`的乘积,即调用`f2(x, y)`。因此,正确填充的代码应该是: ```c double fun(int i, double x, double y) { if (i == 1) return f1(x); // __2__ 应填写 f1 else return f2(x, y); // __3__ 应填写 f2 } ``` 接下来,我们看第二题: 2. 函数`fun`的目的是找出字符串`s`中出现频率最高的字母。这里使用了数组`k[26]`来存储每个字母的计数,其中`k[n]`对应于字母'a'到'n'的计数,`n`是字符减去'a'的值。在循环中,我们需要将输入的字母转换为小写(因为不区分大小写),然后增加相应的计数。因此,正确填充的代码应该是: ```c while (*s) { if (isalpha(*s)) { ch = tolower(*s); // 正确填充,将当前字符转换为小写 n = ch - 'a'; // 计算字母在数组k中的位置 k[n] += 1; // __2__ 应填写 1,表示增加计数 } // ... } ``` 这两个题目考察了基本的C语言编程技能,包括条件分支、函数调用、字符处理以及数组的应用。对于准备计算机二级C考试的考生来说,理解并解决这类问题是非常重要的。通过这样的练习,考生可以增强对函数定义、参数传递以及字符串处理的理解,这些都是C语言编程的基础。