2011年C语言南开100题
s1=10;
for(k=j;k<n-1;k++) t*=s1; s+=t; }
if(p[0]==‘-’) return –s; else return s; }
25: 第25题 请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用c语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。 答案:
char *fun(char *s,char *t) {
char *p,*t1=t,*s1=s; int n=0;m=0; while (*s1) { n++; s1++; }
while(*t1) { m++; t1++; }
if(n>=m) p=s; else p=t; return p; }
26: 第26题 请编写一个函数fun,它的功能是:根据以下公式求x的值(要求满足精度0.0005,即某项小于0.0005时停止迭代):
x/2=1+1/3+1×2/3×5+1×2×3/3×5×7+1×2×3×4/3×5×7×9+…+1×2×3×…×n/3×5×7×(2n+1)
13
2011年C语言南开100题
程序运行后,如果输入精度0.0005,则程序输出为3.14…。 答案:
double fun(double eps) {
double s; float n,t,pi;
t=1;pi=0;n=1.0;s=1.0; while((fabs(s))>=eps) {
pi+=s;
t=n/(2*n+1); s*=t; n++; }
pi=pi*2; return pi; }
27: 第27题 请编写一个函数fun,它的功能是:求除1到m之内(含m)能北7或11整除的所有整数放在数组a中,通过n返回这些数的个数。 答案:
void fun(int m, int *a, int *n) {
int I,j=0; *n=0; for(i=1;i<=m;i++) if (i%7==0 || i ==0) {
a[j]=I; j++; } *n=j; }
28: 第28题 请编写一个函数fun,它的功能是:找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n 是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。 答案:
14
2011年C语言南开100题
void fun (int a[],int n, int *max, int *d) { int I;
*max=a[0]; *d=0;
for(i=0;I<n;i++) if(a[i]>*max) {
*max=a[i]; *d=I; } }
29: 第29题 请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。 答案:
void fun(char *ss) {
int I,n;
n=strlen(ss);
for(i=1;i<n;i+=2)
if(ss[i]>=‘a’&& ss[i]<=‘z’) ss[i]=ss[i]-32; }
30: 第30题 请编写一个函数fun,它的功能是:求除一个2×m整型二维数组中最大元素的值,并将此值返回调用函数。 答案:
int fun(int a[][M]) {
int I,j,max; max=a[0][0]; for(i=0;i<2;i++) for(j=0;j<M;j++) if(a[i][j]>max) max=a[i][j]; return max; }
15
2011年C语言南开100题
31: 第31题 请编写函数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(i%2==0&&s[i]%2==0) {
t[j]=s[i]; j++; }
t[j]=‘\\0’; }
32: 第32题 请编写函数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(i%2!=0&&s[i]%2!=0) {
t[j]=s[i]; j++; }
t[j]=‘\\0’; }
33: 第33题 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串中尾部的*号不得多于n个;若多于n个,则删除多于的*号;若少
16