【HNCE网上考试系统v9.6】本套软件使用权属于:郑州大学考试课程:考试时间:100分钟考场:第一考场考试日期:2013.05.24考号:20122234567姓名:剩余时间:98:48保存交卷退出帮助本卷共有3道大题:一、单项选择题(50道小题,共50分)1、一个C语言程序是由()。(1分)A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成2、以下叙述中,正确的是()。(1分)A、在C程序中,main函数必须位于程序的最前面B、C语言本身没有输入输出语句C、C程序的每行只能写一条语句D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误3、以下叙述中,不正确的是()。(1分)A、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个main函数C、C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面4、若有语句:intx=3;do{printf(%d\n,x-=2);}while(!(--x));,则程序段()。(1分)A、输出的是1B、输出的是1和-2C、输出的是3和0D、是死循环5、已知ch是字符型变量,下面不正确的赋值语句是()。(1分)A、ch='a+b';B、ch='\0';C、ch='7'+'9';D、ch=5+9;6、若有定义:intk=7,x=12;,则能使值为3的表达式是()。(1分)A、x%=(k%=5)B、x%=(k-k%5)C、x%=k-k%5D、(x%=k)-(k%=5)7、若有定义:inta=7;floatx=2.5,y=4.7;,则表达式x+a%3*(int)(x+y)%2/4的值是()。(1分)A、2.500000B、2.7500OOC、3.500000D、0.0000008、设有说明:charw;intx;f1oaty;doublez;,则表达式w*x+z-y值的数据类型为()。(1分)A、floatB、charC、intD、double9、已有定义和输入语句:inta1,a2;charc1,c2;scanf(%d%d,&a1,&a2);scanf(%c%c,&c1,&c2);,若要求a1,a2,c1,c2的值分别为10,20,A,B,当从第一列开始输入数据时,正确的数据输入方式是()。(1分)A、1020ABCRB、1020CRABCRC、1020ABCRD、1020ABCR10、已有定义:floatfl,f2;,数据的输入方式:4.523.5,根据定义和数据的输入方式,输入语句的正确形式为()。(1分)A、scanf(%f,%f,&f1,&f2);B、scanf(%f%f,&f1,&f2);C、scanf(%3.2f%2.1f,&f1,&f);D、scanf(%3.2f%2.1f,&f1,&f2);11、下面四个选项中,均是不合法的用户标识符的选项是()。(1分)A、A、P_0、doB、float、1a0、_AC、b-a、goto、intD、_123、temp、INT12、设x、y均为f1oat型变量,则以下不合法的赋值语句是()。(1分)A、++x;B、y=(x%2)/10;C、x*=y+8;D、x=y=0;13、下列运算符中,优先级最低的是()。(1分)A、?:B、&&C、+D、!=14、已有定义和输入语句:inta1,a2;charc1,c2;scanf(%d%c%d%c,&a1,&c1,&a2,&c2);,若要求a1,a2,c1,c2值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是()。(1分)A、10A20BCRB、10A20BCRC、10A20CRD、10A20BCR15、设有:inta=1,b=2,c=3,d=4,m=2,n=2;,执行(m=ab)&&(n=cd)后,n的值为()。(1分)A、1B、2C、0D、416、下关于运算符优先顺序的描述中,正确的是()。(1分)A、关系运算符算术运算符赋值运算符逻辑与运算符B、逻辑运算符关系运算符算术运算符赋值运算符C、赋值运算符逻辑与运算符关系运算符算术运算符D、算术运算符关系运算符赋值运算符逻辑与运算符17、若有w,x,y,z,m均为int型变量,且w=1;x=2;y=3;z=4;m=(wy?w:x,m=my)?m:y;m=(mz)?m:z;,则m值是()。(1分)A、1B、2C、3D、418、设x,y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是()(1分)A、'y'&&'y'B、x=yC、x||y+z&&y-zD、!(xy)&&!z||1)19、有两个字符数组a和b,则以下正确的输入语句是()。(1分)A、gets(a,b);B、scanf(%s%s,a,b);C、scanf(%s%s,&a,&b);D、gets(a),gets(b);20、以下叙述中,不正确的叙述是()。(1分)A、在C程序中,逗号运算符的优先级最低B、在C程序中,APH和aph是两个不同的变量C、若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变D、当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值21、下面四个选项中,均是正确的八进制数或十六进制数的选项是()。(1分)A、-10、0x8f、-011B、0abc、-017、0xcC、0010、-0x11、0xf1D、0al2、-0xl23、-0x822、下面四个选项中,均是非法常量的选项是()。(1分)A、'as'、-0fff、'\0xa'B、'\\'、'\01'、12,456C、-0xl8、01177、0xfD、0xabc、'\0'、a23、程序段for(y=1;y10;)y=((x=3*y,x+1),x-1);printf(x=%d,y=%d,x,y);的运行结果是()。(1分)A、x=27,y=27B、x=12,y=13C、x=15,y=14D、x=y=2724、以下不正确的语句为()。(1分)A、if(xy);B、if(x=y)&&(x!=0)x+=y;C、if(x!=y)scanf(%d,&x);elsescanf(%d,&y);D、if(xy){x++;y++;}25、已知intx=10,y=20,z=30;,执行语句if(xy)z=x;x=y;y=z;后,x,y,z的值是()。(1分)A、x=10,y=20,z=30B、x=20,y=30,z=20C、x=20,y=30,z=10D、x=20,y=30,z=3026、以下不正确的if语句形式是()。(1分)A、if(xy&&x!=y);B、if(x==y)x+=yC、if(x!=y)scanf(%d,&x)elsescanf(%d,&y);D、if(XY){X++;Y++;}27、为了避免在嵌套的条件语句If-else中产生二义性,C语言规定else子句总是与()配对。(1分)A、缩排位置相同的ifB、其之前最近的ifC、之后最近的ifD、同一行上的if28、当a=1,b=3,c=5,d=4,执行程序段:if(ab)if(cd)x=1;elseif(ac)if(bd)x=2;elsex=3;elsex=6;elsex=7;后,x的值是()。(1分)A、1B、2C、3D、629、对for(表达式1;;表达式3)可理解为()。(1分)A、for(表达式1;0;表达式3)B、for(表达式1;1;表达式3)C、for(表达式1;表达式1;表达式3)D、for(表达式1;表达式3;表达式3)30、设有程序段:intk=10;while(k=0)k=k-1;,则下面描述中正确的是()。(1分)A、while循环执行10次B、循环是无限循环C、循环体语句一次也不执行D、循环体语句执行一次31、逻辑运算符两侧运算对象的数据类型()。(1分)A、只能是0或1B、只能是0或非0正数C、只能是整型或字符型数据D、可以是任何类型的数据32、在C语言中,一维数组的定义方式为:类型说说明符数组名()。(1分)A、[常量表达式]B、[整型表达式]C、[整型常量]或[整型表达式]D、[整型常量]33、以下能对一维数组a进行正确初始化的语句是()。(1分)A、inta[10]=(0,0,0,0,0)B、inta[10]={}C、inta[]={0};D、inta[10]={10*1};34、若有说明:inta[10];,则对a数组元素的正确引用是()。(1分)A、a[10]B、a[3.5]C、a[15]D、a[10-10]35、下面描述中,正确的是()。(1分)A、两个字符串所包含的字符个数相同时,才能比较字符串B、字符个数多的字符串比字符个数少的字符串大C、字符串STOP(注:有一个空格)与STOP相等D、字符串That小于字符串The36、判断字符串a和b是否相等,应当使用()。(1分)A、if(a==b)B、if(a=b)C、if(strcpy(a,b))D、if(strcmp(a,b))37、若有说明:inta[3][4];,则对a数组元素的正确引用是()。(1分)A、a[2][4]B、a[1,3]C、a[1+1][0]D、a(2)(1);38、定义如下变量和数组:intk;inta[3][3]={1,2,3,4,5,6,7,8,9};,则语句for(k=0;k3;k++)printf(%d,a[2-k][k]);的输出结果是()。(1分)A、369B、753C、963D、35739、若有说明:inta[3][4];,则对a数组元素的非法引用是()。(1分)A、a[0][2*1]B、a[1][3]C、a[4-2][0]D、a[0][4]40、以下不能对二维数组a进行正确初始化的语句是()。(1分)A、inta[2][3]={0};B、inta[][3]={{1,2,3},{4,5,6}};C、inta[2][4]={{1,2,3},{4,5}{6}};D、inta[][3]={{1,0,1},{},{1,1}};41、以下各组选项中,均能正确定义二维实型数组a的选项是()。(1分)A、floata[3][4];、floata[][4];、floata[3][]={{1},{0}};B、floata(3,4);、floata[3][4];、floata[][]={{0},{0}};C、floata[3][4];、staticfloata[][4]={{0},{0}};、autofloata[][4]={{0},{0},{0}};D、floata[3][4];、floata[3][];、floata[][4]42、若有说明:inta[][4]={0,0};,则下面不正确的叙述是()。(1分)A、数组a的每个元素都可得到初值0B、二维数组a的第一维大小为1C、因为二维数组0中第二维大小的值除以初值个数的商为1,故数组a行数为1D、只有元素a[0][0]和a[0][1]可得初值0,其余元素均得不到初值043、对两个数组a和b进行如下初始化:chara[]=ABCDEF;charb[]={'A','B','C','D','E','F'};,则以下叙述正确的是()。(1分)A、a与b数组完全相同B、a与b长度相同C、a和b中都存放字符串D、a数组比b数组长度长44、在C语言中,形参的缺省存储类别是()。(1分)A、autoB、registerC、staticD、extern45、若用数组名作为函数调用的实参,传递给形参的是()。(1分)A、数组的首地址B、数组第一个元素的值C、数组中全部元素的值D、数组元素的个数46、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是()。(1分)A、float型B、int型C、long型D、double型47、以下有关宏替换和函数的调用的叙述中,不正确的是()。(1分)A、宏替换和函数的调用均占用运行时间B、宏名无类型,函数有类型C、宏替换只是字符替换,不分配内