C语言编程:处理偶数位数字并读写文件
需积分: 1 134 浏览量
更新于2024-07-26
收藏 1.49MB DOC 举报
"C语言编程题目解析"
在C语言编程中,常常会遇到处理数值和字符串的题目,这两道题目正是这种类型的典型示例。
第一道题目涉及到处理整数的每一位,特别是检查它们是否为偶数。函数`fun`的目标是构建一个新的数,其中只包含原数中奇数位的数字。在分析程序时,我们可以看到:
1. `t=*n%__1__;` 这一行是计算当前数(`*n`)除以10的余数,以获取个位数。因此,此处应填写10,因为 `%` 是求余运算符,用于找出一个数除以另一个数后的余数。
2. `if(t%2!=__2__)` 这是一个条件语句,用来判断取出的个位数是否为奇数。如果`t`对2求余不等于0,则`t`是个奇数。因此,这里应填写0,使得条件为 `if(t%2!=0)`。
3. `*n=__3__;` 这一行是更新原始变量`n`的值,使其成为新构建的数。由于我们已经构建了新的数`x`,此处应将`*n`设置为`x`,以便通过指针返回新数。
完整的`fun`函数应该是这样的:
```c
void fun(unsigned long *n) {
unsigned long x = 0, i;
int t;
i = 1;
while (*n) {
t = *n % 10;
if (t % 2 != 0) {
x = x + t * i;
i = i * 10;
}
*n = *n / 10;
}
*n = x;
}
```
第二道题目涉及文件操作,包括写入数据到文件和从文件读取数据。函数`fun`负责执行这个任务,具体步骤如下:
1. `__1__ fp; FILE *` 这一行是用来声明一个文件指针`fp`,它将用于打开和关闭文件。因此,这里应该填写`FILE *`,即`FILE *fp;`。
2. `fp=fopen("file1.txt","w");` 这行代码是打开名为`file1.txt`的文件,`"w"`表示写入模式。文件指针`fp`被赋值为打开的文件句柄。
3. `fprintf(fp,"%s%d%f\n",s,a,f);` 使用`fprintf`函数将字符串`s`、整数`a`和浮点数`f`写入文件。
4. `fp=fopen("file1.txt","r");` 这行代码再次打开`file1.txt`,但这次是以`"r"`模式,即读取模式。
5. `while((ch=getc(fp))!=EOF)` 循环读取文件中的每个字符,直到遇到文件结束符`EOF`。
6. `putchar(ch);` 将读取到的字符输出到屏幕。
7. `fclose(fp);` 最后,关闭文件。
完成的`fun`函数应当如下所示:
```c
void fun(char *s, int a, double f) {
FILE *fp;
char ch;
fp = fopen("file1.txt", "w");
fprintf(fp, "%s%d%f\n", s, a, f);
fclose(fp);
fp = fopen("file1.txt", "r");
while ((ch = getc(fp)) != EOF) {
putchar(ch);
}
fclose(fp);
}
```
这两道题目分别展示了C语言中处理数值位的逻辑和文件操作的基本技巧,是学习C语言时经常会遇到的练习类型。通过解决这些问题,可以提升对C语言基本概念的理解和实践能力。
140 浏览量
2022-07-14 上传
u010128345
- 粉丝: 0
- 资源: 2
最新资源
- 平尾装配工作平台运输支撑系统设计与应用
- MAX-MIN Ant System:用MATLAB解决旅行商问题
- Flutter状态管理新秀:sealed_flutter_bloc包整合seal_unions
- Pong²开源游戏:双人对战图形化的经典竞技体验
- jQuery spriteAnimator插件:创建精灵动画的利器
- 广播媒体对象传输方法与设备的技术分析
- MATLAB HDF5数据提取工具:深层结构化数据处理
- 适用于arm64的Valgrind交叉编译包发布
- 基于canvas和Java后端的小程序“飞翔的小鸟”完整示例
- 全面升级STM32F7 Discovery LCD BSP驱动程序
- React Router v4 入门教程与示例代码解析
- 下载OpenCV各版本安装包,全面覆盖2.4至4.5
- 手写笔画分割技术的新突破:智能分割方法与装置
- 基于Koplowitz & Bruckstein算法的MATLAB周长估计方法
- Modbus4j-3.0.3版本免费下载指南
- PoqetPresenter:Sharp Zaurus上的开源OpenOffice演示查看器