使用VC++6.0打开考生文件夹下的源程序文件2.cpp。请完成函数fun(char*data),此函数的功能是找出字符串数组中最大的ASCIl值,如果有相同变量,则输出最后一个所在的位置;如果字符串为空,则返回-1;或者不存在时也返回-1。 注意:不能修改函数的其他部分。计算数字如果第一个字母最大,则返回0。依次增加。 试题程序: #include intfun(char*data) { } voidmain() { charsource[1024]; cout<<"请输入一行英文字符串:\n"; cin.getline(source,1024); cout<<"最大的字母出现在距离头部"< <<"个字母处"< }
参考答案:imfun(char*data) { intMaxPos=0: if(data==NULL return-l: charMaxData=data[0]; if(MaxData==0) return-1; for(inti=1;data[i]!=0;i++) if(data[i]>=MaxData) { MaxData=data[i]; MaxPos=i: } returnMaxPos; }
解析:【解析】本题考查的是查找最大值算法。根据题意,首先检查传入参数的合法性,如不合法或为空串,则返回-1,然后通过for循环遍历整个字符串,将最大值字符保存到MaxData内,并将最大位置保存给MaxPos,最后返回Max-Pos。