c语言的填空题,解释下程序,程序功能是将已按升序排好序的两个字符串a和b众的字符按升序归并到字符串c

main()
{char a[]="acegikm";
char b[]="bdfhjlnpq";
char c[80],*p;
int i=0,j=0,k=0;
while(a[i]!='\0'&&b[j]!='\0')
{if (a[i]<b[j])
{ 1;}
else{2}
k++;
}
c[k]='\0';
if(3)
p=b+j;
else
p=a+i;
strcat(c,p);
puts(c);
}
1.c[k]=a[i];i++; 2c[k]=b[j++] 3a[i]=='\0' 第三个为什么天这个 不能填b[j]==‘\0’吗

if(a[i]=='\0') p = b + j;
else p = a + i;

if(b[i]=='\0') p = a + i;
else p = b + j;

自己琢磨一下,主要是看a和b哪个已经结束
a结束了,就把b剩下的复制到c:if(a[i]=='\0') p = b + j;
b结束了,就把a剩下的复制到c:else p = a + i;
温馨提示:内容为网友见解,仅供参考
无其他回答

c语言的填空题,解释下程序,程序功能是将已按升序排好序的两个字符串a...
b结束了,就把a剩下的复制到c:else p = a + i;

5, 编写代码实现将两个已按照升序排好的两个数组a和b中的顺序排列到c中...
int *b, int an, int bn);int main(){ int a[10] = {11, 21, 31, 41, 51, 61, 71, 81, 91, 110}; int b[5] = {1, 7, 88, 89, 342}; fun(a, b, 10, 5); return

将已排好序(升序)的两个字符串“AEHRWY”和“CPQUX”仍按升序合并到 字...
include <string.h> void main(){ char s1[] = "AEHRWY", s2[] = "CPQUX", s3[12];int len1 = strlen(s1), len2 = strlen(s2);int i = 0, j = 0, k = 0;while (i < len1 && j < len2){ if (s1[i] < s2[j]) s[k++] = s1[i++];else s[k++] = s1[...

【C语言】输入两个字符串a和b,将b串中的最大字符插入到a串中最小字符...
include<stdio.h>#include<string.h>int main(){ char a[50],b[50]; int i=0,j=0,min=0,max=0,x,y; gets(a); gets(b); x=strlen(a); y=strlen(b); for(i=0; i<x; i++) { if(a[i]<a[min]) min=i; } for(j=0; j<y; j++) { if(b[j...

【C语言】输入两个字符串a和b,将b串中的最大字符插入到a串中最小字符...
include<stdio.h>#include<string.h>int main(){ char a[101], b[100]; int i = 0, j = 0, min, max, x, y; min = 0;\/\/min在下面(if (a[i]<a[min]))作为右值被调用,要先做初始化 max = 0;\/\/初始化 gets(a); gets(b); x = strlen(a); y = strlen(b); for...

c语言 程序填空?
第一个空c[k] = a[i]; i++第二个空b[j]; j++第三个空'\\0'再说思路:首先已知 i 和 j 分别代表选用 a 和 b 的索引,既然是使用比较小的排在前边,那如果 a[i] 比 b[j] 小,就肯定是选用 a[i]。比如第一次比较时,a[0] < b[0],所以用 a[0]。于是有 c[k] = a[...

...的功能是从键盘输入字符串,在字符串中每两个字符之间插入一个#构成...
include<stdio.h>#include<string.h>main(){ int i,j; char a[100]; gets(a); for(i=1;i<strlen(a);i+=2) { for(j=strlen(a)+1;j>i;j--) { a[j]=a[j-1]; } a[j]='#'; } puts(a);} ...

计算机二级C语言100套上机填空题和改错题
下列给定程序中,函数fun的功能是:逐个比较a、b两个字符串对应位置中的字符,把ASCII值大或等于的字符一次存放到c数组中,形成一个新的字符串。例如,若a中的字符串为aBCDeFgH,b中的字符串为:ABcd,则c中的字符串为:aBcdeFgh。请改正程序中的错误,使程序能得出正确的结果。注意,不要改多main函数,不得增行或删...

C语言编程:编写程序将两个有序数组A、B合并成另一个有序的数组C,设为...
voidmain(){ inta[10],b[10],c[20],i,ia,ib,ic;printf("pleaseinputthefirstarray\\n");for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)scanf("%d",&b[i]);printf("\\n");ia=0;ib=0;ic=0;while(ia<10&&ib<10){ if(a[ia]<b[ib]){ c[ic]=a[ia];...

编写一个函数实现两个按升序排列的顺序表的合并操作,要用C语言编写,能...
c[k++]=b[j++];return k;\/\/返回值为c的有效长度 } void main(){ int a[]={1,3,5,7,9,10,12,14};int b[]={2,4,6,8,10,11,12,13};int c[100];int i,clen;clen=merge(a,b,c,sizeof(a)\/sizeof(*a),sizeof(b)\/sizeof(*b));for(i=0;i<clen;i++)printf("%d...

相似回答