三、编程题 考试做题要求:
1、按题目要求编写部分代码,不要改动已经有的代码。 2、在运行时如果遇到死循环,按Ctrl+Break键结束运行。 3、题目做完后必须要有运行结果,没有运行结果没有分。
1: 请编写函数fun, 其功能是: 计算并输出下列多项式的值:
例如, 在主函数中从键盘给n输入8后, 输出为: s=0.662872。 注意: 要求n的值大于1但不大于100。 部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。
#include
{ int n; double s;
printf(\ s=fun(n);
printf(\ NONO(); } NONO()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */ FILE *rf, *wf ; int n, i ; double s ; rf = fopen(\ wf = fopen(\ for(i = 0 ; i < 10 ; i++) { fscanf(rf, \ s = fun(n) ;
fprintf(wf, \ }
fclose(rf) ; fclose(wf) ; }
2: 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:函数返回指定学号的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。(用于字符串比较的函数是strcmp)。
注意: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
STREC fun( STREC *a, char *b ) { } main()
{ STREC s[N]={{\
{\{\{\
STREC h; char m[10]; int i;FILE *out ;
printf(\ for(i=0; i { if(i%4==0) printf(\ printf(\ } printf(\ h=fun( s,m ); printf(\ printf(\ printf(\ out = fopen(\ h=fun(s,\ 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,其功能是: 将所有大于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( \ scanf( \ fun( n, &m, zz ); printf( \ for( n = 0; n < m; n++ ) printf( \ NONO(); } NONO() { /* 请在此函数内打开文件,输入测试数据,调用 fun 函数, 输出数据,关闭文件。 */ int m, n, zz[100]; FILE *rf, *wf ; rf = fopen(\ wf = fopen(\ fscanf( rf, \ fun( n, &m, zz ); fprintf(wf, \ for( n = 0; n < m; n++ ) fprintf(wf, \ 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