问答题
【程序功能】
以下程序中函数void csort(char str[][N],int n)对str指向的二维数组前n行中存储的n
个字符串分别作如下处理:从中间将字符串一分为二,左半部分字符子串按字符的ASCII码值
从大到小排序(若字符串的长度为奇数,则中间字符不参加排序)。
【测试数据与运行结果】
测试字符串:"abcdefgh","123498765"
屏幕输出:dcbaefgh
432198765
【含有错误的源程序】
以下源程序已保存在T盘myf1.c文件内,考生可直接打开该文件的调试程序。
1 #include
2 #include
3 #include
4 #define N 80
5 void csort(char str[][N],int n);
6 void main()
7 {char s[2][N]="abcdefgh","123498765";
8 int i;
9 csort(s,2);
10 for(i=0;i<2;i++)
11 puts(s);
12 getch();
13 }
14 void csort(char str[][N],int n)
15 { int i,j,k,len,half;
16 char temp;
17 for(i=0;i
【正确答案】第7行 {char s[2][N]="abcdefgh","123498765"; 改为{"abcdefgh","123498765"}
第11行 puts(s); 改为puts(s[i])
第18行 {len=strlen(str[i][0]); 改为str[i]
第21行 for(k=j+1;k
【答案解析】