二级C语言编程题

  • 格式:doc
  • 大小:578.00 KB
  • 文档页数:19

宏为世纪教育二级C语言考前上机题库(07年9月原题)三、编程题考试做题要求:1、按题目要求编写部分代码,不要改动已经有的代码。

2、在运行时如果遇到死循环,按Ctrl+Break键结束运行。

3、题目做完后必须要有运行结果,没有运行结果没有分。

1:请编写函数fun, 其功能是: 计算并输出下列多项式的值:例如, 在主函数中从键盘给n输入8后, 输出为: s=0.662872。

注意: 要求n的值大于1但不大于100。

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

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

#include <stdio.h>double fun(int n){}main(){ int n; double s;printf("\nInput n: "); scanf("%d",&n);s=fun(n);printf("\ns=%f\n",s);NONO();}NONO(){/* 请在此函数内打开文件,输入测试数据,调用fun 函数,输出数据,关闭文件。

*/FILE *rf, *wf ; int n, i ; double s ;rf = fopen("c:\\test\\in.dat","r") ;wf = fopen("c:\\test\\out.dat","w") ;for(i = 0 ; i < 10 ; i++) {fscanf(rf, "%d", &n) ;s = fun(n) ;fprintf(wf, "%lf\n", s) ;}fclose(rf) ; fclose(wf) ;}2:学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:函数返回指定学号的学生数据,指定的学号在主函数中输入。

若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。

(用于字符串比较的函数是strcmp)。

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

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

#include <stdio.h>#include <string.h>#define N 16 typedef struct{ char num[10];int s;} STREC;STREC fun( STREC *a, char *b ){}main(){ STREC s[N]={{"GA005",85},{"GA003",76},{"GA002",69},{"GA004 ",85},{"GA001",91},{"GA007",72},{"GA008",64},{"GA006", 87},{"GA015",85},{"GA013",91},{"GA012",64},{"GA014", 91},{"GA011",77},{"GA017",64},{"GA018",64},{"GA016", 72}};STREC h;char m[10];int i;FILE *out ;printf("The original data:\n");for(i=0; i<N; i++){ if(i%4==0) printf("\n");printf("%s %3d ",s[i].num,s[i].s);}printf("\n\nEnter the number: ");gets(m);h=fun( s,m );printf("The data : ");printf("\n%s %4d\n",h.num,h.s);printf("\n");out = fopen("c:\\test\\out.dat","w") ;h=fun(s,"GA013");fprintf(out,"%s %4d\n",h.num,h.s);fclose(out);}3:已知学生的记录由学号和学习成绩构成,N名学生的数据已存入结构体数组a中。

请编写函数fun,函数的功能是:找出成绩最高的学生记录,通过形参指针传回主函数(规定只有一个最高分)。

已给出函数的首部,请完成该函数。

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

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

#include <stdio.h>#include <string.h>#define N 10typedef struct ss{ char num[10]; int s; } STU;fun( STU a[], STU *s ){}main ( ){ STU1a[N]={ {"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A0 5",77},{"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71} }, m ;int i;printf("***** The original data *****\n");for ( i=0; i< N; i++ )printf("No = %s Mark = %d\n", a[i].num,a[i].s);fun ( a, &m );printf ("***** THE RESULT *****\n");printf ("The top : %s , %d\n",m.num, m.s);NONO( );}NONO( ){/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。

*/FILE *rf, *wf ;STU a[N], m ;int i ;rf = fopen("c:\\test\\in.dat","r") ;wf = fopen("c:\\test\\out.dat","w") ;for(i = 0 ; i < 10; i++) fscanf(rf, "%s %d", a[i].num, &a[i].s) ;fun(a, &m) ;fprintf (wf, "The top : %s, %d\n", m.num, m.s) ;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 <stdio.h>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", &n );fun( n, &m, zz );printf( "\n\nThere are %d non-prime numbers less than %d:", m, n );for( n = 0; n < m; n++ )printf( "\n %4d", zz[n] );NONO();}NONO(){ /* 请在此函数内打开文件,输入测试数据,调用fun 函数,输出数据,关闭文件。

*/int m, n, zz[100];FILE *rf, *wf ;rf = fopen("c:\\test\\in.dat","r") ;wf = fopen("c:\\test\\out.dat","w") ;fscanf( rf, "%d", &n );fun( n, &m, zz );fprintf(wf, "%d\n%d\n", m, n );for( n = 0; n < m; n++ )fprintf(wf, "%d\n", zz[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 <stdio.h>unsigned fun ( unsigned w ){}main( ){ unsigned x;printf ( "Enter a unsigned integer number : " ); scanf ( "%u", &x );printf ( "The original data is : %u\n", x );if ( x < 10 ) printf ("Data error !");else printf ( "The result : %u\n", fun ( x ) );NONO( );}NONO( ){/* 请在此函数内打开文件,输入测试数据,调用fun 函数,输出数据,关闭文件。