有已排好序的字符串a,下面的程序是将字符串s中的每个字符按a中元素的规律插入到a中。

#include <stdio.h>
main()
{
char a[20]=“cehiknqtw”;
char s[]=“fbla”;
int i,k,j;
for(k=0;s[k]!=‘\0’;k++)
{
j=0;
while(s[k]>=a[j]&&a[j]!=‘\0’) j++;
for(【1】) 【2】;
a[j]=s[k];
}
puts(a);
}
B【1】 A)i=strlen(a)+k; i>=j; i-- B)i=strlen(a); i>=j; i--
C)i=j; i<=strlen(a)+k; i++ D)i=j; i<=strlen(a); i++
B【2】 A)a[i]=a[i+1] B)a[i+1]=a[i]
C)a[i]=a[i-1] D)a[i-1]=a[i]
给个执行步骤,尽量详细些,THX

这个程序的意思你没有表述清楚
应该是: 将s中的字符插入已经按照从小到大的顺序排列的a串中
执行的过程是:
for(k=0;s[k]!=‘\0’;k++)//依次提取每个s中的字符进行操作
{
j=0;//从a的第一个开始比较
while(s[k]>=a[j]&&a[j]!=‘\0’) j++;//如果a没有结束并且s【k】字符大于a的当前字符 那么就和a的下一个比较,直到s【k】小于当前a字符或者a当前位置为结束 才跳出循环进行下一个操作。
for(【1】) 【2】;//将当前位置以及以后的字符进行向后移动 以替出a中存放s【k】的位置
a[j]=s[k];//将s【k】插入
}
puts(a);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-28
while(s[k]>=a[j]&&a[j]!=‘\0’) j++;是寻找插入位置,按照字母表顺序,在a中确定s[k]的位置,for(【1】) 【2】;的作用是后移,为即将插入的元素腾出位置,然后插入,输出
第2个回答  2019-02-15
#include<stdio.h>
#include<string.h>
main()
{
char a[20]="cehiknqtw";
char s[]="fbla";
int i,k,j;
for(k=0;s[k]!='\0';k++)
{
j=0;
while(s[k]>=a[j]&&a[j]!='\0')
j++;
for(i=strlen(a);i!=j;i--)
a[i]=a[i-1];
a[j]=s[k];
}
puts(a);
我的可能简单一点,我才大一刚刚学c,然后我也不懂【1】,【2】咋用的。。。
第3个回答  2013-06-28
(1)A
(2)B
相似回答