1、本文章是来自2012年 9月国家计算机二级C 语言上机考试题库 2 套第 02 套:给定程序中,函数 fun 的功能是将形参给定的字符串、整数、浮点数写到文本 文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C 中。不得增行或删行,也不得更改程序的结构!给定源程序:#include void fun(char*s,int a,double f)_1_ fp;char ch;fp=fopen(file1.txt,w);fprintf(fp,%s%d%fn,s,a,f)
2、;fclose(fp);fp=fopen(file1.txt,r);printf(nThe result:nn);ch=fgetc(fp);while(!feof(_2_)putchar(_3_);ch=fgetc(fp);putchar(n);fclose(fp);main()本文章是来自 char a10=Hello!;int b=12345;double c=98.76;fun(a,b,c);解题思路:本题是考察先把给定的数据写入到文本文件中,再从该文件读出并显示在屏幕上。第一处:定义文本文件类型变量,所以应填:FILE*。第二处:判断文件是否结束,所以应填:fp。第三处:显示读出的字符
3、,所以应填:ch。*给定程序 MODI1.C中函数 fun 的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。请改正函数 fun 中指定部位的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include void fun(char*s)int i,j;for(i=0,j=0;si!=0;i+)if(si=0&si=9)sj=si;sj=0;main()char item80;本文章是来自printf(nEnter a string:);gets(item);printf(nnThe string is:%s
4、n,item);fun(item);printf(nnThe string of changing is:%sn,item);解题思路:第一处:要求是取出原字符串中所有数字字符组成一个新的字符串,程序中是使用变量 j 来控制新字符串的位置,所以应改为:sj+=si;。第二处:置新字符串的结束符,所以应改为:sj=0;.*请编写函数 fun,函数的功能是:将 M行 N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。例如,二维数组中的数据为:W W W W S S S S H H H H 则字符串中的内容应是:WSHWSHWSH。注意:部分源程序在文件PROG1.C 中。请勿改动主函数
5、main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。给定源程序:#include#define M 3 本文章是来自#define N 4 void fun(char sN,char*b)int i,j,n=0;for(i=0;i N;i+)/*请填写相应语句完成其功能*/bn=0;main()char a100,wMN=W,W,W,W,S,S,S,S,H,H,H,H;int i,j;printf(The matrix:n);for(i=0;i for(j=0;j printf(n);fun(w,a);printf(The A string:n);puts(a);printf(nn);NONO();解题思路:本题是把二维数组中的字符数据按列存放到一个字符串中。1.计算存放到一维数组中的位置。2.取出二维数组中的字符存放到一维数组(已计算出的位置)中。参考答案:void fun(char sN,char*b)本文章是来自int i,j,n=0;for(i=0;i N;i+)/*请填写相应语句完成其功能*/for(j=0;j M;j+)bn=sji;n=i*M+j+1;bn=0;