问答题 下列给定程序中函数fun的功能是:用冒泡法对6个字符串进行升序排列。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!#include<stdio.h>#include<string.h>#define MAXLINE20fun(char*pstr[6]){int i,j;char*p;for(i=0;i<5;i++){/**********found**********/for(j=i+1,j<6,j++){if(strcmp(*(pstr+i),*(pstr+j))>0){p=*(pstr+i);/**********found**********/*(pstr+i)=pstr+j;*(pstr+j)=p;}}}}main(){int i;char*pstr[6],str[6][MAXLINE];for(i=0;i<6;i++)pstr[i]=str[i];printf("\nEnter6string(1string at each line):\n");for(i=0;i<6;i++)scanf("%s",pstr[i]);fun(pstr);printf("The strings after sorting:\n");for(i=0;i<6;i++)printf("%s\n",pstr[i]);}
【正确答案】正确答案:(1)for(j=i+1;j<6;j++) (2)*(pstr+i)=*(pstr+j)
【答案解析】解析:(1)此处考查for语句的格式,各表达式之间应用“;”隔开。 (2)此处考查用指针表示数组元素的方法,*(pstr+I)表示pstr所指向数组的第1个元素,同理,*(pstr+j)表示pstr所指向数组的第j个元素。