问答题
下列给定程序中函数fun的功能是:逐个比较P、q所指两个字符串对应位置上的字符,并把ASCII值大或相等的字符依次存放到e所指的数组中,形成一个新的字符串。例如,若主函数中a字符串为“aBCDeFgH”,b字符串为“ABed”,则c中的字符串应为“aBcdeFgH”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>#include<string.h>void fun(char*p,char*q,char*c){/*********found*********/ int k=1 ;/*********found*********/ while(*p!=*q) { if(*p<*q)c[k]=*q; else c[k]=*P; if(*P)P++; if(*q)q++; k++; }}main(){ char a[10]="aBCDeFgH",b[10]="ABcd",c[80]={'0'}; fun(a,b,c); printf("The string a:");puts(a); printf("The string b:");puts(b); printf("The result:");puts(c);}
【正确答案】正确答案:(1)int k=0; (2)while(*p‖*q)
【答案解析】解析:(1)变量k存放数组c的下标,因此应初始化为0。 (2)while循环语句的循环条件是判断两个字符串是否到达结尾。