C语言机试题库:去除偶数位,实现数字重组与函数应用

4星 · 超过85%的资源 需积分: 9 12 下载量 4 浏览量 更新于2024-10-15 收藏 263KB TXT 举报
本资源是一份包含多道C语言题目和解答的试题库,涵盖了程序填空、函数实现等内容,适合备考者参考学习。以下是部分知识点的详细解析: 1. **程序填空题** - 函数`fun`的目标是根据给定的条件,从输入的整数中移除所有偶数位,然后按照原顺序保留剩余奇数位,形成一个新的数。例如,输入的数字27638496经处理后变为729。关键代码段: ``` { t=*n%10; if(t%2!=0) { *n=t; // 保留奇数位 } } ``` 这里,`t=*n%10`表示取n所指数组的第一个元素(即最低位)对10取余,如果余数为1(即奇数),则保留该位。 2. **函数实现部分** - `doublefun`函数用于计算一个数的阶乘。当输入n等于0时,返回1;当n在1到170之间(不包括1和170)时,通过循环不断将n减一并乘以当前结果,直到n变为1。核心代码: ``` if(n>1 && n<170) { result*=n--; } ``` 这里用到了循环控制结构来递归地进行阶乘计算。 3. **另一个函数** `longfun`,用于解析字符串中的数字(假设以"-1234"结尾的负数)。它首先检查字符串首字符,如果是负号,调整标志`t`为-1,然后遍历字符串,累加数字。核心代码: ``` while(*p) { x=x*10-48+(*p++); } ``` 这里使用了ASCII值来转换字符为对应的数字。 4. **文件操作示例** - 提供了一个文件操作相关的代码片段,包括文件指针`fp`的初始化,以及读取文件内容到`ch`并输出的过程: ``` FILE*fp; while(!feof(fp)) { putchar(ch); // 输出字符 ch=fgetc(fp); // 读取下一个字符 } ``` 这展示了如何打开文件并逐行读取数据。 总结来说,这份C语言试题库包含了基本的数据处理、函数实现和文件操作等内容,对于提升C语言编程技能和准备相关考试非常有帮助。通过解决这些题目,考生可以深入理解C语言语法、逻辑控制、数据类型转换以及文件操作等核心概念。