本文共 3585 字,大约阅读时间需要 11 分钟。
1 从传入的num个字符中找出最长一个字符串,并通过形参指针max传回该串地址(用**作为结束标识符)
#include#include #define MAX 100void fun(char(*a)[81], int num, char **max){ int i = 0; *max = a[0]; for (i = 0; i < num; i++) if (strlen(*max) < strlen(a[i])) *max = a[i];}int main(){ char ss[10][81], *ps; int n, i = 0; printf("输入若干各字符串:\n"); gets(ss[i]); puts(ss[i]); while (!strcmp(ss[i], "****") == 0) { i++; gets(ss[i]); puts(ss[i]); } n = i; fun(ss, n, &ps); printf("\nmax=%s\n", ps); printf("\n");}
2 请编写一个函数,用来删除字符串中的所有空格
#includevoid fun(char *str){ int i = 0; char *p = str; while (*p) { if (*p !=' ') //删除空格 str[i++] = *p; p++; } str[i] = '\0'; //加上结束符}int main(){ char str[81] = "welcome to Beijing"; fun(str); printf("%s\n", str);}
3 判断字符串是否为回文,若是,则返回1,否则返回0。例如字符串LEVEL是回文,而字符串123312就不是回文
#includeint fun(char *str){ int i, n = 0, fg = 1; char *p = str; while (*p) { n++; p++; } for (i = 0; i < n / 2; i++) { if (str[i] != str[n - 1 - i]) { fg = 0; break; } } return fg;}int main(){ char str1[256] = "LEVEL"; char str2[256] = "123312"; if (fun(str1))printf("YES\n"); else printf("NO\n"); if (fun(str2))printf("YES\n"); else printf("NO\n");}
4 编写函数fun,其功能是:根据以下公式计算s并计算结果作为函数返回值返回,n通过形参传入。s=1+1/(1+2)+1/(1+2+3)+1/1+2+3+…n
float fun(int n){ int i, s1 = 0; float s = 0.0; for (i = 1; i <= n;i++) { s1 = s1 + i; //求每一项的分母 s = s + 1.0 / s1; //求多项式的值 } return s;}
5 编写函数fun,其功能是:将s所指字符串中ASCII值为奇数的字符删除,剩余字符形成新串放在t所指数组中。
void fun(char *s, char t[]){ int i, j = 0, n; n = strlen(s); for (i = 0; i < n; i++) { if (s[i] % 2 == 0) { t[j] = s[i]; j++; } } t[j] = '\0';}
6 删除一维数组中所有相同的数,使之只剩一个,数组中的数已按由小到大的顺序排列,函数返回删除后数组中的数据个数。
#includeint fun(int a[],int n){ int i,j=1; for(i=1;i
7 规定输入的字符串中只包含字母和号。编写函数fun,其功能是:除了字符串前导和尾部的号外,将串中其它的*号全部删除。形参h已指向字符串中的第一个字母,形参p指向字符串中的最后一个字母。在编写函数时不得使用C语言提供的字符串函数。
#includevoid fun(char *a,char *h,char *p){ int i=0; char *q=a; while(q
8 编写函数fun,其功能是:计算并输出3-n之间所有素数的平方根之和
当输入100后 输出为sum=148.874270#include#include double fun(int n){ int m,k,i; double s=0.0; for(m=3;m<=n;m++) { k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0)break; if(i>=k+1) s+=sqrt(m); } return s;}void main(){ int n=100; printf("%f\n",fun(n));}
9 请编写函数fun,该函数的功能是:计算并输出
S=1+(1+2^0.5)+(1+2^0.5+3^0.5)+…+(1+2^0.5+3^0.5+…n^0.5) 当输入20后,则输出结果为S=534.188884 答案一:#include#include double fun(int n){ int i; double s=0.0,s1=0.0; for(i=1;i<=n;i++) { s1=s1+pow(i,0.5); s=s+s1; } return s;}void main(){ int n=20; printf("%f\n",fun(n));}
答案二:
#include#include double fun(int n){ double sum=1.0; double temp=1.0; for(int i=2;i<=n;i++) { temp=1.0; for(int j=2;j<=i;j++) temp+=pow(j,0.5); sum+=temp; } return sum;}void main(){ int n=20; printf("%f\n",fun(n));}
10 请编写函数fun(),它的功能是计算:s=(ln(1)+ln(2)+ln(3)+…+ln(m))0.5。在C语言中可调用log(n)函数求ln(n)。例如,若m的值为20,则fun()函数值为6.506583。
#include#include double fun(int m){ int i; double s=0.0; for(i=1; i<=m; i++) s=s+ log(i); //计算s=ln(1)+ln(2)+ln(3)+…+in(m) s=sqrt(s); //对s求平方根 return s; }void main(){ int n=20; printf("%f\n",fun(n));}
转载地址:http://ziqqf.baihongyu.com/