问题 问答题

使用VC++6.0打开考生文件夹下的源程序文件2.cpp。请完成函数fun(char *data),此函数的功能是找出字符串数组中最大的ASCⅡ值,如果有相同变量,则输出最后一个所在的位置;如果字符串为空,则返回-1;或者不存在时也返回-1。
注意:不能修改函数的其他部分。计算数字如果第一个字母最大,则返回0。依次增加。
试题程序:
#include<iostream.h>
int fun(char *data)


void main()

char source[1024];
cout<<"请输入一行英文字符串:\n";
cin.getline(source,1024);
cout<<"最大的字母出现在距离头部"<<fun(source)<<"个字母处"<<end1;

答案

参考答案:int fun(char *data)
{
int MaxPos=0;
if(data==NULL)
return=1;
char MaxData=data[0];
if(MaxData==0)
return=1;
for(int i=1;data[i]!=0;i++)
if(data[i]>=MaxData)
{
MaxData=data[i];
MaxPos=i;
return MaxPos;
}

解析: 本题考查的是查找最大值算法。根据题意,首先检查传入参数的合法性,如不合法或为空串,则返回-1,然后通过for循环遍历整个字符串,将最大值字符保存到MaxData内,并将最大位置保存给MaxPos,最后返回MaxPos。

单项选择题
综合