1、国家二级 C 语言机试(操作题)模拟试卷 360(无答案)一、程序填空题1 人员的记录由编号和出生年、月、日组成,N 名人员的数据已在主函数中存入结构体数组 std 中。函数 fun 的功能是:找出指定出生年份的人员,将其数据放在形参 k 所指的数组中,由主函数输出,同时由函数值返回满足指定条件的人数。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的 BLANK1C 中。不得增行或删行,也不得更改程序的结构!#include #define N 8typedef struct int num;int year,month,day STU;i
2、nt fun (STU *std, STU *k, int year) int i,n=0;if(_1_ =year)return (_3_);main ()STU std N= 1,1984,2,15 ,2,1983, 9,21, 3,1984,9,1 ,4,1983 ,7 ,15 ,5,1985,9,28 , 6,1982,11,15 ,7, 1982,6,22,8 ,1984f 8,19 ;STU kN; int i,n,year;printf(“Enter a year : “); scanfn=fun (std,k,year) ;printf(“nNo person was born
3、in d n“,year);else printf(“nThese persons wereborn in d n“ ,year);printf(“d dddn“ ,k i num,k i year, ki month,kiday) ;二、程序修改题2 给定程序 MODI1C 的功能是:读入一个整数 k(2k10000),打印它的所有质因子(即所有为素数的因子)。例如,若输入整数:2310,则应输出:2、3、5、7,11。请改正程序中的语法错误,使程序能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!#include IsPrime (int n) ; i
4、nt i,m;m = 1;if ! (n i) m =0; break ;return (m) ;main () int j,k;printf ( “nPlease enter an integernumber between 2 and 10000: “);scanf(“ d“,k);printf(“nnThe prime factor(s)of d iS (are) :“, k) ;printf(“n 4d“,j) ;printf (“n“) ;三、程序设计题3 己知学生的记录由学号和学习成绩构成,N 名学生的数据已存入结构体数组 a 中。请编写函数 fun,函数的功能是:找出成绩最高的学
5、生记录,通过形参指针传回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。注意:部分源程序存在文件 PROG1C 中。请勿改动主函数 mam 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。#include #include #define N 10typedef struct ss char num10; int s; STU;fun(STU a, STU *s)main () “A06“,90 , “A07“,79J , “A08“,61 ,int i;printf(“* The original data*n“);for (i=0; 1 N; i+)printf(“No= s Mark = dn“,printf (“The top : s , dn“,mnum,ms);NONO () :NONO ()FILE *rf,*wf ;STU aN,m ;int i ;rf = fopen (“indat“ ,“r“) ;wf= fopen “outdat“,“w“) ;for (i = 0 ; i 10; 1+) fscanf (rf ,“ s d“, ai num &a i s) ;fprintf (wf, “The top : s, dn“,mnum, m s) ;fclose (rf)fclose (wf)