、void fun( char *ss )
{
int i=1;
while(ss[i-1] && ss[i])
{
if(ss[i]>='a' && ss[i]<='z') ss[i]+='A'-'a';
i+=2;
}
}
2、float fun ( float h )
{
long i=h*1000;
if(i%10<5) return (i/10)/100.0;
else return (i/10+1)/100.0;
}
这些题目涵盖了C语言的基础知识,包括字符串操作、浮点数处理、循环控制、数组操作、指针使用、函数参数传递以及算法设计等多个方面。下面是针对每个题目知识点的详细解释:
1. 题目1: 此题实现了一个将小写字母转换为大写字母的功能。通过检查字符是否在小写字母范围内,然后加相应的ASCII码差值完成转换。循环步进2,意味着只处理字符串中的偶数索引位置的字符。
2. 题目2: 这个函数用来四舍五入一个浮点数到最接近的0.01。通过乘以1000,转换成整数,然后根据尾数决定是否向上取整,最后除以100得到结果。
3. 题目3: 这是一个求级数和的函数,用到了累加法和while循环。当级数项小于给定的精度eps时,停止计算并返回结果。这里利用了比例公式简化计算。
4. 题目4: 这个函数统计分数数组中低于平均分的元素个数。首先计算平均分,然后遍历数组,记录低于平均分的元素。
5. 题目5: 这个函数用于删除字符串中的所有星号(*)。它使用两个指针,一个用于读取字符串,另一个用于写入无星号的子串。
6. 题目6: 这个函数将字符串中的所有星号(*)移动到字符串末尾。如果字符串开头有星号,则删除它们,其余星号移到末尾。
7. 题目7: 当字符串前n个字符都是星号时,这个函数将星号移到字符串末尾,保持非星号字符的相对位置不变。
8. 题目8: 这个函数用于找到给定整数x的所有因子,并存储到数组中。数组长度通过指针传递并动态更新。
9. 题目9: 这个函数创建一个新的字符串,只包含原字符串中奇数位置或偶数位置且为奇数的字符。
10. 题目10: 该函数将两个整数组合成一个新的长整数,第一个整数的十位和个位作为新数的百位和个位,第二个整数的十位和个位作为新数的千位和十位。
11. 题目11: 这个函数计算满足同时是3和7的倍数的前n-1个整数之和的平方根。
12. 题目12: 此函数将二维数组转为一维数组,存储在一维数组b中,同时记录转换后的元素数量。
13. 题目13: 这是一个简单的冒泡排序,用于对结构体数组按照成员s进行升序排列。
14. 题目14: 这个函数计算二维数组的边缘元素之和,然后减去对角线元素,最后除以特定常数得到平均值。
15. 题目15: 这个函数找出数组s中最大元素的索引,如果存在多个最大值,返回第一个出现的索引。
16. 题目16: 函数未给出完整代码,但通常这类题目会涉及数组操作,如查找、排序等。
以上就是这些C语言上机题目的知识点解析,这些题目覆盖了C语言的基础语法和常见算法,对于学习和巩固C语言编程技能很有帮助。