(ITAT第七届全国信息技术应用水平大赛)C语言程序设计预.docx
第七届全国信息技术应用水平大赛预赛试题C语言程序设计一、单第选界题(60S.1分j1.共60分)、以下选项中,叙述不正确的选项是<>.【答案】B【分数】1分【选项】A、用IyZdef可以定义各种类型名,但不能定义变量B、typedef和#define都是在程序预编译时处理的C,JIJty>edef只是将己存在的类型用一个新的标识符来代表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=y=e;3、以下5个符号中中,属于。语言合法标识符的共计()个,_1_2_3a-b-cf1.oat9cda3b1.【答案】B【分数】1分【选«A、1B,2C.3D、44j»intx=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=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-<b+c÷d+e)=1.B、 aSi(b*c+d+e)>2C、 a&kb*c+d+e)<=1>、!(b+c+d+e)=38、C语古中运算对象必须是整型的运算符是().【答案】C【分数】1分【选项】A、/B、+C.%D、!=9、以下程序的输出结果是().Uinc1.ude<stdio.h>main(inti,j=4:for(i=J:i<=2*j;“+)switch(ij)case0:case1:printf(*):break:case2:printf<*"):break;)【答案】D【分数】1分【选项】A、卡却B.*和CxD、*«10,以下程序的输出结果是(),main()intw=4,x=3,y=2,z=1.:if(x>yftS!(z=w)printf(%dn*,(w<x?w:z<y?z:x);e1.seprintf(*%dn*,(w>x?w:z>y?z:x)>:)【答案】A【分数】1分【选项】A、1B、2C、3D、4HJ、关于C语言形舂与实多,以下说法正确的选Jji是().【答案】A【分数】1分【选项】A、实参和与其对应的形卷各占用独立的存储单元B、实卷和与其对应的形咨共占用同一个存储单元C、只有当实参和与其时应的形参同名时才共占用同一个存储单元D、形参是虚拟的,从不占用存储单元12,以下宏定义中,不会引起二义性的共计()个(I)SdefinePOWER(X)x*xSdcfincPOWER()()()(3) SdefinePoWER(X)(x*x)(4) WefinePOTER(x)(x)*(x)【答窠】A【分数】1分【选项】A. 1B、213,以下程序的怆出结果是()main()inti,j,x=0;for(i=0:i<2:i+)(X+;for<j=0:j<3:j+)if(j%2)continue:x+;X+:)printf(*-x=%dn*,x);)【答案】C【分数】1分【选项】A、x=4B、X=6C,X=8D、x=1214,有以下说明;inta=8,1.,2,5,0,4,7,6.3.9):那么a*(a+a3的位为<).【答案】A【分数】1分【选项】A、OC、5I)、715,有定义如下,structpupi1.!charna三e20;intage;intsex;pup5,;P=Pup;以下SCanf函数调用语句中,对结构体变小成员的引用不正确的选项是)。【答案】D【分数】1分【选项】A、scant'(*%s*.pupO.name);B、scanfC,%d*tpuO.age);Cmscanf(*d*1.(->scx);1)、scanf(*%d*.p->age);16,以下程序运行后的输出结果是().inc1.ude<stdio.h>structNODEintnum;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;r>num-3O:p->next=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(a<b)if(c>d)x=1.:e1.seif(>c)if(b<d)x=2:e1.sex=3;e1.sex=4;e1.sex=5;【答案】C【分数】I分选A、 2B、3Cx4D、518,设有程序段unsignedchark:Whi1.e(k>0)k:Printf%dn".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、 *(*p÷2)1.)B、 (p*2)+1.C、 *(*p+7)D、 *(*p+2)+1.20,以下程序运行后的输出结果是().#inc1.udc<stdio.h>voidfun(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!-t<n;p1.+)if(*p1.<*>2)p2=p1.;return(*p2);)voidaain()(inta9=9,36,19,39,26,5,6,33,15);printf(*%dn*,sub(a,9):)【答案】A【分数】1分【选项】A、5B、9C、15D、3922、下而程序的运行结果是<>.Kinc1.ude<stdio.h>inc1.ude<string.h>fun(char«w,inin)(charI:ints1.,s2;s1.=0s2=n-1.:whi1.e(s1.<s2)(t=ws1.+d:ws1.=ws2->三2=t;)mainO(charp="1231567-:fun(p,(p):puts(p):)(答案】C【分数】I分选A、B、C、D、23、C谙有规定函数返回值的类型中().【答案】A【分数】1分【选项】A、在定义时所指定的函数类型所决定B、调用该函数时的主调函数类型所决定C、return语句中的友达式类型所决定D、调用该函数时系统临时决定24,有以下程序段:Sinc1.ude<stdio.h>main()(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、61226,以下程序的怆出结果是<).Sinc1.ude<stdio.h>voidnain()(unsignedchara,b:a-xa!3:b=0x0aft3;PrinIfrsd%dr,a,b);)【答案】B【分数】1分【选项】A、2118. 112C、713D、13727、以下选项中,能定义S为合法的结构体变收的是(>.【答案】C【分数】I分【选项】卜、t>pedefstructabcdoub1.ea;charb10:)s;B、structABCdoub1.e;charb1.;)ABCs;C<.structabc(doub1.ea;charb10):)s;D、typedefABC(doub1.ea;charb10:)ABCs:28J,以下程序的输出结果是<mai11O(inta=0,j;for(j=0j<4J+)switch(j)(CaSe0:case3:a+=2;case1:case2:a'=3;defau1.t:a+=5:)