就业数据资源平台
当前位置:首页 > C++语言程序设计
2012计算机二级C++上机模拟应用题及答案5

21: 第21题 请编写函数fun,对长度位7个字符的字符串,除首尾字符外,将其余5个字符按ascii码降序排列。


答案:


void fun(char *s,int num)


{


char t;


int I,j;


for(i=1;i<num-2;i++)


for(j=i+1;j<num-1;j++)


if(s[i]<s[j])


{


t=s[i];


s[i]=s[j];


s[j]=t;


}


}


22: 第22题 n名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:找出学生的最高分,由函数值返回。


答案:


double fun(STREC *h)


{


double max;


STREC *q=h;


max=h->s;


do


{


if(q->s>max)


max=q->s;


q=q->next;


}


while(q!=0);


return max;


}


23: 第23题 请编写函数fun,该函数的功能是:判断字符串是否为回文?若是则函数返回1,主函数中输出yes,否则返回0,主函数中输出no。回文是指顺读和倒读都是一样的字符串。


答案:


int fun(char *str)


{


int I,n=0;fg=1;


char *p=str;


while (*p)


{


n++;


p++;


}


for(i=0;i<n/2;i++)


if (str[i]==str[n-1-i]);


else


{


fg=0;www.examw.com


break;


}


return fg;


}


24: 第24题 请编写一个函数fun,它的功能是:将一个字符串转换为一个整数(不得调用c语言提供的将字符串转换为整数的函数)。


答案:


long fun (char *p)


{


long s=0,t;


int i=0,j,n=strlen(p),k,s1;


if(p[0]==‘-’)


i++;


for(j=I;j<=n-1;j++)


{


t=p[j]-‘0’;考试用书


s1=10;


for(k=j;k<n-1;k++)


t*=s1;


s+=t;


}


if(p[0]==‘-’)


return –s;


else


return s;


}


25: 第25题 请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用c语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。


答案:


char *fun(char *s,char *t)


{


char *p,*t1=t,*s1=s;


int n=0;m=0;


while (*s1)


{


n++;


s1++;


}


while(*t1)


{


m++;


t1++;


}


if(n>=m)


p=s;


else


p=t;


return p;


}

就业数据资源平台