C语言填空题库:构建取奇数位数字的程序
5星 · 超过95%的资源 需积分: 46 151 浏览量
更新于2024-07-22
2
收藏 386KB DOC 举报
"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语言考试。
2022-10-06 上传
点击了解资源详情
2010-09-28 上传
2021-11-27 上传
2021-09-28 上传
qq_25750743
- 粉丝: 0
- 资源: 1
最新资源
- ConcurrentStudy:Java并发编程和netty中学习加强相关代码
- 与一只巨大的鸡战斗至死:一场史诗般的最终幻想风格的战斗,对抗具有动态界面的 AI 控制的鸡:P-matlab开发
- Parstagram
- dsc字符串实验室在线ds-pt-090919
- UMLS-explorer
- txline,微带线计算工具
- OPPOR9S OPPOR9Splus原厂维修图纸电路图PCB位件图资料.zip
- stocks-chaser-frontend:库存跟踪应用
- 通过非线性导数进行边缘检测:这个简短的演示展示了一种有效的边缘检测算法。-matlab开发
- mariebeigelman.github.io
- AnoClient
- 开发基于JSP Servlet JavaBean的网上交易系统(JSP Servlet JavaBean Web Service
- Weather Forecast-crx插件
- go-jsonrpc-websocket.rar
- AM调制和解调研究:这个演示有助于研究和分析AM MOD和DEMOD。-matlab开发
- gocloud-secrets-awssecretsmanager