南开100题精编.docx

上传人:b****2 文档编号:2463868 上传时间:2022-10-29 格式:DOCX 页数:29 大小:24.77KB
下载 相关 举报
南开100题精编.docx_第1页
第1页 / 共29页
南开100题精编.docx_第2页
第2页 / 共29页
南开100题精编.docx_第3页
第3页 / 共29页
南开100题精编.docx_第4页
第4页 / 共29页
南开100题精编.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

南开100题精编.docx

《南开100题精编.docx》由会员分享,可在线阅读,更多相关《南开100题精编.docx(29页珍藏版)》请在冰豆网上搜索。

南开100题精编.docx

南开100题精编

21:

第21题请编写函数fun,对长度位7个字符的字符串,除首尾字符外,将其余5个字符按ascii码降序排列。

答案:

voidfun(char*s,intnum)

{

chart;

intI,j;

for(i=1;i<num-2;i++)

for(j=i+1;j<num-1;j++)

if(s[i]<s[j])

{

t=s[i];

s[i]=s[j];

s[j]=t;

}

}

22:

第22题n名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。

请编写函数fun,它的功能是:

找出学生的最高分,由函数值返回。

答案:

doublefun(STREC*h)

{

doublemax;

STREC*q=h;

max=h->s;

do

{

if(q->s>max)

max=q->s;

q=q->next;

}

while(q!

=0);

returnmax;

}

23:

第23题请编写函数fun,该函数的功能是:

判断字符串是否为回文?

若是则函数返回1,主函数中输出yes,否则返回0,主函数中输出no。

回文是指顺读和倒读都是一样的字符串。

答案:

intfun(char*str)

{

intI,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]);

else

{

fg=0;

break;

}

returnfg;

}

24:

第24题请编写一个函数fun,它的功能是:

将一个字符串转换为一个整数(不得调用c语言提供的将字符串转换为整数的函数)。

答案:

longfun(char*p)

{

longs=0,t;

inti=0,j,n=strlen(p),k,s1;

if(p[0]==‘-’)

i++;

for(j=I;j<=n-1;j++)

{

t=p[j]-‘0’;

s1=10;

for(k=j;k<n-1;k++)

t*=s1;

s+=t;

}

if(p[0]==‘-’)

return–s;

else

returns;

}

25:

第25题请编写一个函数fun,它的功能是:

比较两个字符串的长度,(不得调用c语言提供的求字符串长度的函数),函数返回较长的字符串。

若两个字符串长度相同,则返回第一个字符串。

答案:

char*fun(char*s,char*t)

{

char*p,*t1=t,*s1=s;

intn=0;m=0;

while(*s1)

{

n++;

s1++;

}

while(*t1)

{

m++;

t1++;

}

if(n>=m)

p=s;

else

p=t;

returnp;

}

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)

程序运行后,如果输入精度0.0005,则程序输出为3.14…。

答案:

doublefun(doubleeps)

{

doubles;

floatn,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;

returnpi;

}

27:

第27题请编写一个函数fun,它的功能是:

求除1到m之内(含m)能北7或11整除的所有整数放在数组a中,通过n返回这些数的个数。

答案:

voidfun(intm,int*a,int*n)

{

intI,j=0;*n=0;

for(i=1;i<=m;i++)

if(i%7==0||i%11==0)

{

a[j]=I;

j++;

}

*n=j;

}

28:

第28题请编写一个函数fun,它的功能是:

找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。

数组元素中的值已在主函数中赋予。

主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。

答案:

voidfun(inta[],intn,int*max,int*d)

{

intI;

*max=a[0];

*d=0;

for(i=0;I<n;i++)

if(a[i]>*max)

{

*max=a[i];

*d=I;

}

}

29:

第29题请编写一个函数fun,它的功能是:

将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。

答案:

voidfun(char*ss)

{

intI,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整型二维数组中最大元素的值,并将此值返回调用函数。

答案:

intfun(inta[][M])

{

intI,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];

returnmax;

}

31:

第31题请编写函数fun,其功能是:

将s所指字符串中除了下标为偶数、同时ascii值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的一个数组中。

答案:

voidfun(char*s,chart[])

{

intI,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所指的一个数组中。

答案:

voidfun(char*s,chart[])

{

intI,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个,则删除多于的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。

答案:

voidfun(char*a,intn)

{

inti=0;k=0;

char*p,*t;

p=t=a;

while(*t)

t++;

t--;

while(*t==‘*’)

{

k++;

t--;

}

t++;

if(k>n)

{

while(*p&&p<t+n)

{

a[i]=*p;

i++;

p++;

}

a[i]=‘\0’;

}

}

34:

第34题学生的记录由学号和成绩组成,n名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能使:

把分数最高的学生数据放在h所指的数组中,注意:

分数最高的学生可能不止一个,函数返回分数最高的学生的人数。

答案:

intfun(STREC*a,STREC*b)

{

intI,j=0,n=0,max;

max=a[0].s;

for(i=0;i<N;i++)

if(a[i].s>max)

max=a[i].s;

for(i=0;i<N;i++)

if(a[i].s==max)

{

*(b+j)=a[i];

j++;

n++;

}

returnn;

}

35:

第35题请编写一个函数,用来删除字符串中的所有空格。

答案:

voidfun(char*str)

{

inti=0;

char*p=str;

while(*p)

{

if(*p!

=‘’)

{

str[i]=*p;

i++;

}

p++;

}

str[i]=‘\0’;

}

36:

第36题假定输入的字符串中只包含字母和*号。

请编写函数fun,它的功能是:

将字符串中的前导*号全部移到字符串的尾部。

答案:

voidfun(char*a)

{

inti=0,n=0;

char*p;

p=a;

while(*p==‘*’)

{

n++;

p++;

}

while(*p)

{

a[i]=*p;

i++;

p++;

}

while(n!

=0)

{

a[i]=‘*’;

i++;

n--;

}

a[i]=‘\0’;

}

37:

第37题某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。

请编写函数fun,它的功能是:

求出该学生的平均分放在记录的ave成员中。

请自己定义正确的形参。

答案:

voidfun(STREC*p)

{

doubleav=0.0;

inti:

for(i=0;i<N;i++)

av+=p->s[i];

av/=N;

p->ave=av;

}

38:

第38题请编写函数fun,它的功能是:

求出ss所指字符串中指定字符的个数,并返回此值。

答案:

intfun(char*ss,charc)

{

intn=0;

while(*ss)

{

if(*ss==c)

n++;

ss++;

}

returnn;

}

39:

第39题请编写函数fun,该函数的功能是:

移动一维数组中的内容,若数组中由n个整数,要求把下标从0到p(p小于等于n-1)的数组元素平移到数组的最后。

答案:

voidfun(int*w,intp,intn)

{

intb[N],i,j=0;

for(i=0;i<=p;i++)

{

b[i]=w[i];

j++;

}

for(i=0;i<=p;i++)

{

w[j]=b[i];

j++;

}

}

40:

第40题请编写函数fun,该函数的功能是移动字符串中内容,移动的规则如下:

把第1到第m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。

答案:

voidfun(char*w,intm)

{

charb[N];

intI,j=0;

for(i=0;i<m;i++)

{

b[j]=w[i];

j++;

}

for(i=0;i<strlen(w)-m;i++)

w[i]=w[i+m];

for(j=0;j<m;j++)

{

w[i]=b[j];

i++;

}

w[i]=‘\0’;

}

41:

第41题请

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1