s=s+a[0][j]+a[M-1][j];
returns;
12.2功能:
对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII制降序排列。
例如:
原来的字符串为CEAede排序后输出为CadEAa.
charch;
inti,j;
for(i=I;i<6;i++)
for(j=i+1;j<6;j++)
{
if(*(s+i)<*(s+j))
{
ch=*(s+j);
*(s+j)=*(s+i);
*(s+i)=ch;
}
}
inty;
if(x<0)
y=x*x+x-6;
elseif(x>=0&&x<=10)y=x*x-5*x+6;
else
y=x*x-x-1;returny;
13.2求Sn=a+aa+aaa++aa…a之值,其中,a代表1到9中的一个数字。
例如:
a代表2,
则求2+22+222+2222+22222(此时n=5),a和n的值由键盘键入。
intt=a,i,s;
for(i=1,s=0;i<=n;i++)
{
t=t*10+a;
s=s+t;
}
returns;
14.1功能:
将两个两位数的正整数a、b合并形成一个整数放在c中。
合并的方式是:
将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。
例如:
当a=45,b=12,调用该函数后,c=2514。
*c=a/10+(a%10)*100+(b/10)*10+(b%10)*1000;
14.2功能:
编写函数fun其功能是:
根据整型形参m,计算如下公式的值:
y=1+1/3+1/5
+1/7+…+1/(2m+1)
例如:
若m=9则应输出:
2.133256doubley=0;
inti;
for(i=0;i<=m;i++)
{
y+=1.0/(2*i+1);
}
return(y);
15.1题目:
请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。
例如:
原来的字符串为"CEAedca",排序后输出为"CedcEAa"。
charch;
inti,j;
for(i=1;i<6;i++)for(j=i+1;j<6;j++)
{
if(*(s+i)<*(s+j))
{
ch=*(s+j);
*(s+j)=*(s+i);
*(s+i)=ch;
}
}
15.2功能:
对某一正数的值保留2位小数,并对第三位进行四舍五入。
inti;
i=(int)(h*1000)%10;
if(i>=5)
return(int)(h*100+1)/100.0;
else
return(int)(h*100)/100.0;
16.1请编写一个函数intfun(int*s,intt,int*k),用来求出数组的最大元素在数组中的
下标并存放在k所指向的存储单元中。
例如:
输入如下整数:
876675896101301401980431451777则输出结果为6,980。
inti;*k=0;for(i=0;ireturns[*k];
16.2功能:
从键盘输入一个大于3的整教,调用函数fun判断其是否素数,然后在main函数中输出相应的结论信息。
例如:
7是素数,8不是素数。
请编写fun区擞。
素数是仅能被1和自身整除的数
inti;
for(i=2;ireturn1;
17.1题目:
规定输入的字符串中只包含字母和*号。
请编写函数fun,其功能是:
使字符串中
尾部的*号不多于n个,若多于n个,则删除多余的*号!
若少于或等于n个则不做任何操作,
字符串中间和前面的*号不删除。
例如:
字符串中的内容为“****A*BC*DEF*******,若n的值为4,删除后,字符串中的内容
应为"****A*BC*DEF*G****;
若n的值为7,则字符串中的内容仍为“****A*BC*DEF*G*******”。
n的值在主函数中输入。
编写函数时,不得使用C语言提供的字符串函数。
inti=0,k=0;char*p,*t;p=t=a;while(*t)
t++;
t--;
while(*t=='*')
{
k++;
t--;
}
if(k>n)
{
while(*p&&p{
a[i]=*p;
i++;
p++;
}
a[i]='\0';
}
17.2题目:
用函数求一个n阶方阵右下三角元素的和(包括副对角线上的元素)。
inti,j,k=0;
for(i=0;ifor(j=N-1-i;jk=k+a[i][j];
return(k);
18.1功能:
用do-while语句求1~100的累计和
inti=1,sum=0;
do
{sum=sum+i;
i++;
}
while(i<=n);
returnsum;
18.2功能:
用辗转相除法求两个整数的最大公约数。
intr,t;
if(nr=n%m;
while(r!
=0)
{n=m;m=r;r=n%m;}
return(m);
19.1题目:
在矩阵a中选出各行最大的元素组成一个一维数组b。
如图片1所示。
for(i=0;i{
imax=a[i][0];
for(j=1;jif(imaxL_
19.2题目:
假定输入的字符串中只包含字母和*号。
请编写通数fun,其功能是:
除了尾部
的号之外将字符中的其它的*号全部删除。
形参p已指向字符串中最后的一个字母。
在编写
的函数时,不得使用c语言提供的字符串函数。
例如:
字符串中的内容为****a*BC*DEF*G*******删除后,字符串中的内容应当
是abcdefg*******.
char*t=a;for(;t<=p;t++)
if(*t!
='*')
*(a++)=*t;
for(;*t!
='\0';t++)
*(a++)=*t;
*a='\0';
20.1请编写voidfun(intx,intpp[],int*n),它的功能是:
求出能整除x且不是偶数的各整数,并按从小到大的顺序放在PP所指的数组中,这些除数的个数通过形参n返回。
例如:
若x中的值为30,则有4个数符合要求,它们是1、3、5、15。
inti,j=0;
for(i=1;i<=x;i=i+2)
if(x%i==0)
pp[j++]=I;
*n=j;
20.2(14.1)
(动医课件)附加1:
计算并输出给定整数n的所有因子之和(不包括1与自身)
intfun(intn)
ints=0,i;
for(i=2;iif(n%i==0)s=s+i;
returns;