问答题
下列给定程序中函数fun的功能是:逐个比较P、q所指两个字符串对应位置上的字符,并把ASCⅡ值大或相等的字符依次存放到c所指的数组中,形成一个新的字符串。例如,若主函数中a字符串为“aBCDeFgH”,b字符串为“Abed”,则c中的字符串应为“aBcdeFgH”。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构! #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); prinff(“The string a:”);puts(a); printf(“The string b:”);puts(b); prinff(“The result:”);puts(c); }
【正确答案】正确答案:(1)int k=0; (2)while(*p‖*q)
【答案解析】解析:本题考查:变量初始化,需根据题意确定变量含义,然后对其进行初始化操作;while循环语句。 (1)变量k存放数组c的下标,因此应初始化为0。 (2)while循环语句的循环条件是判断两个字符串是否到达结尾。