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

2018-11-22 21:25

a[i]=*p; i++; p++; }

a[i]=‘\\0’; } }

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

int fun (STREC *a, STREC *b) {

int I,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++; } return n; }

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

void fun(char *str) { int i=0; char *p=str; while (*p) {

if(*p!=‘’) {

str[i]=*p; i++; }

16

p++; }

str[i]=‘\\0’; }

36: 第36题 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部移到字符串的尾部。 答案:

void fun(char *a) {

int i=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成员中。请自己定义正确的形参。 答案:

void fun(STREC *p) {

double av=0.0; int i:

for(i=0;i<N;i++) av+=p->s[i];

17

av/=N; p->ave=av; }

38: 第38题 请编写函数fun,它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。 答案:

int fun(char *ss, char c) { int n=0; while (*ss) {

if(*ss==c) n++; ss++; } return n; }

39: 第39题 请编写函数fun,该函数的功能是:移动一维数组中的内容,若数组中由n个整数,要求把下标从0到p(p小于等于n-1)的数组元素平移到数组的最后。 答案:

void fun(int *w, int p, int n) {

int b[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到最后的字符移到字符串的前部。 答案:

void fun(char *w,int m) {

18

char b[N]; int I,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题 请编写函数fun,该函数的功能是:将m行n列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。 答案:

void fun(char (*s)[n],char *b) {int i,j,k=0; for(j=0;j<n;j++) for(i=0;i<m;i++) {b[k]=*(*(s+i)+j) k++;} b[k]=‘\\0’;}

42: 第42题 下列程序定义了n×n的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][n],int n),该函数的功能是:将数组右上半三角元素中的值乘以m。 答案:

void fun(int a[][n],int m) {int i,j;

for(j=0;j<n;j++) for(i=0;i<=j;i++) a[j]=a[j]*m;}

43: 第43题 编写一个函数,从传入的num个字符串中找出一个最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。 答案:

char *fun(char (*a)[81],int num) {int i;

19

char *max; max=a[0];

for(i=0;i<num;i++) if(strlen(max)<strlen(a)) max=a; return max;}

44: 第44题 编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。 答案:

int fun(char *str,char *substr) {int n; char *p,*r; n=0; while(*str) {p=str; r=substr; while(*r) if(*r==*p) {r++; p++;} else break;

if(*r==‘\\0’) n++; str++;} return n;}

45: 第45题 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参n 给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中最后的*个数。在编写时不得使用c语言给提供得字符串函数。 答案:

void fun(char *a,int n,int h,int e) {int i=0; char *p;

for(p=a+h;p<a+n-e;p++) {*(a+i)=*p; i++;}

*(a+i)=‘\\0’;}

46: 第46题 学生得记录由学号和成绩组称个,n名大学生得数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能时:按分数的高低排列学生的记录,高分在前。

20


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

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

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

马上注册会员

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