模拟试卷(一) 笔试部分(120分钟 第一部分计算机基础知识 、选择题(每题1分,共20分) 1、下列字符中,其 ASCII编码值最大的是 A、9B、DC、aD、空格 2、符合国际标准且采用先进的小波分析算法的一种新的图像文件格式是 A、BMPB、GIFC、 JPEG D、JP2 3、评价图像压缩编码方法的优劣主要看。(1)压缩倍数(2)压缩时间(3)算法的 复杂度(4)重建图像的质量 A、(1)(2)(3) 、(1)(3)(4)C、(2)(3)(4)D、(1)(2)(3)(4) 4、下列软件中不属于网络应用软件的是 A、 Photoshop B、 Telnet C、FTPD、E-mail 5、下面关于目前最常用的无线通信信道的说法中,错误的是 A、无线电波可用于广播、电视和手机,也可以用于传输计算机数据 B、利用微波可将信息集中向某个方向进行定向信息传输,以防止他人截取信号 C、红外线通信一般局限于一个小区域,并要求发送器直接指向接收器 D、激光能在长距离内保持聚焦并能穿透物体,因而可以传输很远距离 6、关于电子邮件服务,下列叙述错误的是 A、网络上必须有一台邮件服务器用来运行邮件服务器软件 B、用户发出的邮件会暂时存放在邮件服务器中 C、用户上网时可以向邮件服务器发出收邮件的请求 D、发邮件者和收邮件者如果同时在线,可以不使用邮件服务器 7、一般信息系统分为四个层次,其最外层向用户提供应用操作界面,即 A、操作系统和网络层B、数据管理层C、用户接口层D、应用层 8、PC机的标准输入设备是 ,缺少该设备计算机就难于正常工作。 A、键盘B、鼠标器C、扫描仪D、数字化仪 9、下面关于决策支持系统的叙述中,错误的是 A、决策支持系统提供分析问题、建立模型、模拟决策过程和方案的环境 B、决策支持系统所需数据源仅来自于单位内部操作层和管理层的信息,它的使用者是操 作和管理人员 C、决策支持系统进行辅助决策的技术有模型库、方法库、数据库、数据仓库、联机分析 及规则挖掘等 D、决策支持系统中所处理的数据一般是半结构化的或非结构化的 10、按照交易双方分类,电子商务有四种类型,其中不包含 的电子商务 A、企业内部B、企业与客户之间C、企业间D、政府间 ll、计算机有很多分类方法,下面 是按其内部逻辑结构进行分类的 、服务器/工作站 B、16位/32位/64位计算机 B、小型机/大型机/巨型机D、专用机/通用机 12、下列描述中,错误的是 A、按网络覆盖的地域范围可分为LAN、WAN和MAN B、按网络使用性质,可分为公用网与专用网 C、按网络使用范围及对象可分为企业网、校园网等 D、按网络用途分,可分为物理网及资源共享网
1 模拟试卷(一) 笔试部分(120 分钟) 第一部分 计算机基础知识 一、选择题(每题 1 分,共 20 分) 1、下列字符中,其 ASCII 编码值最大的是_________。 A、9 B、D C、a D、空格 2、符合国际标准且采用先进的小波分析算法的一种新的图像文件格式是________。 A、BMP B、GIF C、JPEG D、JP2 3、评价图像压缩编码方法的优劣主要看_______。(1)压缩倍数(2)压缩时间(3)算法的 复杂度(4)重建图像的质量 A、(1)(2)(3) B、(1)(3)(4) C、(2)(3)(4) D、(1)(2)(3)(4) 4、下列软件中不属于网络应用软件的是________。 A、Photoshop B、Telnet C、FTP D、E-mail 5、下面关于目前最常用的无线通信信道的说法中,错误的是________。 A、无线电波可用于广播、电视和手机,也可以用于传输计算机数据 B、利用微波可将信息集中向某个方向进行定向信息传输,以防止他人截取信号 C、红外线通信一般局限于一个小区域,并要求发送器直接指向接收器 D、激光能在长距离内保持聚焦并能穿透物体,因而可以传输很远距离 6、关于电子邮件服务,下列叙述错误的是________。 A、网络上必须有一台邮件服务器用来运行邮件服务器软件 B、用户发出的邮件会暂时存放在邮件服务器中 C、用户上网时可以向邮件服务器发出收邮件的请求 D、发邮件者和收邮件者如果同时在线,可以不使用邮件服务器 7、一般信息系统分为四个层次,其最外层向用户提供应用操作界面,即________。 A、操作系统和网络层 B、数据管理层 C、用户接口层 D、应用层 8、PC 机的标准输入设备是__________,缺少该设备计算机就难于正常工作。 A、键盘 B、鼠标器 C、扫描仪 D、数字化仪 9、下面关于决策支持系统的叙述中,错误的是________。 A、决策支持系统提供分析问题、建立模型、模拟决策过程和方案的环境 B、决策支持系统所需数据源仅来自于单位内部操作层和管理层的信息,它的使用者是操 作和管理人员 C、决策支持系统进行辅助决策的技术有模型库、方法库、数据库、数据仓库、联机分析 及规则挖掘等 D、决策支持系统中所处理的数据一般是半结构化的或非结构化的 10、按照交易双方分类,电子商务有四种类型,其中不包含________的电子商务。 A、企业内部 B、企业与客户之间 C、企业间 D、政府间 11、计算机有很多分类方法,下面___________是按其内部逻辑结构进行分类的。 A、服务器/工作站 B、16 位/32 位/64 位计算机 B、小型机/大型机/巨型机 D、专用机/通用机 12、下列描述中,错误的是________。 A、按网络覆盖的地域范围可分为 LAN、WAN 和 MAN B、按网络使用性质,可分为公用网与专用网 C、按网络使用范围及对象可分为企业网、校园网等 D、按网络用途分,可分为物理网及资源共享网
13、下面的程序设计语言中,主要用于科学计算的是 A、 FORTRAN B、 PASCAL O、 JAVA D、C++ 14、下列关于打印机的叙述中,错误的是 A、激光打印机使用PS/2接口和计算机相连 B、喷墨打印机的打印头是整个打印机的关键 C、喷墨打印机属于非击打式打印机,它的优点是能输出彩色图像,经济,低噪音,打 印效果好 D、针式打印机虽已逐渐退出市场,但其独特的平推式进纸技术,在打印存折和票据方 面具有不可替代的优势 15、计算机对人类社会的进步与发展作用巨大,下面有关其作用的描述中错误的是 A、增添了人类发展科技的新手段 B、提供了人类创造文化的新工具 C、引起了人类工作与生活方式的变化 D、创造了人类改造自然的新物质资源 16、人们往往会用“我用的是10M宽带”来形容自己使用计算机网络的方式,这里的10M 指的是数据通信中的 指标 A、信道容量B、数据传输速率C、误码率D、端到端延迟 17、路由器用于连接异构的网络,它收到一个IP数据报后要进行许多操作,这些操作不包 含 A、地址解析B、路由选择C、帧格式转换D、IP数据报的转发 18、计算机完成最基本操作任务的软件和协助用户完成某项特定任务的软件分别是 A、系统软件和系统软件B、系统软件和应用软件 C、应用软件和系统软件D、应用软件和应用软件 19、下列不属于计算机软件技术的是 A、数据库技术B、系统软件技术C、程序设计技术D、单片机接口技术 20、 CD-ROM光盘指的是 A、只读光盘B、随机存取光盘C、只写一次式光盘D、可擦写型光盘 第二部分C程序设计 选择题(每题1分,共10分) 21、以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是 A) if((a>B)&&(b>C))k=1; B)if((a>B)I(b>C))k=1 else k=o: c)if(aB)k=l else if(bC)k=1 else ko 22、有以下程序 main() char k: int I for(i=1;i<3;i++) scanf(“%c”,&k) switch(k) case 0’: printf(“ another\n”) case‘1’: printf(“ number\n”);
2 13、下面的程序设计语言中,主要用于科学计算的是________。 A、FORTRAN B、PASCAL C、JAVA D、C++ 14、下列关于打印机的叙述中,错误的是________。 A、激光打印机使用 PS/2 接口和计算机相连 B、喷墨打印机的打印头是整个打印机的关键 C、喷墨打印机属于非击打式打印机,它的优点是能输出彩色图像,经济,低噪音,打 印效果好 D、针式打印机虽已逐渐退出市场,但其独特的平推式进纸技术,在打印存折和票据方 面具有不可替代的优势 15、计算机对人类社会的进步与发展作用巨大,下面有关其作用的描述中错误的是________。 A、增添了人类发展科技的新手段 B、提供了人类创造文化的新工具 C、引起了人类工作与生活方式的变化 D、创造了人类改造自然的新物质资源 16、人们往往会用“我用的是 10M 宽带”来形容自己使用计算机网络的方式,这里的 10M 指的是数据通信中的________指标。 A、信道容量 B、数据传输速率 C、误码率 D、端到端延迟 17、路由器用于连接异构的网络,它收到一个 IP 数据报后要进行许多操作,这些操作不包 含________。 A、地址解析 B、路由选择 C、帧格式转换 D、IP 数据报的转发 18、计算机完成最基本操作任务的软件和协助用户完成某项特定任务的软件分别是 ________。 A、系统软件和系统软件 B、系统软件和应用软件 C、应用软件和系统软件 D、应用软件和应用软件 19、下列不属于计算机软件技术的是________。 A、数据库技术 B、系统软件技术 C、程序设计技术 D、单片机接口技术 20、CD-ROM 光盘指的是________。 A、只读光盘 B、随机存取光盘 C、只写一次式光盘 D、可擦写型光盘 第二部分 C 程序设计 一、选择题(每题 1 分,共 10 分) 21、以下程序段中与语句 k=a>b?(b>c?1:0):0;功能等价的是 A) if((a>B) &&(b>C) ) k=1; B) if((a>B) ||(b>C) ) k=1 else k=0; C) if(aB) k=1; else if(bC) k=1; else k=0; 22、有以下程序 main( ) { char k; int I; for(i=1;i<3;i++) { scanf(“%c”,&k); switch(k) { case ‘0’: printf(“another\n”); case ‘1’: printf(“number\n”);
程序运行时,从键盘输入:01,程序执行后的输出结果是 A)another B)another C)another D) number number number number number another numbe 23、有以下程序 main() while(z->0&&+x<5)y=y-1; 程序执行后的输出结果是 )3,2,0B)3,2,-1C)4,3,-1D)5,-2,-5 24、有以下程序 I int i, s=0 for(i=1;i<10;i+=2)s+=i+1 程序执行后的输出结果是 A)自然数1~9的累加和B)自然数1~10的累加和 C)自然数1~9中的奇数之和D)自然数1~10中的偶数之和 25、有以下程序 main() ido if(i%3)continue 程序执行后的输出结果是 A)n=5B)n=2C)n=3D)n=4 26、若程序中定义了以下函数 double myadd (double a, double B) 并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说 明是 a)double myadd( double a, B) B)double myadd(double, double)
3 } } } 程序运行时,从键盘输入:01,程序执行后的输出结果是 A) another B) another C) another D) number number number number number another number 23、有以下程序 main( ) { int x=0,y=5,z=3; while(z-->0&&++x<5) y=y-1; printf(“%d,%d,%d\n”,x,y,z); } 程序执行后的输出结果是 A) 3,2,0 B) 3,2,-1 C) 4,3,-1 D) 5,-2,-5 24、有以下程序 main( ) { int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n”,s); } 程序执行后的输出结果是 A) 自然数 1~9 的累加和 B) 自然数 1~10 的累加和 C) 自然数 1~9 中的奇数之和 D) 自然数 1~10 中的偶数之和 25、有以下程序 main( ) { int i,n=0; for(i=2;i<5;i++) { do { if(i%3) continue; n++; } while(!i); n++; } printf(“n=%d\n”,n); } 程序执行后的输出结果是 A) n=5 B) n=2 C) n=3 D) n=4 26、若程序中定义了以下函数 double myadd(double a,double B) { return (a+B) ;} 并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说 明是 A) double myadd(double a,B) ; B) double myadd(double,double);
C) double madd ( double b, double A D) double myadd (double x, double y) 27、有以下程序 char fun(char x, char y) return y inta=’9’,b=’8 printf(“%cⅦn”,fun(fun(a,B),fun(b,C)); 程序的执行结果是 A}函数调用出错B}8C}9D}7 28、设有定义:intn=0,*p=&n,*q=&p;则以下选项中,正确的赋值语句是 A)p=1;B)*q=2;C)q=p;D)*p=5 9、有以下程序 void f(int v, int w) I int t t=v: v=w: w-t main if(x>y) f(x, y) else if(y>z)f(y, z) else f(x, z) printf(“%d,%d,%dn”,x,y,z); 执行后输出结果是 A)1,2,3B)3,1,2C)1,3,2D)2,3,1 30、有以下程序段 inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b b=p[5]; b中的值是 A)5B)6C)8D)9 二、填空题(每空1分,共30分) 请将每一个空的正确答案写在答题卡【31】至【60】序号的横线上,答在试卷上不得分. (一)基本概念题(共5分) (1)可在整型常数后添加一个"L"或”1”字母表示该数为 (2)for循环的一般形式为:for(::) 其中的″初始化″、"条件表达式″和″增量″都是选择项,即可以缺省,但 不能缺省 (3)从定义的角度把函数分为 和用户定义函数。 (4) puts函数只能输出 不能输出数值或进行格式变换 (5)局部变量是在函数内作定义说明的。其作用域仅限于
4 C) double myadd(double b,double A) ; D) double myadd(double x,double y); 27、有以下程序 char fun(char x , char y) { if(x return y; ) main( ) { int a=’9’,b=’8’,c=’7’; printf(“%c\n”,fun(fun(a,B) ,fun(b,C) )); } 程序的执行结果是 A} 函数调用出错 B}8 C}9 D}7 28、设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是 A) p=1; B) *q=2; C) q=p; D) *p=5; 29、有以下程序 void f(int v , int w) { int t; t=v;v=w;w=t; } main( ) { int x=1,y=3,z=2; if(x>y) f(x,y); else if(y>z) f(y,z); else f(x,z); printf(“%d,%d,%d\n”,x,y,z); } 执行后输出结果是 A) 1,2,3 B) 3,1,2 C) 1,3,2 D) 2,3,1 30、有以下程序段 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b; b=p[5]; b 中的值是 A) 5 B) 6 C) 8 D) 9 二、填空题(每空 1 分,共 30 分) 请将每一个空的正确答案写在答题卡【31】至【60】序号的横线上, 答在试卷上不得分. (一)基本概念题(共 5 分) (1)可在整型常数后添加一个"L"或"l"字母表示该数为________ (2)for 循环的一般形式为: for(;;) 其中的"初始化"、"条件表达式"和"增量"都是选择项, 即可以缺省,但________不能缺省。 (3)从定义的角度把函数分为________和用户定义函数。 (4)puts()函数只能输出________, 不能输出数值或进行格式变换 (5)局部变量是在函数内作定义说明的。其作用域仅限于________
(二)阅读程序,写出运行结果(共10分) (6)已知字符A的 ACSII码值为65,以下语句的输出结果是【6】 char ch=’B printf(“%c%dⅦn”,ch,ch) (7)有以下语句段 int nl=10. n2=20 printf(“【7】”,n1.n2) 要求按以下格式输出n和n2的值,每个输出行从第一列开始,请填空。 n2=20 (8)有以下程序 mmain I int t=l, i=5 执行后输出结果是【8】。 (9)有以下程序 mal I int n=0, m=1, x=2 if(!n)x-=1 执行后输出结果是【9】。 (10)有以下程序 #include chI=getchar(: ch2=getchar n1=ch1-“0’;n2=n1*10+(ch2-“0’); printf(“%d\n”,n2) 程序运行时输入:12,执行后输出结果是【10】。 (11)有以下程序 roid f( int y, int *kx) y=y+*x;*x=*x+y;} main() printf(“%d%dⅦn”,x,y) 执行后输出的结果是【11】
5 (二)阅读程序,写出运行结果(共 10 分) (6) 已知字符 A 的 ACSII 码值为 65,以下语句的输出结果是【6】 char ch=’B’; printf(“%c %d\n”,ch,ch); (7) 有以下语句段 int n1=10,n2=20; printf(“ 【7】 ”,n1.n2); 要求按以下格式输出 n1 和 n2 的值,每个输出行从第一列开始,请填空。 n1=10 n2=20 (8) 有以下程序 main( ) { int t=1,i=5; for(;i>=0;i--) t*=i; printf(“%d\n”,t); } 执行后输出结果是【8】 。 (9) 有以下程序 main( ) { int n=0,m=1,x=2; if(!n) x-=1; if(m) x-=2; if(x) x-=3; printf(“%d\n”,x); } 执行后输出结果是【9】 。 (10) 有以下程序 #include main( ) { char ch1,ch2; int n1,n2; ch1=getchar(); ch2=getchar(); n1=ch1-‘0’; n2=n1*10+(ch2-‘0’); printf(“%d\n”,n2); } 程序运行时输入:12,执行后输出结果是【10】 。 (11) 有以下程序 void f( int y,int *x) {y=y+*x; *x=*x+y;} main( ) { int x=2,y=4; f(y,&x); printf(“%d %d\n”,x,y); } 执行后输出的结果是【11】
(12)函数fun的功能是计算xn double fun(double x, int n) I int i; double y=l return y 主函数中已经正确定义m,a,b变量并赋值,并调用fun函数计算:m=a4+b4-(a+B) 实现这一计算的函数调用语句为【12】 (13)下面 rotate函数的功能是:将n行n列的矩阵A转置为A 请填空 #define n void rotate (int allIN) for(i=0: i<N: I++) for(j=0;【13】:j++) t=a[]lil 【14】 a[j][i]=t; (14)以下 sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指向内存空 间中,形成一个新的字符串s。请填空。 void sstrcpy(char *s, char *t) while(*s++=【15】);} char strl[100],str2[]=” abcdefgh” printf(“%sn”,str1); (15)下列程序的运行结果是:【16】 return s+strlen(s)/2: 1 main har*p,*str=” abcdefgh” (三)完善程序(共15分) 1、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 程序源代码 6
6 (12) 函数 fun 的功能是计算 xn double fun(double x,int n) { int i; double y=1; for(i=1;i<=n;i++) y=y*x; return y; } 主函数中已经正确定义 m,a,b 变量并赋值,并调用 fun 函数计算:m=a4+b4-(a+B) 3。 实现这一计算的函数调用语句为【12】 。 (13) 下面 rotate 函数的功能是:将 n 行 n 列的矩阵 A 转置为 A’ 请填空 #define N 4 void rotate(int a[][N]) { int i,j,t; for(i=0;i<N;I++) for(j=0;【13】;j++) { t=a[i][j]; 【14】 ; a[j][i]=t; } } (14) 以下 sstrcpy( )函数实现字符串复制,即将 t 所指字符串复制到 s 所指向内存空 间中,形成一个新的字符串 s。请填空。 void sstrcpy(char *s,char *t) { while(*s++=【15】);} main( ) { char str1[100],str2[]=”abcdefgh”; sstrcpy(str1,str2); printf(“%s\n”,str1); } (15) 下列程序的运行结果是:【16】 #include char *ss(char *s) { return s+strlen(s)/2;} main( ) { char *p,*str=”abcdefgh”; p=ss(str); printf(“%s\n”,p); } (三)完善程序(共 15 分) 1、有 1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 程序分析:可填在百位、十位、个位的数字都是 1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 程序源代码: main() {
int i,j, k; printf("n ); for(i=1;<5;1++) for(=1:<5 j++) (【18】) printf("%d, %d, %\n", ij, k) 2、一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请 问该数是多少?程序分析:在10万以内判断,先将该数加上100后再开方,再将该数 加上268后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析 程序源代码 #include " math. h 【19】 for(【20】) i xsqrt(i+100) y=sqrt(i+268) if(【21】) printf("In%ld\n", 1) 3、打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等 于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的 三次方。 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 程序源代码 int i,j, k, n; printf("water flower 'number is: ") for(n=100;n<1000n++) 【22】/*分解出百位* 【23】/*分解出十位* 【24】/*分解出个位* if(【25】) printf("%-5d", n)
7 int i,j,k; printf("\n"); for(i=1;i<5;i++) for(j=1;j<5;j++) for ( 【17】 ) { if ( 【18】 ) printf("%d,%d,%d\n",i,j,k); } } 2、 一个整数,它加上 100 后是一个完全平方数,再加上 168 又是一个完全平方数,请 问该数是多少?程序分析:在 10 万以内判断,先将该数加上 100 后再开方,再将该数 加上 268 后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析: 程序源代码: #include "math.h" main() { 【19】; for (【20】) { x=sqrt(i+100); y=sqrt(i+268); if(【21】) printf("\n%ld\n",i); } } 3、 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等 于该数本身。例如:153 是一个“水仙花数”,因为 153=1 的三次方+5 的三次方+3 的 三次方。 程序分析:利用 for 循环控制 100-999 个数,每个数分解出个位,十位,百位。 程序源代码: main() { int i,j,k,n; printf("'water flower'number is:"); for(n=100;n<1000;n++) { 【22】/*分解出百位*/ 【23】/*分解出十位*/ 【24】/*分解出个位*/ if(【25】) { printf("%-5d",n); } }
printf("\n"); 4、求s=a+a+a+a+a.a的值,其中a是一个数字。例如2+22+222+2222+2222此 时共有5个数相加),几个数相加有键盘控制。程序分析:关键是计算出每一项的值 程序源代码 aino int a, n, count=l long int【26】; printf("please input a and nIn); scanf("d,%d",【27】 printf("a=%d, n=%odIn", a, n); while(【28】) tn=tn+a 【29】 a*10; 【30】 printf("ataat.. %ld\n",sn)
8 printf("\n"); } 4、求 s=a+aa+aaa+aaaa+aa...a 的值,其中 a 是一个数字。例如 2+22+222+2222+22222(此 时共有 5 个数相加),几个数相加有键盘控制。程序分析:关键是计算出每一项的值。 程序源代码: main() { int a,n,count=1; long int【26】; printf("please input a and n\n"); scanf("%d,%d",【27】); printf("a=%d,n=%d\n",a,n); while(【28】) { tn=tn+a; 【29】 a=a*10; 【30】 } printf("a+aa+...=%ld\n",sn); }
上机部分(70分钟) 改错题(18分) 程序功能 给定程序 MODIL. C中函数fun的功能是:将在字符串s中出现、而未在字符串t中出 现的字符形成一个新的字符串放在u中,u中字符按原字符串中字符顺序排列,不去掉重复 字符。 例如:当s=" AABCDE",t="BDFG"字符。 u中的字符串为"AACE"。 请改正函数fun中的错误,使它能得出正确的结果。注意:不要改动main函数,不得 增行或删行,也不得更改程序的结构! 含有错误的源程序 #include #include #include void fun (char *s, char *t, char u sl= strlen(s): tl strlen(t) for (i=0 if (slil =s tlil break u++=s[i] main char s[100],t[100],u[100 clrscro printf( " \nPlease enter string s: ) scanf(%s" s printf(" \nPlease enter string t: ) scanf(%s" t) printf( the result %s\n", u) 「要求 1将上述程序录入到文件myfc中,根据题目要求及程序中语句之间的逻辑关系对程序中的 错误进行修改。 2改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处 理命令,但不能增加其它语句,也不能删去整条语句 3改正后的源程序(文件名mync)保存在考试软盘的根据目录中供阅卷使用,否则不予评分。 二、编程题(22分) 程序功能
9 上机部分(70 分钟) 一、改错题(18 分) [程序功能] 给定程序 MODI1.C 中函数 fun 的功能是:将在字符串 s 中出现、而未在字符串 t 中出 现的字符形成一个新的字符串放在 u 中,u 中字符按原字符串中字符顺序排列,不去掉重复 字符。 例如:当 s = "AABCDE",t = "BDFG"字符。 u 中的字符串为"AACE"。 请改正函数 fun 中的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得 增行或删行,也不得更改程序的结构! [含有错误的源程序] Modi1.c #include #include #include void fun (char *s, char *t, char u) { int i, j, sl, tl; sl = strlen(s); tl = strlen(t); for (i=0; i { for (j=0; j if (s[i] == t[j]) break; if (j>tl) *u++ = s[i]; ) *u = '\0'; ) main() { char s[100], t[100], u[100]; clrscr(); printf("\nPlease enter string s:"); scanf("%s", s); printf("\nPlease enter string t:"); scanf("%s", t); fun(s, t, u); printf("the result is: %s\n", u); } [要求] 1.将上述程序录入到文件 myfl.c 中,根据题目要求及程序中语句之间的逻辑关系对程序中的 错误进行修改。 2.改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处 理命令,但不能增加其它语句,也不能删去整条语句。 3.改正后的源程序(文件名 myfl.c)保存在考试软盘的根据目录中供阅卷使用,否则不予评分。 二、编程题(22 分) [程序功能]
有两个磁盘文件A和B各存放一行字母,要求把这两个文件中的信息合并(按字母顺 序排列),输出到一个新文件C中。 「要求 源程序文件名必须取为my2.c,输出结果文件名为myf2.out 2.数据文件的打开、使用、关闭均用C语言标准库中缓冲文件系统的文件操作函数实现。 3源程序文件和运行结果文件均需保存在考试盘根据目录中供阅卷使用 4不要复制扩展名为obj和exe的文件到考试盘上
10 有两个磁盘文件 A 和 B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺 序排列), 输出到一个新文件 C 中。 [要求] 1.源程序文件名必须取为 myf2.c,输出结果文件名为 myf2.out。 2.数据文件的打开、使用、关闭均用 C 语言标准库中缓冲文件系统的文件操作函数实现。 3.源程序文件和运行结果文件均需保存在考试盘根据目录中供阅卷使用。 4.不要复制扩展名为 obj 和 exe 的文件到考试盘上