1. 填空
给定程序的功能是调用fun函数建立班级通讯录。通讯录中记录每位学生的编号,姓名和电话号码。班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。
请在程序的下划线处填入正确的内容并把下划线删除,是程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.c中 不得增行或删行,也不得更改程序的结构! void check();
/**********found**********/ int fun(___1___ *std) {
/**********found**********/ ___2___ *fp; int i;
if((fp=fopen(\ return(0);
printf(\ for(i=0; i /**********found**********/ fwrite(&std[i], sizeof(STYPE), 1, ___3___); fclose(fp); return (1); } 修改 给定程序MODI1.C中函数fun的功能是:先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串后面。 例如:当s中的字符串为:“ABCDE”时, 则他中的字符串应为:“ABCDEEDCBA”。 请改正程序中的错误,使他能得出正确的结果。 注意:不要改动main函数,不能增行或删行,也不得更改程序的结构! void fun (char *s, char *t) { int i, sl; sl = strlen(s); /************found************/ for( i=0; i<=s1; i ++) t[i] = s[i]; for (i=0; i /************found************/ t[sl] = '\\0'; } 程序 函数fun的功能是:将两个两位数的正整数a,b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。 例如:a=45,b=12时,调用该函数后,c=4152. 注意:部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 答案: B: STYPE FILE fp M: for(i = 0 ; i < sl ; i++) t[2*sl] = 0; P: *c=(a/10)*1000+(b/10)*100+(a)*10+(b); 2. 填空 给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中,用-1作为字符串输入结束的标记。然后将文件的内容读出显示在屏幕上。文件的读写分别有自定义函数ReadText和WriteText实现。 请在程序的下划线处填入正确的内容并把下划线删除,是程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.c中 不得增行或删行,也不得更改程序的结构! main() { FILE *fp; if((fp=fopen(\ { printf(\ } WriteText(fp); fclose(fp); if((fp=fopen(\ { printf(\ } ReadText(fp); fclose(fp); } /**********found**********/ void WriteText(FILE ___1___) { char str[81]; printf(\ gets(str); while(strcmp(str,\/**********found**********/ fputs(___2___,fw); fputs(\ gets(str); } } void ReadText(FILE *fr) { char str[81]; printf(\ fgets(str,81,fr); while( !feof(fr) ) { /**********found**********/ printf(\ fgets(str,81,fr); } } 修改 给定程序MODI1.c中函数fun的功能是:从低位开始取出长整形变量s中的奇数位上的数,依次构成一个新数放在t中,高位仍放在高位,低位仍放在低位。 例如:当s中的数为:7654321时,t中的数为:7531 请改正程序中的错误,使他能得出正确的结果。 注意:不要改动main函数,不能增行或删行,也不得更改程序的结构! #include /************found************/ void fun (long s, long t) { long sl=10; *t = s % 10; while ( s > 0) { s = s/100; *t = s * sl + *t; /************found************/ sl = sl*100; } } 程序 函数fun的功能是:将两个两位数的正整数a,b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。 例如:a=45,b=12时,调用该函数后,c=1524. 注意:部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 2、B: *fw str str M: long *t sl = sl*10; P: *c=(b/10)*1000+(a)*100+(b)*10+(a/10); 3. 填空 给定程序中,函数fun的功能是:将自然数1~10以及它们的平方根写到名为myfile3txt的文本文档中,然后再顺序读出显示在屏幕上。 请在程序的下划线处填入正确的内容并把下划线删除,是程序得出正确 的结果。 注意:源程序存放在考生文件夹下的BLANK1.c中 不得增行或删行,也不得更改程序的结构! int fun(char *fname ) { FILE *fp; int i,n; float x; if((fp=fopen(fname, \ return 0; for(i=1;i<=10;i++) /**********found**********/ fprintf(___1___,\ printf(\!\\n\/**********found**********/ ___2___; printf(\/**********found**********/ if((fp=fopen(___3___,\ return 0; fscanf(fp,\ while(!feof(fp)) { printf(\ fscanf(fp,\ } fclose(fp); return 1; } 修改 给定程序MODI1.c中fun函数的功能是:将n个无序整数从小到大排序。 fun ( int n, int *a ) { int i, j, p, t; for ( j = 0; j /************found************/ for ( i=j+1; i /************found************/ t=i; if ( p!=j ) { t = a[j]; a[j] = a[p]; a[p] = t; } } } 程序 函数fun的功能是:将两个两位数的正整数a,b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。 例如:a=45,b=12时,调用该函数后,c=2514 注意:部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 3、B: fp fclose(fp) fname M: i P: *c=(b)*1000+(a)*100+(b/10)*10+(a/10); 4. 填空 给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1,失败时返回值为0,在复制的过程中,把复制的内容输出到终端屏幕。主函数中源文件名放在变量sfname中,目标文件名放在变量tfname中 int fun(char *source, char *target) { FILE *fs,*ft; char ch; /**********found**********/ if((fs=fopen(source, ___1___))==NULL) return 0; if((ft=fopen(target, \ return 0; printf(\ ch=fgetc(fs); /**********found**********/ while(!feof(___2___)) { putchar( ch ); /**********found**********/ fputc(ch,___3___); ch=fgetc(fs); } fclose(fs); fclose(ft); printf(\ return 1; } 修改 给定程序MODI1.C中函数fun的功能是:将长整形数中每一位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。 例如:当s中的数为:87653142时,t中的数为:8642