全国计算机二级C语言上机(2改错题)
更新时间:2024-04-24 09:49:01 阅读量: 综合文库 文档下载
1、请编写函数fun,函数的功能是: 移动字符串中的内容,移动的规则如下: 把第1到第m个字符, 平移到字符串的最后, 把第m+1到最后的字符移到字符串的前部。
例如, 字符串中原有的内容为: ABCDEFGHIJK, m的值为3, 则移动后, 字符串中的内容应该是: DEFGHIJKABC。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。 #include
void fun1(char *w) /* 本函数的功能是将字符串中字符循环左移一个位置 */ {
int i; char t; t=w[0];
for(i=0;i void fun(char *w, int m) /*可调用fun1函数左移字符 */ { } main() { char a[N]= \ int m; printf(\ printf(\ fun(a,m); printf(\ printf(\ NONO(); } NONO() {/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。FILE *rf, *wf ; char a[N] ; int m, i ; rf = fopen(\wf = fopen(\for(i = 0 ; i < 10 ; i++) { fscanf(rf, \ fun(a, m) ; fprintf(wf, \} fclose(rf) ; fclose(wf) ; */ } 2、学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中, 请编写函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。 例如,输入的分数是60 69, 则应当把分数在60到69的学生数据进行输出,包含60分和69分的学生数据。主函数中将把60放在low中,把69放在heigh中。 注意: 部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include int fun( STREC *a,STREC *b,int l, int h ) { } main() { STREC s[N]={{\ {\ {\ {\ {\ {\ STREC h[N],tt;FILE *out ; int i,j,n,low,heigh,t; printf(\ scanf(\ if ( heigh< low ){ t=heigh;heigh=low;low=t; } n=fun( s,h,low,heigh ); printf(\ for(i=0;i printf(\ printf(\ out = fopen(\ n=fun( s,h,80,98 ); fprintf(out,\ for(i=0;i if(h[i].s>h[j].s) {tt=h[i] ;h[i]=h[j]; h[j]=tt;} for(i=0;i fprintf(out,\ fprintf(out,\ fclose(out); } 3、已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数 fun,函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。 注意: 部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include { char num[10]; int s; } STU; fun( STU a[], STU *s ) { } main ( ) { STU a[N]={ {\ {\ {\ {\ int i; printf(\ for ( i=0; i< N; i++ )printf(\ fun ( a, &m ); printf (\ printf (\ NONO( ); } NONO( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *rf, *wf ; STU a[N], m ; int i ; rf = fopen(\wf = fopen(\ for(i = 0 ; i < 10; i++) fscanf(rf, \fun(a, &m) ; fprintf (wf, \fclose(rf) ; fclose(wf) ; } 4、请编写一个函数fun, 其功能是: 将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母, 则不转换)。 例如, 若输入\,则应输出\。 注意: 部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。 #include void main( void ) { char tt[51]; printf( \ gets( tt ); printf( \ fun(tt) ; printf( \ NONO(); } NONO() { /* 请在此函数内打开文件,输入测试数据,调用 fun 函数, 输出数据,关闭文件。 */ char tt[51], ch; FILE *rf, *wf ; int len, i=0 ; rf = fopen(\ wf = fopen(\ while(i < 10) { fgets( tt, 50, rf ); len = strlen(tt) - 1 ; ch = tt[len] ; if(ch == '\\n' || ch == 0x1a) tt[len] = 0 ; fun(tt); fprintf( wf, \ i++ ; } fclose(rf) ; fclose(wf) ; } 5、请编一个函数fun,函数的功能是使实型数保留2位小数,并对第三位进行四舍五入 (规定实型数为正数)。 例如:实型数为 1234.567, 则函数返回 1234.57; 实型数为 1234.564, 则函数返回 1234.56。 注意: 部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include main( ) { float a; printf (\ printf ( \ \ printf ( \ printf ( \ NONO( ); } NONO( ) {/* 请在此函数内打开文件,输入测试数据,调用 fun 函数, 输出数据,关闭文件。 */ int i ; float a ; FILE *rf, *wf ; rf = fopen(\wf = fopen(\for(i = 0 ; i < 20 ; i++) { fscanf(rf, \ fprintf(wf, \} fclose(rf) ; fclose(wf) ; } 6、请编写一个函数fun,它的功能是:根据以下公式求鸬闹 (要求满足精度0.0005, 即某项小于0.0005时停止迭代): 1 1 2 1 2 3 1 2 3 4 1 2讌譶 ─ = 1 + ─ + ─— + ──── + ────── +……+──────── 2 3 3×5 3×5×7 3×5×7×9 3×5×…×(2n+1) 程序运行后,如果输入精度0.0005,则程序输出为3.14…。 注意: 部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include double fun ( double eps) { } main( ) { double x; printf(\ scanf(\NONO(); } NONO ( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *fp, *wf ; int i ; double x ; fp = fopen(\wf = fopen(\for(i = 0 ; i < 10 ; i++) { fscanf(fp, \ fprintf(wf, \} fclose(fp) ; fclose(wf) ; } 7、m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。 例如,当score数组中的数据为:10、20、30、40、50、60、70、80、90时,函数返回的人数应该是4, below中的数据应为: 10、20、30、40。 注意: 部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include int fun(int score[], int m, int below[]) { } main( ) { int i, n, below[9] ; int score[9] = {10, 20, 30, 40, 50, 60, 70, 80, 90} ; n = fun(score, 9, below) ; printf( \ for (i = 0 ; i < n ; i++) printf(\ NONO() ; } NONO ( ) {/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/ int i, j, n, below[10], score[10] ; FILE *rf, *wf ; rf = fopen(\wf = fopen(\for(i = 0 ; i < 10 ; i++) { for(j = 0 ; j < 10 ; j++) fscanf(rf, \ n = fun(score, 10, below) ; for(j = 0 ; j < n ; j++) fprintf(wf, \ fprintf(wf, \} fclose(rf) ; fclose(wf) ; } 8、假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其它*号全部删除。在编写函数时,不得使用C语言提供的字符串函数。 例如,字符串中的内容为:****A*BC*DEF*G*******,删除后, 字符串中的内容应当是:****ABCDEFG。 注意: 部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include /* 以下代码仅供参考 */ int i=0,k; while(a[i]=='*') i++; k=i+1; while(a[i]!='\\0') /* 以下程序段实现非*字符前移 */ { } a[i+1]='\\0'; } main() { char s[81]; printf(\ fun( s ); printf(\ NONO(); } NONO() {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *in, *out ; int i ; char s[81] ; in = fopen(\out = fopen(\for(i = 0 ; i < 10 ; i++) { fscanf(in, \ fun(s) ; fprintf(out, \ } fclose(in) ; fclose(out) ; } 9、假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部移到字符串的尾部。 例如,字符串中的内容为:*******A*BC*DEF*G****,移动后,字符串中的内容应当是:A*BC*DEF*G***********。在编写函数时, 不得使用C语言提供的字符串函数。 注意: 部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include /* 以下代码仅供参考 */ char *p,*q; int n=0; p=a; while(*p=='*') /* 统计串头'*'个数n */ {n++; p++;} q=a; /* 向前复制字符串,请填写相应的语句完成其功能 */ for(;n>0;n--) /* 在串尾补n个'*' */ *q++='*'; *q='\\0'; } main() { char s[81],*p; int n=0; printf(\ fun( s ); printf(\ NONO(); } NONO() {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *in, *out ; int i ; char s[81] ; in = fopen(\out = fopen(\for(i = 0 ; i < 10 ; i++) { fscanf(in, \ fun(s) ; fprintf(out, \ } fclose(in) ; fclose(out) ; } 10、假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串的前导*号不得多于n个;若多于n个,则删除多余的*号; 若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。 例如,字符串中的内容为:*******A*BC*DEF*G****,若n的值为4,删除后,字符串中的内容应当是:****A*BC*DEF*G****;若n的值为8,则字符串中的内容仍为:*******A*BC*DEF*G****。n的值在主函数中输入。 在编写函数时,不得使用C语言提供的字符串函数。 注意: 部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写 的若干语句。 #include void fun( char *a, int n ) { /* 以下代码仅供参考 */ int i=0,j,k=0; while(a[k]=='*') k++; /* k为统计*字符个数 */ if(k>n) { i=n;j=k; /* 以下完成将下标为k至串尾的字符前移k-n个位置 */ } } main() { char s[81]; int n; printf(\ printf(\ fun( s,n ); printf(\ NONO(); } NONO() {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *in, *out ; int i, n ; char s[81] ; in = fopen(\out = fopen(\for(i = 0 ; i < 10 ; i++) { fscanf(in, \ fscanf(in, \ fun(s,n) ; fprintf(out, \ } fclose(in) ; fclose(out) ; } 11、请编写函数fun,它的功能是:求出能整除形参x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 例如,若 x 中的值为: 35,则有 4 个数符合要求,它们是: 1, 5, 7, 35。 注意: 部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include void fun ( int x, int pp[], int *n ) { } main( ) { int x, aa[1000], n, i ; printf( \ fun(x, aa, &n ) ; for( i = 0 ; i < n ; i++ ) printf(\ printf(\ NONO( ) ; } NONO ( ) {/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/ int x, aa[1000], n, i, j ; FILE *fp ; fp = fopen(\for(j = 0 ; j < 10 ; j++) { x = 30 + j ; fun(x, aa, &n) ; for(i = 0 ; i < n ; i++) fprintf(fp, \ fprintf(fp, \} fclose(fp) ; } 12、函数fun的功能是:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s所指串中剩余的字符形成的新串放在t所指的数组中。 例如,若s所指字符串中的内容为\,其中字符C的ASCII码值为奇数,在数组中的下标为偶数, 因此必须删除;而字符1的ASCII码值为奇数,在数组中的下标也为奇数,因此不应当删除,其它依此类推。 最后t所指的数组中的内容应是\。 注意: 部分源程序存在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include #include void fun(char *s, char t[]) { } main() { char s[100], t[100]; printf(\fun(s, t); printf(\NONO(); } NONO( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ char s[100], t[100] ; FILE *rf, *wf ; int i ; rf = fopen(\wf = fopen(\for(i = 0 ; i < 10 ; i++) { fscanf(rf, \ fun(s, t) ; fprintf(wf, \} fclose(rf) ; fclose(wf) ; } 13、函数fun的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的十位和千位上。 例如,当a=45,b=12。调用该函数后,c=2415。 注意: 部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include void fun(int a, int b, long *c) { } main() { int a,b; long c; printf(\ scanf(\ fun(a, b, &c); printf(\ NONO(); } NONO ( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *rf, *wf ; int i, a,b ; long c ; rf = fopen(\wf = fopen(\for(i = 0 ; i < 10 ; i++) { fscanf(rf, \ fun(a, b, &c) ; fprintf(wf, \} fclose(rf) ; fclose(wf) ; } 14、编写函数fun,它的功能是:求小于形参n同时能被3与7整除的所有自然数之和的平方根,并作为函数值返回。 例如若n为1000时,程序输出应为:s = 153.909064。 注意: 部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include main() /* 主函数 */ { printf(\ NONO(); } NONO ( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *fp, *wf ; int i, n ; float s; fp = fopen(\wf = fopen(\for(i = 0 ; i < 10 ; i++) { fscanf(fp, \ s = fun(n) ; fprintf(wf, \} fclose(fp) ; fclose(wf) ; } 15、请编写函数fun, 函数的功能是: 将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中, 一维数组中数据的个数存放在形参n所指的存储单元中。 例如, 二维数组中的数据为: 33 33 33 33 44 44 44 44 55 55 55 55 则一维数组中的内容应是: 33 33 33 33 44 44 44 44 55 55 55 55。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。 #include void fun(int (*s)[10], int *b, int *n, int mm, int nn) { } main() { int w[10][10] = {{33,33,33,33}, {44,44,44,44},{55,55,55,55}},i,j ; int a[100] = {0}, n = 0 ; printf(\for(i = 0 ; i < 3 ; i++) { for(j = 0 ; j < 4 ; j++) printf(\ printf(\} fun(w, a, &n, 3, 4) ; printf(\ for(i = 0 ; i < n ; i++) printf(\NONO() ; } NONO() {/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。*/ FILE *rf, *wf ; int i, j, k ; int w[10][10], a[100], n = 0, mm, nn ; rf = fopen(\wf = fopen(\for(k = 0 ; k < 5 ; k++) { fscanf(rf, \ for(i = 0 ; i < mm ; i++) for(j = 0 ; j < nn ; j++) fscanf(rf, \ fun(w, a, &n, mm, nn) ; for(i = 0 ; i < n ; i++) fprintf(wf, \} fclose(rf) ; fclose(wf) ; } 16、学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。 注意: 部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include int fun( STREC a[] ) { } main() { STREC s[N]={{\ {\ {\ {\ {\ {\ int i;FILE *out ; fun( s ); printf(\ for(i=0;i { if( (i)%4==0 )printf(\ printf(\ } printf(\ out = fopen(\ for(i=0;i { if( (i)%4==0 && i) fprintf(out, \ fprintf(out, \ } fprintf(out,\ fclose(out) ; } 17、程序定义了N×N的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返给主函数中的s。 例如:a 数组中的值为 |0 1 2 7 9| |1 9 7 4 5| a = |2 3 8 3 1| |4 5 6 8 2| |5 9 1 4 1| 则返回主程序后s的值应为: 3.375。 注意: 部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include double fun ( int w[][N] ) { } main ( ) { int a[N][N]={0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1}; int i, j; double s ; printf(\ for ( i =0; i { printf( \ printf(\ } s = fun ( a ); printf (\ printf( \ NONO( ); } NONO( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *rf, *wf ; int i, j, a[5][5]; double s ; rf = fopen(\wf = fopen(\for(i = 0 ; i < 5 ; i++) for(j = 0 ; j < 5 ; j++) fscanf(rf, \s = fun(a) ; fprintf(wf, \fclose(rf) ; fclose(wf) ; } 18、请编写函数fun,其功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。 例如, 输入如下整数: 876 675 896 101 301 401 980 431 451 777 则输出结果为: 6, 980 注意: 部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include int fun(int *s, int t, int *k) { } main( ) { int a[10]={876,675,896,101,301,401,980,431,451,777}, k ; fun(a, 10, &k) ; printf(\ NONO( ) ; } NONO ( ) {/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/ int a[10], i, k, j ; FILE *rf, *wf ; rf = fopen(\wf = fopen(\for(i = 0 ; i < 10 ; i++) { for(j = 0 ; j < 10 ; j++) fscanf(rf, \ fun(a, 10, &k) ; fprintf(wf, \} fclose(rf) ; fclose(wf) ; } 19、假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串尾部的*号全部删除,前面和中间的*号不删除。 例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:****A*BC*DEF*G。在编写函数时,不得使用C语言提供的字符串函数。 注意: 部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include main() { char s[81]; printf(\ fun( s ); printf(\ NONO(); } NONO() {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *in, *out ; int i ; char s[81] ; in = fopen(\out = fopen(\for(i = 0 ; i < 10 ; i++) { fscanf(in, \ fun(s) ; fprintf(out, \ } fclose(in) ; fclose(out) ; } 20、编写函数fun, 函数的功能是求出小于或等于lim的所有素数并放在aa数组中,函数返回所求出的素数的个数。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include int fun(int lim, int aa[MAX]) { /* 以下代码仅供参考 */ int i,j,k=0; /* 其中变量k用于统计素数个数 */ for(i=2;i<=lim;i++) { /* 以下完成判断aa数组中小于或等于lim的素数并统计个数 */ } return k; } main() { int limit, i, sum; int aa[MAX] ; printf(\输入一个整数\scanf(\sum=fun(limit, aa); for(i=0 ; i < sum ; i++) { if(i % 10 == 0 && i != 0) printf(\ printf(\} NONO(); } NONO() { /* 请在此函数内打开文件,输入测试数据,调用 fun 函数, 输出数据,关闭文件。 */ FILE *rf, *wf ; int limit, i, sum, aa[MAX] ; rf = fopen(\wf = fopen(\fscanf(rf, \sum=fun(limit, aa); for(i=0 ; i < sum ; i++) fprintf(wf,\fclose(rf) ; fclose(wf) ; } 21、请编写函数fun,函数的功能是:将大于形参m且紧靠m的k个素数存入xx所指的数组中。例如,若输入17, 5,则应输出:19, 23, 29, 31, 37。 注意: 部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include void fun(int m, int k, int xx[]) { /* 以下代码仅供参考 */ int i, j=1, t=m+1; while(j<=k) { /* 以下完成判断素数,并存放到数组xx中 */ } } main() { int m, n, zz[1000] ; printf( \ scanf(\ fun( m, n, zz) ; for( m = 0 ; m < n ; m++ ) printf(\ printf(\ NONO( ) ; } NONO ( ) {/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/ int m, n, zz[1000], i ; FILE *rf, *wf ; rf = fopen(\wf = fopen(\for(i = 0 ; i < 10 ; i++) { fscanf(rf, \ fun(m, n, zz) ; for( m = 0 ; m < n ; m++ ) fprintf(wf, \ fprintf(wf, \} fclose(rf) ; fclose(wf) ; } 22、N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:找出学生的最高分,由函数值返回。 注意: 部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include struct slist *next; }; typedef struct slist STREC; double fun( STREC *h ) { } STREC * creat( double *s) { STREC *h,*p,*q; int i=0; h=p=(STREC*)malloc(sizeof(STREC));p->s=0; while(i { q=(STREC*)malloc(sizeof(STREC)); q->s=s[i]; i++; p->next=q; p=q; } p->next=0; return h; } outlist( STREC *h) { STREC *p; p=h->next; printf(\do { printf(\while(p!=0); printf(\} main() { double s[N]={85,76,69,85,91,72,64,87}, max; STREC *h; h=creat( s ); outlist(h); max=fun( h ); printf(\ NONO(); } NONO() {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *in, *out ; int i,j ; double s[N],max; STREC *h ; in = fopen(\out = fopen(\for(i = 0 ; i < 10 ; i++) { for(j=0 ; j < N; j++) fscanf(in, \ h=creat( s ); max=fun( h ); fprintf(out, \} fclose(in) ; fclose(out) ; } 23、学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中, 请编写函数fun,它的功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。 注意: 部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include double fun( STREC *a, STREC *b, int *n ) { } main() { STREC s[N]={{\ {\ {\ {\ {\ STREC h[N], t;FILE *out ; int i,j,n; double ave; ave=fun( s,h,&n ); printf(\ for(i=0;i printf(\ printf(\ out = fopen(\ fprintf(out, \ for(i=0;i if(h[i].s fprintf(out,\ fclose(out); } 24、请编写函数 fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。 例如:二维数组中的值为 1 3 5 7 9 2 9 9 9 4 6 9 9 9 8 1 3 5 7 0 则函数值为 61。 注意: 部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include int fun ( int a[M][N] ) { } main( ) { int aa[M][N]={{1,3,5,7,9}, {2,9,9,9,4}, {6,9,9,9,8}, {1,3,5,7,0}}; int i, j, y; clrscr(); printf ( \ for ( i=0; i { for ( j =0; j y = fun ( aa ); printf( \ printf(\ NONO( ); } NONO( ) {/* 请在此函数内打开文件,输入测试数据,调用 fun 函数, 输出数据,关闭文件。 */ int i, j, y, k, aa[M][N] ; FILE *rf, *wf ; rf = fopen(\wf = fopen(\for(k = 0 ; k < 10 ; k++) { for(i = 0 ; i < M ; i++) for(j = 0 ; j < N ; j++) fscanf(rf, \ y = fun ( aa ); fprintf(wf, \} fclose(rf) ; fclose(wf) ; } 25、函数fun的功能是: 将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。 例如,若s所指字符串中的内容为:\其中字符A的ASCII码值虽为奇数,但所在元素的下标为偶数,因此必需删除;而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其它依此类推。最后t所指的数组中的内容应是:\。 注意: 部分源程序存在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写 的若干语句。 #include void fun(char *s, char t[]) { } main() { char s[100], t[100]; printf(\fun(s, t); printf(\NONO(); } NONO ( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ char s[100], t[100] ; FILE *rf, *wf ; int i ; rf = fopen(\wf = fopen(\for(i = 0 ; i < 10 ; i++) { fscanf(rf, \ fun(s, t) ; fprintf(wf, \} fclose(rf) ; fclose(wf) ; } 26、编写一个函数,从num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址。(注意: 主函数中用****作为结束输入的标志) 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include fun(char(*a)[81],int num,char **max) { /* 以下代码仅供参考 */ int i,k=0,len, maxlen; /* k为a数组中最长串所在元素的下标,初始为0,maxlen为其串长 */ maxlen=strlen(a[k]); for(i=1;i /* 以下完成查找最长串 */ } *max=a[k]; } main() { char ss[10][81],*ps; int n,i=0; printf(\输入若干个字符串:\ gets(ss[i]); puts(ss[i]); while(!strcmp(ss[i],\ { i++; gets(ss[i]); puts(ss[i]); } n=i; fun(ss,n,&ps); printf(\ NONO(); } NONO() { /* 请在此函数内打开文件,输入测试数据,调用 fun 函数, 输出数据,关闭文件。 */ char ss[20][81],*ps; int n,i=0; FILE *rf, *wf ; rf = fopen(\wf = fopen(\fgets(ss[i], 81, rf); while(!strncmp(ss[i],\{ i++; fgets(ss[i], 81, rf); } n=i; fun(ss,n,&ps); fprintf(wf, \fclose(rf) ; fclose(wf) ; } 27、请编写函数fun, 函数的功能是: 判断字符串是否为回文?若是, 函数返回1,主函数中输出: YES, 否则返回0, 主函数中输出NO。回文是指顺读和倒读都一样的字符串。 例如, 字符串LEVEL是回文, 而字符串123312就不是回文。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include main() { char s[N] ; printf(\printf(\if(fun(s)) printf(\else printf(\NONO() ; } NONO() {/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */ FILE *rf, *wf ; int i ; char s[N] ; rf = fopen(\wf = fopen(\for(i = 0 ; i < 10 ; i++) { fscanf(rf, \ if(fun(s)) fprintf(wf, \ else fprintf(wf, \} fclose(rf) ; fclose(wf) ; } 28、请编写函数fun, 函数的功能是: 删去一维数组中所有相同的数, 使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 例如, 一维数组中的数据是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10。删除后,数组中的内容应该是: 2 3 4 5 6 7 8 9 10。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。 #include main() { int a[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10},i,n=20; printf(\ for(i=0; i printf(\ for(i=0;i NONO() {/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */ FILE *rf, *wf; int a[N], n, i, j ; rf = fopen(\wf = fopen(\for(i = 0 ; i < 5 ; i++) { fscanf(rf, \ for(j = 0 ; j < n ; j++) fscanf(rf, \ n = fun(a, n) ; for(j = 0 ; j < n ; j++) fprintf(wf, \ fprintf(wf, \} fclose(rf) ; fclose(wf) ; } 29、请编写一个函数fun,它的功能是:找出一维整型数组元素中最大的值和它所在的下标, 最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。 主函数中x是数组名, n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。 注意: 部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写 的若干语句。 #include void fun(int a[], int n , int *max, int *d ) { } main() { int i, x[20], max , index, n = 10; randomize() ; for (i=0;i < n;i++) {x[i] = rand()P; printf(\printf(\ fun( x, n , &max, &index); printf(\NONO(); } NONO ( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *fp, *wf ; int i, x[20], max , index, n = 10, j ; fp = fopen(\wf = fopen(\for(i = 0 ; i < 10 ; i++) { for(j = 0 ; j < n ; j++) fscanf(fp, \ fun( x, n , &max, &index); fprintf(wf, \} fclose(fp) ; fclose(wf) ; } 30、请编写函数fun, 函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入, 规定所有单词由小写字母组成,单词之间由若干个空格隔开, 一行的开始没有空格。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。 #include } main() { char line[N]; int num=0; printf(\ num=fun( line ); printf(\ NONO(); } NONO() {/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */ FILE *rf, *wf ; int i, num ; char line[N], *p ; rf = fopen(\wf = fopen(\for(i = 0 ; i < 10 ; i++) { fgets(line, N, rf) ; p = strchr(line, '\\n') ; if(p != NULL) *p = 0 ; num = fun(line) ; fprintf(wf, \} fclose(rf) ; fclose(wf) ; } 31、程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun,函数的功能是:使数组右上三角元素中的值乘以m 。 例如:若m的值为2,a 数组中的值为 | 1 9 7 | | 2 18 14| a = | 2 3 8 | 则返回主程序后a数组中的值应为 | 2 6 16| | 4 5 6 | | 4 5 12| 注意: 部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。 #include int fun ( int a[][N], int m ) { } main ( ) { int a[N][N], m, i, j; printf(\ for ( i =0; i { a[i][j] = rand() ; printf( \ printf(\ } do m = rand() ; while ( m>=3 ); printf(\ fun ( a ,m ); printf (\ for ( i =0; i { for ( j =0; j NONO ( ); } NONO( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *rf, *wf ; int i, j, n, a[5][5] ; rf = fopen(\wf = fopen(\for(i = 0 ; i < 5 ; i++) for(j = 0 ; j < 5 ; j++) fscanf(rf, \fscanf(rf, \fun(a, n) ; for ( i = 0; i < 5; i++ ) { for ( j = 0; j < 5; j++ ) fprintf(wf, \ fprintf(wf, \} fclose(rf) ; fclose(wf) ; } 32、请编写函数fun, 函数的功能是: 将M行N列的二维数组中的字符数据, 按列的顺序依次放到一个字符串中。 例如, 二维数组中的数据为: W W W W S S S S H H H H 则字符串中的内容应是: WSHWSHWSH。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。 #include void fun(char s[][N], char *b) { int i,j,n=0; for(i=0; i < N;i++) /* 请填写相应语句完成其功能 */ { } b[n]='\\0'; } main() { char a[100],w[M][N]={{'W','W','W','W'},{'S','S','S','S'},{'H','H','H','H'}}; int i,j; printf(\ for(i=0; i { for(j=0;j fun(w,a); printf(\ printf(\ NONO(); } NONO() {/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。FILE *rf, *wf ; int i,j,k ; char a[100],w[M][N], b ; rf = fopen(\wf = fopen(\for(k = 0 ; k < 10 ; k++) { for(i = 0 ; i < M ; i++) { for(j = 0 ; j < N ; j++) fscanf(rf, \ fscanf(rf, \ } fun(w, a) ; fprintf(wf, \} fclose(rf) ; fclose(wf) ; } */ 33、学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中, 请编写函数fun,它的功能是:把分数最低的学生数据放在b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。 注意: 部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include int fun( STREC *a, STREC *b ) { } main() { STREC s[N]={{\ {\ {\ {\ {\ {\ STREC h[N]; int i,n;FILE *out ; n=fun( s,h ); printf(\ for(i=0;i printf(\ printf(\ out = fopen(\ fprintf(out, \ for(i=0;i fprintf(out, \ fclose(out); } 34、编写函数fun,它的功能是计算下列级数和,和值由函数值返回。 例如,当n = 10,x=0.3时,函数值为1.349859。 注意: 部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include double fun(double x , int n) { } main() { printf(\ NONO(); } NONO ( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *fp, *wf ; int i, n ; double s, x ; fp = fopen(\wf = fopen(\for(i = 0 ; i < 10 ; i++) { fscanf(fp, \ s = fun(x, n) ; fprintf(wf, \} fclose(fp) ; fclose(wf) ; } 35、函数fun的功能是:将s所指字符串中ASCII值为奇数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。 例如,若s所指字符串中的内容为:\,其中字符A的ASCII码值为奇数、…、字符1的ASCII码值也为奇数、… 都应当删除,其它依此类推。最后t所指的数组中的内容应是:\。 注意: 部分源程序存在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include void fun(char *s, char t[]) { } main() { char s[100], t[100]; printf(\fun(s, t); printf(\NONO(); } NONO ( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ char s[100], t[100] ; FILE *rf, *wf ; int i ; rf = fopen(\wf = fopen(\for(i = 0 ; i < 10 ; i++) { fscanf(rf, \ fun(s, t) ; fprintf(wf, \} fclose(rf) ; fclose(wf) ; } 36、请编写一个函数fun,它的功能是:求出一个2×M整型二维数组中最大元素的值,并将此值返回调用函数。 注意: 部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include main( ) { int arr[2][M]={5,8,3,45,76,-4,12,82} ; printf(\ NONO( ) ; } NONO ( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *wf ; int arr[][M]={5,8,3,90,76,-4,12,82} ; wf = fopen(\fprintf(wf, \fclose(wf) ; } 37、请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串\则函数把它转换为整数值 -1234。 注意: 部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。 #include /* 以下代码仅供参考 */ int i, len, t; /* len为串长,t为正负标识 */ long x=0; len=strlen(p); if(p[0]=='-') { t=-1; len--; p++; } else t=1; /* 以下完成数字字符串转换为一个数字 */ return x*t; } main() /* 主函数 */ { char s[6]; long n; printf(\gets(s); n = fun(s); printf(\NONO ( ); } NONO ( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *fp, *wf ; int i ; char s[20] ; long n ; fp = fopen(\wf = fopen(\for(i = 0 ; i < 10 ; i++) { fscanf(fp, \ n = fun(s); fprintf(wf, \} fclose(fp) ; fclose(wf) ; } 38、函数fun的功能是: 将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的千位和十位上。 例如,当a=45,b=12。调用该函数后,c=1425。 注意: 部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include void fun(int a, int b, long *c) { } main() /* 主函数 */ { int a,b; long c; printf(\ scanf(\ fun(a, b, &c); printf(\ NONO(); } NONO ( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *rf, *wf ; int i, a,b ; long c ; rf = fopen(\wf = fopen(\for(i = 0 ; i < 10 ; i++) { fscanf(rf, \ fun(a, b, &c) ; fprintf(wf, \} fclose(rf) ; fclose(wf) ; } 39、请编写一个函数,函数的功能是删除字符串中的所有空格。 例如, 主函数中输入\则输出为 \。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include main() { char str[81]; int n; printf(\gets(str); puts(str); fun(str); printf(\NONO(); } NONO() { /* 请在此函数内打开文件,输入调试数据,调用 fun 函数, 输出数据,关闭文件。 */ char str[81]; int n = 0; FILE *rf, *wf ; rf = fopen(\wf = fopen(\while(n < 10) { fgets(str, 80, rf); fun(str); fprintf(wf, \ n++ ; } fclose(rf) ; fclose(wf) ; } 40、编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。 例如,分别输入下面两个字符串: FirstString-- SecondString 程序输出: FirstString--SecondString 注意: 部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include void fun(char p1[], char p2[]) { } main() { char s1[80], s2[40] ; printf(\ scanf(\ printf(\ printf(\ printf(\ fun(s1, s2) ; printf(\ printf(\ NONO() ; } NONO ( ) {/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/ int i ; FILE *rf, *wf ; char s1[80], s2[40] ; rf = fopen(\wf = fopen(\for(i = 0 ; i < 10 ; i++) { fscanf(rf, \ fscanf(rf, \ fun(s1, s2) ; fprintf(wf, \} fclose(rf) ; fclose(wf) ; } 41、编写程序, 实现矩阵(3行3列)的转置(即行列互换) 例如, 输入下面的矩阵: 100 200 300 400 500 600 700 800 900 程序输出: 100 400 700 200 500 800 300 600 900 注意: 部分源程序在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。 #include main() { int i,j; int array[3][3]={{100,200,300}, {400,500,600}, {700,800,900}}; for (i=0;i<3;i++) { for (j=0;j<3;j++) printf(\ printf(\ } fun(array); printf(\ for (i=0;i<3;i++) { for (j=0;j<3;j++) printf(\ printf(\ } NONO(); } NONO() { /* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */ int i,j, array[3][3]; FILE *rf, *wf ; rf = fopen(\ wf = fopen(\ for (i=0;i<3;i++) for (j=0;j<3;j++) fscanf(rf, \ fun(array); for (i=0;i<3;i++) { for (j=0;j<3;j++) fprintf(wf, \ fprintf(wf, \ } fclose(rf) ; fclose(wf) ; } 42、请编写函数fun, 函数的功能是: 移动一维数组中的内容; 若数组中有n个整数, 要求把下标从0到p(含p,p小于等于n-1)的数组元素平移到数组的最后。 例如, 一维数组中的原始内容为: 1,2,3,4,5,6,7,8,9,10; p的值为3。移动后, 一维数组中的内容应为: 5,6,7,8,9,10,1,2,3,4。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include void fun(int *w, int p, int n) { } main() { int a[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; int i,p,n=15; printf(\ for(i=0; i printf(\ for(i=0; i printf(\ NONO(); } NONO() {/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */ FILE *rf,*wf ; int a[N], i, j, p, n ; rf = fopen(\wf = fopen(\for(i = 0 ; i < 5 ; i++) { fscanf(rf, \ for(j = 0 ; j < n ; j++) fscanf(rf, \ fun(a, p, n) ; for(j = 0 ; j < n ; j++) fprintf(wf, \} fclose(rf) ; fclose(wf) ; } 43、请编写函数fun, 函数的功能是: 将放在字符串数组中的M个字符串(每串的长度不超过N), 按顺序合并组成一个新的字符串。 例如, 字符串数组中的M个字符串为 AAAA BBBBBBB CC 则合并后的字符串的内容应是: AAAABBBBBBBCC。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。 #include void fun(char a[M][N], char *b) { /* 以下代码仅供参考 */ int i; *b=0; } main() { char w[M][N]={\ int i ; printf(\ for(i=0; i printf(\ printf(\ NONO(); } NONO() {/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */ FILE *rf, *wf ; char w[M][N], a[100] ; int i ; rf = fopen(\wf = fopen(\for(i = 0 ; i < 10 ; i++) { fscanf(rf, \ fun(w, a) ; fprintf(wf, \} fclose(rf) ; fclose(wf) ; } 44、函数fun的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的个位和百位上。 例如,当a=45,b=12。调用该函数后,c=5241。 注意: 部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include void fun(int a, int b, long *c) { } main() { int a,b; long c; printf(\ scanf(\ fun(a, b, &c); printf(\ NONO(); } NONO ( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *rf, *wf ; int i, a,b ; long c ; rf = fopen(\ wf = fopen(\for(i = 0 ; i < 10 ; i++) { fscanf(rf, \ fun(a, b, &c) ; fprintf(wf, \} fclose(rf) ; fclose(wf) ; } 45、假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参n给出了字符串的长度, 形参h给出了字符串中前导*号的个数,形参e给出了字符串中最后*号的个数。在编写函数时,不得使用C语言提供的字符串函数。 例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:A*BC*DEF*G。 注意: 部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include void fun( char *a, int n,int h,int e ) { } main() { char s[81],*t,*f; int m=0, tn=0, fn=0; printf(\ t=f=s; while(*t){t++;m++;} t--; while(*t=='*'){t--;tn++;} while(*f=='*'){f++;fn++;} fun( s , m,fn,tn ); printf(\ NONO(); } NONO() {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *in, *out ; int i ; char s[81], *t, *f ; int m=0, tn=0, fn=0; in = fopen(\out = fopen(\ for(i = 0 ; i < 10 ; i++) { fscanf(in, \ t=f=s; m=0; tn=0; fn=0; while(*t){t++;m++;} t--; while(*t=='*'){t--;tn++;} while(*f=='*'){f++;fn++;} fun(s, m, fn, tn); fprintf(out, \ } fclose(in) ; fclose(out) ; } 46、函数fun的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的千位和十位上,b中的十位和个位数依次放在变量c的个位和百位上。 例如,当a=45,b=12。调用该函数后,c=4251。 注意: 部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include void fun(int a, int b, long *c) { } main() { int a,b; long c; printf(\ scanf(\ fun(a, b, &c); printf(\ NONO(); } NONO ( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *rf, *wf ; int i, a,b ; long c ; rf = fopen(\wf = fopen(\for(i = 0 ; i < 10 ; i++) { fscanf(rf, \ fun(a, b, &c) ; fprintf(wf, \} fclose(rf) ; fclose(wf) ; } 47、请编写函数fun,函数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放在主函数的age数组中;要求函数把0至9岁年龄段的人数放在d[0]中,把10至19岁年龄段的人数放在d[1]中,把20至29岁年龄段的人数放在d[2]中, 其余依此类推, 把100岁 (含100)以上年龄的人数都放在d[10]中。结果在主函数中输出。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include double rnd() { static t=29,c=217,m=1024,r=0; r=(r*t+c)%m; return((double)r/m); } main() { int age[N], i, d[M]; for(i=0; i for(i=0;i for(i=0;i<10;i++)printf(\ printf(\ NONO(d); } NONO(int d[M]) {/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */ FILE *wf ; int i ; wf = fopen(\ for(i = 0 ; i < 10 ; i++) fprintf(wf, \fprintf(wf, \fclose(wf) ; } 48、编写函数fun,它的功能是:计算并输出下列级数和: 1 1 1 S = ── + ── + … + ─── 1×2 2×3 n(n+1) 例如,当n = 10时,函数值为:0.909091。 注意: 部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include main() /* 主函数 */ { printf(\ NONO(); } NONO ( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *fp, *wf ; int i, n ; double s ; fp = fopen(\wf = fopen(\for(i = 0 ; i < 10 ; i++) { fscanf(fp, \ s = fun(n) ; fprintf(wf, \} fclose(fp) ; fclose(wf) ; } 49、编写函数fun,其功能是:根据以下公式求P的值,结果由函数值带回。m与n为两个正整数且要求m > n。 m! P = ─── n!(m-n)! 例如:m=12,n=8时,运行结果为495.000000。 注意: 部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include main() /* 主函数 */ { printf(\ NONO(); } NONO ( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *fp, *wf ; int i, m, n ; float s; fp = fopen(\wf = fopen(\for(i = 0 ; i < 10 ; i++) { fscanf(fp, \ s = fun(m, n) ; fprintf(wf, \} fclose(fp) ; fclose(wf) ; } 50、请编写函数fun, 函数的功能是: 将M行N列的二维数组中的数据, 按列的顺序依次放到一维数组中。 例如, 二维数组中的数据为: 33 33 33 33 44 44 44 44 55 55 55 55 则一维数组中的内容应是: 33 44 55 33 44 55 33 44 55 33 44 55。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。 #include void fun(int s[][10], int b[], int *n, int mm, int nn) { /* 以下代码仅供参考 */ int i,j,np=0; /* np用作b数组下标 */ *n=np; } main() { int w[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}},i,j; int a[100]={0}, n=0; printf(\ for(i=0; i<3; i++) { for(j=0;j<4; j++)printf(\ printf(\ } fun(w,a,&n,3,4); printf(\ for(i=0;i NONO() {/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。FILE *rf, *wf ; int i, j, k ; int w[10][10], a[100], n = 0, mm, nn ; rf = fopen(\wf = fopen(\for(k = 0 ; k < 5 ; k++) { fscanf(rf, \ for(i = 0 ; i < mm ; i++) for(j = 0 ; j < nn ; j++) fscanf(rf, \ fun(w, a, &n, mm, nn) ; for(i = 0 ; i < n ; i++) fprintf(wf, \} fclose(rf) ; fclose(wf) ; } 编程答案 1、void fun(char *w, int m) /*可调用fun1函数左移字符 */ { int i; for(i=0;i 2、int fun( STREC *a,STREC *b,int l, int h ) */ { int i,j=0; for(i=0;i if(a[i].s>=l && a[i].s<=h) { b[j]=a[i]; j++; } } return j; } 3、fun( STU a[], STU *s ) { int i; *s=a[0]; for(i=1;i if(a[i].s *s=a[i]; } } } 4、void fun( char *ss ) { int i=1; while(ss[i-1] && ss[i]) { if(ss[i]>='a' && ss[i]<='z') ss[i]+='A'-'a'; i+=2; } } 5、float fun ( float h ) { long i=h*1000; if(i<5) return (i/10)/100.0; else return (i/10+1)/100.0; } 6、double fun ( double eps)
正在阅读:
全国计算机二级C语言上机(2改错题)04-24
关于发布国家标准《建设工程计价设备材料划分标准》的公告 GBT50531-200910-08
结构力学1-3章讲稿04-12
2020年在X党委常委民主生活会上的讲话08-30
净化车间设计说明12-26
自由落体运动教案(公开课)10-22
TYUT-软件学院-课程设计-工资管理07-02
2017年上半年辽宁省安全员B证考试题01-11
九年级语文中考综合练习及答案04-10
关于晚宴主持人主持词汇总07-01
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 错题
- 上机
- 二级
- 语言
- 计算机
- 全国
- 工程项目管理全套流程--(图)
- 用友远程通常见问题
- 计算机基础理论课学期授课计划(13汽修1、2春)
- 大学国际贸易练习题
- 中国中医用仪器行业市场前瞻与未来投资战略分析报告2016-2020年
- 计组实验报告
- 宁波市市区2008-2010年建设工程土建造价指标的通知
- 传播学教程笔记(详细版)
- 教师日常工作记录一本通
- 中共福山县委老干部局开展廉政风险防控管理工作第一阶段小结
- 普通话声母韵母
- 农民工工资支付情况专项检查工作总结
- 销售情景对话
- 2011学年第一学期高三文科数学期末试题及答案
- ICH临床部分术语中英文对照表
- 《3-6岁儿童学习与发展指南》复习试题
- 2014年高考真题 - 英语(浙江卷) 解析版
- 厦门某住宅小区监理日志(共30篇)
- 北京四中 - 高中数学高考综合复习 专题三十七 极限
- 电磁场作业题答案全