您好,欢迎访问三七文档
C语言知识竞赛言C语选择题1123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960选择题21234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859601•1、若有定义:inta=3,b=2,c=1;并有表达式:①a%b,②abc,③b&&c+1,④c+=1,则表达式值相等的是。A)①和②B)②和③C)①和③D)③和④答案:c2•若有说明语句inti=5,j=4,k=6;floatf;则执行f=(ij&&ik)?i:(jk)?j:k;语句后,f的值为。A)4.0B)5.0C)6.0D)7.0答案:A3•对下述程序,是正确的判断intx,y;scanf(“%d%d”,&x,&y);if(xy){x=y;y=x;}else{x++;y++;}printf(“%d,%d”,x,y);A)有语法错误,不能通过编译B)若输入3和4,则输出4和5C)若输入4和3,则输出3和4D)若输入4和3,则输出4和5答案:B4•在下面C语言的函数说明语句中,正确的是()。•A)intfun(intx,inty);•B)intfun(intx,y);•C)intfun(x,y);•D)intfun(intx;inty);答案:A5•以下所列的C语言常量中,错误的是A)0xFFB)1.2e0.5C)2LD)'\72'答案:B6•)对于循环队列,下列叙述中正确的是A)队头指针是固定不变的B)队头指针一定大于队尾指针C)队头指针一定小于队尾指针D)队头指针可以大于队尾指针,也可以小于队尾指针答案:c7•设inta,x=2;执行语句a=x0?3*x:x=10;后,变量x的值是。A)1B)2C)6D)10答案:D8•下述表达式中,可以正确表示x≤0或x≥1的关系。A)(x=1)||(x=0)B)x=1|x=0C)x=1&&x=0D)(x=1)&&(x=0)答案:B9•有以下程序运行后的输出结果是voidmain(){intm=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(“%d,%d,%d,%d”,m,n,*p,*q);}A)1,2,1,2B)1,2,2,1C)2,1,2,1D2,1,1,2答案:B10•下面程序段的运行结果是。char*s=abcde;s+=2;printf(%d,s);A)cdeB)字符’c’C)字符’c’的地址D)不确定答案:c11•设chars[10]=abcd,t[]=12345;,则s和t在内存中分配的字节数分别是_______。A)6和5B)6和6C)10和5D)10和6答案:D12•设有以下程序段执行后输出的结果是:intx=2,y=2,z=0,a;a=++x||++y&&z++;printf(%d,%d,%d\n,x,y,z);A.2,2,0B.3,3,1C.3,2,0D.3,2,1答案:c13•在C语言中,字符串\\TOP\t\65\“的长度是_______。A.5B.7C.8D.D.12答案:B14•设floatx,由键盘输入:12.45,能正确读入数据的输入语句是。A.scanf(%5f,&x)B.scanf(%5d,&x);C.scanf(%f,x);D.scanf(%s,&x);答案:A15•逗号表达式a=2*6,a*3,a+5的值是_________。A.12B.17C.36D.41答案:B16•C语言程序中,整型常量的书写形式不包括_________。•A.二进制•B.八进制•C.十进制•D.十六进制答案:A17•在C语言中,能代表逻辑值“真”的是___。A.trueB.大于0的数C.非0整数D.非0的数答案:D18•以下叙述中错误的是()。A)C语句必须以分号结束B)复合语句在语法上被看作一条语句C)空语句出现在任何位置都不会影响程序运行D)赋值表达式末尾加分号就构成赋值语句答案:c19•下列变量定义中合法的是。A)short_a=1-.1e-1;B)doubleb=1+5e2.5;C)longdo=0xfdaL;D)float2_and=1-e-3答案:A20•已知x=3、y=2,则表达式x*=y+8的值为:A.3B.2C.30D.10答案:c21•设x=2.5、a=7、y=4.7,算术表达x+a%3*(int)(x+y)%2/4的值为_____。A.2.5B.7C.4.7D.2.75答案:A22•执行x=51+2&&2||2*44-!0后,x的值为_____。A.-1B.0C.C.1D.D.5答案:c23•若输入B,以下程序的运行结果为__C___。main(){chargrade;scanf(%c,&grade);switch(grade){case′A′:printf(=85.);case′B′:case′C′:printf(=60.);case′D′:printf(60.);default:printf(error.);}}A.=85.B.=60.C.=60.60.error.D.error.答案:c24•与“for(i=0;i10;i++)putchar(′a′+i);”功能不同的语句是_____。A.for(i=0;i10;)putchar(′a′+(++i));B.for(i=0;i10;)putchar(′a′+(i++));C.for(i=0;i10;putchar(′a′+i),i++);D.for(i=0;i=9;i++)putchar(′a′+i);答案:A25•以下程序的运行情况是_____。main(){inti=1,sum=0;while(i10)sum=sum+1;i++;printf(i=%d,sum=%d,i,sum);}A.i=10,sum=9B.i=9,sum=9C.i=2,sum=1D.运行出现错误答案:D26•i=1;for(;i=100;i++)sum+=i;与上列语句序列不等价的有_____。A.for(i=1;;i++)sum+=i;if(i==100)break;B.for(i=1;i=100;){sum+=i;i++;}C.i=1;for(;i=100;)sum+=i;D.i=1;for(;;){sum+=i;if(i==100)break;i++;}答案:c27•下列程序段中,功能与其他程序段不同的是_____。A.for(i=1,p=1;i=5;i++)p*=i;B.B.for(i=1;i=5;i++){p=1;p*=i;i++;}C.C.i=1;p=1;while(i=5){p*=i;i++;}D.D.i=1;p=1;do{p*=i;i++;}while(i=5);答案:B28•标有/**/的语句的执行次数是_____。inty,i;for(i=0;i20;i++){if(i%2==0)continue;y+=i;/**/}A.20B.19C.10D.9答案:c29•执行下面的程序段后,k的值是_______。intk=1,n=325;do{k*=n%10;n/=10;}while(n);A.3B.30C.523D.325答案:B30•以下描述正确的是()。•A)函数形参是虚设的,所以它始终不占用存储单元•B)当函数形参是变量时,实参与它所对应的形参占用不同的存储单元•C)函数实参与它所对应的形参占用同一个存储单元•D)函数实参与它所对应的形参同名时可占用同一个存储单元答案:c31•已知staticinta[]={5,4,3,2,1},*p[]={a+3,a+2,a+1,a},**q=p,则表达式*(p[0]+1)+**(q+2)的值是。A5B4C6D7答案:c32•.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是A)for(i=1,p=1;i=5;i++)p*=i;B)for(i=1;i=5;i++){p=1;p*=i;}C)i=1;p=1;while(i=5){p*=i;i++;}D)i=1;p=1;do{p*=i;i++;}while(i=5);答案:B33•.有以下程序执行后的输出结果是main(){inti;for(i=1;i=40;i++){if(i++%5==0)if(++i%8==0)printf(%d,i);}printf(\n);}A)5B)24C)32D)40答案:c34•有以下程序执行后的输出结果是main(){inti,n=0;for(i=2;i5;i++){do{if(i%3)continue;n++;}while(!i);n++;}printf(“n=%d\n”,n);}A)n=5B)n=2C)n=3D)n=4答案:D35inti,j;for(i=5;i;i--)for(j=0;j4;j++){…}则循环体执行次数是________。A.5B.4C.20D.无限次答案:c36•以下的for循环_____。for(x=0,y=0;(y!=123)&&(x4);x++);A.执行3次B.执行4次C.循环次数不定D.是无限循环答案:B37•以下叙述中正确的是()。A)C程序中注释部分可以出现在程序中任意合适的地方B)花括号{和}只能作为函数体的定界符C)构成C程序的基本单位是函数,所有函数名都可以由用户命名D)分号是C语句之间的分隔符,不是语句的一部分答案:A38•以下叙述中不正确的是A、在不同的函数中可以使用相同名字的变量B、函数中的形式参数是局部变量C、在一个函数内定义的变量只在本函数范围内有效D、在一个函数内的复合语句中定义的变量在本函数范围内有效答案:c39•.以下说法中正确的是。A.C语言程序总是从第一个函数开始执行B.C语言程序中,要调用的函数必须在main()函数中定义C.C语言程序总是从main()函数开始执行D.C语言程序中的main()函数必须放在程序的开始部分答案:c40•为表示关系x≥y≥z,应使用C语言表达式___A)(x=y)&&(y=z)B)(x=y)AND(y=z)C)(x=y=z)D)(x=y)&(y=z)答案:A41#includestdio.hvoidmain(){inti,j;i=010;j=9;printf(%d,%d,i-j,i+j);}程序的运行结果是________.A)1,19B)-1,19C)1,17D)-1,17答案:D42#includestdio.hvoidmain(){inti,j;i=010;j=9;printf(%d,%d,i-j,i+j);}程序的运行结果是________.A)1,19B)-1,19C)1,17D)-1,17答案:D43算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性的是A)有零个输入或多个输入B)高效性C)有穷性D)确定性答案:B44C语言中用于结构化程序设计的3种基本结构是A)顺序结构、选择结构、循环结构B)if,switch,breakC)for,while,do-whileD)if,for,continue答案:A45现有如下程序段,则程序段的输出结果为。#includestdio.hintfun(){staticintk;returnk;}main(){intm;m=fun();printf(%d\n,m);}A)3B)4C)1D)0答案:D46以下程序的输出结果是【3】。#defineMAX(x,y)(x)(y)?(x):(y)main(){inta=5,b=2,c=3,d=3,t;t=MAX(a+b,c+d)*10;printf(%d\n,t);}A)6B)8C)7D)10答案:C47若有语句
本文标题:C语言知识竞赛
链接地址:https://www.777doc.com/doc-4352593 .html