2012年9月国家计算机二级C语言考试题库:C语言函数与运算符练习
版权申诉
166 浏览量
更新于2024-07-13
收藏 3.58MB PDF 举报
2012年9月的国家计算机二级C语言上机考试题库包含两部分题目,分别是整数处理函数和阶乘计算函数的实现与修改。
首先,第一个题目是关于整数处理函数`fun`的编写。该函数的目标是移除形参`n`所指向的数字中各位偶数,只保留奇数并将剩余部分保持原位重新组成一个数。函数原型为`void fun(unsigned long *n)`,通过以下步骤实现:
1. 初始化变量`x`为0,`i`为1,用于存储处理后的数。
2. 使用循环结构遍历`n`指向的每一位数字,通过`*n % 10`得到当前位的数字。
3. 判断当前位是否为偶数(`t % 2 != 0`),如果是奇数则将其加到`x`上,并将`i`更新为`i * 10`,以便后续保留位置。
4. 更新`n`指向的数值,除以10,去掉当前处理的位。
5. 循环结束后,将结果`x`通过形参`n`返回给调用者。
程序中,第一处填空应填写10,表示取模10得到个位;第二处填空应填写0,表示判断是否为奇数;第三处填空应填写`x`,因为`n`最后会指向新数。
第二个题目涉及的是阶乘计算函数`fun`,其目的是计算输入整数`n`的阶乘。原始代码存在两个错误:
1. 条件语句书写格式不正确,`if n == 0`应该写成`if (n == 0)`,确保括号匹配和语法正确。
2. 在`result *= n--`这一行,当`n > 1`时,递归调用`fun`后,`n`的值会被减1,因此需要先乘以`n`再递减,即`result *= n; n--;`。
修正后的代码如下:
```c
double fun(int n)
{
double result = 1.0;
if (n == 0)
return 1.0;
while (n > 1)
{
result *= n;
n--;
}
return result;
}
```
这部分主要考察了函数设计、循环控制以及条件语句的理解和使用。
总结,这份2012年9月的C语言上机考试题库主要测试了考生对基础数据类型操作、条件判断、循环结构、函数调用以及数学逻辑等C语言核心知识点的掌握程度,同时要求考生具备代码调试和优化的能力。
2021-11-01 上传
2021-11-01 上传
2022-12-18 上传
2021-11-01 上传
2021-11-01 上传
jishuyh
- 粉丝: 1
- 资源: 7万+
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜