C语言填空题库:构建取奇数位数字的程序
"C语言程序填空题库,用于帮助准备计算机二级C语言考试的练习" C语言是一种广泛使用的编程语言,尤其在计算机二级考试中,C语言是重要的考核内容。填空题是考试中常见的一种题型,它要求考生根据程序的功能需求,填写正确的代码片段。下面将对给定的两道程序填空题进行详细解析。 ### 第1题 该题目的目标是设计一个函数`fun`,从一个长整型变量`s`中提取出从低位开始的奇数位数字,并按原顺序构成一个新数放在`t`中。给出的代码部分已经完成了大部分工作,但需要补全四个空白处。 1. `*t=s%10;` 这里用 `%` 运算符取`s`除以10的余数,即得到最低位的数字,将其赋值给`t`。 2. `s=s/100;` 在下一次循环中,我们需要跳过下一个偶数位,所以`s`应该除以100,丢弃两位。 3. `*t=s%10*sl+*t;` 用`s`除以10的余数与当前`sl`的乘积加上`t`的当前值,然后赋值给`t`,这样`t`中就包含了新的奇数位数字。 4. `sl=sl*10;` 更新`sl`,使其每次乘以10,为下一次循环存储下一个奇数位的权重。 完整的`fun`函数应该是这样的: ```c void fun(long s, long *t) { long sl = 10; s /= 10; *t = s % 10; while (s > 0) { s = s / 100; *t = s % 10 * sl + *t; sl = sl * 10; } } ``` ### 第2题 这道题目要求编写一个程序,计算人口翻倍的年份。给定初始人口`p1`(1982年的10.3亿人),年增长率`r`(5%),以及起始年份`1982`,我们需要找到人口翻倍的年份。 ```c int main() { double p1 = 10.3, p2, r = 0.05; int year = 1982; p2 = p1 * (1 + r); // 计算下一年的人口数量 while (p1 < p2 * 2) { // 循环直到人口翻倍 p1 = p2; p2 = p1 * (1 + r); year++; } printf("人口翻一番是在公元%d年。\n", year); return 0; } ``` 这个程序首先计算了1983年的人口数,然后进入一个循环,每次循环都将当前年份加1,并更新人口数量。当人口数达到初始人口的两倍时,循环结束,输出年份。 以上两题的解答涵盖了C语言中的基本算术运算、条件判断、循环控制、指针操作以及简单的数学模型应用,这些都是C语言编程基础中的关键知识点。通过类似这样的练习,考生可以提高对C语言的理解和编程能力,更好地应对计算机二级C语言考试。
剩余63页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 计算机人脸表情动画技术发展综述
- 关系数据库的关键字搜索技术综述:模型、架构与未来趋势
- 迭代自适应逆滤波在语音情感识别中的应用
- 概念知识树在旅游领域智能分析中的应用
- 构建is-a层次与OWL本体集成:理论与算法
- 基于语义元的相似度计算方法研究:改进与有效性验证
- 网格梯度多密度聚类算法:去噪与高效聚类
- 网格服务工作流动态调度算法PGSWA研究
- 突发事件连锁反应网络模型与应急预警分析
- BA网络上的病毒营销与网站推广仿真研究
- 离散HSMM故障预测模型:有效提升系统状态预测
- 煤矿安全评价:信息融合与可拓理论的应用
- 多维度Petri网工作流模型MD_WFN:统一建模与应用研究
- 面向过程追踪的知识安全描述方法
- 基于收益的软件过程资源调度优化策略
- 多核环境下基于数据流Java的Web服务器优化实现提升性能