国家二级C语言机试(操作题)模拟试卷693
程序填空题
1.给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1,失败时返回值为0。在复制的过程中,把复制的内容输出到终端屏幕。主函数中源文件名放在变量sfname中,目标文件名放在变量tfname中。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
1 #include<stdoo.h>
2 #include<stdlib.h>
3 int fun(char *source,char*target)
4 {FILE *fs,*ft;char ch;
5 /**********found**********/
6 if((fs=fopen(source,___1___))==NULL)
7 return 0;
8 if((ft=fopen(target,’’w’’))==NULL
}
9 return 0;
10 prontf(’’\nThe data in file:\n’’);
11 ch=fgetc(fs);
12 /**********found**********/
13 while(!feof(__2___))
14 (put:char(ch);
15 /**********found**********/
16 fputc(ch,___3___);
17 ch=fgetc(fs);
18 }
19 fclose(fs);fclose(ft);
20 printf(’’\n\n’’);
21 return 1;
22 }
23 main()
24 { char Sfname[20]=’’myfile1’’,tfname[20]=’’myfile2’’;
25 FILE *myf;int i;char c;
26 myf=fopen(sfname,’’w’’);
27 printf(’’\nThe original data:\n’’);
28 for(i=1;i<30;i++)
29 { c=’A’+rand()%25;
30 fprintf(myf,’’%c’’,c);
31 printf(’’%c’’,c);)
32 fclose(myf);printf(’’\n\n’’);
33 if(fun(Sfname,tfname))
34 printf(’’Succeed!’’);
35 else printf(”Fail!”);
36 }
(1)’’r’’
(2)fs
(3)ft
解析:fun函数要求实现的功能是将指定源文件中的内容复制到指定的目标文件中,即以只读方式打开源文件,以只写方式打开目标文件,然后将源文件内的内容复制到目标文件中。
第一空:将指定源文件中的内容复制到指定的目标文件中,源文件只需读,因此,以只读方式打开即可,故第一空处应该是“if((fs=fopen(source,\\
程序修改题
2.给定程序MODI1.C中函数fun的功能是:将长整型数s中每一位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。
例如,当S中的数为:87653142时,t中的数为:8642。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
1 #include<stdio.h>
2 void fun(long s,long *t)
3 { int d;
4 long s1=1;
5 *t=0;
6 while(s>0)
7 {d=s%10;
8 /**********found**********/
9 if(d%2=0)
10 { *t=d* s1+*t;
11 s1*=10;
12 }
13 /**********found**********/
14 s\=1 0;
15 }}
16 main()
17 {long s,t;
18 printf(’’\nPlease enter s:’’);scanf(’’%id’’,&s);
19 fun(s,&t);
20 printf(’’The result is:%id\n’’,t);
21 }
(1)if(d%2==0)
(2)s/=10;
解析:本题中函数的功能是将长整型数s中每一位上为偶数的数依次取出,构成一个新数放在t中。首先在函数中对长整型数的每一位来进行截取,然后对其进行判断,最后根据判断结果进行操作。
(1)第一个标识是判断d是否是偶数,即比较“d%2”是否等于0,在C语言中,“==”表示的是“等于”,而“=”是赋值,因此,第一个标识下“if(d%2=0)”应改为“if(d%2==0)”。
(2)第二个标识下的“s\=10;”是对a的截取,这里的“\”本意应该是除号,但这个在C语言中是不可识别的,所以第二个标识下“s\=10;”应该改为“s/=10;”。
程序设计题
3.函数fun的功能是:将S所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的数组中。
例如,若S所指字符串中的内容为:’’ABCDEFGl23456’’,其中字符A的ASCII码值为奇数,因此应当删除;其中字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;而字符2的ASCII码值为偶数,所在数组中的下标也为偶数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是:’’246’’。
注意:部分源程序存在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
1 #include<stdio.h>
2 #include<string.h>
3 void fun(char *s,char t[])
4 {
5 }
6 main()
7 {
8 char s[100],t[100];
9 void NONO();
10 printf(’’\nPlease enter strings:’’);scanf(’’%s’’,s);
11 fun(s,t);
12 printf(’’\nThe result is:%s\n’’,t);
13 NONO();}
14 void NONO()
15 {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭
本文档预览:3600字符,共4378字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载