《福建省计算机等级考试(二级C语言)试题汇编.docx》由会员分享,可在线阅读,更多相关《福建省计算机等级考试(二级C语言)试题汇编.docx(135页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、福建省计算机等级考试(二级C语言)试题汇编一、选择题(每套共20小题,每题2分,共40分)1 .在c语言源程序中,以下叙述正确的是(CA) main函数必须位于文件的开头B)每行只能写一条语句C)程序中的一个语句可以写成多行D)每个语句的最后必须有点号2 .关于C语言的源程序的叙述中,错误的是(C ).A) C语言的源程序由函数构成B) main函数可以书写在自定义函数之后C)必须包含有输入语句D) 一行可以书写多个语句3 .关于C语言数据类型的叙述,正确的是(CA)枚举类型不是基本类型B)数组不是构造类型C)变量必须先定义后使用D)不允许使用空类型4 .下面关于C语言的叙述中,正确的是(C
2、)。A)每行只能写一条语句B)程序中必须包含有输入语句C) main函数必须位于文件的开头 D)每条语句最后必须有一个分号5 .下面关于C语言的叙述中,错误的是(B )。A)若一条语句较长,也可分写在下一行上B)构成C语言源程序的基本单位是表达式C) C语言源程序中大、小写字母是有区别的D) 一个C语言源程序可由一个或多个函数组成6. C程序中main函数的位置(C )A)必须在最开始B)必须在系统库函数后面C)可以在自定义函数后面D)必须在最后7. C语言的函数体由(B )括起来。A) ( )B) C) D) /* */8. 关于C语言的叙述中,不正确的是(C )。A) C程序可由一个或多个
3、函数组成B) C程序必须包含一个main。函数C) C程序的基本组成单位是函数D)注释说明只能位于一条语句的后面9 . 一个程序的执行是从(C ).A)本程序的第一个函数开始,到最后一个函数结束B)本程序的main函数开始,到main函数结束C)本程序的main函数开始,到最后一个函数结束D)本程序的第一个函数开始,到main函数结束10 .结构化程序设计的三种基本结构是(A )oA)函数结构、分支结构、判断结构 B)函数结构、嵌套结构、平行结构O顺序结构、分支结构、循环结构D)分支结构、循环结构、嵌套结构1L构成C语言源程序的基本单位是(D )oA)语句B)过程 C)表达式D)函数12 .调
4、试程序是指对程序进行(B )A)编辑 B)编译 C)查错和排错D)连接13 . C语言中,复合语句的构成是将一系列语句置于(C )。A) begin与end之间B)一对圆括号()”之间C) 一对花括号”之间D) 一对方框号口之间14.下面关于C语言用户标识符的描述,正确的是(C ).A)不区分大小写B)用户标识符不能描述常量C)类型名也是用户标识符D)用户标识符可以作为变量名15.下面关于switch语句的叙述中,错误的是(C )。A) case后面的表达式可以是关系表达式B) switch语句是多分支选择语句C)每一个case后面的值必须互不相同,否则会出现互相矛盾的现象D)在执行一个cas
5、e分支后,可用一个break语句使流程跳出switch语句A) 3fB) _forC) structD)_f.517.以下()是正确的常量。A) E-5B) 1E5. 1C)&2D)32766L18.以下()是正确的变量名。A) a. beeB) -pllC)intD)19.以下()是正确的字符常量。A) cC)WD)”32a20.以下()是不正确的字符串常量。A) abcB) 12T2C)0D)21.以下()是正确的浮点数。A) e3B) .62C)2e4. 5D)12322 .下列不属于C语言关键字的是(A) continueB) integer23 .以下()是正确的变量名。A) 5fB
6、) ifC) f. 524 .以下()是错误的常量。A) IE-5B) . 123C) al2)oC) staticD) _f5D) 32766LD) signed16.在C语言中,正确的用户标识符是()。B) (int)2.0/3 与 2/3 等价25.下面叙述正确的是().A) 2/3 与 2. 0/3. 0 等价C) +5与6等价D) A与A等价26 . C语言的字符型数据在内存中的存储形式是().A)原码 B)补码 C)反码 D) ASCII27 .在C语言中,变量所分配的内存空间大小是()。A)由变量的类型决定B)由用户自己决定C)任意的D)均为两个字节28 .下面关于算术运算符的叙
7、述,错误的是()。A)其运算对象不包含函数B) %(模运算符)的运算对象只能为整型量C)算术运算符的结合方向是自左至右”D)自加和自减运算符的结合方向是自右至左”29.下面关于C语言变量的叙述中,错误的是().A)可以用const关键字定义变量B)在C程序中,SUM和sum是不同的变量C)变量名必须由字母或下划线开头30.下面叙述中,错误的是().D)变量的类型确定了变量的取值范围A) C语言基本的算术运算符不包含模运算符飞”B)算术运算符的优先级高于关系运算符C)自加和自减运算符的结合方向是自右至左D) C语言规定在表达式求值时,按其中运算符的优先级先高后低的次序进行 31.下面叙述正确的是
8、()(.A)强制类型转换运算的优先级高于算术运算B)若a和b是整型变量,(a+b)+是合法的C)A*B是不合法的D)是合法的32. C语言的运算符按运算对象的个数可以分为()。A)单目运算符一种C)单目、双目和三目运算符33. C语言的基本数据类型包括(A)整型、实型、字符型C)整型、字符型、逻辑型B)单目和双目运算符D)单目、双目、三目和四目运算符B)整型、实型、字符型、逻辑型D)整型、实型、逻辑型34.若已定义:float m;拟从键盘输入135. 78这一数据给变量m,则应选用的语句是()。A) scanf (飞5. 2f,&m);B) scanf (%3. 2f, &m);C) sca
9、nf(%6. 2f, &m);D) scanf(%6f, &m);35 .已定义int a;使用scanf()函数输入一个整数给变量a,正确的函数调用是()。A) scanfa);B) scanf&a);C) scanf&a);D) scanf&a);36 .已定义double a;使用scanf ()函数输入一个数值给变量a,正确的函数调用是()A) scanf&a);B) scanf(畀d”, &a);C) scanf(%7. 2f, &a);D) scanf&a);37 .已知char a;使用scanf ()函数输入一个字符给变量a,不正确的函数调用是().A) scanf&a);B)
10、 scanf&a);C) scanf&a);D) scanf(%u,&a);38 .下面叙述中,()不是结构化程序设计中的三种基本结构之一。A)数据结构B)选择结构 C)循环结构 D)顺序结构39 .下面叙述中,()不是结构化程序设计三种基本结构的共同特点。A)先判断后执行B)单入口,单出口C)程序中没有执行不到的语句D)无死循环40 .结构化程序设计不包括()。A)最优化B)自顶而下,逐步细化C)模块化设计D)结构化编码41 .以下程序段运行后的输出结果是()。int k=ll;printf(*k=%d, k=%o, k=%xn”, k, k, k);A) k=U,k=13, k=cB) k
11、=ll,k=12, k=13C) k=ll, k=ll, k=bD) k=ll, k=13, k=b42 .若有定义:int x=1234, y=123, z=12;则语句 printf (%4d+%3d+%2d”, x, y, z);运行后 的输出结果为()oA) 123412312B) 12341234123412341231231231212C) 1234+1234+1234D) 1234+123+1243 .已有如下定义和输入语句, int a;char cl,c2;scanf&a, &cl, &c2);若要求a、cl、c2的值分别为10、A和B,正确的数据输入是()。A) 10ABB
12、)10C) 10A BD) 10 AB44 .以下程序段的运行结果是()oint a=0, b=0, c0 jif ( a&+b ) c+;printf(%d, %dn”, b, c);A) 0, 0 B) 1, 2C) 2, 245 .以下程序的运行结果是()ovoid main ()(int a=65;char c=,A;printf (%x, %d”, a, c);A) 65, aB) 41, a C) 65,65D) 1, 0D) 41,6546 .若已定义:int a=5;floatA) printf (*%d %d* a, b);b=63.72;以下语句中能输出正确值的是()oB)
13、 printf (*%d %. 2fa, b);C) printf C%. 2f %. 2fa, b); D) printf C%. 2f %d*, a, b);47.运行以下程序段时编译出错,其原因是()ochar cl=,8, c2=,2008 ;printf(*%c, %dn”, cl, c2);A) c2是字符变量,只能赋以字符常量,不能赋以字符串常量B)字符串要用2008表示,而2008不是字符串表示C) 2008只能赋值给字符数组D)字符变量不能用%d格式输出48.设有定义:char c; float f; inti; unsigned u; double d;下列各表达式的类型分
14、别是(). u+9 d!=f&(i+2)A) unsigned, int, doubleC)int,double,char49.下列#include命令中,正确的是(A) #include string, hC) #include (string, h)8. 2*i+cB)double,doub1e,doub1eD) unsigned, double, (3)int ).B) ttinclude string, hD) #include 50. C语言允许函数值类型缺省定义,此时该函数值隐含的类型是()。A) float 型 B) long 型 C) int 型 D) double 型 51.
15、若变量已正确定义并赋值,符合C语言语法的表达式是()。A) a=8+b+c, a+B) a=a 3C) int(12.3%4)D) a=a+l=c+b52 .若有定义:int a,b; double x,则以下不符合C语言语法的表达式是()A) x%(-3)B) a+=-2C) a=b=2D) x=a+b53 .若有定义:int x=2, y=3;float i;,则以下符合C语言语法的表达式是().A) x=x*3=2B) x=(y=l)C) i=float(x)D) i%(-3)54 .逻辑运算符的优先级依次为()oA) | | & !B) & | !C) ! & |D) ! | &55
16、.以下运算符中优先级最低的是()。A) B) & C) D) I56 .在下列运算符中,优先级最高的运算符是()A) b)&(y二ba)的值是()。A) 8B) 1C) 5D) 072 .若有定义:int a=2, b=3; float x=3. 5, y=2. 5;则表达式(门0。(+1)/2+6n1:)*%(1“)丫 的值是()oA) 3.5 B) 3.0 C) 2.5D) 2.073 .若有定义:int b=7; float a=2. 5, c=4. 7;则表达式 a+(b/2*(int) (a+c)/2)%4 的值是 ()oA) 2.5 B) 3.5 C) 4.5D) 5.574 .若
17、有定义:int a=6, b=2;char cl=a, c2=b;则表达式 a+b%5+c2-cl 的值是()。A) 7 B) 8C) 9D)表达式错误75 .设整型变量a为5,使b不为2的表达式是()eA) b=(+a)/3 B) b=6-(a)C) b=a%2D) b=a/276 .以下程序段运行后变量a的值为()oint x=6, y=5;int a;a=(x=y+)?x:y+l;A) 0 B) 1C) 6D) 577 .若有定义:int a=l,b=2,c=3;则执行以下程序段后a,b,c的值分别为()。 if (ab) c=a;a=b;b=c;A) a=l, b=2, c=3B) a
18、=2, b=3, c=lC) a=2, b=3, c=3D) a=2, b=l, c=l78 .在C语言中,判定逻辑值为“真”的最正确的叙述是()。A) 1 B)非0的数 C)大于0的数 D)非0的整数79 .若已定义:int a=-36, b=-30, c;则语句c=ab;运行后c的值为()。A) 1 B) 0 C) . t. D) , f.81 .若有定义:int a=l, b=2, c=3;则语句+a I |+b&+c;运行后b的值为(8A) 1B) 0C) 2D) 382 .若有定义:int i, j;则表达式(i=2, j=5, i+, i+j+)的值是()oA) 7B) 8C) 9
19、D) 1083.若有定义:int 为加则表达式(好2,45,4*25+,4+1)的值是()。A) 7B) 8C) 9D) 1084.若有定义:int i=2, j=5;则表达式(i+1, j+1, (+i) + (j-)的值为(8A) 8B) 6C) 7D) 585.若有定义:int a=l,b=2, c=3;则以下程序段运行后c的值为(if(ab) c=a*b;else c=a-b;A) 2 B) 0C) 1D) -186,若已定义:int i=3, k;则语句k=(i) + (i);运行后k的值为()。A) 4 B) 5 C) 6 D) 787 .已知int a=3,b=5;则表达式a &
20、 !b的值为(A) 3 B) 2 C) 0 D) 188 .若有定义:int x=3,y=4,z=5;则值为0的表达式是()。A) x&yB) x=yC) x|y+z&y-zD) !(xy)&!z|1)89 .若有定义:int a=5, b=2, c=l;则表达式a-bc| |b=c的值是(A) 0 B) 1C) 2D) -190 . C语言中,能正确表示条件10x20的逻辑表达式是()。A) 10x10 | | x10 & 10) & (x20)91 .能正确表示数学关系式8002y2500的C语言表达式为()。A) (y=500)B) (y=500)C) 800=y=500D) (y=50
21、0)92 .若有定义:int x=3,y=4;则表达式!x| |y的值为().A) 1B) 0C) 3D) 493 .若有定义:int i=7, j=8;则表达式i=j| |iy & x!=y ); x+=y;C) if(x!=y)scanf (/z%d/z, &x);elsescanf&y);D) if(xy) x+;y+; 96 .若有定义:int x;以下不会产生死循环的是()oA) for(; (x= getchar() !=, n ; ) ; B) while(l) x +; C) for(i = 10; ; i+) ;D) for( ; ; x+= 1);97 . C语言对if嵌套
22、语句的规定:else总是与()配对。A)第一个ifB)之前最近的且尚未配对的ifC)缩进位置相同的ifD)之前最近的if98 .在c语言中while循环和do-while循环的主要区别是()。A) do-while循环体内可以使用break语句,while循环体内不能使用break语句B) do-while的循环体至少无条件执行次,while的循环体不是C) do-while循环体内可使用continue语句,while循环体内不能使用continue语句D) while的循环体至少无条件执行一次,do-while的循环体不是99 .putchar()函数的功能是向终端输出()。A)多个字符B
23、)一个字符C) 一个实型变量值D) 一个整型变量表达式100 .对于整型变量,下述if语句()与赋值语句:x=x%2=0?l:0;不等价。A) if (x%2!=0) x=0; else x=l;B) if (x%2) x=l; else x=0;C) if (x%2=0) x=l; else x=0;D) if (x%2=l) x=0; else x=l;101 .对于整型变量x,与while(!x)等价的是()eA) while(x!=0)B) while(x=0)C) while(x!=l)D) while(x)102 .对于整型变量 x 和 y,语句:for(x=0,y=0;(y!=1
24、23)&(x4);x+) y+;中的 “y+;” 被执行()oA) 4 次 B) 0 次 C) 123 次 D) 3 次103 .下列数组声明中,正确的是()A) int a5=0;B) int a=0 1 2;C) int a5=0;D) int a;104 .下列数组声明中,正确的是()oA) int a10;B) int n=10, an;C) int N=10;int aN;D) int n; scanf&n); int an;105 .已知int a10;则对a数组元素引用不正确的是()。A) a10B) a3+5C) a10-10D) a5106 .若有定义:int a5 = l,
25、 2, 3,4, 5;则语句 al=a3+a2+2-a3-l;运行后 al的 值为()。A) 6B) 5C) 1 D) 2107 .若已定义:int a13;则不能正确引用a数组元素的是().A) a0 B) a10 C) a10+3D) a13-5108 .若有定义:int a3=0,1,2;则 al的值为().A) 0B) 1 C) 2 D) 3109 .设有如下数组定义:char str8= Fujian”;则分配给数组str的存储空间是() 个字节。A) 6 B) 7 C) 8D) 9110 .有如下定义:char str32 = * a, * b 则语句:printfstr0);的输
26、出结果是()oA) abB) abcefC)abc0D) abc111 .以下合法的数组定义是(B)D)int a5=0,1,2,3,4, 5;char s=string;A) int a=*string*;C) char a = 0, 1,2, 3, 4, 5);112 .设有如下程序段:int a3 3 = 1, 0, 2, 1, 0, 2, 1, 0, 1, i, j, s=0;for(i=0;i3;i+)for(j=0;ji;j+)s=s+aij;则执行该程序段后,S的值是()oA) 0B) 1C) 2D) 3113 .有如下定义:int a 3 = 1, 2, 3, 4, 5, 6,
27、 7, 8;则数组 a 的行数是(),A) 2B) 3C) 4D)无法确定114 .以下不能对二维数组arr进行正确初始化的语句是()。A) int arr 2 3 = 0:B) int arr 3 = 1, 2, 3, 4, 5;C) int arr2 3 = 1, 2, 3,4, 5,6 ; D) int arr2 3 = 1, 3, 4,5;115 .若有定义:int a34 = l,2, 0, 1,2,3;则211的值为().A) 0 B) 1,2C) 1D) 3116 .若有定义:int a33;则表达式&a2l-a0的值为().A) 7 B) 8C) 6D) 9117 .若有定义:
28、int i=0, x=0;int a3 3 = 1, 2, 3, 4, 5, 6, 7, 8, 9;则以下程序段运行后 x 的值为().for (;i10)printf (,z%dn/z, a);elseprintf (/z%dn,z, +a);A) 2 B) 11C)3D)12127 .以下程序的运行结果是()ovoid main ()int x, y=l, z;z-1;if(z=0)Z=-Z ;elsex=y0?3:5;printf(*%dn*, x);A) -1 B) 3 C) 1D) 5128 .以下程序的运行结果是()o int fun(int array44) int j;for(
29、j=0;j4;j+) printf(%2d”, array2j);printf(n);void mainO int a4 4 = 0,1,2, 0,1, 0, 0, 4, 2, 0, 0, 5, 0, 4, 5, 0;fun (a);A) 2 0 0 5 B) 1 0 0 40 0 1 2 0 D) 0 4 5 0129 .以下程序段运行后,循环体运行的次数为()o int i=10, x;for (;i10;i+) x=x+i;A) 10B) 0C) 1D)无限130 .以下程序段运行后变量n的值为()o int i=l, n=l;for (;i3;i+) continue;n=n+i;A)
30、 4B) 3C) 2D) 113L有以下程序:void main() int i; for(i=0; i3; i+) switch(i) case 1: printf(%d, i); case 2: printf(%d”, i); default : printf(%d”, i);执行后输出结果是()。A) 011122 B) 01222C) 012020 D) 120132 .以下程序的运行结果是()o void main() (int sum = 0, item = 0;while(item =6) break;printf(%dn, sum);A) 10 B) 15C) 6D) 7133
31、 .以下程序的运行结果是()o void main()int sum = 0, item = 0; while(item 5)item+;if(item = 2) continue;sum += item;A) 10 B) 13C) 15D) 1134 .以下程序段执行后变量sum的值为()oint i, j=l, sum=0;for(i=l;i=3;i+)sum+=j;j+;A) 5B) 3C) 6 D) 4135 .以下程序的运行结果是()oinclude void main() int y=10;doy;while(-y);printf(%dn”, y);A) 1B) 2C) -1D)
32、0136,以下程序段运行后,循环体中的count+=2;语句运行的次数为()。int i,j,count=0;for(i=l;i=4;i+)for(j=l;j=i;j+) (count+=2; printf(%d ”, count);)A) 8 次B) 10 次C) 16 次 D)20 次137.如下fun函数的类型是()o fun(float x) double y; int z ;y=x * x ;z=(int)y ;return (z);)A) void B) double C) int D) float 138.若有以下宏定义:define M0D(x, y) x%y 则执行以下程序段
33、后z的值是()oint z,a=15, b=100;z=MOD(b, a);A) 100 B) 15C) 11 D) 10139 .以下叙述中,正确的是()。A) define PRICE=30”定义了与30等价的符号常量PRICEB)预编译处理命令行都必须以开头C)宏名只能包含大写字母和数字字符D)在程序的一行上可以书写几个有效的宏定义140 .以下的叙述中不正确的是()。A)宏展开不占用运行时间,只占用编译时间 B)宏名无类型C)宏名必须用大写字母表示D)预处理命令行都必须以#号开始141 .下列关于C语言函数的描述中,正确的是()A)函数的定义可以嵌套,但函数的调用不可以嵌套B)函数的定
34、义不可以嵌套,但函数的调用可以嵌套C)函数的定义和函数的调用都可以嵌套D)函数的定义和函数的调用都不可以嵌套142 .下面关于数组的叙述中,正确的是()。A)数组必须先定义,然后使用B)定义数组时,可不加类型说明符C)定义数组后,可通过赋值运算符”对该数组名直接赋值D)在数据类型中,数组属基本类型143 . C语言中数组元素下标的数据类型是()oA)实型常量B)整型常量或整型表达式C)任何类型的表达式D)字符型常量144 .在循环语句的循环体中,break语句的作用是()。A)暂停程序的运行B)结束本次循环C)继续执行break语句之后的循环体各语句D)提前结束循环,接着执行该循环后续的语句1
35、45 .以下叙述中,正确的是().A)宏展开不占用运行时间,只占用编译时间B)预编译处理命令行必须以分号结束C) 一个源程序只能有一个预编译处理命令行D)使用带参数的宏定义时,应该说明每个参数的数据类型146 .以下对C语言字符数组描述中,正确的是()A)可以用length函数计算字符数组中字符串的长度B)可以在赋值语句中通过赋值运算符=对字符数组整体赋值C)存放在字符数组中的字符串,以0作为该字符串结束标志D)字符数组只能存放字符串,不能存放字符147 .设已定义:int a4 = 0,0;则下列描述错误的是().A)数组a的每个元素都可得到初值0B)二维数组a的第一维大小为1C)数组a的行数为1D)只有元素a0 0和a0 1可得到初值0,其余元素均得不到初值0148 .在C语言中,数组名作为函数调用的实参时,传递给形参的是()。A)数组元素的个数B)数组的第一个元素值C)数组中全部元素的值D)数组的首地址149 .设有以下语句,则()是对a数组元素的不正确引用,其中int a10 = 0, 1,2, 3,4,