《历年全国计算机的等级考试二级C语言上机考试地训练题目库及答案详解》由会员分享,可在线阅读,更多相关《历年全国计算机的等级考试二级C语言上机考试地训练题目库及答案详解(72页珍藏版)》请在金锄头文库上搜索。
1、word1. 填空给定程序的功能是调用fun函数建立班级通讯录。通讯录中记录每位学生的编号,某某和。班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。请在程序的下划线处填入正确的内容并把下划线删除,是程序得出正确的结果。 不得增行或删行,也不得更改程序的结构!void check();/*found*/int fun(_1_ *std)/*found*/ _2_ *fp; int i; if(fp=fopen(myfile5.dat,wb)=NULL) return(0); printf(nOutput data to file !n);
2、 for(i=0; iN; i+)/*found*/ fwrite(&stdi, 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
3、(s);/*found*/ for( i=0; i=s1; i +) ti = si; for (i=0; isl; i+)tsl+i = ssl-i-1;/*found*/ tsl = 0;程序函数fun的功能是:将两个两位数的正整数a,b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。例如:a=45,b=12时,调用该函数后,c=4152.注意:局部源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的假如干语
4、句。答案: B: STYPE FILE fp M: for(i = 0 ; i sl ; i+) t2*sl = 0;P:*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);2. 填空给定程序的功能是:从键盘输入假如干行文本每行不超过80个字符,写到文件myfile4.txt中,用-1作为字符串输入完毕的标记。然后将文件的内容读出显示在屏幕上。文件的读写分别有自定义函数ReadText和WriteText实现。请在程序的下划线处填入正确的内容并把下划线删除,是程序得出正确的结果。 不得增行或删行,也不得更改程序的结构!main() FILE *fp; if(f
5、p=fopen(myfile4.txt,w)=NULL) printf( open fail!n); exit(0); WriteText(fp); fclose(fp); if(fp=fopen(myfile4.txt,r)=NULL) printf( open fail!n); exit(0); ReadText(fp); fclose(fp);/*found*/void WriteText(FILE _1_) char str81; printf(nEnter string with -1 to end :n); gets(str); while(strcmp(str,-1)!=0) /
6、*found*/ fputs(_2_,fw); fputs(n,fw); gets(str); void ReadText(FILE *fr) char str81; printf(nRead file and output to screen :n); fgets(str,81,fr); while( !feof(fr) ) /*found*/ printf(%s,_3_); fgets(str,81,fr); 修改给定程序MODI1.c中函数fun的功能是:从低位开始取出长整形变量s中的奇数位上的数,依次构成一个新数放在t中,高位仍放在高位,低位仍放在低位。例如:当s中的数为:765432
7、1时,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%10 * sl + *t;/*found*/sl = sl*100; 程序函数fun的功能是:将两个两位数的正整数a,b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。例如:a=45
8、,b=12时,调用该函数后,c=1524.注意:局部源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的假如干语句。2、B:*fw str str M:long *tsl = sl*10;P:*c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);3. 填空给定程序中,函数fun的功能是:将自然数110以与它们的平方根写到名为myfile3txt的文本文档中,然后再顺序读出显示在屏幕上。请在程序的下划线处填入正确的内容并把下划线删除,是程序得出正确的结果。 不得增行
9、或删行,也不得更改程序的结构!int fun(char *fname ) FILE *fp; int i,n; float x; if(fp=fopen(fname, w)=NULL) return 0; for(i=1;i=10;i+)/*found*/ fprintf(_1_,%d %fn,i,sqrt(double)i); printf(nSucceed!!n);/*found*/ _2_; printf(nThe data in file :n);/*found*/ if(fp=fopen(_3_,r)=NULL) return 0; fscanf(fp,%d%f,&n,&x); wh
10、ile(!feof(fp) printf(%d %fn,n,x); fscanf(fp,%d%f,&n,&x); fclose(fp); return 1;修改给定程序MODI1.c中fun函数的功能是:将n个无序整数从小到大排序。fun ( int n, int *a ) int i, j, p, t; for ( j = 0; jn-1 ; j+ ) p = j;/*found*/ for ( i=j+1; iai )/*found*/ t=i; if ( p!=j ) t = aj; aj = ap; ap = t; 程序函数fun的功能是:将两个两位数的正整数a,b合并成一个整数放在c
11、中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。例如:a=45,b=12时,调用该函数后,c=2514注意:局部源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的假如干语句。3、B: fp fclose(fp) fname M:in p=i P:*c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10);4. 填空给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返
12、回值为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, 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(nn