函数的功能是把字符串中的内容逆置 下载本文

n);

for(n=0; n

19、 请编一个函数fun(char *s),函数的功能是把字符串中所有的字母改写成该字母的 下一个字母,最后一个字母z改写成字母a。大写字母仍为大写字母,小写字母仍为小写 字母,其他的字符不变。

例如:原有的字符串为:Mn.123zyZ,则调用该函数后,串中的内容为:No.123yzA。 试题程序。 #include \#include \#include \#include \#define N 81

/* 该题的思路较为明显,用for()循环一个字符一个字符地走动,移动过程中判断是否 在a到y之间,若是则加1(即下移一个字母),若是z则换成对应的a */ fun(char *s) { int i,n=strlen(s); for(i=0;i

{ if((s[i]>='A'&&s[i]<'Z')//(s[i]>='a'&&s[i]& lt;'z')) s[i]=s[i]+1;

else if(s[i]=='z') s[i]='a'; else if(s[i]=='Z') s[i]='A'; } } main() { char a[N]; clrscr();

printf(\printf(\fun(a);

printf(\puts(a); }

20、 请编写函数fun,函数的功能是:将s所指字符串中、下标为奇数位置上的大写字母 转换为字母序列中的下一个小写字母;若该位置上是小写字母,则不转换;若该位置上 是大写字母Z,则仅转换成小写字母z。 例如,输入:ABCdxZZZ,则输出为:AcCdXzZz。 试题程序。 #include \#define N 80

/* 该题的算法与上一题相似,注意同一个字母小写要比大写在ASCII值上大32。*/ void fun(char *s) {

int i;

for(i=1;i='A'&&s[i]<'Z') s[i]+=32+1;

else if(s[i]=='Z') s[i]+=32; } main() {

char s[N];

printf(\fun(s);

printf(\}

21、 程序定义了N*N的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是: 给数组周边元素置0值。 例如:a数组中的值为

则返回主程序后a数组中的值应为 注意:部分源程序给出如下。

请勿改动主函数main和其它函数中的任何去何内容,仅在函数fun的花括号中填入你编写 的若干语句。 试题程序。 #include #include #include #define N 5

/* 由于是赋值0,因而只要能表示出周边元素即好办,它与求和不同在于求和不能重复 对某个元素进行运算,而赋值则可重复赋值。所以这里只用了一个for()循环来找出所有 的周边元素。*/ fun(int w[][N]) { int i ; for(i=0;i

22、 请编写函数fun,它的功能是:求出ss所指字符串中、指定字符的个数,并返回此 值。

例如:若输入字符串:123412132,输入字符为:1,则输出:3。 试题程序。 #include

#include #define M 81

/* 注:本题用while()循环来控制字符的移动,每移动一个字符都要进行判断(if(*ss ==c))是否为指定的字母,若是则个数加1。这里要注意如何让ss指针向下走动(ss++) 。*/

int fun(char *ss,char c) {int num=0; while(*ss!='\\0') {if(*ss==c) num++; ss++; }

return(num); } main() {char a[M],ch; clrscr();

printf(\printf(\printf(\}

23、 程序定义了N*N的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是: 求出数组周边元素的平均值并作为函数值返回给主函数中的s。 例如:a数组中的值为

则返回主程序后s的值应为:3.375。 试题程序。 #include #include #include #define N 5

/* 注意不能重复计算,它与题21不同,第一个for()循环求出第一列与最后一列的和, 第二个for()循环求出第一行与最后一行(已除去两头元素),要注意第二个for()中起 始为1,最后为N-2。*/ double fun (int w[][N]) { int i,t=0; double s=0; for(i=0;i

{s+=w[i][0]+w[i][N-1]; t+=2;} for(i=1;i

{s+=w[0][i]+w[N-1][i]; t+=2;} s=s/t; return s; } main()

{ int a[N][N]={0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1}; int i,j;

double s; clrscr();

printf(\for(i=0;i

printf(\printf(\}

24、 编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数strcat) 。

例如,分别输入下面两个字符串: FirstSrting— SecondString 程序输出:

FirstString—SecondString 注意:部分源程序给出如下。

请勿改动主函数main和其它函数中的任何去何内容,仅在函数fun的花括号中填入你编写 的若干语句。 试题程序。 #include #include

/* 注:第一个for()循环用于让i成为第一个字符串的结束符的下标,要注意在这个for ()后要有一个分号否则出错。第二个for()的作用是将第二个字符串一个一个字符依次放 到第一个字符串的未尾。此外,还要注意最后一定要有p1[i]='\\0';来给字符串加上 结束符。*/

void fun(char p1[],char p2[]) {int i,j;

for(i=0;p1[i];i++); for(j=0;p2[j];j++) p1[i++]=p2[j]; p1[i]='\\0'; } main()

{ char s1[80],s2[80]; clrscr();

printf(\scanf(\printf(\printf(\

printf(\fun(s1,s2);