2009二级C语言南开100题编程题答案(6)

2018-11-22 21:25

b[j]=0;

for(i=0;i<n;i++) if(a>=0&a<=9) b[0]+=1;

else if(a>=10&a<=19) b[1]+=1;

else if(a>=20&a<=29) b[2]+=1;

else if(a>=30&a<=39) b[3]+=1;

else if(a>=40&a<=49) b[4]+=1;

else if(a>=50&a<=59) b[5]+=1;

else if(a>=60&a<=69) b[6]+=1;

else if(a>=70&a<=79) b[7]+=1;

else if(a>=80&a<=89) b[8]+=1;

else if(a>=90&a<=99) b[9]+=1; else b[10]+=1;}

62: 第62题 请编写函数fun,该函数的功能是:统一一含字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格格开,一行的开始没有空格。 答案:

int fun (char *s) {int i,n=0;

for(i=0;i<strlen(s);i++)

{if(s=‘a’&s<=‘z’&s[i+1]==‘’ ‖s[i+1]==‘\\0’) n++;} return n;}

63: 第63题 请编写一个函数fun,它的功能是:计算并输出给定整数n的所有因子(不包括1与自身)之和。规定n的值不大于1000。 答案:

int fun(int n) {int s=0,i;

26

for(i=2;i<=n-1;i++) if(n%i==0) s+=i; return s;}

64: 第64题 请编写函数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%2==0) {t[j]=s; j++;} t[j]=‘\\0’;}

65: 第65题 请编写函数fun,其功能是:将两位数的正整数a、b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。 答案:

void fun(int a,int b,long *c)

{*c=(b)*1000+(a/10)*100+(b/10)*10+a;}

66: 第66题 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:删除字符串中所有*号。在编写函数时,不得使用c语言提供的字符串函数。 答案:

void fun(char *a) {int i=0;char *p=a; while(*p) {if(*p!=‘*’) {a=*p; i++;} p++;} a=‘\\0’;}

67: 第67题 学生的记录时由学号和成绩组成,n名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能时:函数返回指定学号的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回(用于字符串比较的函数时strcmp)。 答案:

27

strec fun(strec*,char *b) {int i; strec h;

for(i=0;i<n;i++) if(strcmp(a.num,b)==0) {h=a; break; } else {h.num==\h.s=-1;} return h;}

68: 第68题 请编写函数fun,其功能时:计算并输出下列多项式的值: sn=1+1/1!+1/2!+1/3!+1/4!+…+1/n! 答案:

sn=1+1/1!+1/2!+1/3!+1/4!+...+1/n! double fun(int n) {double t,sn=1.0; int i,j;

for(i=1;i<n;i++) {t=1.0;

for(j=1;j<=i;j++) t*j; sn+=1.0/t;} return sn;}

69: 第69题 请编写一个函数fun,它的功能时:求fibonacci数列中大于t的最小的一个数,结果由函数返回。其中fibonacci数列f(n)的定义为: f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2) 答案:

f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2) int fun(int t) {int a=1,b=1,c=0,i; for(i=4;i<=t;i++) {if(c<t) {c=a+b; a=b; b=c;} else break;} return c;}

28

70: 第70题 编写函数fun,它的功能时:计算并输出下列级数和: s=1/1*2+1/2*3+…+1/n(n+1) 答案:

double fun (int n) {double s=0.0; int i;

for(i=1;i<=n;i++) s=s+1.0/(i*(i+1)); return s;}

71: 第71题 请编写函数fun,其功能时:将两个两位数的正整数a、b合并形成一个整数放在c中,合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b的十位和个位整数依次放在c数的百位和个位上。 答案:

void fun(int a,int b,long *c)

{*c=(a)*1000+(b/10)*100+(a/10)*10+b;}

72: 第72题 请编写函数fun,其功能是:将s所指字符串中下标为偶数的字符删除,串中剩余字符形成新串放在t所指数组中。 答案:

void fun(char *s,char t[]) {int i,j=0,n=strlen(s); for(i=0;i<n;i++) if(i%2!=0) {t[j]=s; j++;} t[j]=‘\\0’;}

73: 第73题 假定输入的字符串中只包含字母和*号,请编写函数fun,它的功能是:除了字符串前导和尾部的*号之外,将串中其他*号全部删除。形参h已指向字符串第一个字符,形参p已指向字符串中最后一个字母。在编写程序时,不得使用c语言提供的字符串函数。 答案:

void fun(char *a,char *h,char *p) {int i=0; char *q=a; while(q<h) {a=*q; q++; i++;} while(q<p)

29

{if(*q!=‘’*) {a=*q; i++;} q++;} while(*q) {a=*q; i++; q++;} a=‘\\0’;}

74: 第74题 学生的记录由学号和成绩组成n名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能时:把分数最低的学生数据放在h所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。 答案:

int fun(strec *a,strec *b) {int i,j=0,n=0,min; min=a[0].s; for(i=0;i<n;i++) if(a.s<min) min=a.s;

for(i=0;i<n;i++) if(a.s==min) {*(b+j)=a; j++; n++;} return n;}

75: 第75题 请编写函数fun ,该函数的功能:将m行n列的二维数组中的数据,按列的顺学依次放到一维数组中。 答案:

void fun(int (*s)[]10,int *b,int *n,int mm,int nn) {int i,j;

for(j=0;j<nn;j++) for(i=0;i<mm;i++) {b[*n]=*(*(s+i)+j); *n=*n+1;}}

76: 第76题 请编写函数fun,其功能时:计算并输出当x<0.97时下列多项式的值,直到|sn-s(n-1)|<0.000001为止。

Sn=1+0.5x+0.5(0.5-1)/2!x(2)+…+0.5(0.5-1)(0.5-2)…..(0.5-n+1)/n!x(n) 答案:

30


2009二级C语言南开100题编程题答案(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:最新中国交通银行招聘考试笔试试题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: