第41题 请编写函数fun,该函数的功能是 :将m行n列的二维数组中的字符信息,按列的次序依次放到一个字符串中.
答案:
void fun(char (s)[n],char b)
{int i,j,k=0;
for(j=0;j<n;j++)
for(i=0;i<m;i++)
{b[k]=((s+i)+j)
k++;}
b[k]=‘\0’;}
42:第42题 以下程序定义了n×n的二维数组,同时在主函数中自动赋值.请编写函数fun(int a[][n],int n),该函数的功能是 :将数组右上半三角元素中的值乘以m.
答案:
void fun(int a[][n],int m)
{int i,j;
for(j=0;j<n;j++)
for(i=0;i<=j;i++)
a[j]=a[j]m;}
43:第43题 编写一个函数,从传入的num个字符串中找出一个最长的一个字符串,同时通过形参指针max传回该串地点(用***做为终了输入的标记).答案:
char *fun(char (*a)[81],int num)
{int i;
char *max;
max=a[0];
for(i=0;i<num;i++)
if(strlen(max)<strlen(a))
max=a;
return max;}
44:第44题 编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中展示的次数.
答案:
int fun(char *str,char *substr)
{int n;
char *p,*r;
n=0;
while(str)
{p=str;
r=substr;
while(r)
if(r==p)
{r++;
p++;}
else
break;
if(r==‘\0’)
n++;
str++;}
return n;}
45:第45题 假定输入的字符串中只包涵字母和号.请编写函数fun,它的功能是 :只删除字符串前导和尾部的号,串中字母之间的号都不删除.形参n 给出了字符串的长度,形参h给出了字符串中前导号的个数,形参e给出了字符串中末了的个数.在编写时不得使用c语言给供应得字符串函数.答案:
void fun(char *a,int n,int h,int e)
{int i=0;
char p;
for(p=a+h;p<a+n-e;p++)
{(a+i)=*p;
i++;}
*(a+i)=‘\0’;}
46:第46题 学生得记录由学号和成绩组称个,n名大学生得信息已在主函数中放入结构体数组s中,请编写函数fun,它的功能时:按分数的高低布列学生的记录,高分在前.
答案:
void fun(strec a[])
{int i,j;
strec t;
for(i=0;i<n-1;i++)
for(j=i;s<n;j++)
if(a.s<a[j].s)
{t=a;
a=a[j];
a[j]=t;}}
47:第47题 请编写一个函数void fun(char *ss),其功能时:将字符串ss中全部下标为奇数位置上的字母变形为大写(如果位置上不是 字母,那么不变形).答案:
void fun(char *ss)
{int i,n=0;
char *p=ss;
while(*p)
{n++;
p++;}
for (i=0;i<n;i++)
if ((ss=‘a’&ss<=‘z’)&i%2!=0)
ss=ss-32;
ss=‘\0’;}
48:第48题 请编写函数fun,其功能是 :将两个两位数的正整数a,b合同时成一个整数放在c中.合同时的方式是 :将a数的十位和个位依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上.
答案:
void fun(int a,int b,long *c)
{*c=(a10)*1000+(b10)*100+(a%10)*10+b%10;}
49:第49题 请编写函数fun,其功能是 :将s所指字符串中下标位偶数同时ascii值为奇数的字符删除,s中剩余的字符酿成的新串放在t所指的数组中.答案:
void fun(char *s,char t[])
{int i,j=0,n=strlen(s);
for(i=0;i<n;i++)
if(i%2==0&s%2!=0)
else
{f[j]=s;
j++;}
t[j]=‘\0’;}