2011二级C语言南开100题 下载本文

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