1.出二维数组中最大的数.00000
int fun (int a[][M])000000
{000000
int i,j,max=a[0][0];000000
for(i=0;i<2;i++)000000
for(j=0;j<M;j++)000000
if(max<a[i][j]) 00000
max=a[i][j];000000
return max;00000
}000000
2. 求出迭代法中的和,精度为epd。000000
double s=1.0,s1=1.0;000000
. int n=1;000000
while(s1>=eps) /*当某项大于精度要求时,继续求下一项*/000000
{s1=s1*n/(2*n+1); /*求多项式的每一项*/000000
s=s+s1; /*求和*/00000
n++;000000
}000000
return 2*s;000000
3.求出能被整除的个数000000
void fun (int *a, int *n)000000
{000000
int i,j=0;000000
for(i=1;i<=1000;i++) /*求1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数,并放入数组a中*/000000
if((i%7==0||i%11==0)&&i%77!=0) 00000
a[j++]=i;000000
*n=j; 00000
}000000
4.求出字符串中只有字母的字符00000
void fun( char *a )000000
{000000
int i,j=0;000000
for(i=0;a[i]!='\0';i++)000000
if(a[i]!='*') 000000
a[j++]=a[i]; /*若不是要删除的字符'*'则留下*/000000
a[j]='\0';000000
}000000
5.实现两个字符串的连接000000
void fun(char p1[], char p2[])000000
{int i,j;000000
for(i=0;p1[i]!='\0';i++) ; 000000
for(j=0;p2[j]!='\0';j++)000000
p1[i++]=p2[j];00000
p1[i]='\0';00000
}000000
6.某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能是:求出该学生的平均分,并放入记录的ave成员中。000
000
void fun(STREC *a)000000
{double ave=0.0;00000
int i;00000
for(i=0;i<N;i++)000000
a->ave=a->ave+a->s[i];000000
a->ave/=N;00000
}000000
7.N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,其功能是:求出平均分,并由函数值返回。000000
例如,若学生的成绩是:8576698591726487,则平均分应当是:78.625。
000000
double fun( STREC *h )000000
{000000
double ave=0.0;000000
STREC *p=h->next;000000
while(p!=NULL)000000
{ave=ave+p->s; 000000
p=p->next;000000
}000000
return ave/N;000000
}000000
8.编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k返回。000000
例如,若输入17,则应输出:46891012141516。000000
void fun( int m, int *k, int xx[] )000000
{000000
/*int i,j;000000
int t=0;00000
for(i=2;i<m;i++)000000
{j=2;000000
while(j<i)000000
{if(i%j==0)000000
{xx[t]=i;000000
t++;000000
break;}000000
j++;}000000
*k=t;}*/000000
9.编写函数fun,其功能是:求ss所指字符串中指定字符的个数,并返回此值。0000
00
例如,若输入字符串123412132,输入字符为1,则输出3。000000
int fun(char *ss, char c)000000
{000000
int i=0;000000
for(;*ss!='\0';ss++)000000
if(*ss==c) 00000
i++;/*求出ss所指字符串中指定字符的个数*/000000
return i;000000
}000000
10.其功能是计算n门课程的平均分,结果作为函数值返回。000000
float fun ( float *a , int n )000000
{000000
int i;00000
float av=0.0; 000000
for(i=0; i<n;i++)000000
av=av+a[i]; 00000
return(av/n);000000
}000000
11.学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:把分数最高的放在b所指的数组中。注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。000000
int fun( STREC *a, STREC *b )000000
{000000
int i,j=0,max=a[0].s;00000
/*出最大值*/000000
for(i=0;i<N;i++)000000
if(max<a[i].s) max=a[i].s;00000
for(i=0;i<N;i++)000000
if(max==a[i].s) 000000
b[j++]=a[i]; /*出成绩与max相等的学生的记录,存入结构体b中*/000000 return j; /*返回最高成绩的学生人数*/000000
}000000
12.规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:除了字符串前导的*号之外,将串中其它*号全部删除。在编写函数时,不得使用C语言提供的字符串函数。
000000
例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:****ABCDEFG。00000
void fun( char *a )000000
{000000
int i=0;000000
char *p=a;000000
while(*p&&*p=='*')00000
{000000
a[i]=*p;000000
i++;000000
p++;000000
}000000
while(*p)000000
{000000
if(*p!='*')000000
{a[i]=*p;i++;}000000
p++;000000
}000000
a[i]='\0';00000
}000000
13.下列给定程序中,函数fun的功能是:把形参s所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于等于2)。00000
例如,形参s所指字符串为"abcdefgh",执行结果为"ahcbedgf"。000000
void fun(char *tt, int pp[])000000
{int i;000000
for(i=0;i<26;i++)000000
pp[i]=0;        /*初始化pp数组各元素为0*/000000
for(;*tt!='\0';tt++)000000
if(*tt>='a'&&*tt<='z')  000000
pp[*tt-'a']++;  000000
}000000
14.下列给定程序中,函数fun的功能是:在形参ss所指字符串数组中查与形参t所指字符串相同的串,到后返回该串在字符串数组中的位置(即下标值),若未到则返回-1。ss所指字符串数组中共有N个内容不同的字符串,且串长小于M。000000
void fun( char *a )000000
{while(*a!='\0')000000
a++;000000
a--; /*指针a指向字符串的尾部*/000000
while(*a=='*')000000
a--; /*指针a指向最后一个字母*/000000
*(a+1)='\0'; /*在字符串最后加上结束标志符*/000000
}000000
15.下列给定程序中已建立了一个带头结点的单向链表,在main函数中将多次调用fun函数,每调用一次,输出链表尾部结点中的数据,并释放该结点,使链表缩短。000000
char *fun ( char *s, char *t)00000
{int i,j;00000
for(i=0;s[i]!= '\0';i++); /*求字符串的长度*/000000
for(j=0;t[j]!= '\0';j++);000000
if(i<=j) /*比较两个字符串的长度*/ 000000
return t; /*函数返回较长的字符串,若两个字符串长度相等,则返回第1个字符串*/ 0000 00
else 00000
return s;000000
}000000
16.学生的记录由学号成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:函数返回该学号的,指定的学号在主函数中输入。若没到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。(用于字符串比较的函数是strcmp)。000000
STREC fun( STREC *a, char *b )000000
{int i;000000
STREC str={"\0",-1}; /*若没到指定的学号,在结构体变量中给学号置空串,给成绩置-1*/ 000000
for(i=0;i<N;i++)000000
if(strcmp(a[i].num,b)==0) /*到指定学号的*/000000
str=a[i];000000
return str; /*返回学生记录*/000000
}000000
【考点分析】000000
本题考查:结构体类型;字符串比较函数strcmp()的应用。000000
【解题思路】000000
本程序一开始先使结构体变量str中的学号为空串,成绩为-1。循环体的功能是搜索所有学生的学号,并判断是否有学号与b所指字符串相同(即到),若到则给str重新赋值(str=a[i]),若没到则str成员的值还是原有值(即未到时学号返回空串,成绩返回-1)。0000 00
【解题宝典】000000
常见的字符串处理函数总结如下:000000
调用形式000000
作用000000
说明000000
puts000000
(字符数组)00000
将一个字符串(以′\0′结束)输出到终端设备00000
用该函数输出的字符串中可以包含转义字符000000
gets000000
(字符数组)00000
从终端输入一个字符串到字符数组中,并且得到一个函数值000000
字符串比较函数实现
puts()和gets()函数一次只能输入或输出一个字符串,不能写成puts(字符数组1,字符数组2)或gets(字符数组1,字符数组2)000000
strcpy(字符数组1,字符数组2)000000
把字符数组2所指字符串的内容复制到字符数组1所指存储空间中。函数返回字符数组1的值,即目的串的首地址000000

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。