C语言编程:字符串排序与数组最小值查找实例

需积分: 10 2 下载量 105 浏览量 更新于2024-07-31 收藏 277KB DOC 举报
在本篇资源中,主要涉及了两个C语言编程题目,分别对应于成都信息工程大学计算中心的网上作业和考试。 第一个问题是第65题,要求编写一个名为P7-719.C的程序,其目的是实现字符串的升序排序。该程序通过`scanf`函数从用户处获取5个最多80字节的字符串,然后利用嵌套的`for`循环和`strcmp`函数比较字符串,如果发现当前字符串大于后一个,则交换它们的位置,以达到升序排列。程序的关键代码片段如下: ```c for(j=0;j<6;j++) { for(i=0;i<4;i++) { if(strcmp(str[i],str[i+1])>0) { strcpy(cc,str[i]); strcpy(str[i],str[i+1]); strcpy(str[i+1],cc); } } } ``` 这段代码遍历数组,每次比较相邻的两个字符串,如果`str[i]`比`str[i+1]`大,就将`str[i+1]`的内容复制到临时变量`cc`,然后将`str[i]`的值赋给`str[i+1]`,最后将`cc`的值赋给`str[i+1]`,实现了升序排序。 第二个问题来自第42题,P7-762.C,该题目要求实现一个名为`FindMin`的函数,该函数接收一个整数数组`num[]`,数组长度`n`以及一个指向最小元素位置的指针`pMinPos`。函数的目的是找到数组中的最小元素及其索引。尽管题目没有提供完整的函数实现,但可以推测函数的主要逻辑如下: ```c int FindMin(int num[], int n, int* pMinPos) { int minNum = num[0]; // 假设第一个元素为最小值 *pMinPos = 0; // 初始化最小值位置为0 for (int i = 1; i < n; i++) { if (num[i] < minNum) { minNum = num[i]; *pMinPos = i; // 更新最小值位置 } } return minNum; } ``` 这部分代码首先假设第一个元素为最小值,然后遍历整个数组,如果发现新的更小元素,就更新`minNum`和`pMinPos`。函数返回找到的最小值。 两个题目都考察了基础的C语言编程技能,包括字符串和整数数组的操作,以及控制结构的使用。学生需要熟练掌握字符串比较、数据结构以及函数设计,才能正确完成这些题目。