《C语言程序设计》试题库一、选择题(共250个,每题2分)1、一个c语言程序的执行是从()A、本程序的main函数开始,到main函数结束B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C、本程序的main函数开始,到本程序文件的最后一个函数结束D、本程序文件的第一个函数开始,到本程序main函数结束2、一个c语言程序是由()A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子函数组成3、以下选项中是正确的整型常量是()A、12.B、-20C、1,000D、4564、以下选项中正确的实型常量是()A、0B、3.1415C、0.329*10^2D、.8715、以下选项中不合法的实型常量是()A、2.607E-1B、0.8103*12C、-77.77D、456e-26、以下选项中不合法的字符串是()A、’abc’B、”12’12”C、“0”D、””7、下面正确的字符常量是()A、”c”B、‘\\’’C、‘w’D、‘’8、以下选项中不合法的用户标识符是()A、abc.cB、fileC、MainD、PRINTF9、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()A、必须为字母B、必须为下划线C、必须为字母或下划线D、可以是字母、数字和下划线中任意一种字符10、以下选项中不合法的用户标识符是()A、_123B、printfC、A$D、Dim11、c语言中运算对象必须是整型的运算符是()A、%B、/C、!D、**12、可在C程序中用作用户标识符的一组标识符是()A、ntB、as-b3C、FirD、2cdefine-123_bcDOWORDifnameSIG13、若变量已正确定义并赋值,符合C语言语法的表达式是()A、a=a+7;B、a=7+b+c,a++C、int(12.3%4)D、a=a+7=c+b14、若a,b,c,d都是int类型变量且初值为0,以下选项中不正确的赋值语句是()A、a=b=c=100;B、d++;C、c+b;D、d=(c=22)-(b++);15、若x、i、j和k都是int变量,则计算下面表达式后,x的值是()x=(i=4,j=16,k=32)A、4B、16C、32D、5216、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()A、7B、8C、6D、217、若有代数表达式a2.b2,则正确的c语言表达式是()A、a^*b^B、pow(a,2).pow(b,2)C、a*a.b*bD、(a*a)*(b*b)18、若有代数表达式bcae3,则不正确的c语言表达式是()A、a/b/c*e*3B、3*a*e/b/cC、3*a*e/b*cD、a*e/c/b*319、若有定义:inta=8,b=5,c;执行语句c=a/b+0.4;后,c的值为()。A、1.4B、1C、2.0D、220、char型数据在内存中的存储形式是()A、补码B、反码C、原码D、ASCII码21、设变量a是整型,f是实型,i是双精度,则表达式10+‘a’+i*f值的数据类型为()A、intB、floatC、doubleD、不确定22、若有定义:inta=7;flaotx=2.5,y=4.7;;则表达式x+a%3*(int)(x+y)%2/4的值是()。A、2.500000B、2.750000C、3.500000D、0.00000023、若变量a是int类型,并执行了语句:a=’A’+1.6;则正确的叙述是()。A、a的值是字符CB、a的值是浮点型C、不允许字符型和浮点型相加D、a的值是字符’A’的ASCII值加上124.、以下选项中合法的字符常量是()。A、“B”B、’\010’C、68D、D25、以下选项中不是C语句的是()A、{inti;i++;printf(“%d\n”,i);}B、;C、a=5,c=10D、{;}26、以下合法的C语言赋值语句是()A、a=b=58B、k=int(a+b)C、a=58,b=58D、--i;27、以下程序的输出结果是()A、0B、1C、3D、不确定的值main(){intx=10,y=3;printf(“%d\n”,y=x/y);}28、设c语言中,一个int型数据在内存中占2个字节,则unsignedint型数据的取值范围为()A、0~255B、0~32767C、0~65535D、0~214748364729、若变量已正确定义为int类型,要给a、b、c输入数据,以下正确的输入语句是()A、read(a,b,c);B、scanf(“%d%d%d”a,b,c);C、scanf(“%D%D%D”,&a,&b,&c);D、scanf(“%d%d%d”,&a,&b,&c);30、若变量已正确定义为float类型,要通过赋值语句scanf(“%f%f%f”,&a,&b,&c)给A赋值10,B赋予22,C,赋予33,以下不正确的输入形式是()A、10B、10.0,22.0,33.0C、10.0D、10222222.033.0333331、设有说明:charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型为()A、floatB、charC、intD、double32、若变量已正确定义,要将a和b中的数进行交换,下面选项中不正确的是()A、a=a+b,b=a-b,a=a-b;B、t=a,a=b,b=t;C、a=t;t=b;b=a;D、t=b;b=a;a=t;33、若变量已正确定义,以下程序段的输出结果是()A、输出格式说明与输出项不匹配,输出无定值B、5.170000C、5.168000D、5.169000x=5.16894;printf(“%f\n”,(int)(x*1000+0.5)/(float)1000);34、若有以下程序段,c3的值是()A、0B、1/2C、0.5D、1intc1=1,c2=2,c3;c3=c1/c2;35、若有以下程序段,其输出结果是()A、0,0,-10B、0,0,5C、-10,3,-10D、3,3,-10inta=0,b=0,c=0;c=(a-=a-5),(a=b,b+3);printf(“%d,%d,%d\n”,a,b,c);36、若已知变量的类型说明如下:intk,a,b;unsingedlongw=5;doublex=1.42;则以下不符合c语言的表达式是()A、x%(-3)B、w+=-2C、k=(a=2,b=3,a+b)D、a+=a-=(b=4)*(a=3)37、以下程序的输出结果是()A、a=%2,b=%fB、a=2,b=5C、a=%%d,b=%%dD、a=%d,b=%dmain(){inta=2,b=3;printf(“a=%%d,b=%%d\n”,a,b);}38、若int类型占两个字节,则以下程序段的输出是()A、–1,-1B、–1,32767C、–1,32768D、–1,65535inta=-1;printf(“%d,%u\n”,a,a);39、下列运算符中优先级最高的运算符是()A、!B、%C、-=D、&&40、下列运算符中优先级最低运算符是()A、||B、!=C、〈=D、+41、为表示关系x≥y≥z,应使用的C语言表达式是()A、(x=y)&&(y=z)B、(x=y)AND(y=z)C、(x=y=z)D、(x=y)&(y=z)42、若有以下定义,则能使值为3的表达式是()intk=7,x=12;A、x%=k-k%5)B、x%=(k%=5)C、x%=(k-k%5)D、(x%=k)-(k%=5)43、设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=ab)&&(n=cd)运算后,n的值为()。A、0B、1C、2D、344、假定w、x、y、z、m均为int型变量,有如下程序段:w=1;x=2;y=3;z=4;m=(wx)?w:x;m=(my)?m:y;m=(mz)?m:z;则该程序运行后,m的值是()。A、4B、3C、1D、245、以下程序的输出是()A、0B、1C、2D、3main(){inta=2,b=-1,c=2;if(ba);if(b0)c=0;printf(“%d\n”,c);}46、设a,b和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是()A、a&&bB、a=bC、a||b+c&&b-cD、!((ab)&&!c||1)47、以下程序的输出是()A、0B、1C、2D、3main(){inta=2,b=-1,c=2;if(ab)if(b0)c=0;elsec+=1;printf(“%d\n”,c);}48、以下程序的输出是()A、1B、2C、3D、4main(){intw=4,x=3,y=2,z=1;printf(“%d\n”,(wx?w:zy?z:x));}49、已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是()if(xy)z=x;x=y;y=z;A、x=10,y=20,z=30B、x=20,y=30,z=30C、x=20,y=30,z=10D、x=20,y=30,z=2050、以下程序的运行结果是()main(){intm=5;if(m++5)printf(“%d\n”,m);elseprintf(“%d\n”,m--);}A、4B、5C、6D、751、若执行以下程序时从键盘上输入3和4,则输出结果是()A、14B、16C、18D、20main(){inta,b,s;scanf(“%d%d”,&a,&b);s=a;if(ab)s=b;s*=s;printf(“%d\n”,s);}52、运行以下程序,输出()A、****B、&&&&C、####&&&&D、有语法错误不能通过编译main(){intk=-3;if(k=0)printf(“****\n”);elseprintf(“&&&&\n”);}53、以下程序的输出结果是()main(){intx=2,y=-1,z=2;if(xy)if(y0)z=0;elsez=z+1;printf(“%d\n”,z);}A、3B、2C、1D、054、为了避免在嵌套的条件语句if-else中产生二义性,c语言规定:else子句总是与()配对。A、上下位置在同一列的ifB、else前面最近的ifC、else之后最近的ifD、同一行上的if55、以下不正确的语句为()A、if(xy);B、if(x==y)&&(x!=0)x+=y;C、if(xy){x++;y++;}D、if(x!=y)scanf(“%d”,&x);elsescanf(“%d”,&y);56、当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是()if(ab)if(ad)x=1;elseif(ac)if(bd)x=2;elsex=3;elsex=6;elsex=7;A、1B、2C、3D、657、以下程序段,intk=10;while(k=0)k=k+1;则下面描述中正确的是()。A、while循环执行10次B、循环是无限循环C、循环体语句一次也不执行D、循环体语句执行一次58.以下程序中,while循环的循环次数是()。main(){inti=0;while(i10){if(i1)break;i++;}}A、1B、10C、6D、死循环,不能确定次数59、以下程序中,while循环的循环次数是()。main(){inti=0;while(i10){if(i1)contimue;if(i==5)break;i++;}}A、1B、10C、6D、死循环,不能确定次数60、若执行以下程序时从键盘上输入9,则输出结果是()A、11B、10C、9D、8main(){intn;scanf(%d,&n);if(n++10)printf(%d\n,n);elseprintf(%d\n,n--);}61、有以下程序段()intk=0while(k==1)k++;while循环执