C语言编程练习:字符串操作与数值计算

需积分: 0 2 下载量 190 浏览量 更新于2024-11-30 收藏 68KB DOC 举报
"C语言上机题库,包含多个操作题,主要涉及字符串处理、浮点数处理、数值计算和数组操作。" 这些题目展示了C语言编程中的几个关键概念和技巧: 1. 字符串处理:函数`void fun(char*ss)`将小写字母转换为大写字母。通过检查字符是否在小写字母范围内('a'到'z'),然后加上大写字母和小写字母之间的差值('A' - 'a')来实现。这个函数以步长2遍历字符串,跳过非字母字符。 2. 浮点数处理:`float fun(float h)`用于四舍五入一个浮点数到两位小数。将浮点数乘以1000得到整数,然后根据末尾数字是否小于5决定是直接除以1000还是加1后再除以1000,从而实现四舍五入。 3. 数值计算:`double fun(double eps)`是求阶乘的近似值,用牛顿迭代法逐步逼近1的阶乘。当每次迭代的增量小于给定的精度阈值`eps`时停止迭代,并返回结果的两倍(因为实际计算的是1/s的和,s是阶乘)。 4. 数组处理:`int fun(int score[], int m, int below[])`统计分数低于平均分的个数。首先计算平均分,然后遍历数组,将低于平均分的元素存入`below`数组中,并返回个数。 5. 字符串压缩:`void fun(char* a)`删除连续的非星号字符。它创建一个新的字符串,只保留第一个非星号字符,然后跳过所有后续的非星号字符,直到遇到下一个非星号字符。 6. 字符串替换:`void fun(char* a)`将字符串前部的星号替换为末尾的星号。从头开始找到第一个非星号字符的位置`j`,然后将所有非星号字符移动到字符串的开头,同时将星号移到末尾。 7. 字符串截取:`void fun(char* a, int n)`在字符串的开头去掉`n`个星号,如果有的话。如果`n`大于开头连续星号的数量,则在原字符串末尾添加剩余的星号。 8. 质因数分解:`void fun(int x, int pp[], int* n)`计算并存储一个整数`x`的所有质因数,将它们存入数组`pp`中,并返回质因数的个数`n`。遍历从1到`x`的所有偶数,如果`x`能被当前偶数整除,就将这个偶数作为质因数存储。 这些题目覆盖了C语言的基础操作,如字符串操作、数值计算、数组处理、条件判断以及循环控制,对于学习和提升C语言编程能力很有帮助。通过解决这些题目,可以加深对C语言核心概念的理解,并提高编程实践技能。