欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    计算机二级C语言考试考前模拟试题.docx

    • 资源ID:6711302       资源大小:81.01KB        全文页数:28页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    计算机二级C语言考试考前模拟试题.docx

    一、选择题(每小题1分,共40分)1单选题若有定义语句:doublea,*P=&a;以下叙述中错误的是()。A.定义语句中的*号是一个间址运算符B.定义语句中的*号是一个说明符C.定义语句中的P只能存放double类型变量的地址D.定义语句中,*P=&a把变量a的地址作为初值赋给指针变量P参考答案:A参考解析:在变量定义doublea,*P=&a;中,*号是一个指针运算符,而非间址运算符,所以A错误。2单选题有以下程序:Wincludc<stdio.h>main()IFILE«fp;inta10H,2,3«i«11ifp=fpen("dL.lf,w-);for(i=0;»<3;i+)fprintf(fp."%d".i);(pnntf(fp,"W);(cl<we(fp);fp«fopen(dl.(fat,'.Mr*);fcanf(fp,-%d&n);fclose(fp);Print£("%dn*«n);程序运行后的输出结果是()oA. 321B. 12300C. 1D. 123参考答案:Ddl.dat:程序首先将数组a10中的元素1、2、3分别写入了文件dl.dat文件中,然后dl.datdl.dat文件中的数据123,整体写入到了变量n的空间中,所以打印n时输出的数据为123。3单选题有以下程序:Minclude<stdio.h>defineN4V(Mdfun(intN,mlb()Iint”for(i=Oji<N+÷)bi=ii;Imain()IintxN=ll,2.3.4.15.6.7,89.10yN.i;fun(x.y);for(i三0ji<N;i+)pritf("%d.".yi);printf("n");程序运行后的输出结果是()。A.1,0,7,0,B. 1, 2,3, 4,C. 1, 4,5, 9,D. 3, 4, 8,10,参考答案:A参考解析:该程序首先在定义变量时,对二维数组aN进行赋值操作;调用函数fun,函数fun的功能是将二维数组中的a00、all、a22和a33赋值给一维数组,最后将一维数组元素1,0,7,0,输出。4单选题有以下程序段:辆ndu<ie<Stdio.h>inta.b.c;a三10;b=50;c三30;if(a>b)a=b.b=c;c=a:print""a=%db三%dc=%dn",b,c);程序运行后的输出结果是()oA.a=10b=50c=30B.a=10b=50C=IOC.a=10b=30C=IOD.a=50b=30c=50参考答案:B参考解析:本题中a>b的条件不满足,所以不执行逗号表达式a=b,b=c;的操作,而是执行c=a操作,即C的值为10。5单选题有以下程序:*include<stdio.h>man()Iinty10;while(y);PrinIf("y三%dn-.y):I程序执行后的输出结果是()<.AT=OB. y=-lC. y=lD. while构成无限循环参考答案:B参考解析:执行y一直到值为0,由于y一是先用再减,所以退出循环时,y的值为To6单选题若有定义语句:intx=10;,则表达式x-=x+x的值为()。A.0B.-20C.-10D.10参考答案:C参考解析:算术运算符+的优先级高于-二,且-二的结合方向为自右向左,所以表达式x-=x+x可以表示成x=x-(x+x)=10-(10+10)=-10,选择C。7单选题有以下程序段:程序段:tinclude<std>.h>intj;floaty;charname50;stanf("%2d%f%s".&j,&y,name);当执行上述程序段,从键盘上输入555667777abc后,Y的值为()。A. 566.0B. 55566.0C. 7777.0D. .0参考答案:A参考解析:它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。其中的格式命令可以说明最大域宽。在百分号(%)与格式码之间的整数用于限制从对应域读入的最大字符数。所以j的值为55,y的值为566.0,字符数组name为7777abc°E. 单选题若有定义语句:doublex,y,*px,*py;执行了PX=&x;Py=&y;之后,正确的输入语句是().A. scanf(w%If%lew,px,py);B. scanf(w%f%fw&x,&y);C. sceanf(,%f%f”,x.y);D. scanf(w%If%If,x,y);参考答案:A参考解析:因为x,y都是double型数据,所以输入时的格式字符应为Mf,所以B与C错误。D选项中SCanf("%lf%If”,x,y);应为SCanf(,&x,&y);。E. 单选题有以下程序:tincluBe<Bldio.h>man()in(a3I.b三0;PnM-%d.",b=a+b);pnntf("dn*ta三2b);I程序运行后的输出结果是()。A. 1,2B. 1,OC.3,2D.0,O参考答案:A参考解析:首先打印b=a+b=l+O=l的值1,此时已给b赋值为Io然后打印a=2*b=2*l=2的值2。所以结果是1,2。10单选题有两个关系R、S如下:ABCABa32a3bOIbOC2IC2由关系R通过运算得到关系S,则所使用的运算为()。A.选择B.投影C.插入D.连接参考答案:B参考解析:投影运算是指对于关系内的域指定可引入新的运算。本题中S是在原有关系R的内部进行的,是由R中原有的那些域的列所组成的关系。所以选择B。11单选题下列数据结构中,属于非线性结构的是()。A.循环队列B.带链队列C.二叉树D.带链栈参考答案:C参考解析:树是简单的非线性结构,所以二叉树作为树的一种也是一种非线性结12单选题若有以下程序段:intr=8;PnmH-%d1.r>>1);程序运行后的输出结果是()A. 16B.8C.4D.2参考答案:C参考解析:本题考查位运算,属于基础知识,题目中将整型变量8,二进制表达为OOoolO00,右移一位为OOoOOl00,即4,选项C正确。13单选题对于循环队列,下列叙述中正确的是()。A.队头指针是固定不变的B.队头指针一定大于队尾指针C.队头指针一定小于队尾指针D.队头指针可以大于队尾指针,也可以小于队尾指针参考答案:D参考解析:循环队列的队头指针与队尾指针都不是固定的,随着入队与出队操作要进行变化。因为是循环利用的队列结构,所以队头指针有时可能大于队尾指针,有时也可能小于队尾指针。14单选题设有定义:char*c;以下选项中能够使C正确指向一个字符串的是()<.A)charslr()三"etring"c=tr;C)c=gelchar();B)Manfdc);D) c = "siring":ABCD参考答案:A参考解析:A选项为正确用法,先将字符串存于字符数组中,然后将数组名赋给字符指针(数组名代表数组首地址,定义数组时为其分配确定地址)。C选项错误,getchar()函数只能输入一个字符给字符型变量,而不是字符指针。B选项和D选项有类似的错误,两个选项并无语法错误,但运行时可能会出现问题。因为在B选项和D选项中,字符指针没有被赋值,是个不确定的值,指向一个不确定的内存区域。这个区域可能存放有用的指令或致据。在这个不确定的区域重新存放字符串,可能会发生无法预知的错误。因此A选项正确。15单选题若变量已正确定义,在1«册口1'曲1双“知5",k);中,以下不可替代W的是()。A.a<>b+cB. ch=getchar()C.a=b+cD.a+参考答案:A参考解析:选项A是非法的表达式,C语言中没有<运算符。16单选题下列排序方法中,最坏情况下比较次数最少的是()。A.冒泡排序B.简单选择排序C.直接插入排序D.堆排序参考答案:D参考解析:冒泡排序与筒单插入排序与简单选择排序法在最坏情况下均需要比较n(nT)2次,而堆排序在最坏情况下需要比较的次数是nlog2n°17单选题有以下程序:include<»ldio.h>doublef(doublex);main()Idoublea三0;inti;for(i=0;i<30;i*IO)a÷=f(double)i);pntf(*%3.0fn".a);Idoublef(doublex)returnxx+I;!程序运行后的输出结果是()oA. 500B. 401C. 503D. 1404参考答案:C参考解析:本题重点考察函数的定义和调用,第一次循环,a=0,i=0,返回值a=0*0+l+0=l;第二次循环,a=l,i=10,返回值a=10*10+l+l=102;第三次循环,a=102,i:20,返回值a=20*20+l+102=503;第四次循环,a=503,i=30;不符合i<30,跳出循环,最后结果输出a=503t,18单选题数据库管理系统是()。A.操作系统的一部分B.在操作系统支持下的系统软件C.一种编译系统D.一种操作系统参考答案:B参考解析:数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中数据组织、数据操纵、数据维护、控制及保护和数据服务等。是一种在操作系统之上的系统软件。19单选题有以下函数:intfun(char*)1 chart三;whiie(I÷);return(t-);I该函数的功能是()A.计算S所指字符串的长度B.比较两个字符串的大小C.计算S所指字符串占用内存字节的个数D.将S所指字符串复制到字符串t中参考答案:A考解析:首先char*s接受一个字符型数组的首地址并将这个首地址赋给另一个字符型指针char*t,while(*t+÷)不断循环直到*1为'0',再将t-l,这时字符指针t指向字符串的最后一个字符,又因为S指向字符数组的首地址即字符串的首地址所以return(Ls)便是返回字符数组中字符串的长度。A. 单选题以下选项中,能用作用户标识符的是()oA._0_B. 8_8C. voidD.unsigned参考答案:A参考解析:C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。B中以数字8开头,所以错误。C与D中用的是关键字VOid与UnSigned,所以错误。21单选题以下叙述中错误的是()。A.使用三种基本结构构成的程序只能解决简单问题B.结构化程序由顺序、分支、循环三种基本结构组成C.C语言是一种结构化程序设计语言D.结构化程序设计提倡模块化的设计方法参考答案:A参考解析:使用顺序,选择(分支),循环三种基本结构构成的程序可以解决所有问题,而不只是解决简单问题,所以A错误。22单选题下列叙述中正确的是()。A.栈是“先进先出”的线性表B.队列是“先进后出”的线性表C.循环队列是非线性结构D.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构参考答案:D参考解析:栈是先进后出的线性表,所以A错误;队列是先进先出的线性表,所以B错误;循环队列是线性结构的线性表,所以C错误。23单选题有以下程序:Winrludr<tdio.h>main()Iintm三l.n三2,p=Am,*q=4n.r;rp;p三q;q«r;printf("%d,%d,%d.%dn",m,n,.q);I程序运行后的输出结果是()oA. 2,1,1,2B. 1,2,1,2C. 2,1,2,1D. 1,2,2,1参考答案:D参考解析:inim=l,n=2,*q=&n,*r;即指针变量P指向m,指针变量q指向n,r=p;p=q;q=r;即通过指针变量r,将指针P和指针q的指向交换。因此最后输出1,2,2,Io24单选题有以下程序:tinclude<M<lk>.h>main()inial.a2;charcl,c2;Manf("%d%c%d%c",&a.&cl,&a2.&c2);pnntf("%d.%c.%d.%c-tal,cl.a2.c2);若想通过键盘输入,使得al的值为12,a2的值为34,CI的值为字符a,c2的值为字符b,程序运行后的输出结果是:12,a,34,bo则正确的输入格式是(以下一代表空格,代表回车)()oA)12 - a34_b<CR>C)l2.a,34.b<CR>B)12-34_b<CR>D)12a34b<CR>参考解析:在输入多个数据时,若格式控制串中无非格式字符,则认为所有输人的字符均为有效字符。所以应按选项D的顺序输入数据。25单选题以下不构成无限循环的语句或语句组是()<,A. n=0:do+n;whiIe(n<=0);B. n=0;while(l)n+;)C. n=10;while(n);n一;D. for(n=0,i=l;i+)n+=i;参考答案:A参考解析:选项A中d。后面的语句只执行了一次便结束了循环;B选项中条件WhiIe(I)永远成立,所以是死循环;C选项中n的值为10,而循环体为空语句,所以WiIiIe(n)永远为真,进入死循环;D选项中for语句第二个表达式为空,所以没有判别条件,进入死循环。26单选题若a是数值类型,则逻辑表达式色=1)|匕!=1)的值是()oA.1B.0C.2D.不知道a的值,不能确定参考答案:A参考解析:逻辑或“II”要求只要两边的运算对象有一个非零,结果就为真。虽然不知道a的值,但是若a为1,则左边运算对象为1;若a的值不是1,则右边运算对象的值为1,所以总能保证一边非零,所以结果为真,即1。27单选题有以下程序:#include<Stdo.h>ntf(inin);main()Iinia3,s;Bzf(a);s=a+f(a);printf("%dnM,s);IInlf(inin)Istaticinta=I;n÷za÷returnn;I程序运行后的输出结果是()oA. 9B. 8C. 7D. 10参考答案:A参考解析:题目中静态局部变量a,在静态存储区内分配存储单元,在程序整个运行期间都不释放。所以第一次调用函数执行n+=a+;时a先与n相加在再进行自增。n的值为4,a的值为2,且a变量执行完后空间没有释放。再执行s=s+f28单选题程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、p、q均已正确定义,并用于指向链表结点,指针变量S总是作为指针指向链表的第一个结点。datanext若有以下程序段:q=n;s三->next;=s;while(p->next)P=P->next;p->nexl三q;q->next®NULL;该程序段实现的功能是()oA.删除尾结点B.尾结点成为首结点C.删除首结点D.首结点成为尾结点参考答案:D参考解析:本题考查链表的操作,本题中首先是S指向了它的下个结点,题目中说明了S总是指向链表的第一个结点,然后WhiIe循环找到链表的最后一个元素,然后最后一个元素指向了之前链表的头结点,之前头结点指向了空结点,所以本题实现的功能是使首结点成为尾结点。选项D正确。29单选题有以下程序(说明:字母A的ASCII码值是65):"include<stdio.h>VOidfUn(Char»)Iwhile(*)1 if(*s%2)Printf("%c".§);main()chara()BYTE";fun();printf(*n*);I程序运行后的输出结果是()。A. BTB. YEC. YTD. BY参考答案:B参考解析:本题中执行fun(a)时,会取字符串a的第一个字母B,因为字母B的ASCIl码值为66,所以不会输出字母8,函数只会输出ASCll码值为奇数的字母,字母Y的ASCII码值为89,字母T的ASCIl码值为84,字母E的ASell码值为69。因此B选项正确。30单选题下列选项中不属于结构化程序设计原则的是()。A.可封装B.自顶向下C.模块化D.逐步求精参考答案:A参考解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择Ao31单选题某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是()oA. 10B.8C.6D.4参考答案:C参考解析:根据二叉树的基本性质3:在任意一棵二叉树中,度为O的叶子结点总是比度为2的结点多一个,所以本题中是5+1=6个。32单选题有以下程序:VindtMie<Mdio.h>main()IInIij;for(i=I;i<4;i÷+)Ifor(j三i;j<4;j)printf(w%<l%d=%d",itjtij);printf(',n*);IJ程序运行后的输出结果是()oA.1*1=11*2=21*3=32*2:42*3=63*3=9B. 1*1=11*2=21*3=32*1=22*2=43*1=3C. 1*1=1.1*2=22*2=41*3=32*3=63*3=9D. 1*1=12*1=22*2=43*1=33*2=63*3=9参考答案:A参考解析:外循环第一次i的值为1,内循环第一次j的初值为1,打印1*1=1;内循环第二次j的值为2,打印1+2=2;内循环第三次j的值为3,打印1*3=3,打印回车换行,退出内循环。外循环第二次i的值为2,内循环第一次j的初值为2,打印2*2=4;内循环第二次j的值为3,打印2*3:6,打印回车换行.退出内循环。外循环第三次i的值为3,内循环第一次j的初值为3.打印3*3=9,打印回车换行,退出内循环。33单选题以下关于宏的叙述中正确的是()。A.宏替换没有数据类型限制B.宏定义必须位于源程序中所有语句之前C.宏名必须用大写字母表示D.宏调用比函数调用耗费时间参考答案:A参考解析:宏定义写在函数的花括号外边,作用域为其后的程序,通常在文件的最开头,所以B选项中宏定义必须位于源程序中所有语句之前是错误的:宏名一般用大写.但不是必须用大写,所以C选项错误。宏展开不占运行时间,只占编译时间,函数调用占运行时间(分配内存、保留现场、值传递、返回值),所以D选项错误。34单选题有以下程序:Wincluck<tdio.h>include<Mnng.h>main()!charp20三V,V.'c,.,d,.<J11"bc".r="abcd;Mrral(pvr);*lrcpy(p*rtrlen(q).q)jprintf("%dn*,Sirkn(P);I程序运行后的输出结果是()oA.11C.6D.7参考答案:C参考解析:StrePy:字符串拷贝函数;StrIem求字符串长度函数(注意:不包含字符串结束标识符0')JStrcat:字符串连接函数。执行完语句StrCat(p,r);后,P数组中存储的元素为a,b,c,d,a,b,c,d,e;执行语句StrCPy(P+strIen(q),q);得到的结果是将q所指向的字符串拷贝至p+strlen(q)开始的存储位置,因为Strlen的值为3,即从p+3开始存储q中的元素。所以执行完StrePy(P+strhn(q),q)语句后,字符数组p20的存储元素为ab,e,a,b,c;所以Strlen(P)的结果为6。因此C选项正确。35单选题支持子程序调用的数据结构是()。A.栈B.树C.队列D.二叉树参考答案:A参考解析:栈支持子程序调用。栈是一种只能在一端进行插入或删除的线性表,在主程序调用子函数时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行,这种调用符合栈的特点,因此本题的答案为A。36单选题有以下程序:#include<stdio.h>main()Iinti«5;do、if(i%3=1)if(i%5=2)Iprintf(',%d",i);break;i;whi(i!0):Printf(W程序运行后的输出结果是()。A. *2*6B. *3*5C. *5D. *7参考答案:D参考解析:d.while语句是先执行后判断,所以第一次先执行循环体,判断i%3=l的条件,由于i为5,所以余数为2.条件不成立,执行i+,i的值为6,判断WhiIe条件为真;第二次执行循环体,同第一次循环的执行过程一样,i的值变为7,判断While条件为真;第三次执行循环体,此时i%3=l,条件成立,再判断i%5=2也成立,打印t与i的值,KP*7,然后执行break语句,跳出循环。所以选择D选项。37单选题有以下程序:*inclde<MdiQ.h>ma>n()FlLEpf;charsi="China*.s2=mBeijing,;pf=fopen(Mak.datH.,¼b÷");fwrilc(s2,7.l.pf);Zind(PO;/文件位置指针回到文件开头/fwrie(l.$,!,pf);fcI<Me(pf);以上程序执行后abc.dat文件的内容是()。A.ChinaB.ChinangC.ChinaBeijingD.BeijingChina参考答案:B参考解析:本题考查文件操作函数,fwrite和rewind函数,题目中先是将a2字符串写入adc.dat中,然后将写指针回到文件开头,然后写入SI字符串,那么Sl字符串就将前5个字符覆盖,所以最终结果为Chinang,选项B正确。38单选题软件详细设计生产的图如右图:该图是().A. N-S图B. PAD图C.程序流程图D.E-R图参考答案:C参考解析:N-S图提出了用方框图来代替传统的程序流程图,所以A不对。PAD图是问题分析图,它是继承程序流程图和方框图之后提出的又一种主要用于描述软件详细设计的图形表示工具,所以B不对。E-R图是数据库中的用于表示E-R模型的图示工具,所以D不对。根据图中所示表示方法是进行软件详细设计时使用的程序流程图。39单选题将E-R图转换为关系模式时,实体和联系都可以表示为()。A.属性B.键C.关系D.域参考答案:C参考解析:从E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,ER图中属性也可以转换成关系的属性。记40单选题设有定义:structcomplexintreal,unreal;datal=l,8,data2;则以下赋值语句中错误的是()。A.data2=(2,6);B.data2-datal;C.data2.real=datal.real;D.data2.real=datal.unreal;参考答案:A参考解析:A选项中可以在声明变量的同事为Clata2赋值,但是data2=(2,6);应写作data2=2,6。所以选择A。二、程序填空题(共18分)41填空题下列给定程序中,函数fun的功能是:求SS所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指的变量中。SS所指字符串数组中共有M个字符串,且串长小于N。请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。注意:部分源程序在文件BLANKl.C中。不得增行或删行,也不得更改程序的结构!*indutle<stdi.h>Wincludr<string,h>WdrfinrM5IMrfin<N20itfun(char(j*)Ntini*n)Iinti,k0,Ien三N;/*foundfor(i三0;i<Jj;i÷+)Ien三strlcn(ss(i);if(i三=0)n=Ien;/«»found/if(Ien21n)n=Im;*foundreturn(3);main()charsMN"shanghai"."guangh<Hj",beijinp","tianjin"t"rh«»ngqinnH;prin(f("nThrCnlEigl*tnng>arr;n,1);or(i=0:i<M;i)pul*(*>.);k=fun(M.&n):pnntf("nThrIrngthof*h<>11e纨ringis:rk<n".n):pntf("nThrrhcrtEstringi»:7n”.ss:k:);参考解析:【参考答案】(DM(2)<【考点分析】本题考查:for循环语句的循环条件;if语句条件表达式;return语句完成函数值的返回。【解题思路】填空1:题目指出SS所指字符串数组中共有M个字符串,所以for循环语句循环条件是i填空2:要求求长度最短的字符串,+n中存放的是已知字符串中长度最短的字符串的长度,这里将当前字符串长度与*n比较,若小于*n,则将该长度值赋给*n,因此if语句的条件表达式为len<*no填空3:将最短字符串的行下标作为函数值返回,变量k储存行下标的值。三、程序修改题(共18分)42简答题下列给定程序中函数fun的功能是:将tt所指字符串中的小写字母全部改为对应的大写字母,其他字符不变。例如,若输入“Ab,cD",则输出“AB,CD”。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODILC中,不得增行或删行,也不得更改程序的结构!Winciudr<xldio.h>*inrlud<*<Wring,h>charfu(char«)Iinti;<br(i0;(tisi÷)(OUcd»if(V<=ti)H(ti<三H)foundli÷三32jrrtum(tt):main()charH:813prinlf(,*nP1easrcnlrraHiring:);gete(It);nnlf("nThrreullstringis:n%s,*,fun(U);参考解析:【参考答案】(l)f(«<>=')4(Mij<=V)UF-=32;【考点分析】本题考查:if语句条件表达式;小写字母转大写字母的方法。【解题思路】(1)分析本题可知,要判断字符是否为小写字母,即判断其是否在aZ之间,所以这里需要进行连续的比较,用(2)从ASCn码表中可以看出,小写字母的ASeH码值比对应大写字母的ASCn值大32o将字符串中的小写字母改为大写字母的方法是:从字符串第一个字符开始,根据ASeIl码值判断该字母是不是小写字母,若是,则ASCII码值减32即可。四、程序设计题(共24分)43简答题编写函数fun,其功能是:实现两个字符串的连接(不要使用库函数StrCat),即把P2所指的字符串连接到PI所指的字符串的后面。例如,分别输入下面两个字符串:FirstStringSecondString程序运行后的输出结果是:.FirstStringSecondString注意:部分源程序在文件PROGl.C中。.请勿改动主函数main和其他函数中的任何内容,仅在函数Iun的花括号中填人你编写的若干语句。Mnclude<stdio.h>voidfun(charpl«charp2)main()Icharsl80ts24O;voidNONO();printf("Entersiands2:n");scanf(*%s%s",»1.a2);Printf("si=%sn'*vsi);printf("82=%5n-.a2);rintf("Invokefun(si.2):n");fun(§1,s2);printf(,Afterinvoking:n");printf(H%sn".si);NONO();voidNONO()本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件C*/intisHLE*rf.wf;charsi80j,s240;rf=fopen(,in.datotwr");wf三fopen("out.dat*,mw");for(i三0;i<10;i)Ifscanf(rf,"sm,si);fecanf(rf,"%*.2);fun(sl.s2);fprintf(wf,'%8n"t»1)jIfclose(rf);fclose(wf);参考解析:【参考答案】voidfun(charpl,charp2)Inti.jtor(i«0;pli!三):for(j0jp2j!三,0,jj+)pli÷=p2jjpi(i三,VO;【考点分析】本题考查:不使用字符串函数实现字符串连接操作。通过for循环语句来完成,不要忘了最后需要加上字符串结束标识0,o【解题思路】本题用两个循环完成操作,第1个循环的作用是求出第1个字符串的长度。印将i指到第1个字符串的末尾。第2个循环的作用是将第2个字符串的字符连连第1个字符串的末尾。最后在第1个字符串的结尾加上字符串结束标识'0,o

    注意事项

    本文(计算机二级C语言考试考前模拟试题.docx)为本站会员(李司机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开