
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语言考试。
相关推荐
















qq_25750743
- 粉丝: 0
最新资源
- Docker技术全面解析:从基础到项目实战应用
- Python专家系统开发:解答未决问题与本地部署
- 易语言开发成都长牌单机版带AI源码分享
- GLSL光线投射技术实现-Shadertoy风格相机光线生成
- 深入浅出Spring Data教程与配套资料完整版
- 在 Docker 容器中运行 Jenkins 的 docker-executors 镜像指南
- Eclipse Docker插件:增强Java开发者的容器管理体验
- CoreOS在Linode上的快速部署指南
- Node.js客户端会话管理:cookie-swap库使用解析
- Java Web开发进阶: FreeMarker模板引擎与MVC设计原理
- BackPackTrack:Android与WordPress的旅行轨迹追踪解决方案
- 易语言实现电脑QQ自动挂机加好友教程
- 安卓系统DES加密通信设计与实践
- 泰米尔语视觉键盘Chrome扩展使用指南
- 掌握JPA:视频教程引导Java企业级开发
- 快速掌握后台开发与服务器部署教程
- 构建推特机器人@prophetraptor的Docker容器操作指南
- 构建Nginx托管的静态网站Docker环境
- Judock: 利用 Docker 和 JUnit 实现 Java 集成测试
- Docker容器中运行ChangeIP DNS更新脚本指南
- Java实现Unidecode:Unicode转ASCII和ISO 8859-2音译方法
- PhoneGap与AngularJS打造混合移动应用
- 品味音乐的魅力,享受生活带来的快乐
- Mesos+Marathon快速入门教程与实践