2012年9月计算机二级C语言考试上机题库与解题攻略
需积分: 0 84 浏览量
更新于2024-07-27
收藏 1.1MB DOC 举报
"这是两道关于计算机二级C语言考试的题目,分别涉及数字处理和阶乘计算。"
在第一个题目中,我们面临的问题是如何从一个给定的无符号长整型数值中移除所有偶数位上的数字,保留奇数位数字,并按照原顺序组成新的数字。函数`fun`接收一个指向无符号长整型变量的指针`n`,通过一系列操作将符合条件的数字重新组合。具体步骤如下:
1. 初始化一个新的无符号长整型变量`x`为0,用于存储新组成的数字。
2. 使用变量`i`作为权重,初始值为1,每次增加10的倍数,以便将保留的数字放在正确的位置。
3. 使用`while`循环,条件为`*n`非零,确保遍历到所有位。
4. 在循环内,计算`*n`对10取模的结果,即`t=*n%10`,获取当前位数字。
5. 接下来判断`t`是否为奇数,即`t%2!=0`,如果为奇数则满足保留条件。
6. 如果`t`是奇数,将其与`i`相乘并加到`x`上,`x=x+t*i`,并将`t`添加到新数的位置。
7. 更新`*n`,去除已检查过的最低位,`*n=*n/10`。
8. 循环结束后,将新数`x`赋值回`*n`,即`*n=x`。
在主函数`main`中,程序会提示用户输入一个0到100000000之间的数,然后调用`fun`函数处理这个数,并输出处理后的结果。
第二个题目涉及计算阶乘。函数`fun`应该计算`n!`,但目前存在错误。修正后的程序应该是:
1. 初始化`result`为1.0,表示初始的乘积。
2. 检查条件`if(n==0)`,当n等于0时,返回1.0,因为0的阶乘定义为1。
3. 使用`while`循环,条件为`n>1&&n<170`,确保n在合法范围内且不超出浮点数精度范围。
4. 在循环体内,将`result`与`n`相乘,然后递减`n`,`result*=n--;`
5. 最后,不要忘记在`while`循环后添加分号结束语句,`return result;`。
在主函数`main`中,程序会提示用户输入一个整数`n`,然后调用`fun`函数计算阶乘,并输出结果。这两个题目都体现了C语言基础的数字处理和控制流程知识。
2012-12-31 上传
2009-05-03 上传
2010-09-19 上传
2014-12-19 上传
2021-10-30 上传
2021-10-12 上传
2011-03-23 上传
山水东吴
- 粉丝: 0
- 资源: 1
最新资源
- 探索AVL树算法:以Faculdade Senac Porto Alegre实践为例
- 小学语文教学新工具:创新黑板设计解析
- Minecraft服务器管理新插件ServerForms发布
- MATLAB基因网络模型代码实现及开源分享
- 全方位技术项目源码合集:***报名系统
- Phalcon框架实战案例分析
- MATLAB与Python结合实现短期电力负荷预测的DAT300项目解析
- 市场营销教学专用查询装置设计方案
- 随身WiFi高通210 MS8909设备的Root引导文件破解攻略
- 实现服务器端级联:modella与leveldb适配器的应用
- Oracle Linux安装必备依赖包清单与步骤
- Shyer项目:寻找喜欢的聊天伙伴
- MEAN堆栈入门项目: postings-app
- 在线WPS办公功能全接触及应用示例
- 新型带储订盒订书机设计文档
- VB多媒体教学演示系统源代码及技术项目资源大全