您的当前位置:首页正文

c语言程序设计(第2部分)三、写程序

来源:画鸵萌宠网


三、编程题 考试做题要求:

1、按题目要求编写部分代码,不要改动已经有的代码。 2、在运行时如果遇到死循环,按Ctrl+Break键结束运行。 3、题目做完后必须要有运行结果,没有运行结果没有分。

1: 请编写函数fun, 其功能是: 计算并输出下列多项式的值:

例如, 在主函数中从键盘给n输入8后, 输出为: s=0.662872。 注意: 要求n的值大于1但不大于100。 部分源程序在文件PROG1.C中。

请勿改动主函数main和其他函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。

#include double fun(int n) { } main()

{ int n; double s;

printf(\"\\nInput n: \"); scanf(\"%d\ s=fun(n);

printf(\"\\ns=%f\\n\ NONO(); } NONO()

{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */ FILE *rf, *wf ; int n, i ; double s ; rf = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) { fscanf(rf, \"%d\ s = fun(n) ;

fprintf(wf, \"%lf\\n\ }

fclose(rf) ; fclose(wf) ; }

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

注意: 部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include #include #define N 16 typedef struct { char num[10]; int s; } STREC;

STREC fun( STREC *a, char *b ) { } main()

{ STREC s[N]={{\"GA005\

{\"GA001\{\"GA015\{\"GA011\

STREC h; char m[10]; int i;FILE *out ;

printf(\"The original data:\\n\"); for(i=0; i{ if(i%4==0) printf(\"\\n\");

printf(\"%s %3d \

}

printf(\"\\n\\nEnter the number: \");gets(m); h=fun( s,m );

printf(\"The data : \");

printf(\"\\n%s %4d\\n\ printf(\"\\n\");

out = fopen(\"c:\\\est\\\\out.dat\ h=fun(s,\"GA013\");

fprintf(out,\"%s %4d\\n\ fclose(out); }

3: 已知学生的记录由学号和学习成绩构成,N名学生的数据已存入结构体数组a中。请编写函数 fun,函数的功能是:找出成绩最高的学生记录,通过形参指针传回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。 注意: 部分源程序存在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include #include #define N 10 typedef struct ss

{ char num[10]; int s; } STU;

fun( STU a[], STU *s ) { } main ( )

{ STU a[N]={ {\"A01\ {\"A06\ int i;

printf(\"***** The original data *****\\n\");

for ( i=0; i< N; i++ )printf(\"No = %s Mark = %d\\n\

fun ( a, &m );

printf (\"***** THE RESULT *****\\n\"); printf (\"The top : %s , %d\\n\ NONO( ); } NONO( )

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *rf, *wf ; STU a[N], m ; int i ;

rf = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\

for(i = 0 ; i < 10; i++) fscanf(rf, \"%s %d\ fun(a, &m) ;

fprintf (wf, \"The top : %s, %d\\n\ fclose(rf) ; fclose(wf) ; }

4: 请编写函数fun,其功能是: 将所有大于1小于整数m的非素数存入xx所指数组中, 非素数的个数通过k传回。

例如,若输入:17,则应输出:4 6 8 9 10 12 14 15 16。 注意: 部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。

#include

void fun( int m, int *k, int xx[] ) { }

main() {

int m, n, zz[100];

printf( \"\\nPlease enter an integer number between 10 and 100: \" ); scanf( \"%d\ fun( n, &m, zz );

printf( \"\\n\\nThere are %d non-prime numbers less than %d:\ for( n = 0; n < m; n++ ) printf( \"\\n %4d\ NONO(); } NONO() {

/* 请在此函数内打开文件,输入测试数据,调用 fun 函数, 输出数据,关闭文件。 */ int m, n, zz[100]; FILE *rf, *wf ;

rf = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ fscanf( rf, \"%d\ fun( n, &m, zz );

fprintf(wf, \"%d\\n%d\\n\ for( n = 0; n < m; n++ ) fprintf(wf, \"%d\\n\ fclose(rf) ; fclose(wf) ; }

5: 请编写一个函数 unsigned fun ( unsigned w ),w 是一个大于10的无符号整数,若 w 是 n (n ≥ 2)位的整数,函数求出w的低 n-1位的数作为函数值返回。 例如:w 值为 5923,则函数返回 923; w 值为 923 则函数返回 23。 注意: 部分源程序存在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include

unsigned fun ( unsigned w ) { } main( )

{ unsigned x;

printf ( \"Enter a unsigned integer number : \" ); scanf ( \"%u\ printf ( \"The original data is : %u\\n\ if ( x < 10 ) printf (\"Data error !\");

else printf ( \"The result : %u\\n\ NONO( ); } NONO( )

{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数, 输出数据,关闭文件。 */ unsigned x ; int i ; FILE *rf, *wf ;

rf = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 20 ; i++) { fscanf(rf, \"%u\ fprintf(wf, \"%u\\n\ }

fclose(rf) ; fclose(wf) ; }

6: 请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。

例如,输入beijing shanghai 为回车键),

函数将返回shanghai。

注意: 部分源程序存在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include

char *fun ( char *s, char *t) { } main( )

{ char a[20],b[20];

printf(\"Input 1th string:\") ; gets( a);

printf(\"Input 2th string:\") ; gets( b);

printf(\"%s\\n\ NONO (); } NONO ( )

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 FILE *fp, *wf ; int i ;

char a[20], b[20] ;

fp = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) { fscanf(fp, \"%s %s\ fprintf(wf, \"%s\\n\ }

fclose(fp) ; fclose(wf) ; }

*/

7: 请编写函数fun, 函数的功能是:实现B=A+A', 即把矩阵A加上A的转置, 存放在矩阵B中。计算结果在 main 函数中输出。例如,输入下面的矩阵: 其转置矩阵为: 1 2 3 1 4 7 4 5 6 2 5 8 7 8 9 3 6 9 程序输出:

2 6 10 6 10 14 10 14 18 注意: 部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include

void fun ( int a[3][3], int b[3][3]) { }

main( ) /* 主程序 */

{ int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}, t[3][3] ; int i, j ;

fun(a, t) ;

for (i = 0 ; i < 3 ; i++) { for (j = 0 ; j < 3 ; j++) printf(\"%7d\ printf(\"\\n\") ; } NONO () ; }

NONO ( )

{/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/ int i, j, k, a[3][3], t[3][3] ; FILE *rf, *wf ;

rf = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(k = 0 ; k < 5 ; k++) { for(i = 0 ; i < 3 ; i++)

fscanf(rf, \"%d %d %d\ fun(a, t) ;

for(i = 0 ; i < 3 ; i++) {

for(j = 0 ; j < 3 ; j++) fprintf(wf, \"%7d\ fprintf(wf, \"\\n\") ; } }

fclose(rf) ; fclose(wf) ; }

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

例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是: ABCDEFG*******。

注意: 部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include

void fun( char *a, char *p ) { } main()

{ char s[81],*t;

printf(\"Enter a string:\\n\");gets(s); t=s;

while(*t)t++; t--;

while(*t=='*')t--; fun( s , t );

printf(\"The string after deleted:\\n\");puts(s); NONO(); } NONO()

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *in, *out ; int i ; char s[81],*t ;

in = fopen(\"c:\\\est\\\\in.dat\ out = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) { fscanf(in, \"%s\ t=s;

while(*t)t++; t--;

while(*t=='*')t--; fun(s,t) ;

fprintf(out, \"%s\\n\ }

fclose(in) ; fclose(out) ; }

9: 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串中尾部的*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做, 字符串中间和前面的*号不删除。

例如,字符串中的内容为:****A*BC*DEF*G*******,若n的值为4,删除后,字符串中的内容应当是:****A*BC*DEF*G****;若n的值为7,则字符串中的内容仍为:****A*BC*DEF*G*******。n的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。

注意: 部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include

void fun( char *a,int n ) { } main()

{ char s[81]; int n;

printf(\"Enter a string:\\n\");gets(s); printf(\"Enter n : \");scanf(\"%d\ fun( s,n );

printf(\"The string after deleted:\\n\");puts(s); NONO(); } NONO()

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *in, *out ; int i, n ; char s[81] ;

in = fopen(\"c:\\\est\\\\in.dat\ out = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) { fscanf(in, \"%s\ fscanf(in, \"%d\ fun(s,n) ;

fprintf(out, \"%s\\n\ }

fclose(in) ; fclose(out) ; }

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

例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:ABCDEFG。

注意: 部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写

的若干语句。

#include void fun( char *a ) { } main()

{ char s[81];

printf(\"Enter a string:\\n\");gets(s); fun( s );

printf(\"The string after deleted:\\n\");puts(s); NONO(); } NONO()

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *in, *out ; int i ; char s[81] ;

in = fopen(\"c:\\\est\\\\in.dat\ out = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) { fscanf(in, \"%s\ fun(s) ;

fprintf(out, \"%s\\n\ }

fclose(in) ; fclose(out) ; }

11: 请编写函数fun,它的功能是: 求出 1 到 1000 之间能被 7 或11整除、但不能同时被 7 和 11 整除的所有整数并将它们放在a所指的数组中,通过 n 返回这些数的个数。

注意: 部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include

void fun (int *a, int *n) { } main( )

{ int aa[1000], n, k ;

fun ( aa, &n ) ;

for ( k = 0 ; k < n ; k++ )

if((k + 1) % 10 == 0) printf(\"\\n\") ; else printf(\"%5d\ NONO( ); } NONO ( )

{/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/ int aa[1000], n, k ; FILE *fp ;

fp = fopen(\"c:\\\est\\\\out.dat\ fun ( aa, &n ) ;

for ( k = 0 ; k < n ; k++ )

if((k + 1) % 10 == 0) fprintf(fp, \"\\n\") ; else fprintf(fp, \"%5d\ fclose(fp) ; }

12: 函数fun的功能是:将s所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。

例如,若s所指字符串中的内容为:\"ABCDEFG12345\",其中字符B的ASCII码值为偶数、…、字符2的ASCII码值为偶数、… 都应当删除,其它依此类推。最后t所指的数组中

的内容应是:\"ACEG135\"。

注意: 部分源程序存在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include #include

void fun(char *s, char t[]) { } main() {

char s[100], t[100];

printf(\"\\nPlease enter string S:\"); scanf(\"%s\ fun(s, t);

printf(\"\\nThe result is: %s\\n\ NONO(); }

NONO ( )

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 char s[100], t[100] ; FILE *rf, *wf ; int i ;

rf = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) { fscanf(rf, \"%s\ fun(s, t) ;

fprintf(wf, \"%s\\n\ }

fclose(rf) ;

*/

fclose(wf) ; }

13: 函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上, b数的十位和个位数依次放在c数的千位和十位上。

例如,当a=45,b=12时,调用该函数后,c=1524。

注意: 部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include

void fun(int a, int b, long *c) { } main()

{ int a,b; long c; printf(\"Input a, b:\"); scanf(\"%d,%d\ fun(a, b, &c);

printf(\"The result is: %ld\\n\ NONO(); } NONO ( )

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *rf, *wf ; int i, a,b ; long c ;

rf = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) { fscanf(rf, \"%d,%d\ fun(a, b, &c) ;

fprintf(wf, \"a=%d,b=%d,c=%ld\\n\ }

fclose(rf) ; fclose(wf) ; }

14: 编写函数fun,它的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0 的一个实根。

迭代步骤如下: (1)取 x1 初值为0.0;

(2)x0 = x1,把x1的值赋给 x0; (3)x1 = cos(x0),求出一个新的x1;

(4)若x0 - x1的绝对值小于 0.000001,执行步骤(5),否则执行步骤(2); (5)所求x1就是方程 cos(x)-x=0 的一个实根,作为函数值返回。 程序将输出结果Root=0.739085。 注意: 部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include #include float fun() { } main() {

printf(\"Root =%f\\n\

NONO(); }

NONO ( )

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */

FILE *wf ;

wf = fopen(\"c:\\\est\\\\out.dat\ fprintf(wf, \"%f\\n\ fclose(wf) ; }

15: 请编写函数fun, 其功能是: 计算并输出下列多项式的值:

例如, 在主函数中从键盘给n输入15, 则输出为:s=2.718282。 注意: 要求n的值大于1但不大于100。 部分源程序在文件PROG1.C中。

请勿改动主函数main和其他函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。

#include double fun(int n) { } main()

{ int n; double s;

printf(\"Input n: \"); scanf(\"%d\ s=fun(n);

printf(\"s=%f\\n\ NONO(); } NONO()

{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */ FILE *rf, *wf ; int n, i ; double s ; rf = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) { fscanf(rf, \"%d\ s = fun(n) ;

fprintf(wf, \"%lf\\n\ }

fclose(rf) ; fclose(wf) ; }

16: 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把分数最高的学生数据放在b所指的数组中,注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。 注意: 部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include #define N 16 typedef struct { char num[10]; int s; } STREC;

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

{ STREC s[N]={{\"GA05\

{\"GA01\{\"GA015\{\"GA011\

STREC h[N]; int i,n;FILE *out ; n=fun( s,h );

printf(\"The %d highest score :\\n\ for(i=0;iprintf(\"%s %4d\\n\ printf(\"\\n\");

out = fopen(\"c:\\\est\\\\out.dat\ fprintf(out, \"%d\\n\

for(i=0;ifprintf(out, \"%4d\\n\ fclose(out); }

17: 程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun( int a[][N]),函数的功能是:使数组左下三角元素中的值全部置成0 。 例如:a 数组中的值为

| 1 9 7 | | 0 9 7 | a = | 2 3 8 | 则返回主程序后a数组中的值应为 | 0 0 8 | | 4 5 6 | | 0 0 0 | 注意: 部分源程序存在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include #include #define N 5

int fun ( int a[][N] ) { } main ( )

{ int a[N][N], i, j;

printf(\"***** The array *****\\n\"); for ( i =0; i{ a[i][j] = rand()%10; printf( \"%4d\ printf(\"\\n\"); }

fun ( a );

printf (\"THE RESULT\\n\"); for ( i =0; i{ for ( j =0; j} NONO( ); } NONO( )

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *rf, *wf ; int i, j, a[5][5] ;

rf = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 5 ; i++) for(j = 0 ; j < 5 ; j++) fscanf(rf, \"%d \ fun(a) ;

for ( i = 0; i < 5; i++ ) {

for ( j = 0; j < 5; j++ ) fprintf(wf, \"%4d\ fprintf(wf, \"\\n\"); }

fclose(rf) ; fclose(wf) ; }

18: 请编写一个函数void fun (char a[],char b[],int n),其功能是:删除一个字符串中指定下标的字符。其中, a指向原字符串, 删除指定字符后的字符串存放在b所指的数组中,n中存放指定的下标。

例如,输入一个字符串: World,然后输入3,则调用该函数后的结果为: Word。 注意: 部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include #include #define LEN 20

void fun (char a[], char b[], int n) {

} main( )

{ char str1[LEN], str2[LEN] ; int n ;

printf(\"Enter the string:\\n\") ; gets(str1) ;

printf(\"Enter the position of the string deleted:\") ; scanf(\"%d\ fun(str1, str2, n) ;

printf(\"The new string is: %s\\n\ NONO() ; } NONO ( )

{/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/ char str1[LEN], str2[LEN] ; int i, n ; FILE *rf, *wf ;

rf = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) { fscanf(rf, \"%s %d\ fun(str1, str2, n) ; fprintf(wf, \"%s\\n\ }

fclose(rf) ; fclose(wf) ; }

19: 规定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部删除,中间和尾部的*号不删除。

例如,字符串中的内容为:*******A*BC*DEF*G****,删除后,字符串中的内容应当是:A*BC*DEF*G****。在编写函数时,不得使用C语言提供的字符串函数。 注意: 部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include void fun( char *a ) { } main()

{ char s[81];

printf(\"Enter a string:\\n\");gets(s); fun( s );

printf(\"The string after deleted:\\n\");puts(s); NONO(); } NONO()

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *in, *out ; int i ; char s[81] ;

in = fopen(\"c:\\\est\\\\in.dat\ out = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) { fscanf(in, \"%s\ fun(s) ;

fprintf(out, \"%s\\n\ }

fclose(in) ; fclose(out) ; }

20: 编写函数fun,函数的功能是: 从s所指的字符串中删除给定的字符。同一字母的大、小写按不同字符处理。

若程序执行时输入字符串为: turbo c and borland c++

从键盘上输入字符:n, 则输出后变为: turbo c ad borlad c++ 如果输入的字符在字符串中不存在, 则字符串照原样输出。 注意: 部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。

#include #include

int fun(char s[],char c) { } main() {

static char str[]=\"turbo c and borland c++\"; char ch;

printf(\"原始字符串:%s\\n\ printf(\"输入一个字符:\"); scanf(\"%c\ fun(str,ch);

printf(\"str[]=%s\\n\ NONO(); } NONO() {

/* 请在此函数内打开文件,输入测试数据,调用 fun 函数, 输出数据,关闭文件。 */ FILE *rf, *wf ; char s[81], ch, w ; int len ;

rf = fopen(\"c:\\\est\\\\in.dat\

wf = fopen(\"c:\\\est\\\\out.dat\ fgets(s, 80, rf) ; fscanf(rf, \"%c\ len = strlen(s) - 1 ; w = s[len] ;

if(w == '\\n' || w == 0x1a) s[len] = 0 ; fun(s, ch) ;

fprintf(wf, \"%s\ fclose(rf) ; fclose(wf) ; }

21: 请编写一个函数 void fun(char *tt, int pp[]),统计在tt所指字符串中'a' 到 'z' 26个小写字母各自出现的次数,并依次放在pp所指数组中。

例如,当输入字符串:abcdefgabcdeabc 后,程序的输出结果应该是: 3 3 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 注意: 部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include #include

void fun(char *tt, int pp[]) { } main( )

{ char aa[1000] ; int bb[26], k, n ;

printf( \"\\nPlease enter a char string:\" ) ; scanf(\"%s\ fun(aa, bb ) ;

for ( k = 0 ; k < 26 ; k++ ) printf (\"%d \ printf( \"\\n\" ) ; NONO ( ) ; } NONO ( )

{/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/ char aa[1000] ; int bb[26], k, n, i ; FILE *rf, *wf ;

rf = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) { fscanf(rf, \"%s\ fun(aa, bb) ;

for ( k = 0 ; k < 26 ; k++ ) fprintf (wf, \"%d \ fprintf(wf, \"\\n\" ) ; }

fclose(rf) ; fclose(wf) ; }

22: N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:求出平均分,由函数值返回。

例如,若学生的成绩是:85,76,69,85,91,72,64,87, 则平均分应当是:78.625。 注意: 部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include #include #define N 8 struct slist { double s;

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(\"head\"); do

{ printf(\"->%4.1f\ while(p!=0); printf(\"\\n\\n\"); } main()

{ double s[N]={85,76,69,85,91,72,64,87},ave; STREC *h;

h=creat( s ); outlist(h); ave=fun( h );

printf(\"ave= %6.3f\\n\ NONO(); } NONO()

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 FILE *in, *out ;

int i,j ; double s[N],ave; STREC *h ;

in = fopen(\"c:\\\est\\\\in.dat\

*/

out = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) {

for(j=0 ; j < N; j++) fscanf(in, \"%lf,\ h=creat( s ); ave=fun( h );

fprintf(out, \"%6.3lf\\n\ }

fclose(in) ; fclose(out) ; }

23: 某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。请编写函数fun,它的功能是:求出该学生的平均分放在记录的ave成员中。 例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,他的平均分应当是:78.875。 注意: 部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun部位中填入你编写的若干语句。

#include #define N 8 typedef struct { char num[10]; double s[N]; double ave; } STREC;

void fun(STREC *a) { } main()

{ STREC s={\"GA005\ int i; fun( &s );

printf(\"The %s's student data:\\n\ for(i=0;iprintf(\"%4.1f\\n\ printf(\"\\nave=%7.3f\\n\ NONO(); } NONO()

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *out ;

int i,j ; STREC s[10] = {

{\"GA005\ {\"GA001\ {\"GA002\ {\"GA003\ {\"GA004\ {\"GA006\ {\"GA007\ {\"GA008\ {\"GA009\ {\"GA010\};

out = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) { fun(&s[i]) ;

fprintf(out, \"%7.3f\\n\ }

fclose(out) ; }

24: 请编一个函数void fun(int tt[M][N ], int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。二维数组中的数已在主函数中赋予。

注意: 部分源程序存在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include #define M 3 #define N 4

void fun ( int tt[M][N], int pp[N] )

{ } main( )

{ int t [ M ][ N ]={{22,45, 56,30}, {19,33, 45,38}, {20,22, 66,40}}; int p [ N ], i, j, k;

printf ( \"The original data is : \\n\" ); for( i=0; ifun ( t, p );

printf( \"\\nThe result is:\\n\" );

for ( k = 0; k < N; k++ ) printf ( \" %4d \ printf(\"\\n\"); NONO( ); } NONO( )

{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数, 输出数据,关闭文件。 */ int i, j, k, m, t[M][N], p[N] ; FILE *rf, *wf ;

rf = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(m = 0 ; m < 10 ; m++) { for( i=0; ifscanf (rf, \"%6d\ }

fun ( t, p ) ;

for ( k = 0; k < N; k++ ) fprintf (wf, \" %4d \ fprintf(wf, \"\\n\") ; }

fclose(rf) ; fclose(wf) ; }

25: 函数fun的功能是: 将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的数组中。 例如,若s所指字符串中的内容为:\"ABCDEFG123456\",其中字符A的ASCII码值为奇数,因此应当删除;其中字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;而字符2的ASCII码值为偶数,所在数组中的下标也为偶数,因此不应当删除,其它依此类推。最后t所指的数组中的内容应是:\"246\"。 注意: 部分源程序存在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include #include

void fun(char *s, char t[]) { } main() {

char s[100], t[100];

printf(\"\\nPlease enter string S:\"); scanf(\"%s\ fun(s, t);

printf(\"\\nThe result is: %s\\n\ NONO(); } NONO ( )

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */

char s[100], t[100] ; FILE *rf, *wf ; int i ;

rf = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) { fscanf(rf, \"%s\ fun(s, t) ;

fprintf(wf, \"%s\\n\ }

fclose(rf) ; fclose(wf) ; }

26: 请编写函数fun, 对长度为7个字符的字符串, 除首、尾字符外,将其余5个字符按ASCII码降序排列。

例如,原来的字符串为 CEAedca,排序后输出为 CedcEAa 。 注意: 部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。

#include #include #include

int fun(char *s,int num) { } main() {

char s[10];

printf(\"输入7个字符的字符串:\");

gets(s); fun(s,7); printf(\"\\n%s\ NONO(); } NONO() {

/* 请在此函数内打开文件,输入测试数据,调用 fun 函数, 输出数据,关闭文件。 */ char s[10] ; FILE *rf, *wf ; int i = 0 ;

rf = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ while(i < 10) { fgets(s,10,rf) ; s[7] = 0 ; fun(s,7);

fprintf(wf, \"%s\\n\ i++ ; }

fclose(rf) ; fclose(wf) ; }

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

例如,在主函数中从键盘给n输入的值为856, 则输出为:sum=763。 注意:部分源?帠在文件PROG1.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include int fun(int n) {

} main() { int n,sum;

printf(\"Input n: \"); scanf(\"%d\ sum=fun(n);

printf(\"sum=%d\\n\ NONO(); } NONO()

{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */ FILE *rf, *wf ; int i, n, sum ; rf = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) { fscanf(rf, \"%d\ sum = fun(n) ;

fprintf(wf, \"%d=%d\\n\ }

fclose(rf) ; fclose(wf) ; }

28: 请编写函数fun, 它的功能是:计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。

例如,在主函数中从键盘给n输入20后, 输出为: s=0.583333。 注意: 要求n的值不大于100。 部分源程序在文件PROG1.C中。

请勿改动主函数main和其他函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。

#include double fun(int n) { } main()

{ int n; double s;

printf(\"\\nInput n: \"); scanf(\"%d\

s=fun(n);

printf(\"\\n\\ns=%f\\n\ NONO(); } NONO()

{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */ FILE *rf, *wf ; int n, i ; double s ; rf = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) { fscanf(rf, \"%d\ s = fun(n) ;

fprintf(wf, \"%lf\\n\ }

fclose(rf) ; fclose(wf) ; }

29: 请编写一个函数fun,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。例如,若传送给m的值为50,则程序 输出:

7 11 14 21 22 28 33 35 42 44 49 注意: 部分源程序存在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include #define M 100

void fun ( int m, int *a , int *n ) { } main( )

{ int aa[M], n, k; fun ( 50, aa, &n ); for ( k = 0; k < n; k++ )

if((k+1)%20==0) printf(\"\\n\"); else printf( \"%4d\ printf(\"\\n\") ; NONO( ); } NONO ( )

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *fp, *wf ;

int i, n, j, k, aa[M], sum ;

fp = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) { fscanf(fp, \"%d,\ fun(j, aa, &n) ; sum = 0 ;

for(k = 0 ; k < n ; k++) sum+=aa[k] ; fprintf(wf, \"%d\\n\ }

fclose(fp) ; fclose(wf) ; }

30: 请编写函数fun, 其功能是: 计算并输出

例如, 在主函数中从键盘给n输入20后,输出为:s=534.188884。 注意: 要求n的值大于1但不大于100。 部分源程序在文件PROG1.C中。

请勿改动主函数main和其他函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。

#include #include double fun(int n)

{ } main()

{ int n; double s;

printf(\"\\n\\nInput n: \"); scanf(\"%d\ s=fun(n);

printf(\"\\n\\ns=%f\\n\\n\ NONO(); } NONO()

{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */ FILE *rf, *wf ; int n, i ; double s ; rf = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) { fscanf(rf, \"%d\ s = fun(n) ;

fprintf(wf, \"%lf\\n\ }

fclose(rf) ; fclose(wf) ; }

31: 程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N], int n),函数的功能是:使数组左下三角元素中的值乘以n 。例如:若n的值为3,a 数组中的值为

| 1 9 7 | | 3 9 7 | a = | 2 3 8 | 则返回主程序后a数组中的值应为 | 6 9 8 | | 4 5 6 | | 12 15 18| 注意: 部分源程序存在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include #include #define N 5

int fun ( int a[][N], int n )

{ } main ( )

{ int a[N][N], n, i, j;

printf(\"***** The array *****\\n\"); for ( i =0; i{ a[i][j] = rand()%10; printf( \"%4d\ printf(\"\\n\"); }

do n = rand()%10 ; while ( n >=3 ); printf(\"n = %4d\\n\ fun ( a, n );

printf (\"***** THE RESULT *****\\n\"); for ( i =0; i{ for ( j =0; j{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 FILE *rf, *wf ; int i, j, n, a[5][5] ;

rf = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 5 ; i++) for(j = 0 ; j < 5 ; j++) fscanf(rf, \"%d \ fscanf(rf, \"%d\ fun(a, n) ;

for ( i = 0; i < 5; i++ ) {

*/

for ( j = 0; j < 5; j++ ) fprintf(wf, \"%4d\ fprintf(wf, \"\\n\"); }

fclose(rf) ; fclose(wf) ; }

32: 请编写函数fun, 其功能是: 计算并输出下列多项式的值: 1 1 1 S = 1 + ── + ─── + … + ───── 1*2 1*2*3 1*2*3*…50

例如, 在主函数中从键盘给n输入50后,输出为:s=1.718282。 注意: 要求n的值大于1但不大于100。 部分源程序在文件PROG1.C中。

请勿改动主函数main和其他函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。

#include double fun(int n) { } main()

{ int n; double s;

printf(\"\\nInput n: \"); scanf(\"%d\ s=fun(n);

printf(\"\\n\\ns=%f\\n\\n\ NONO(); } NONO()

{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */ FILE *rf, *wf ; int n, i ; double s ; rf = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) { fscanf(rf, \"%d\ s = fun(n) ;

fprintf(wf, \"%lf\\n\ }

fclose(rf) ; fclose(wf) ; }

33: 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。 注意: 部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include #define N 8 typedef struct { char num[10]; double s; } STREC;

double fun( STREC *a, STREC *b, int *n ) { } main()

{ STREC s[N]={{\"GA05\ {\"GA01\ STREC h[N],t;FILE *out ; int i,j,n; double ave; ave=fun( s,h,&n );

printf(\"The %d student data which is lower than %7.3f:\\n\ for(i=0;iprintf(\"%s %4.1f\\n\ printf(\"\\n\");

out = fopen(\"c:\\\est\\\\out.dat\ fprintf(out, \"%d\\n%7.3f\\n\ for(i=0;ifor(j=i+1;jif(h[i].s>h[j].s) {t=h[i] ;h[i]=h[j]; h[j]=t;} for(i=0;ifprintf(out,\"%4.1f\\n\ fclose(out); }

34: 编写函数fun,它的功能是计算:

s作为函数值返回。

在C语言中可调用log ( n )函数求ln (n)。log函数的引用说明是: double log(double x)。

例如,若m的值为: 20,fun函数值为: 6.506583。 注意: 部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include #include double fun( int m ) { } main() {

printf(\"%f\\n\ NONO(); }

NONO ( )

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *fp, *wf ;

int i, n ; double s ;

fp = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) { fscanf(fp, \"%d\ s = fun(n) ;

fprintf(wf, \"%f\\n\ }

fclose(fp) ; fclose(wf) ; }

35: 函数fun的功能是:将s所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。

例如,当s所指字符串中的内容为:\"ABCDEFGHIJK\", 在t所指数组中的内容应是:\"BDFHJ\"。 注意: 部分源程序存在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include #include void fun(char *s, char t[]) { } main() {

char s[100], t[100];

printf(\"\\nPlease enter string S:\"); scanf(\"%s\ fun(s, t);

printf(\"\\nThe result is: %s\\n\ NONO();

}

NONO ( )

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ char s[100], t[100] ; FILE *rf, *wf ; int i ;

rf = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) { fscanf(rf, \"%s\ fun(s, t) ;

fprintf(wf, \"%s\\n\ }

fclose(rf) ; fclose(wf) ; }

36: 请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。 例如, 若输入\"abc4EFg\",则应输出\"aBc4EFg\"。 注意: 部分源程序存在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include #include void fun ( char *ss ) { } main( ) { char tt[81] ;

printf( \"\\nPlease enter an string within 80 characters:\\n\" ); gets( tt );

printf( \"\\n\\nAfter changing, the string\\n \\\"%s\\\"\ fun( tt );

printf( \"\\nbecomes\\n \\\"%s\\\"\\n\ NONO ( ); } NONO ( )

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *fp, *wf ; char tt[81] ; int i ;

fp = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) { fscanf(fp, \"%s\ fun( tt ) ;

fprintf(wf, \"%s\\n\ }

fclose(fp) ; fclose(wf) ; }

37: 请编写一个函数fun,它的功能是:计算n门课程的平均分,计算结果作为函数值返回。

例如:若有5门课程的成绩是:90.5, 72, 80, 61.5, 55 则函数的值为:71.80。

注意: 部分源程序存在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include

float fun ( float *a , int n ) { }

main()

{ float score[30]={90.5, 72, 80, 61.5, 55}, aver; aver = fun( score, 5 );

printf( \"\\nAverage score is: %5.2f\\n\ NONO ( ); } NONO ( )

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *fp, *wf ; int i, j ;

float aver, score[5] ;

fp = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) {

for(j = 0 ; j < 5 ; j++) fscanf(fp,\"%f,\ aver = fun(score, 5) ; fprintf(wf, \"%5.2f\\n\ }

fclose(fp) ; fclose(wf) ; }

38: 函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上, b数的十位和个位数依次放在c数的百位和个位上。

例如,当a=45,b=12时,调用该函数后,c=4152。

注意: 部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include

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

} main()

{ int a,b; long c;

printf(\"Input a, b:\"); scanf(\"%d,%d\ fun(a, b, &c);

printf(\"The result is: %d\\n\ NONO(); } NONO ( )

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *rf, *wf ; int i, a,b ; long c ;

rf = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) { fscanf(rf, \"%d,%d\ fun(a, b, &c) ;

fprintf(wf, \"a=%d,b=%d,c=%ld\\n\ }

fclose(rf) ; fclose(wf) ; }

39: 编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为: asd asasdfg asd as zx67 asd mklo,子字符串为:as,则应输出6。

注意:部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include #include

int fun(char *str,char *substr) {

} main() {

char str[81],substr[3]; int n;

printf(\"输入主字符串: \"); gets(str);

printf(\"输入子字符串: \"); gets(substr); puts(str); puts(substr); n=fun(str,substr); printf(\"n=%d\\n\ NONO(); } NONO() {

/* 请在此函数内打开文件,输入测试数据,调用 fun 函数, 输出数据,关闭文件。 */ char str[81],substr[3], ch; int n,len, i = 0; FILE *rf, *wf ;

rf = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ while(i < 5) { fgets(str, 80, rf) ; fgets(substr, 10, rf) ; len = strlen(substr) - 1 ; ch = substr[len] ;

if(ch == '\\n' || ch == 0x1a) substr[len] = 0 ; n=fun(str,substr);

fprintf(wf, \"%d\\n\ i++ ; }

fclose(rf) ; fclose(wf) ; }

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

例如,若输入字符串: 123412132,输入字符为: 1,则输出:3。 注意: 部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include #include #define M 81

int fun(char *ss, char c) { } main()

{ char a[M], ch;

printf(\"\\nPlease enter a string:\"); gets(a); printf(\"\\nPlease enter a char:\"); ch = getchar(); printf(\"\\nThe number of the char is: %d\\n\ NONO ( ); } NONO ( )

{/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/ int i ;

FILE *rf, *wf ; char a[M], b[M], ch ;

rf = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) { fscanf(rf, \"%s\ fscanf(rf, \"%s\ ch = *b ;

fprintf(wf, \"%c=%d\\n\ }

fclose(rf) ; fclose(wf) ; }

41: 请编一个函数fun(char *s),函数的功能是把s所指字符串中的内容逆置。 例如:字符串中原有的字符串为:abcdefg, 则调用该函数后, 串中的内容为:gfedcba。 注意: 部分源程序存在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include #include #define N 81 fun ( char *s ) { } main( ) { char a[N];

printf ( \"Enter a string : \" ); gets ( a ); printf ( \"The original string is : \" ); puts( a ); fun ( a ); printf(\"\\n\");

printf ( \"The string after modified : \");

puts ( a ); NONO( ); } NONO( )

{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数, 输出数据,关闭文件。 */ int i ; char a[N] ; FILE *rf, *wf ;

rf = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) { fscanf(rf, \"%s\ fun(a) ;

fprintf(wf, \"%s\\n\ }

fclose(rf) ; fclose(wf) ; }

42: 请编写函数fun, 其功能是: 计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和。

例如, 给定数组中的9个元素依次为12.0、34.0、4.0、23.0、34.0、45.0、18.0、3.0、11.0, 输出应为: s=35.951014。

注意:部分源程序在文件PROG1.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include #include double fun(double x[9]) { } main()

{ double s,a[9]={12.0,34.0,4.0,23.0,34.0,45.0,18.0,3.0,11.0}; int i;

printf(\"\\nThe original data is :\\n\");

for(i=0;i<9;i++)printf(\"%6.1f\ s=fun(a);

printf(\"s=%f\\n\\n\ NONO(); } NONO()

{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */ FILE *rf, *wf ; int i, j ; double s, a[9] ; rf = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 5 ; i++) {

for(j = 0 ; j < 9 ; j++) fscanf(rf, \"%lf\ s = fun(a) ;

fprintf(wf, \"%lf\\n\ }

fclose(rf) ; fclose(wf) ; }

43: 请编写函数fun, 其功能是: 计算并输出给定10个数的方差:

例如,给定的10个数为95.0、89.0、76.0、65.0、88.0、72.0、85.0、81.0、 90.0、56.0,输出为s=11.730729。 注意:部分源程序在文件PROG1.C中。

请勿改动主函数main和其他函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。

#include

#include double fun(double x[10]) { } main()

{ double s, x[10]={95.0,89.0,76.0,65.0,88.0,72.0,85.0,81.0,90.0,56.0}; int i;

printf(\"\\nThe original data is :\\n\");

for(i=0;i<10;i++)printf(\"%6.1f\ s=fun(x);

printf(\"s=%f\\n\\n\ NONO(); } NONO()

{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */ FILE *rf, *wf ; int i, j ; double s, x[10] ; rf = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 5 ; i++) {

for(j = 0 ; j < 10 ; j++) fscanf(rf, \"%lf\ s = fun(x) ;

fprintf(wf, \"%lf\\n\ }

fclose(rf) ; fclose(wf) ; }

44: 函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上, b数的十位和个位数依次放在c数的百位和个位上。

例如,当a=45,b=12时,调用该函数后,c=5142。

注意: 部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include

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

{ } main()

{ int a,b; long c; printf(\"Input a, b:\"); scanf(\"%d,%d\ fun(a, b, &c);

printf(\"The result is: %ld\\n\ NONO(); } NONO ( )

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *rf, *wf ; int i, a,b ; long c ;

rf = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) { fscanf(rf, \"%d,%d\ fun(a, b, &c) ;

fprintf(wf, \"a=%d,b=%d,c=%ld\\n\ }

fclose(rf) ; fclose(wf) ; }

45: 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是: 除了字符串前导和尾部的*号之外,将串中其它*号全部删除。形参h已指向字符串中第一个字母,形参p已指向字符串中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。 例如,字符串中的内容为:****A*BC*DEF*G********,删除后,字符串中的内容应当是:****ABCDEFG********。在编写函数时,不得使用C语言提供的字符串函数。 注意: 部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include

void fun( char *a, char *h,char *p ) { } main()

{ char s[81],*t, *f;

printf(\"Enter a string:\\n\");gets(s); t=f=s; while(*t)t++; t--;

while(*t=='*')t--; while(*f=='*')f++; fun( s , f,t );

printf(\"The string after deleted:\\n\");puts(s); NONO(); } NONO()

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 FILE *in, *out ;

int i ; char s[81], *t, *f ; in = fopen(\"c:\\\est\\\\in.dat\ out = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) { fscanf(in, \"%s\ t=f=s; while(*t)t++; t--;

while(*t=='*')t--; while(*f=='*')f++; fun(s, f, t);

fprintf(out, \"%s\\n\ }

fclose(in) ; fclose(out) ; }

*/

46: 函数fun的功能是: 将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是: 将a数的十位和个位数依次放在c数的个位和百位上, b数的十位和个位数依次放在c数的十位和千位上。

例如, 当a=45, b=12时, 调用该函数后, c=2514。

注意: 部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include

void fun(int a, int b, long *c) { } main()

{ int a,b; long c; printf(\"Input a, b:\"); scanf(\"%d,%d\ fun(a, b, &c);

printf(\"The result is: %ld\\n\ NONO(); } NONO ( )

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 FILE *rf, *wf ; int i, a,b ; long c ;

rf = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) { fscanf(rf, \"%d,%d\ fun(a, b, &c) ;

fprintf(wf, \"a=%d,b=%d,c=%ld\\n\ }

fclose(rf) ; fclose(wf) ;

*/

}

47: 请编写函数fun, 其功能是: 计算并输出3到n之间(含3和n)所有素数的平方根之和。

例如, 在主函数中从键盘给n输入100后,输出为: sum=148.874270。 注意: 要求n的值大于2但不大于100。 部分源程序在文件PROG1.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include #include double fun(int n) { } main()

{ int n; double sum;

printf(\"\\n\\nInput n: \"); scanf(\"%d\ sum=fun(n);

printf(\"\\n\\nsum=%f\\n\\n\ NONO(); } NONO()

{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */ FILE *rf, *wf ; int n, i ; double s ; rf = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) { fscanf(rf, \"%d\ s = fun(n) ;

fprintf(wf, \"%lf\\n\ }

fclose(rf) ; fclose(wf) ; }

48: 编写函数fun,它的功能是:求Fibonacci数列中大于t的最小的一个数,结果由

函数返回。其中Fibonacci数列F(n)的定义为: F(0)=0,F(1)=1 F(n)=F(n-1)+F(n-2)

例如:当t = 1000时,函数值为:1597。 注意: 部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include #include int fun( int t) { }

main() /* 主函数 */ { int n; n=1000;

printf(\"n = %d, f = %d\\n\ NONO(); }

NONO ( )

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 FILE *fp, *wf ; int i, n, s ;

fp = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) { fscanf(fp, \"%d\ s = fun(n) ;

fprintf(wf, \"%d\\n\ }

fclose(fp) ; fclose(wf) ;

*/

}

49: 编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。

1 1 1 S=1 + ── + ─── + ... + ────── 1+2 1+2+3 1+2+3+...+n 例如:若n的值为11时,函数的值为:1.833333 注意: 部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include

float fun(int n) { } main()

{ int n; float s;

printf(\"\\nPlease enter N:\"); scanf(\"%d\ s = fun(n);

printf(\"the result is: %f\\n\ NONO(); }

NONO ( )

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *fp, *wf ; int i, n ; float s;

fp = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) {

fscanf(fp, \"%d\ s = fun(n) ;

fprintf(wf, \"%f\\n\ }

fclose(fp) ; fclose(wf) ; } 50:

例如, 在主函数中从键盘给x输入0.21后,输出为:s=1.100000。 注意: 部分源程序在文件PROG1.C中。

请勿改动主函数main和其他函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。

#include #include double fun(double x)

{ } main()

{ double x,s;

printf(\"Input x: \"); scanf(\"%lf\ s=fun(x);

printf(\"s=%f\\n\ NONO(); } NONO()

{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 FILE *rf, *wf ; int i ; double s, x ; rf = fopen(\"c:\\\est\\\\in.dat\ wf = fopen(\"c:\\\est\\\\out.dat\ for(i = 0 ; i < 10 ; i++) { fscanf(rf, \"%lf\ s = fun(x) ;

fprintf(wf, \"%lf\\n\ }

fclose(rf) ; fclose(wf) ; }

*/

因篇幅问题不能全部显示,请点此查看更多更全内容

Top