2013计算机二级C语言上机试题:倒数和与字符计数

需积分: 0 0 下载量 77 浏览量 更新于2024-08-04 收藏 31KB DOC 举报
本资源是一份针对2013年计算机二级考试的《C语言》上机试题及答案文档,主要包含两个部分:填空题和改错题。 1. **填空题** - 函数`fun`的功能是计算并输出N(包括N)以内能被3或7整除的所有自然数的倒数之和。题目给出的代码中,首先定义了变量`i`和`sum`用于存储计数和累加倒数。填空部分如下: ``` for(i=1; i<=n; i++) // 第1处填空,表示循环条件,直到i等于n { if(i%3==0 || i%7==0) // 第2处填空,使用逻辑或运算符(||),表示同时满足3或7的整除条件 sum += 1.0/i; // 第3处填空,将每个符合条件的数的倒数累加到sum } ``` 这段代码确保了只有当`i`能同时被3或7整除时,才会将`1/i`加入到`sum`中。 2. **改错题** - 考察的是统计字符串中大写字母和小写字母的个数。给定的`fun`函数存在以下错误: - `voidfun(char*s,inta,intb)`函数声明中,`inta`和`intb`参数应该是指针类型,以便正确修改它们的值,所以应改为`int* a`和`int* b`。相应地,函数调用也需要使用指针操作,将`&upper`和`&lower`传递给函数。 - 更正后的代码如下: ```c void fun(char* s, int* a, int* b) // 第1处修改:指针类型的参数声明 { while (*s) { if (*s >= 'A' && *s <= 'Z') // 第2处保持不变 (*a)++; if (*s >= 'a' && *s <= 'z') // 第2处保持不变 (*b)++; s++; } } ``` 在`main`函数中调用`fun`时,需传入指针变量`&upper`和`&lower`: ```c main() { ... fun(s, &upper, &lower); // 通过指针传递变量地址 ... } ``` 综上,这份文档提供了2013年计算机二级考试C语言上机试题的实践练习,有助于考生熟悉C语言编程,并掌握如何处理基础的数据结构、控制流程以及字符处理等知识点。通过解答这些问题,考生可以检验自己对C语言的理解和应用能力。