福建省高等学校计算机等级考试(二级C语言)选择题试题库答案试题C1.在C语言源程序中,以下叙述正确的是()。A.main函数必须位于文件的开头B.每行只能写一条语句C.程序中的一个语句可以写成多行D.每个语句的最后必须有点号C2.关于C语言的源程序的叙述中,错误的是()。A.C语言的源程序由函数构成B.main函数可以书写在自定义函数之后C.必须包含有输入语句D.一行可以书写多个语句C3.关于C语言数据类型的叙述,正确的是()。A.枚举类型不是基本类型B.数组不是构造类型C.变量必须先定义后使用D.不允许使用空类型C4.C程序中main函数的位置()。A.必须在最开始B.必须在系统库函数后面C.可以在自定义函数后面D.必须在最后B5.C语言的函数体由()括起来。A.()B.{}C.[]D./**/D6.关于C语言的叙述中,不正确的是()。A.C程序可由一个或多个函数组成B.C程序必须包含一个main()函数C.C程序的基本组成单位是函数D.注释说明只能位于一条语句的后面D7.以下叙述不正确的是()。A.C程序的执行总是从main函数开始B.一个C源程序必须包含一个main函数C.C语言程序的基本组成单位是函数D.在编译C程序源程序时,可发现注释中的拼写错误C8.结构化程序设计的三种基本结构是()。A.函数结构、分支结构、判断结构B.函数结构、嵌套结构、平行结构C.顺序结构、分支结构、循环结构D.分支结构、循环结构、嵌套结构C9.对于C语言源程序,以下叙述错误的是()。A.可以有空语句B.函数之间是平等的,在一个函数内部不能定义其它函数C.程序调试时如果没有提示错误,就能得到正确结果D.注释可以出现在语句的前面D10.下面关于C语言用户标识符的描述,正确的是()。A.不区分大小写B.用户标识符不能描述常量C.类型名也是用户标识符D.用户标识符可以作为变量名D11.以下()是正确的变量名。A.5fB.ifC.f.5D._f5D12.以下()是正确的常量。A.E-5B.1E5.1C.'a12'D.32766LD13.以下()是正确的变量名。A.a.beeB.-p11C.intD.p_11C14.以下()是正确的字符常量。单引号括起来A.cB.'\\''C.'W'D.\32aA15.以下()是不正确的字符串常量。双引号括起来A.'abc'B.12'12C.0D.B16.以下()是错误的整型常量。A.-0xcdfB.018//八进制数不能超过8C.0xeD.011B17.以下()是正确的浮点数。A.e3//e前面必须有数字,指数必须为整数B..62C.2e4.5D.123A18.若有说明语句:charc='\95';则变量c包含()个字符。A.1\ddd:表示1到3位八进制数所代表的字符B.2\xhh表示1到2位十六进制数所代表的字符C.3D.语法错误A19.若有定义:inta=2;则正确的赋值表达式是()。A.a-=(a*3)B.double(-a)//(double)(-a)C.a*3D.a*4=3C20.语句x=(a=3,b=++a);运行后,x、a、b的值依次为()。A.3,3,4//逗号运算符及逗号表达式B.4,4,3C.4,4,4D.3,4,3B21.语句a=(3/4)+3%2;运行后,a的值为()。A.0B.1//注意除号/两边均为整型时,结果为整数(不含小数点)C.2D.3A22.char型变量存放的是()。//考查变量类型A.ASCII代码值B.字符本身C.十进制代码值D.十六进制代码值C23.若有定义:intx,a;则语句x=(a=3,a+1);运行后,x、a的值依次为()。A.3,3//考查逗号表达式及逗号运算符B.4,4C.4,3D.3,4B24.若有定义:inta;则语句a=(3*4)+2%3;运行后,a的值为()。A.12B.14C.11D.17A25.若有定义:inta,b;doublex,则以下不符合C语言语法的表达式是()。A.x%(-3)//%两侧均应为整型数据B.a+=-2C.a=b=2D.x=a+bB26.若有定义:intx=2,y=3;floati;,则以下符合C语言语法的表达式是()。A.x=x*3=2//x*3不是一个变量名B.x=(y==1)C.i=float(x)//应改为i=(float)xD.i%(-3)//%两侧均应为整型数据C27.设double型变量a,b,c,e均有值;对代数式(3ae)/(bc),不正确的C语言表达式是()。A.a/b/c*e*3B.3*a*e/b/cC.3*a*e/b*c//改为3*a*e/b/cD.a*e/c/b*3B28.下面叙述正确的是()。A.2/3与2.0/3.0等价B.(int)2.0/3与2/3等价C.++5与6等价//单独写++5是错误的,可以写成a=++5D.'A'与A等价A29.下面叙述中,错误的是()。A.其算术运算对象不包含函数B.%(模运算符)的运算对象只能为整型量C.算术运算符的结合方向是自左至右D.自加和自减运算符的结合方向是自右至左A30.下面叙述正确的是()。//++--只能用于变量,而不能用于常量或表达式A.强制类型转换运算的优先级高于算术运算B.若a和b是整型变量,(a+b)++是合法的C.'A'*'B'是不合法的D.A+B是合法的B31.若有定义:intk,i=2,j=4;则表达式k=(++i)*(j--)的值是()。A.8B.12//注意前缀后缀的区别C.6D.9C32.设整型变量a为5,使b不为2的表达式是()。A.b=(++a)/3B.b=6-(--a)C.b=a%2//结果为1D.b=a/2C33.若有定义:inta=1,b=2,c=3;则语句++a||++b&&++c;运行后b的值为()。A.1B.0C.2//注意运算的不完全性D.3B34.若有定义:inti,j;则表达式(i=2,j=5,i++,i+j++)的值是()。A.7B.8C.9D.10B35.若有定义:inta,b;则表达式(a=2,b=5,a*2,b++,a+b)的值是()。A.7B.8C.9D.10B36.若有定义:intm=5,n=3;则表达式(m+1,n+1,(--m)+(n--))的值是()。A.6B.7C.8D.9B37.已知inta;使用scanf()函数输入一个整数给变量a,正确的函数调用是()。A.scanf(%d,a);B.scanf(%d,&a);C.scanf(%f,&a);D.scanf(%lf,&a);D38.已知doublea;使用scanf()函数输入一个数值给变量a,正确的函数调用是()。A.scanf(%ld,&a);B.scanf(%d,&a);C.scanf(%7.2f,&a);//输入数据时不能规定精度D.scanf(%lf,&a);B39.已知chara;使用scanf()函数输入一个字符给变量a,不正确的函数调用是()。A.scanf(%d,&a);B.scanf(%lf,&a);//字符型变量与整型等价,但不与浮点型等价C.scanf(%c,&a);D.scanf(%u,&a);B40.putchar()函数的功能是向终端输出()。//char*str0;….;puts(str0);A.多个字符B.一个字符C.一个实型变量值D.一个整型变量表达式D41.getchar()函数的功能是从终端输入()。A.一个整型变量值B.一个实型变量值C.多个字符D.一个字符D42.若有定义:intx=1234,y=123,z=12;则语句printf(%4d+%3d+%2d,x,y,z);运行后的输出结果为()。A.123412312B.12341234123412341231231231212C.1234+1234+1234D.1234+123+12A43.已有如下定义和输入语句,inta;charc1,c2;scanf(%d%c%c,&a,&c1,&c2);若要求a、c1、c2的值分别为10、A和B,正确的数据输入是()。A.10AB//输入数据时,遇空格、回车、TAB、及非法输入或按规定的宽度结束B.10ABC.10ABD.10ABB44.已有如下定义和输入语句:inta,b;scanf(%d,%d,&a,&b);//“格式控制”字符串中除了格式说明还有其他字符,则输入//时应在相应位置输入若要求a、b的值分别为10和20,正确的数据输入是()。A.1020B.10,20C.a=10,b=20D.10;20D45.以下程序的运行结果是()。voidmain(){inta=65;charc='A';printf(%x,%d,a,c);}A.65,aB.41,aC.65,65D.41,65A46.下面叙述中,()不是结构化程序设计中的三种基本结构之一。A.数据结构B.选择结构C.循环结构D.顺序结构A47.下面叙述中,()不是结构化程序设计三种基本结构的共同特点。A.先判断后执行B.单入口,单出口C.程序中没有执行不到的语句D.无死循环A48.结构化程序设计不包括()。A.最优化B.自顶而下,逐步细化C.模块化设计D.结构化编码D49.以下运算符中优先级最高的是()。A.B.||C.&&D.+//初等运算符()[]单目算术关系逻辑(不含!)赋值逗号A50.若有定义:intx=3,y=4;则表达式!x||y的值为()。A.1B.OC.3D.4A51.若有定义:inti=7,j=8;则表达式i=j||ij的值为()。A.1B.变量i的值C.0D.变量j的值C52.若希望当a的值为奇数时,表达式的值为真,a的值为偶数时,表达式的值为假。则不能满足要求的表达式是()。A.a%2==1B.!(a%2==0)C.!(a%2)D.a%2D53.若有定义:intx=3,y=4,z=5;则值为0的表达式是()。A.'x'&&'y'B.x=yC.x||y+z&&y-zD.!((xy)&&!z||1)//考查运算符优先级A54.若有定义:inta=5,b=2,c=1;则表达式a-bc||b==c的值是()。A.0B.1C.2D.-1A55.已知doublea=5.2;则正确的赋值表达式是()。A.a+=a-=(a=4)*(a=3)B.a=a*3=2C.a%3D.a=double(-3)A56.已知chara='R';则正确的赋值表达式是()。A.a=(a++)%4B.a+2=3C.a+=256--D.a='\078'A57.已知inta='R';则正确的表达式是()。A.a%10B.a=int(3e2)C.2*a=a++D.a=a+a=a+3与C同属一类错误A58.设单精度型变量f、g的值均为2.0,使f为4.0的表达式是()。A.f+=gB.f-=g+2C.f*=g-6D.f/=g*10B59.若有定义:floatx=3.5;intz=8;则表达式x+z%3/4的值为()。A.3.75B.3.5C.3D.4A60.若有定义:inta=1,b=2,c=3,d=4,x=5,y=6;则表达式(x=ab)&&(y=cd)的值为()。A.0B.1C.5D.6A61.若有定义:inta=2,b=3;floatx=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的值是()。//(float)(a+b)/2=2.5A.3.5B.3.0C.2.5D.2.0C62.若有定义:intb=7;floata=2.5,c=4.7;则表达式a+(b/2*(int)(a+c)/2)%4的值是()。A.2.5//(b/2*(int)(a+c)/2)=10注意运算顺序B.3.5C.4.5D.5.5C63.若有定义:inta=6,b=2;charc1='a',c2='b';则表达式a+b%5+c2-c1的值是()。A.7B.8C.9D.表达式错误B64.以下的if语句中,x的值一定被重新赋值的是()。A.if(x==y)x+=y;B.if(xy&&x!=y);//注意if语句后的空语句;x+=y;