填空题
1. 下列给定程序中函数fun的功能是:逐个比较p、q所指两个字符串对应位置上的字符,并把ASCII值大或相等的字符依次存放到c所指的数组中,形成一个新的字符串。
例如,若主函数中a字符串为“aBCDeFgH”,b字符串为“ABcd”,则c中的字符串应为“aBedeFgH”。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动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、(1)int k=0;
(2)while( *p||*q)
【答案解析】[考点]
本题考查:变量初始化,需要根据题意确定变量含义,然后对其进行初始化操作;while循环语句。
(1)变量k存放数组c的下标,因此应初始化为0。
(2)while循环语句的循环条件是判断两个字符串是否到达结尾。