1、国家二级 C语言机试(操作题)模拟试卷 117及答案与解析 一、程序填空题 1 给定程序中,函数 fun的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数 atoi和 atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1 C中。 不得增行或删行,也不得更改程序的结构 ! #include #include void fun(char *s, int a, double f) *found* _1_fp; ch
2、ar str100, str1100, str2100; int a1; double f1; fp=fopen(“filel txt“, “w“); fprintf(fp, “ s d f n“, s, a, f); *found* _2_; fP=fopen(“file1 txt“, “r“); *found* fscanf(_3_, “ s s s“, str, str1, str2); fclose(fp); a1=atoi(str1); f1=atof(str2); printf(“ nThe result: n n s d f n“, str, a1, f1); main() oh
3、at a10=“Hello!“; int b=12345; double c=98 76; fun(a, b, c); 二、程序修改题 2 给定程序 MODI1 C中函数 fun的功能是:对 N名学生的学习成绩,按从高到低的顺序找出前 m(m10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正函数 fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! #include #include #include #define N 10 typedef struct ss char
4、num10; int s; STU; STU *fun(STU a, int m) STU bN, *t; int i, j, k; *found* t=(STU*)calloc(sizeof(STU), m) for(i=0; ibj S)j=i; *found* t(k)=b(j); bj s=0; return t; outresult(STU a, FILE *pf) int i; for(i=0; i10) printf(“ nGive the number of the students who have better score: “); scanf(“ d“, m); pord
5、er=fun(a, m); printf(“*THE RESULT * n“); printf(“The top: n“); for(i=0; i #define N 80 int fun(int a, int n) main() int aN=2, 2, 2, 3, 4, 4, 5, 6, 6, 6, 6, 7, 7, 8, 9, 9, 1 0, 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)循环执行,直到所有的数据处理完毕。