1、国家二级 C语言机试(操作题)模拟试卷 65及答案与解析 一、程序填空题 1 给定程序中,函数 fun的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数 atoi和 atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANKl C中。 不得增行或删行,也不得更改程序的结构 ! #include #include void fun(char*s, int a, double f) /*found*/ _1_ fp; c
2、har str100, str1100, sir2100; int a1; double f1; fp=fopen(“filel txt“, “w“); fprintf(fp, “ s d fn“, s, a, f); /*found*/_2_; fp=fopen(“filel txt“, “r“); /*found*/ fscanf( _3_ , “ s s s“, str, str1, str2); fclose(fp); a1=atoi(str1); f1=atof(Str2); pr2ntf(“nThe result: nn s d fn“, str, a1, f1); main()
3、char a10=“Hello!“; int b=12345; double c=98 76; fun(a, b, c); 二、程序修改题 2 给定程序 MODI1 C中函数 fun的功能是:对 N名学生的学习成绩,按从高到低的顺序找出前 m(m10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正函数 fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! #include #include #inolude #define N 10 typedef struct ss cha
4、r num10; int s; STU; STU*fun(STU a, int m) STU bN, *t; int i, j, k; /*found*/ t=(STU*)call*(sizeof(STU), m) for(2=0; ibj s) j=i; /*found*/ t(k)=b(j); bj s=0; return t; outresult(STU a, FILE*pf) int i; for(2=0; i10) printf(“nGive the number of the students who have better score: “); Scanf(“ d“, &m);
5、pOrder=fun(a, m); printf(“*THE RESULT *n“); printf(“The top: n“); for(i=0; i #define N 8 0 int fun(int a, int n) metin() int aN=2, 2, 2, 3, 4, 4, 5, 6, 6, 6, 6, 7, 7, 8, 9, 9, 10, 10, 10, 10, i, n=20; void NONO(); printf(“The original data: n“); for(i=0 ; i=n) aj=t ; return j; 【试题解析】 (1)首先,设置一个临时变量,初值设置为一维数组的第一个元素。 (2)然后,依次将数组的元素与临时变量比较,如果相同,则继续取数组下一个元素与临时变量比较;如果不同,则将临时变量的值赋值到数组的第一个元素,同时将此与临 时变量不同的数组元素赋值给临时变量。 (3)循环执行,直到所有的数据处理完毕。