//返回第一题 /*1、编写函数 void is_upper(char str[]) 和 void is_lower(char str[])分别实现将字符串str的字母转换成大写或者小写。主函数输入一字符串,分别调用这2个函数显示结果。 Int main() { char str1[80]; Printf(“please input a string:\n”); Gets(str1); Is_upper(str1); Printf(“upper string=%s\n”,str1); Printf(“please input a string:\n”); Gets(str1); Is_lower(str1); Printf(“lower string=%s\n”,str1); } */ /*****************************************************************/ #include <stdio.h> #include <ctype.h> // 将字符串str中的字母转换成大写 void is_upper(char str[]) { int i; for (i = 0; str[i] != '\0'; i++) { str[i] = toupper(str[i]); // 调用toupper函数 } } // 将字符串str中的字母转换成小写 void is_lower(char str[]) { int i; for (i = 0; str[i] != '\0'; i++) { str[i] = tolower(str[i]); // 调用tolower函数 } } int main() { char s[100]; printf("请输入一个字符串:\n"); gets(s); // 输入一个字符串 printf("转换成大写后的字符串为:\n"); is_upper(s); // 调用is_upper函数 puts(s); // 输出转换后的字符串 printf("转换成小写后的字符串为:\n"); is_lower(s); // 调用is_lower函数 puts(s); // 输出转换后的字符串 return 0; }第二题 /* 2、编写函数 int search(int a[],int n,int x)实现在数组中查找给定的x,形式参数n为数组的数据个数。要求函数查找成功返回x在数组中的下标,否则返回-1.主函数如下: Int main() { int a[20]={10,21,28,33,37,40},x; Printf(“please input search number:\n”); Scanf(“%d”,&x); If(search(a,6,x)>=0) printf(“search sucess!!”); Else printf(“search fail!”); } */ /*****************************************************************/ #include <stdio.h> // 顺序查找法 int search(int a[], int n, int x) { int i; for (i = 0; i < n; i++) { if (a[i] == x) // 找到x { return i; // 返回下标 } } return -1; // 没有找到x } // 折半查找法 int search(int a[], int n, int x) { int low, high, mid; low = 0; // 查找范围的左端点 high = n - 1; // 查找范围的右端点 while (low <= high) // 查找范围不为空 { mid = (low + high) / 2; // 计算中间元素的下标 if (a[mid] == x) // 找到x { return mid; // 返回下标 } else if (a[mid] > x) // x小于中间元素 { high = mid - 1; // 在左半部分继续查找 } else // x大于中间元素 { low = mid + 1; // 在右半部分继续查找 } } return -1; // 没有找到x }第三题 //3、编写函数 int fun(int n),计算正整数n的所有因子(1和n除外)之和。例如n=8,函数值为6,因为除1和8之外,因子有2和4 /*****************************************************************/ #include <stdio.h> // 计算正整数n的所有因子(1和n除外)之和 int fun(int n) { int sum = 0; // 存储因子之和 int i; // 遍历变量 for (i = 2; i < n; i++) // 从2开始,遍历所有小于n的正整数 { if (n % i == 0) // 如果能被n整除 { sum += i; // 则说明是n的因子,加到sum中 } } return sum; // 返回sum作为函数值 } int main() { int n; printf("请输入一个正整数:\n"); scanf("%d", &n); // 输入一个正整数 printf("该数的所有因子(1和%d除外)之和为:%d\n", n, fun(n)); // 调用fun函数并输出结果 return 0; }第四题 /* 4、编写函数void sort(int a[],int n),用选择排序方法实现数组a的降序排列。主函数如下: Int main() { int a[20]={32,12,35,23,22,15},i; Printf(“initialized data:\n”); For(i=0;i<n;i++)printf(“%3d”,a[i]); Printf(“\n”); Sort(a,6); Printf(“sorted data:\n”); For(i=0;i<n;i++)printf(“%3d”,a[i]); } */ /*****************************************************************/ #include <stdio.h> // 用选择排序方法实现数组a的降序排列 void sort(int a[], int n) { int i, j, min, temp; // 定义变量 for (i = 0; i < n - 1; i++) // 外层循环控制排序趟数 { min = i; // 假设当前位置的元素是最小的 for (j = i + 1; j < n; j++) // 内层循环在剩余的元素中寻找最小的元素 { if (a[j] < a[min]) // 如果找到比当前最小元素还小的元素 { min = j; // 更新最小元素的下标 } } if (min != i) // 如果最小元素不是当前位置的元素 { temp = a[i]; // 交换两个元素的值 a[i] = a[min]; a[min] = temp; } } }第五题 -然而并没有呢 //预留位置