《(ITAT第七届全国信息技术应用水平大赛)C语言程序设计预.docx》由会员分享,可在线阅读,更多相关《(ITAT第七届全国信息技术应用水平大赛)C语言程序设计预.docx(45页珍藏版)》请在课桌文档上搜索。
1、第七届全国信息技术应用水平大赛预赛试题C语言程序设计一、单第选界题(60S.1分j1.共60分)、以下选项中,叙述不正确的选项是.【答案】B【分数】1分【选项】A、用IyZdef可以定义各种类型名,但不能定义变量B、typedef和#define都是在程序预编译时处理的C,JIJtyedef只是将己存在的类型用一个新的标识符来代表D、使用Cypedef有利于程序的通用和移植2、若有如下定义:inta-2.*p;f1.oatx=1.,y=2:charc=,w:则以下用法不正确的选项是.【答案】B【分数】1分【选项】A、printf(%c*,e+a);B. p-ix;C. a*=y+x;D. x=
2、y=e;3、以下5个符号中中,属于。语言合法标识符的共计()个,_1_2_3a-b-cf1.oat9cda3b1.【答案】B【分数】1分【选A、1B,2C.3D、44jintx=20;print!(*%dn*,x);以上程序段运行后的输出结果是)。【答案】B【分数】1分【选项】A、235B、-21C、-20D、-II5,若有定义:inta=7;f1.oatx=2.5.尸儿7:则表达式xW%3*(int)(xdy)%24的值(结果保存两位小数)是().【答案】A【分数】1分【选项】A、2.50Bh2.75C,3.500、0.00、若有如下程序:voids(char*m.intn)*三=r3jn=
3、n+3:printf(,%c,c,=*m,n);)voidnain()charp=b,q=B;s(4q.p):printf(-%c,%cr,p,q):)则程序运行后的怆出结果是.【答案】A【分数】1分选A、E,e,b,EB、e,E,b,FC、E,e,e,ED、e,E,b,E7、泉上有a、b、c、d、e五个黑白球,a=。表示白球,a=1.衣示黑球,其他球同样定义。期以下能去示a是黑球.其余至少有三个白球的表达式是().【答案】C【分数】1分【选项】A-2C、 a&kb*c+d+e)、!(b+c+d+e)=38、C语古中运算对象必须是整型的运算符是().【答案】C【分数】1分【选项】A、/B、+C
4、.%D、!=9、以下程序的输出结果是().Uinc1.udemain(inti,j=4:for(i=J:i=2*j;“+)switch(ij)case0:case1:printf(*):break:case2:printfyftS!(z=w)printf(%dn*,(wx?w:zx?w:zy?z:x):)【答案】A【分数】1分【选项】A、1B、2C、3D、4HJ、关于C语言形舂与实多,以下说法正确的选Jji是().【答案】A【分数】1分【选项】A、实参和与其对应的形卷各占用独立的存储单元B、实卷和与其对应的形咨共占用同一个存储单元C、只有当实参和与其时应的形参同名时才共占用同一个存储单元D、形
5、参是虚拟的,从不占用存储单元12,以下宏定义中,不会引起二义性的共计()个(I)SdefinePOWER(X)x*xSdcfincPOWER()()()(3) SdefinePoWER(X)(x*x)(4) WefinePOTER(x)(x)*(x)【答窠】A【分数】1分【选项】A. 1B、213,以下程序的怆出结果是()maininti,j,x=0;for(i=0:i2:i+)(X+;forj=0:j3:j+)if(j%2)continue:x+;X+:)printf(*-x=%dn*,x);)【答案】C【分数】1分【选项】A、x=4B、X=6C,X=8D、x=1214,有以下说明;inta
6、=8,1.,2,5,0,4,7,6.3.9):那么a*(a+a3的位为scx);1)、scanf(*%d*.p-age);16,以下程序运行后的输出结果是().inc1.udestructNODEintnum;structNODE*next;);main()(structNODE*p,*q,;P=(structNODE*)ma11oc(sizeof(struetNODE);q-(structNODE*)ma11oc(sizeof(struetNODE);r=(structM)DF)ma11oc(sizeof(struetNODB);p-nua-10:q-num-2O;rnum-3O:p-nex
7、t=q:q-next=r;printf(%dn”,p-nu三+q-ncxt-nu);)【答案】D【分数】1分选A、IOB. 20C、30D、40117,当a=2,b=3,c-bd=5时,执行下面一段程序后X的伯为(Kif(ad)x=1.:e1.seif(c)if(b0)k+;Printf(%n.k);则该程序段的恤出结果为().【答案】D【分数】1分【选项】A、-1B、 -127C、 -128D、O19 s若有以下定义:i11tx43=(1.,2,3,4,5,6,7.8,9,10.11,12)jint(*p)3=x:则能够正确表示数组元素U21.的表达式是().【答案】C【分数】1分【选项】A
8、、 *(*p2)1.)B、 (p*2)+1.C、 *(*p+7)D、 *(*p+2)+1.20,以下程序运行后的输出结果是().#inc1.udcvoidfun(int*p)inta=10;p-ia:+a;)voidaain)inta=5:fun(ia):printf(dn*,a):【分数】1分【选项】A、5B、6C、10D、1121、以下程序运行后的输出结果是()。Sinc1.ude,stdio.h*intsub(int*t,intn)(int*p1.,*p2;for(p1.=t,p2=t;p!-tn;p1.+)if(*p1.2)p2=p1.;return(*p2);)voidaain()(
9、inta9=9,36,19,39,26,5,6,33,15);printf(*%dn*,sub(a,9):)【答案】A【分数】1分【选项】A、5B、9C、15D、3922、下而程序的运行结果是.Kinc1.udeinc1.udefun(charw,inin)(charI:ints1.,s2;s1.=0s2=n-1.:whi1.e(s1.三2=t;)mainO(charp=1231567-:fun(p,(p):puts(p):)(答案】C【分数】I分选A、B、C、D、23、C谙有规定函数返回值的类型中().【答案】A【分数】1分【选项】A、在定义时所指定的函数类型所决定B、调用该函数时的主调函数
10、类型所决定C、return语句中的友达式类型所决定D、调用该函数时系统临时决定24,有以下程序段:Sinc1.udemain()(inti=1.,sum=0,n;SCanfcr:do(i+=2;sum+=i:)whi1.e(i!-11):printf(-i,sum):)若使程序的输出值为15,则应该从硬盘输入的n的值是()【答案】D【分数】1分【选项】,1B、3C、5D、725,以下程序的运行结果是).voidnain()chara(=*ovio*,b10=*novie*;printf(*%d%dn*.sizeof(八),sizeof(b);)【答C【分数】I分选A、55B,66C,610D、
11、61226,以下程序的怆出结果是).Sinc1.udevoidnain()(unsignedchara,b:a-xa!3:b=0x0aft3;PrinIfrsd%dr,a,b);)【答案】B【分数】1分【选项】A、2118. 112C、713D、13727、以下选项中,能定义S为合法的结构体变收的是(.【答案】C【分数】I分【选项】卜、tpedefstructabcdoub1.ea;charb10:)s;B、structABCdoub1.e;charb1.;)ABCs;C.structabc(doub1.ea;charb10):)s;D、typedefABC(doub1.ea;charb10:
12、)ABCs:28J,以下程序的输出结果是mai11O(inta=0,j;for(j=0j.inc1.ude*stdio.hvoidainintk,f1.ag=,n:f1.oats=0:scanf(*%d*,&n);for(k=1.:k该函数的返但1值为.【答案】B【分数】1分选A、不确定值B、参数D中存放的地址值C、一个临时存储单元的地址优)、形卷D自身的地址值31、以下程序运行后的输出结果是().main()(inta,b;a=50:b=90:printf(*-%dn,(a,b):)【答案】A【分数】I分选A、908、 5090C、50D、10032、inix=-20:printf(*,dn
13、,1x):以上程序段的输出结果毡).【答案】A【分数】1分【选项】A、19B、20C、21D、-133,若以下程序所生成的可执行文件名为,当输入命令行:FI1.E1.CHINABEIJINGSHANGHAI,执行该程序时,程序的输出结果是().main(intargc,char*argv)(whi1.eargc-1)+argv;printfCr%s,*argv);)【答案】A【分数】1分【选A. CHINABEIJINGSHANGHA1.B. FI1.E1.CHINABEIJINGC. CBSD、FCB3川、以下程序运行后的输出结果是(),fun(inta,intb)Iif(ab)return
14、(b):e1.sereturn(八):)mainOintx=3,y=8,z=6,r;r=fun(fun(x,y),2*z);printf(*dn*,r);)【答案】A【分数】1分【选项】A.3B、6C、8D、1235,有如下程序,1.ongf(intn)(if(n2)return(f(n-2)4f(n3);e1.seif(n=2)return(2):e1.sereturn(1):main()(printf(*dn*,f(6):该程序的输出结果是(.【答案】C【分数】1分【选项】A、3B、4C、5D、636、在C程序中有如下语句:char*func(intx,iniy);以下说法正确的选项是(【
15、答案】C【分数】1分选A、该语句表示对函数Iunc的定义B、该语句表示对函数func的调用C.该谱句表示对函数func的原型说明IX该语句是不合法的37、以下程序的输出结果是().einc1.udemiin()(intw4=8,20,*p;P+:printf(*%dn*,*(p);【答案】A【分数】1分【选项】A、OB、8C、20D、不定38,以下程序段中,不能正确赋字符用编释时系统会提示错误)的是()。【答案】C【分数】1分【选项】A、chars10=*abcdefg*;B、chart=abcdcf,*s=t;C.chars10js-*abcdefg,;D、chars10;strcpy(s,
16、*abcdefg*);39、以下程序将输出的字符是(),einc1.udestdio.hmaincharc;char(*p)3:charS=(4a,tb,tc,d,4e,4f,);p=is0;c=*(p1.+1.);printf(,%c-,c):【答案】C【分数】1分【选项】A、bB、dC、eD、f40 s以下程序的输出结果是)。Sinc1.udeInain0structst(intx;inty;)cnum2=n,3,2,7;printf(-dn,cnun0.ycnum01.x*cnu111.x):)【答案】D【分数】1分【选项】A、0B,IC、3D、641 .若a是整型变量,则表达式(a-a
17、)等价于()。【答案】B【分数】1分【选A,aB、0C,112、在C语言中,有关除含存储类别的说法,正确的选项是).【答案】C【分数】I分【选项】A、函数的吃含存储类别是aut。Ik函数的隐含存储类别是StatiCC、函数的除含存储类别是externD、函数没有想含存储类别43,以卜函Sffun()是求两个正整数的斑大公约数,其中下划线处应地人的正确语句是intfun(m.n)intm,n;Iintr;if(三n)r=m:m=n:n=r;if(n-O)return(m):dor=11ffin:if(r!=0)m=n;n=r:whiIe();return(n):)【答案】A【分数】1分【选项】A
18、、 r!=0B、 r=0C、 n!=0D、 n=044,若圜用fputc函数给出字符成功,则其返回值是().【答案】D【分数】1分【选项】A,EOFB. 0C. 1D、怆出的字符45,在32位PC机上使用C语言时,若有以下定义:uniondata(intI;charch;doub1.ef;b:则共用体变量b占用内存的字节数是().【答案】C【分数】1分选A、2B, 4C, 8D、1246,语句Printf(%dn”,str1.en(4xyztxab3x67);的蝌出结果是(),【答案】B【分数】1分【选项】A、7B、S47,以下用于Printf函数的控制字符常量中,代表退格的是().【答案】A
19、【分数】1分【选项】A、bB, ,t,C, ,r,D、n18J、以下是关于枚举的程序,其运行结果是()。IJinc1.ude*-stdio.Imain()enuBweekdaysun,mon,tue=5,wed,thu,fri,sat卜a.b,c1d:a=sun;b=raon;c=tue;d=wcd;printf(*dd%d%dn*,a,b,c,d):)【答案】C【分数】1分【选项】,0050B、 1254C、 0156D、 015349,以下是关于文件读写操作的程序,其屏幕输出是().inc1.udevoidnain()i,a(4=1.,2,3,4,b;fp=fopen(*data.dat*
20、,wb):for(i=0;i4:i+)fwrite(&a(i,sizeof次.mainO(inti=0,j=14,k=2.s=O:for(;)(i+=k:if(ij)(Drintf(飞d”,s);break;s+=i;)【答案】C【分数】1分选A、6B、7C、8D952s若执行f。PCn函数时发生错误,则脸数的返回值是(【答案】D【分数】1分【选项】A、地址伯B.OC、1D、EOF53,有以下程序;mainOcharstr8=*1.1.e1.1.o*,*Beijing*!,*p=str;printf(-%sn*,p+4);该程序运行后的隘出结果是.【答案】C【分数】1分选A,He1.1.oB、
21、BeijingC,oD、OBeijing54、以下函数调用语句中含有)个参数.func(f1.,f2),(f2,f3),(f5,f6,f7),f8)【答案】A【分&1分选A、3B、5C.6D、755,以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序:voidsort(inta),intn)Iinti,j,t;fori=0;in-1.;i+)for(j=i*1.jnj+)if(aiaj)t=ai;ai=aj:aj=t;)main()intaa10=1.,2,3,4,5,6,7,8,9,10),i:sort(&aa2.5):for(i=0;i10;i+)printf(*%d,*,a
22、ni):printf(*,n*):)该程序运行后的输出结果是.【答案】B【分数】1分【选项】,1.2.3.4.5.6,7.8.9.10.B、1.2,7,6,5,4,3,8.9,10.C、12109,876543,D、10.9.8.7.6.5.4.3.2.1.56X以下程序的运行结果是()。mai11()chararr2j-1;strcpy(arr,*he1.1.o);strcpy(arr1.,ABC):printf(*%sn*,arr):【答案】C【分数】1分【选项】A、hoiIoABCB、 he1.1.C、 heI1.ABCD、attr57、程序中对fun函数有如下说明:ini*fun():
23、下面说法正确的选项是().【答案】D【分数】1分【选A, fun函数是整型函数B、指针fun指向一个函数,该函数返回整型数据C、fun函数的返值是整型数据D、fun函数的返回值是指向整型数据的指针类型58,以下程序的怆出结果是).mainO(intk=,1,m=5,n=7;int*pk=Ak,*p;*(p-in)-*pk*(*pn+):printf(-%dn*,1n):)【答案】C【分&1分选A、20B、21C.25D、3059,以下函数的怆出结果是).SdefineP3SdefineF(X)(P*x*x)mai11()Iprintf(*,%dn*,(3+5):【答案】B【分数】1分【选项】A
24、、192B、29C,25D、编译出播160,以下程序的输出结果是)。inc1.udeSinc1.udevoid三ain)(charp1.20=*abcd*,p220=*ABCD*;charstr50=*xyz*;Strcpy(str+2,strcat(p1.*2.p2*1.):printf(,%sn*,1str);)【答案】D【分&1分选A、XyabCABB, abcBzC, AbabczD, XyCdBcD二、多次选界JH(20f1.,2分/,共40分)“、若有以下定义和语句;intw23,(*p)3:pw=w;则对W数组元素的正确引用有().【答案】ABD【分数】2分【选项】As*(w0+
25、2)B、 pv0OjC、 *pw2D、 *(pr1.2)、设有如下定义:char*s2=(abed.ABCD):char*p=s:则以下说法正确的有().【答案】ACD【分数】2分【选项】a、S数组元素的伯分别是akd和FBar两个字符序的首地址B、 S故组的两个元素分别存放的是含有四个字符的一维字符数纲中的元崇C、P是指向指针数据的指针变量D、P中存放的是数组S的首地址3,设有说明intk=7,x=12;则以下语句执行后,X值为O的有(.【答案】AC【分数】2分【选项】Asx%=(k%5):C、 x%=(k-k5):D、 x%=k-k5;E、 x=(x*=k)-(k%=5):、有定义Stat
26、iCintb5,a23=1,2,3,4,5,6):则以下说法正确的有(【答案】ADA、b中元素伯为OB、b中元素没有定义,值不确定C,a1.1.=4D、a1.1.=5、函数调用时,以下说法中正确的有.【答案】BCD【分数】2分【选项】A、若用值传递方式,则形式参数不予分配内存B、实际参数和形式参数可以同名C、主调函数和被调用函数可以不在同一个文件中D、函数间传递数据可以使用全局变加、以下说法中正确的有()。【答案】AD【分数】2分选A、递归函数的形参是自动变量B、有些递归函数是不能用非递归算法来实现的C、C谙=不允许这样的函数调用:函数A谓用了函数B,而函数B乂调用了函数AD、C语言不允许函数
27、的嵌套定义7,设有如下代码:structstr(intno:charMamo;)node;charbuf100:以下代码能为no加变尿输入伯的有(),【答案】CD【分数】2分【选项】A、scant(*ds*,node,no,node,name);B、SCanf(飞d&s,Anode,no,inode,name);Csscanf(*ds*,&node.no.buf):node,name=newchar(strIen(buf)1.);Strcpy(node,name,buf):D、scanf(*ds*,ftnode.no.buf);node,name=(char*)ma1.1.oc(str1.en
28、(buf)1.):Strcpy(node,name,buf):、以下关于枚举类型的用法中,正确的有).【答案】BC【分数】2分【选项】Asenuna1.2.3):B、en三aJa.I).c);C、cnu三aa,b.c)d:D、enuaaa.b,ca;9有定义,structintno;charnane20:)a,bc;则以下语句合法的有(。【答案】ACD分数】2分【选项】A、a=b;B、 a-ib:C、 c=&b:D、 *c=b10,以下关于结构类型变业的定义正确的彳:()。【答案】CD【分数】2分【选项】A、 structdat(intnum;f1.oatprice;&book;B、 stru
29、ctdataintnum;f1.oatprice;bok;bookb;C、 structdata!intnum:f1.oatprice;book;structdatad-book;D、 typedefstructdataintnum:f1.oatprice:bk;bookb;11 .设有结构类型:typedefStrUCtstr(intno;charna三e20;)STR;另有变量定义rSTRa20.x;以下语句希里实现“向与文件指针变版fp关联的文件输出一个结构伯恩”,正确的有).【答案】ABC【分数】2分【选1A、fwrito(a,Sizeof(STR),1,fp);B、fwrite(4a
30、2,sizeof(STR),1,fp);C、frrite(4x,sizeof(STR),I,fp):D、fwritc(x,sizcof(STR),I1fp);12,以下对C语言中共用体类型数据的叙述正确的有(【答案】BC【分数】2分【选mA、可以对共用体变曲名直接赋值B、不能在定义共用体类型变量时对它初始化C、一个共用体变量中不能同时存放其所有成员D、共用体类型定义中不能出现转构体类型的成员13,关于以下运算,说法正确的有().【答案】BI)【分数】2分【选项】A、设有宏定义FdefineF(N)2*V,则去达式F(2+3)的伯是10B、设inix=4;则执行语句x+=x*三x+1.;后,X的
31、值为40C,iftinta.b=8:执行a=b(b)7(八):(b)C、 SdefineADD(,b)(a*b)D、SdefineRWS(X)(X)+7)/8)*8)15,若在程序中用到putcharO、Str1.en0。StrtOUPPero.函数,则以下说法正确的有).【答案】AcD【分数】2分【选项】A、使用PUtCharo需要包含头文件stdio.hB,使用PUtCharo需要包含头文件std1.ib.hC、使用SupperO需要包含头文件ctype.hD、使用SIr1.CnO需要包含头文件飞Uint.IT16J,以下定义不合法的有().【答案】ABC【分数】2分【选项】A、chars
32、-*string;inta5=0.1,2,3,4,51;Cchars5=*string*;D、chara-(0,1.2,3,4,5):17x有以卜定义:chara10,*b=a;则能给a数如输入字符串的语句有.【答案】ACD【分数】2分【选,gets(八):B,gets(nO):C、gets(Sa1.Oj):D、gets(b);118,下面程序中存在错误的有()(每行程序前面的数字去示行号)。1 main。2 13 f1.oata10=(0.01.:4inti;5for(i=0;i3:i+)scanf1.,a1.);6for(i=0;i*,a0);8)【答案】BC【分数】2分选A、第3行B、笫5行C、第6行D、第7行19,关于以下程序的场人与愉出,说法正确的有().Rinc1.udevoidaain:scant-,%d,;whi1.e!=n)whi1.e(mn)m-n;whi1.em)n-=m;printf(=dt,m):【答案】CD【分数】2分【选项】A、输入mn时,程序将输出IB、输入mn时,程序怆出n的值D、输入m或n为。时,程序将陷入死循环20,以下叙述正确的有.答案ABC【分数】2分【选项】As在不同的函数中可以使用相同名字的变ftB、函数中的形式参数是局部变fitC、在,个函数内定义的受业只在本函数莅国内有效D、在一个函数内的双合语句中定义的变片在本函数范恸内有效