问题 问答题

使用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。

单项选择题
名词解释