1、国家二级 C语言机试(操作题)模拟试卷 196及答案与解析 一、程序填空题 1 给定程序的功能是:调用函数 fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为 1,失败时返回值为 0。在复制的过程中,把复制的内容输出到终端屏幕。主函数中源文件名放在变量 sfname中,目标文件名放在变量 tfname中。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANKl C中。 不得增行或删行,也不得更改程序的结构 ! #include #include int fun(char*source, char*target
2、; ) (FILE *fs, *ft; char ch; *found* if(fs=fopen(source, _1_) =NULL) return 0; if(ft=fopen(target, “w“)=NULL) return 0; printf(“ nThe data in file: n“); ch=fgetc(fs); *found* while(!feof(_2_) putchar(ch); *found* fputc(ch, _3_); ch=fgetc(fs); fclose(fs); fclose(ft); printf(“ n n“); return 1 ; main()
3、 ( char sfname20=“myfile1“, tfname20=“myfile2“; FILE *myf; int i; cha c; myf=fopen(s fname, “w“); printf(“ nThe original data: n“); for(i=1; i void fun(float *a, float*b, float*c) *found* float *k; if(*a*c) k=*c; *c=*a; *a=k; ) if(*b #define N 50 #define M 11 void fun(int *a, int *b) double rnd() (
4、static t=29, c=217, m=1024, r=0; r=(r*t+c) m; return(double)r m); main() ( int ageN, i, dM; void NONO (int dM); for(i=0; ic,则进行对调,又把大数放在 c中,这样的逻辑显然是混乱的。因此第二个标识下 “if(*a*c)”应该改为 “if(*a=0 ai=10 ai=20 ai=30 ai=40 ai=50 ai=60 ai=70 ai-8 0 ai=90 ai=99) b9+=1; else b10+=1 ; 【试题解析】 (1)首先,初始化不同年龄段的计数统计器。 (2)然 后在 for循环中,利用多重选择结构,依次对年龄进行判断,同时将对应的计数器值加 1操作。