计算机二级C语言程序设计汇总
1 1.输入字符*A*BC*DEF*G******* 输出****ABCDEFG void fun( char *a ) { /*以下代码仅供参考*/ int i=0,k; while(a[i]== * ) i++; k=i; while(a[i]!= \0 )/* 以下程序段实现非*字符前移 */ { if (a[i]!= * ) a[k++]=a[i]; i++; } a[k]= \0 ; } 2 2. 函数功能为分别统计形参 t 所指二维数组中字母 A 和 C 的个数 void fun(char (*t)[M],int*a,int*c) { int i,j; *a=0;*c=0; for(i=0;i99) k=3; else if(n9) k=2; else k=1; return k; } 4 4.在形参指针所指的4个整数中找出最大值和最小值, 最大的放在 a 中,最小的放在 d 中 void fun(int *a,int *b,int *c,int *d) { int t; if(*a=0) //判断已有的素数个数是否已经 满足 sum 个 { xx[r++]=temp; //将素数 temp 存入数组 select k--; //将题目中要求的素数个数减1 } else break; } } } 10.10.N 名学生数据已在主函数中放入结构体数组s 中, 函数功能把最低的学生数据放在b 所指的数组中 int fun(STREC *a, STREC *b) { int i, j=0, min=a[0].s; for(i=0; ia[i].s){ j=0; b[j++]=a[i]; min=a[i].s; } else if(min==a[i].s) b[j++]=a[i]; } return j; } 11.11.计算 n 门课的平均分 如 90.5, 72, 80, 61.5, 55, 平均分为 71.8 float fun (float *a , int n) { int i; float ave=0.0; for(i=0; inext; /* 由于头结点中没有存放数据 */ double av=0.0; /* 对计算成绩平均值的变量进行初 始化 */ int n=0; while(p!=NULL){ /* 判断链表是否结束 */ av=av+p-s; /* 对成绩进行累加 */ p=p-next; /* 到下一个结点位置 */ n++; /* 人数加1 */ } av /=n; /* 计算成绩平均值 */ return av; /* 返回成绩平均值 */ } 22.22. 计算并输出当 xave+a-s[i]; a-ave /=N; } 74.74. 规定输入的字符串中只包含字母和*号。 请编写函 数fun,其功能是:除了字符串前导的*号之外,将串 中其它*号全部删除。在编写函数时,不得使用C语言 提供的字符串函数。 例如,字符串中的内容为:****A*BC*DEF*G*******, 删除后,字符串中的内容应当是:****ABCDEFG。 void fun(char *a) { int i=0; char *p=a; while(*p i++; p++; } while(*p) { if(*p!= * ) { a[i]=*p; i++; } p++; } a[i]= \0 ; } 75.75.请编写函数 fun,其功能是:计算并输出下列多项 式的值, S=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/2n) 例如,若主函数从键盘给 n 输入 8 后,则输出为 S= 0.662872。 double fun(int n) { int i; double sum=0.0; if (n1 inext; while(p) {if(p-smax) max=p-s; p=p-next; } return max; } 82.82. 编写函数 fun, 其功能是: 从字符串中删除指定的 字符。同字母的大、小写按不同字符处理。 例如,若程序执行时输入字符串为 “turbo c and borland c++“ 从键盘上输入字符 n,则输出为 “turbo c ad borlad c++“ 如果输入的字符在字符串中不存在,则字符串照原样 输出。 void fun(char s[],char c) { char *p=s; int i=0; while(*p){ if(*p !=c)s[i++]=*p; p++; } s[i]= \0 ; } 83.83.请编写函数fun,该函数的功能是: 将M行N列的二维 数组中的字符数据 ,按列的顺序依次放到一个字符串 中。 例如,若二维数组中的数据为 W W W W S S S S H H H H 则字符串中的内容应是:WSHWSHWSHWSH。 void fun(char s[][N], char *b) { int i,j,n=0; /* 请填写相应语句完成其功能 */ for(i=0; i2) 。 例如,若输入 9.9 8.5 7.6 8.5 9.3 9.5 8.97.88.68.4十个 得分, 则输出 结果 为: 8.687500。 double fun(double a[ ] , int n) { int i, j; double s=0.0, t; for (i=0; in-1; i++) for (j=i+1; j a[j]) { t = a[i]; a[i] = a[j]; a[j] = t; } for (i=1; in-1; i++) s += a[i]; return s/(n-2); } 108108. 请编写函数fun,函数的功能是查找x在s所指数 组中下标的位置,并作为函数值返回,若 x不存在,则 返回-1。 int fun( int *s, int x) { int i=0; while(s[i]!=x if(i==N) return(-1); else return(i); } 109.109. 请编一个函数 float fun(double h),该函数的 功能是:使变量 h 中的值保留两位小数,并对第三位 进行四舍五入(规定 h 中的值为正数)。 例如,若h 值为1234.567,则函数返回1234.570000; 若h值为 1234.564,则函数返回1234.560000。 float fun ( float h ) { int n = (int)(h*100+0.5); return n/100.0; } 110.110. 请编写函数 fun,该函数的功能是:求出二维数 组周边元素之和,作为函数值返回。二维数组中的值 在主函数中赋予。 例如,若二维数组中的值为: 13579 29994 69998 13570 则函数值为 61。 int fun ( int a[M][N] ) { int sum=0,i,j; for(i=0;iM;i++) for(j=0;jN;j++) if((i==0)||(j==0)||(i==M-1)||(j==N-1)) sum+=a[i][j]; r