j=i;
max=a[i].s;
}
*s=a[j];
}
13程序定义了N*N的二维数组,并在主函数中自动赋值。
请编写函数fun(inta[][N],intn),函数的功能是:
使数组左下三角元素中的值乘以n
例如n的值为3,a数组的值为a=197则返回a数组的值为a=397
238698
456121518
#include
#include
#defineN5
voidfun(inta[][N],intn)
{
inti,j;
for(i=0;ifor(j=0;j<=i;j++)
a[i][j]*=n;
}
14程序定义了N*N的二维数组,并在主函数中自动赋值。
请编写函数fun(inta[][N],intn),函数的功能是:
使数组左下三角元素中的值全部为0
例如a数组的值为a=197则返回a数组的值为a=097
238008
456000
#include
#include
#defineN5
voidfun(inta[][N])
{
inti,j;
for(i=0;ifor(j=0;j<=i;j++)
a[i][j]=0;
}
15请编写一个函数voidfun(inttt[M][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指以为数组中。
二维数组中的书已经在主函数中赋予
#include
#defineM3
#defineN4
voidfun(inttt[M][N],intpp[N])
{
inti,j,min,k;
for(i=0;imin=tt[0][i];k=0;
for(j=1;jif(min>tt[j][i]){
min=tt[j][i];
k=j;
}
pp[i]=tt[k][i];
}
}
16请编写一个函数unsingnedfun(unsingnedw),w是一个大于10的无符号整数,若w是n为的整数,函数求出w的第n-1为的数作为函数返回值。
例如w值为5923,则函数返回923,w的值为923,函数返回23
#include
unsignedfun(unsignedw)
{
unsignedt,s=0,s1=1,p=0;
t=w;
while(t>10)
{
if(t/10)
p=t%10;
s=s+p*s1;
s1=s1*10;
t=t/10;
}
returns;
}
17请编写一个函数fun(char*s),函数的功能是把s所指字符串中的内容倒置。
例如字符串中原有的字符串为abcdefg,则调用该函数,字符串中的内容为gfedcba
#include
#include
#defineN81
fun(char*s)
{
charb[N];
inti=0,j;
memset(b,0,N);
for(j=strlen(s)-1;j>=0;j--)b[i++]=s[j];
strcpy(s,b);
}
18请编写一个函数,它的功能是:
从s所指的字符串中删除给定的字符,同一字母的大、小写按不同字符处理。
若程序执行时输入字符串为:
turbocandBorlandc++,从键盘上输入字符:
n,则输出后变为tuebocadborladc++
、、、、、、、、
#include
#include
voidfun(chars[],charc)
{
char*p=s;
inti=0;
while(*p){
if(*p!
=c)s[i++]=*p;
p++;
}
s[i]='\0';
}
19请编写一个函数,对长度为7的字符串,除首尾字符外,将其与5个字符按ASCII降序排列。
例如原来的字符串为CEAedca,排序后输出CedcEAa
#include
#include
#include
voidfun(char*s,intnum)
{
chart;
inti,j;
for(i=1;i//对n个元素进行循环选择
for(j=i+1;jif(s[i]
//将str[i]设为最大值,和剩下的j~n-1进行比较
{
t=s[i];
s[i]=s[j];
s[j]=t;
}
}
20请编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。
例如,假定输入的字符串为asdasasdfgasdzx67asdmklo,字符串为as,则应输出6
#include
#include
intfun(char*str,char*substr)
{
intcnt=0;
char*p=str,*q;
while(*p){
q=strstr(p,substr);
if(q==NULL)break;
p=q+strlen(substr);
cnt++;
}
returncnt;
}
21请编写一个函数,它的功能是:
将所有大于1小于m的非素数存入xx所指数组中,非素数的个数通过k传回。
例如输入17,则输出46810121416
#include
voidfun(intm,int*k,intxx[])
{
inti,j;
intt=0;//初始化数组个数
for(i=2;i{
j=2;
while(j
{
if(i%j==0)//如果i不是素数
{
xx[t]=i;
t++;
break;
}
j++;
}
*k=t;
}
}
22请编写一个函数,它的功能是:
求出ss所指字符串中指定字符的个数,并返回此值。
例如输入字符串123412132输入字符为1,则输出3
#include
#include
#defineM81
intfun(char*ss,charc)
{
intcnt=0;
char*p=ss;
while(*p){
if(*p==c)cnt++;
p++;
}
returncnt;
}
23请编写一个函数,它的功能是:
实现B=A+A’,即把矩阵A加上A的转置,存放在矩阵B中。
计算结果main函数中输出。
例如输入下面矩阵123,其转置矩阵为147程序输出为2610
45625861014
789369101418
#include
voidfun(inta[3][3],intb[3][3])
{
intc[3][3];
inti,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++){
c[i][j]=a[j][i];//矩阵的转置
b[i][j]=a[i][j]+c[i][j];
}
}
24请编写一个函数,它的功能是:
求出1到1000之间被7或11整除、但不能同时被7和11整除的所有整数并将它放在a所指数组中,通过n返回这些数的个数。
#include
voidfun(int*a,int*n)
{
inti;
*n=0;
for(i=7;i<1000;i++)
if(((i%7)==0||(i%11)==0)&&(i%77)!
=0)a[(*n)++]=i;
}
25请编写一个函数voidfun(char*tt,intpp[]),统计tt所指字符串中a到z26个小写字母各自出现的次数,并依次放到pp所指的数组中
例如输入字符串abcdefgabcdeabc后,程序输出结果3332211000000000000
#include
#include
voidfun(char*tt,intpp[])
{
char*p=tt;
inti;
for(i=0;i<26;i++)pp[i]=0;
while(*p){
if(*p>='a'&&*p<='z')pp[*p-'a']+=1;
p++;
}
}
26请编写一个函数voidfun(chara[],charb[]),其功能是:
删除一个字符串中指定下标的字符。
其中,a指向原来字符串,剩下字符存放在b所指数组中,n中存放指定的下标。
例如输入word,然后输入3,则调用后结果为word
#include
#include
#defineLEN20
voidfun(chara[],charb[],intn)
{
intp,m=0;
for(p=0;pif(p!
=n)//如果字符下标不满足题目要求的标志n
{
b[m]=a[p];
//原始串的字符赋值给新串b
m++;
}
b[m]='\0';//新串末尾加上结束符
}
27请编写一个函数,它的功能是:
根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。
S=1+1/1+2+1/1+2+3+、、、、、、+1/1+2+3+、、、、、+n,n值为11时,函数值为1.833333
#include
doublefun(intn)
{
intk;
floatstr=1.0,sum=1.0;
for(k=2;k<=n;k++)
{
sum=sum+k;//求得每一项的分母
str=str+1/sum;//级数累加求和
}
returnstr;
}
28请编写一个函数,它的功能是:
利用以下所示的简单迭代方法求方程:
cos(x)-x=0的一个实根。
Xn+1=cos(Xn)、、、、、、程序将输出结果Root=0.739086
#include
#include
doublefun()
{
floatx0,x1=0.0;
do{
x0=x1;
x1=cos(x0);
}while(fabs(x0-x1)>0.000001);
returnx1;
}
29请编写一个函数,它的功能是:
求Fibonacci数列中大于t的最小的一个数,结果由函数返回。
其中,Fibonacci数列F(n)的定义为:
F(0)=0,F
(1)=1,F(n)=F(n-1)+F(n-2)
例如当t=1000,函数值为1597
=#include
#include
intfun(intt)
{
intf0=0,f1=1,f;
do{
f=f0+f1;
f0=f1;
f1=f;
}while(freturnf;
}
30请编写一个函数,它的功能是计算:
S=根号下(ln
(1)+ln
(2)+ln(3)_、、、、、、、+ln(m))S作为函数返回值。
例如m的值为20,函数值为6.506583
#include
#include
doublefun(intm)
{
doubles=0.0;
inti;
for(i=1;i<=m;i++)s+=log(1.0*i);
s=sqrt(s);
returns;
}
31规定输入的字符只包含字母和*。
请编写一个函数,它的功能是:
将字符串中的前导*全部删除,中间和尾部的*号不删除。
例如字符串中的内容为*******A*BC*DEF*G****,删除后,字符串中的内容为A*BC*DEF*G****
#include
voidfun(char*a)
{
intj=0;
char*p=a;
while(*p=='*')p++;
while(*p){
a[j++]=*p;
p++;
}
a[j]='\0';
}
32规定输入的字符只包含字母和*。
请编写一个函数,它的功能是:
除了尾部的*号之外,将字符串中其他的*全部删除。
例如字符串中的内容为****A*BC*DEF*G******,删除后,字符串中的内容为ABCDEFG*******
#include
voidfun(char*a,char*p)
{
char*q=a;
intj=0;
while(*q&&q
if(*q!
='*')a[j++]=*q;
q++;
}
while(*p)a[j++]=*p++;
a[j]='\0';
}
33规定输入的字符只包含字母和*。
请编写一个函数,它的功能是:
除了字符串前导和尾部的*号之外,将字符串中其他的*全部删除。
例如字符串中的内容为****A*BC*DEF*G******,删除后,字符串中的内容为****ABCDEFG********
#include
voidfun(char*a,char*h,char*p)
{
intj=0;
char*q=a;
while(*q&&qwhile(*h&&*p&&h
if(*h!
='*')a[j++]=*h;
h++;
}
while(*p)a[j++]=*p++;
a[j]='\0';
}
34规定输入的字符只包含字母和*。
请编写一个函数,它的功能是:
将字符串中所有的*全部删除。
例如字符串中的内容为****A*BC*DEF*G*****,删除后,字符串中的内容为ABCDEFG
#include
voidfun(char*a)
{
intj=0;
char*p=a;
while(*p){
if(*p!
='*')a[j++]=*p;
p++;
}
a[j]='\0';
}
35规定输入的字符只包含字母和*。
请编写一个函数,它的功能是:
使字符串中尾部的*号不得多于n个,若多于n个,则删除多余的*号,若少于或等于n个,则什么也不做,字符串前面和中间的*不删除。
#include
voidfun(char*a,intn)
{
inti=0,j=0;
char*p,*t;
p=t=a;
while(*t)//让指针t指向串尾
t++;
t--;//t指向串中的最后一个字符
while(*t=='*')
//当t指针当前指向的字符是"*"号时
{
j++;//对"*"号计数的累加器加1
t--;//指向前一个字符
}
t++;//跳出"*"号统计后,指针t继续指向字符串的下一个字符
if(j>n)//对统计的"*"号数目大于给定的"*"号总数n
{
while(*p&&p//当超出给定的"*"号数目,则开始进行截取
{
a[i]=*p;//截取n个"*"号
i++;
p++;
}
a[i]='\0';//对新生成的串加尾符
}
}
36某学生的记录由学好、8门课程成绩和平均分组成,学好、8门课程成绩已在主函数中给出,请编写一个函数,它的功能是:
求出该学生的平均分放在记录的ave成员中。
例如学生的成绩是85.5,76,69,5,85,91,72,64.5,87.5他的平均分应当是78.875
#include
#defineN8
typedefstruct
{charnum[10];
doubles[N];
doubleave;
}STREC;
voidfun(STREC*a)
{
inti;
for(i=0;ia->ave=a->ave+a->s[i];
a->ave/=N;
}
37学生的记录由学好和成绩构成,N名学生的数据已存入结构体数组s中,请编写一个函数,它的功能是:
把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。
#include
#defineN8
typedefstruct
{charnum[10];
doubles;
}STREC;
doublefun(STREC*a,STREC*b,int*n)
{
inti;
doubleave=0.0;
*n=0;
for(i=0;iave/=N;/*计算平均值*/
for(i=0;iif(a[i].sb[*n]=a[i];
(*n)++;/*人数加1*/
}
returnave;/*返回平均值*/
}
38学生的记录由学好和成绩构成,N名学生的数据已存入结构体数组s中,请编写一个函数,它的功能是:
把分数最高的学生数据放在h所指的数组中。
#in