本卷共有4道大一、单项选择题(25道小题,共50分)1、以下说法中正确的是(C)(2分)A、C语言程序总是从第一个的函数开始执行B、在C语言程序中,要调用的函数必须在main()函数中定义C、C语言程序总是从main()函数开始执行D、C语言程序中的main()函数必须放在程序的开始部分2、一个算法应该具有“确定性”等五个特性,下面对另外4个特性的描述中错误的是(B)(2分)A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性3、以下选项中,不合法常量的是(B)(2分)A、1.234e04B、1.234e0.4C、1.234e+4D、1.234e04、C语言中最简单的数据类型包括(B)(2分)A、整型、实型、逻辑型B、整型、实型、字符型C、整型、字符型、逻辑型D、整型、实型、逻辑型、字符型5、能正确表示逻辑关系:“10≥=a≥=0”的C语言表达式是(D)(2分)A、10=a=0B、a=0anda=10C、a=0||a=10D、a=0&&a=106、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)(2分)A、6.500000B、6C、5.500000D、6.0000007、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B)(2分)A、INPUTx、y、z;B、scanf(%d%d%d,&x,&y,&z);C、scanf(%d%d%d,x,y,z);D、read(%d%d%d,&x,&y,&z);8、设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是(D)(2分)A、把x和y按从大到小排列B、把x和y按从小到大排列C、无确定结果D、交换x和y中的值9、若有以下程序段:intc1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是(A)(2分)A、0B、0.5C、1D、210、设charch='A';则ch=(ch='A'&&ch='Z')?(ch+32):ch的值是(B)。(2分)A、AB、aC、ZD、z11、执行程序段inta=-1,b=4,k;k=(++a0)&&!(b--=0);printf(“%d%d%d\n”,k,a,b);后的输出结果是(D)。(2分)A、104B、103C、003D、00412、设intx=1,y=1;表达式(!x||y--)的值是(B)。(2分)A、0B、1C、2D、-113、程序段intx=3;do{printf(“%d”,x-=2);}while(!(--x));的输出结果是(C)。(2分)A、1B、30C、1-2D、死循环14、程序段for(i=2;i==0;)printf(“%d”,i--);的循环次数是(B)。(2分)A、无限次B、0次C、1次D、2次15、语句intk=1;while(k++10);执行后,变量k的值是(B)。(2分)A、10B、11C、9D、无限循环,值不定16、程序inti,sum;for(i=1;i=3;sum++)sum+=i;printf(“%d\n”,sum);的执行结果是(C)。(2分)A、6B、3C、不确定D、017、以下对二维整形数组a的正确说明是(C)。(2分)A、inta[3][];B、floata(3,4);C、doublea[1][4];D、floata(3)(4)18、若已定义chars[10];在下面表达式中不能表示s[1]的地址的是(B)。(2分)A、s+1B、s++C、&s[0]+1D、&s[1]19、对两个字符数组a和b进行初始化chara[]=ABCDEF;charb[]={'A','B','C','D','E','F'};则以下叙述正确的是(D)。(2分)A、a与b数组完全相同B、a与b长度相同C、a和b中都存放字符串D、a数组比b数组长度长20、有说明:char*language[]={FORTRAN,BASIC,PASCAL,JAVA,C};则表达式*language[1]*language[2]比较的是(A)A、字符B和字符PB、字符串FORTRAN和字符串BASICC、字符F和字符BD、字符串BASIC和字符串PASCAL21、C语言程序由函数组成,它的(B)。(2分)A、主函数必须在其它函数之前,函数内可以嵌套定义函数B、主函数可以在其它函数之后,函数内不可以嵌套定义函数C、主函数必须在其它函数之前,函数内不可以嵌套定义函数D、主函数必须在其它函数之后,函数内可以嵌套定义函数22、在C语言中,若需一变量只在本文件中所有函数使用,则该变量的存储类别是(D)。(2分)A、externB、registerC、autoD、static23、已知:inta[]={1,2,3,4,5,6},*p=a;则值为3的表达式是(A)。.(2分)A、p+=2,*(p++)B、p+=2,*++pC、p+=3,*p++D、p+=2,++*p24、设有说明语句“structstu{inta;floatb;}stutype;”,则叙述不正确的是(C)(2分)A、struct是结构体类型的关键字。B、structstu是用户定义的结构体类型。C、stutype是用户定义的结构体变量名。D、a和b都是结构体变量。25、下列关于文件指针的描述中,错误的是(D)(2分)A、文件指针是由文件类型FILE定义的。B、文件指针是指向内存某个单元的地址值。C、文件指针是用来对文件操作的标识。D、文件指针在一个程序中只能有一个。26、以下叙述中正确的是(B)(2分)A、C语言的源程序不必通过编译就可以直接运行B、C语言中的每条可执行语句最终都将被转换成二进制的机器指令C、C源程序经编译形成的二进制代码可以直接运行D、C语言中的函数不可以单独进行编译27、以下叙述中正确的是(C)(2分)A、用C语言实现的算法必须要有输入和输出操作B、用C语言实现的算法可以没有输出但必须要有输入C、用C程序实现的算法可以没有输入但必须要有输出D、用C程序实现的算法可以既没有输入也没有输出28、C语言中,下列字符常量合法的是(A)(2分)A、'\t'B、AC、65D、A29、下列关于赋值运算符的表述中,错误的是(C)(2分)A、赋值运算符优先级高于逗号运算符B、赋值运算符的结合性是从左至右C、赋值运算符是双目运算符D、赋值运算符可在表达式中连用30、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)(2分)A、6.500000B、6C、5.500000D、6.00000031、以下不是关键字的是(C)(2分)A、continueB、charC、IfD、default32、设x,y为浮点型变量,合法赋值语句是(A)(2分)A、x=8+y;B、(float)3;C、y=(x%2)/10;D、*x=10;33、已定义ch为字符型变量,以下赋值语句中错误的是(B)(2分)A、ch='\';B、ch=62+3;C、ch='';D、ch='\xaa';34、已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是(C)(2分)A、scanf(%2d%2d%2d,&i,&j,&k);B、scanf(%d%d%d,&i,&j,&k);C、scanf(%d,%d,%d,&i,&j,&k);D、scanf(i=%d,j=%d,k=%d,&i,&j,&k);35、为了避免在嵌套的条件语句if――else中产生二义性,c语言规定:else子句总是与(B)配对。(2分)A、缩排位置相同的ifB、其之前最近的ifC、其之后最近的ifD、同一行上的if36、能正确表示“当x的取值在[1,100]和[200,300]范围内为真,否则为假”的表达式是(A)。(2分)A、(x=1)&&(x=100)&&(x=200)&&(x=300)B、(x=1)||(x=100)||(x=200)||(x=300)C、(x=1)&&(x=100)||(x=200)&&(x=300)D、(x=1)||(x=100)&&(x=200)||(x=300)37、若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值是(A)。A、1B、2C、3D、438、c语言中(D)。(2分)A、不能使用do-while语句构成的循环B、do-while语句构成的循环必须用break语句才能退出C、do—whiLe语句构成的循环,当while语句中的表达式值为非零时结束循环D、do—while语句构成的循环,当while语句中的表达式值为零时结束循环39、设j为int型变量,则for(j=10;j3;j--){if(j%3)j--;--j;--j;printf(“%d”,j);}的执行结果是(A)。(2分A、74B、47C、56D、1340、以下描述正确的是(C)。(2分)A、由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号。C、在do-while循环体中,一定要有能使while后面表达式的值变成零(“假”)的操作。D、do-while循环中,根据情况可以省略while41、以下正确的定义语句是(D)。(2分)A、inta[1][4]={1,2,3,4,5};B、floatx[3][]={{1},{2},{3}};C、longb[2][3]={{1},{1,2},{1,2,3}};D、doubley[][3]={0};42、下面描述正确的是(D)。(2分)A、字符串所包含的字符个数相同时,才能比较字符串B、字符个数多的字符串比字符个数少的字符串大C、字符串stop与stop相等D、字符串“That”小于字符串The43、在C语言中,引用数组元素时,其数组下标的数据类型允许是(C)。(2分)A、整型常量B、整型表达式C、整型常量或整型表达式D、任何类型的表达式44、若有说明:inta[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是(B)。(2分)A、2B、3C、4D、无确定值45、已知intf(int);和intg(int);是函数f和g的原形。下列语句中,将函数f作为函数参数的有(A)。(2分)A、f(3);B、p=f(3);C、g(f(3));D、f(g(3));46、函数调用结束后,形式参数(C)。(2分)A、继续占用相同大小的内存B、占用的内存减小C、释放内存D、不确定47、已知:inta,*p=&a;则下列函数调用中错误的是(D)。(2分)Ascanf(%d,&aB、scanf(%d,p);C、printf(%d,a);D、printf(%d,p);48、枚举类型首元素默认值和两个相邻元素之间默认的差值分别是(C)(2分)A、1,0B、1,1C、0,1D、0,049、语句“fseek(fp,100L,2);”的功能是(C)(2分)A、将fp所指向文件的位置指针移至距文件首100个字节。B、将fp所指向文件的位置指针移至距文件尾100个字节。C、将fp所指向文件的位置指针移至距当前位置指针的文件首方向100个字节。D、将fp所指向文件的位置指针移至距当前位置指针的文件尾方向100个字节。50、以下叙述错误的是(D)(2分)A、一个C程序总是从main函数开始执行的;B、C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上;C、每个语句和数据定义的最后必须有一个分号;D、C语言本身有输入输出语句。51、若有以下类型说明语句:charw;intx;floaty;doublez;则表达式w*x+z-y的结果类型是(D)(2分)A、floatB、charC、intD、d