1、填空选择打印填空选择一、填空 共10题 (每题2分,共计20分)第1题 (2.0分) 题号:924C+语言具有面向对象方法中要求的三大特性:【1】性、继承性和【2】性。答案:=(答案1)=封装=或=多态= (答案2)=多态=或=封装第2题 (2.0分) 题号:1856 C+源程序的文件扩展名为【1】;编译后的文件扩展名为【2】。答案:=(答案1)=cpp=或=.cpp=(答案2)=obj=或=.obj第3题 (2.0分) 题号:1857C+使用预定义的插入符作用于流对象cout上,用来处理【1】输出。使用预定义的提取符作用于流对象in上,用来处理【2】输入。 答案:=(答案1)=屏幕=(答案2
2、)=键盘第4题 (2.0分) 1872赋值运算符的结合性是【1】至【2】。答案:=(答案1)=右=(答案2)=左第5题 (2.0分) 题号:1858有int a=1,b=1;执行表达式后:!(a+) & +b,则a的值为【1】,b的值为【2】。答案:=(答案1)=2=(答案2)=1第6题 (2.0分) 题号:1860若整型变量a,b,c,d中的值依次为1,4,3,2,则条件表达式 ab?a:c.答案:Y三、单项选择 共10题 (共计20分)第1题 (2.0分) 题号:478以下符号中不能作为标识符的是:【 】A:_256 B:void C:scanf D:Struct答案:B第2题 (2.0分
3、) 题号:1007如有int a=11;则表达式(a+*1/3)的值是【 】 A:0 B:3 C:4 D:12答案:B第3题 (2.0分) 题号:1302如果变量x,y已经正确定义,下列语句【 】不能正确将x,y的值进行交换:A:x=x+y;y=x-y;x=x-y; B:t=x;x=y;y=t;C:t=y;y=x;x=t; D:x=t;t=y;y=x;答案:D第4题 (2.0分) 题号:2121若有以下说明和语句,且0i10,则【 】是对数组元素的错误引用。int a =1,2,3,4,5,6,7,8,9,0,*p,i;p=a;A:*(a+i) B:ap-a C:p+i D:*(&ai)答案:
4、C第5题 (2.0分) 题号:4352在下列运算符中,优先级最低的是:( )A:| B:!= C: D:+答案:A第6题 (2.0分) 题号:1609C+语言对C语言进行了很多改进,C+语言相对于C语言的最根本的变化是【 】A:增加了一些新的运算符B:允许函数重载,并允许设置缺省参数C:规定函数说明符必须用原型D:引进了类和对象的概念答案:D第7题 (2.0分) 题号:4291下列do-while循环的循环次数为( ) int i=5; docouti-2)等价的表达式是【1】 答案:=(答案1)=x100) break; B: for(;);C:int k=0;do +k; while(k=
5、0);D:int s=36;while(s); -s;答案:B第8题 (2.0分) 题号:4018 若有说明:int a10;则对a数组元素的正确引用是_A:a10 B:a3.5 C:a(5) D:a10-10答案:D第9题 (2.0分) 题号:4159 若整型变量a、b、c、d中的值依次为:1、4、3、2.则条件表达式ab?a:cd?c:d的值为( )A:1 B:2 C:3 D:4答案:A第10题 (2.0分) 题号:4170 执行语句:for(i=1;i+4;)后;变量i的值是( )A:3 B:4 C:5 D:不定答案:C1.下列关于C+与C语言关系描述中错误的是【 】。 (A) C+是C
6、语言的超集(B) C+对C语言进行了扩充(C) C+和C语言都是面向对象的程序设计语言(D) C+包含C语言全部的语法特征2. C+对C语言做了很多改进,下列描述中【 】使得C语言发生了质变,即从面向过程变成面向对象。 (A) 增加了一些新的运算符(B) 允许函数重载,并允许设置默认参数(C) 规定函数说明必须用原型(D) 引进类与对象的概念3.下列关于面向对象概念的描述中,【 】是错误的。 (A) 面向对象方法比面向过程方法更先进(B) 面向对象方法中使用了一些面向过程中没有的概念(C) 面向对象方法完全替代了结构化程序设计方法(D) 面向对象程序方法具有封装性、继承性和多态性4.对于语句c
7、outendlx;中各个组成部分,下列叙述中错误的是【 】。 (A) cout是一个输出流对象 (B) endl的作用是输出回车换行(C) x是一个变量 (D) 称为提取运算符5.下列【 】是C+合法的标识符。(A) _256 (B) computer1 (C) case (D) 5char6下列【 】是C+合法的字符型常量。(A) 97 (B)”a” (C) t (D) a7.以下自定义变量名中,【 】是合法的。 (A) CHINA (B) byte-size (C) double (D) A+a8.下列【 】是C+合法的标识符。(A) 2op (B) -256 (C) case (D) D
8、fe9.下列【 】是C+合法的标识符。(A) foo-bar (B) _256 (C) new (D) 2b10下列整型常量的书写中,错误的是【 】。(A)0xaf (B) 0853 (C) 34 (D) OX1B11下列【 】属于float类型常量。(A) 3.14f (B) 0.0314E2 (C) 3.14L (D) 3.14 12常量的书写格式决定了常量的类型和值,0x1011是【 】。(A) 8进制整型常量 (B) 字符常量 (C) 16进制整型常量 (D) 2进制整型常量13.下列运算符中优先级最高的是【 】。 (A) ?: (B) % (C) -= (D) &14.下列C+运算符
9、中,优先级最高的是【 】。(A) + (B) * (C) = (D) *=15.在C+语言中,要求操作数必须是整型的运算符是【 】。(A) / (B) + (C)% (D)!=16下列运算符中,优先级最低的是【 】。(A)= (B)?: (C)| (D)&16如有int a=11;则表达式(a+*1/4)的值是【 】。(A) 0 (B) 2.75 (C) 3 (D) 217.若x,i都是int型变量,则执行如下表达式x=(i=1,i+5,i+)后,x的值为【 】。(A) 2 (B) 1 (C) 6 (D) 718.若x、i、j、k都是int型变量,则计算表达式x=(i=4,j=16,k=32)
10、后,x的值为【 】。 (A) 4 (B) 16 (C) 32 (D) 5219. 若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式ab?a:cd?c:d的值为【 】。 (A) 1 (B) 2 (C) 3 (D) 420.设x,y和z都是int型变量,且x=3,y=6,z=4,则下面表达式中值为0的是【 】。(A) !(xy)&!z|1) (B) x&y (C) x|y+z&y-z (D)xy21下列关于变量数据类型转换的描述中,错误的是【 】。(A) 如果a为int型变量,b为char型变量,则a+b的值为int型(B) 如果a为float型变量,b为int型变量,则a-b的
11、值为float型(C) 如果a为double型变量,b为float型变量,则a*b的值为double型(D) 如果a为int型变量,b为int型变量,则a/(double)b的值为int型22.若有如下语句:int a;cout(a=3*5,a*4),a+5)endl;则执行后的输出为【 】。(A) 20 (B) 15 (C) 65 (D) 6023.下列条件语句中,功能与其它语句不同的是【 】。(A) if(a) coutxendl;else coutyendl;(B) if(a=0) coutyendl;else coutxendl;(C) if(a!=0) coutxendl;else
12、coutyendl;(D) if(a=0) coutxendl;else coutyendl;24.下列条件语句中的描述中,【 】是正确的。 (A) if语句中至少有一个else子句(B) if语句中可以有多个else子句(C) if语句中的if体中可以是循环语句 (D) if语句中if体内不能是switch语句25.下列关于switch语句描述中,【 】是正确的。(A) switch语句中default子句只能放在最后 (B) switch语句中每个语句序列中必须有break语句(C) switch语句中case子句后面的表达式只能是整型表达式(D) switch语句中default子句可以
13、没有,也可以有一个26下列关于开关语句的描述中,错误的是【 】。(A) 开关语句中,case子句的个数是不受限制的(B) 开关语句中,case子句的语句序列中一定要有break语句(C) 开关语句中,default子句可以省略(D) 开关语句中,右花括号具有退出开关语句的功能27.下列for循环的循环体执行次数为【 】。for(int i=0,j=10;i=j=4;i+,j-) (A) 0 (B) 1 (C) 4 (D) 无限28. 执行语句:for(i=1;i+4;)后;变量i的值是【 】。(A)3 (B)4 (C)5 (D)不定29.下列for循环语句执行的次数是【 】。 for(int
14、i=0,x=0;!x&i1;-i) cout*;(A) 48 (B) 49 (C) 50 (D) 5132下列while循环语句的循环次数是【 】。 while(int i=0) i-;(A) 0 (B) 1 (C) 2 (D) 无限33.下列dowhile循环的次数是【 】。 int x=-1; dox=x*x;while(!x);(A) 无限 (B)1 (C) 2 (D)34.下列关于break语句描述中,【 】是错误的。(A) break语句可用于if语句体内,它将退出if语句(B) break语句可用于循环体内,它将退出该重循环 (C) break语句可用于switch语句中,它将退出
15、switch语句(D) break语句在一个循环体内可以出现多次35.以下叙述中正确的是【 】 (A)break语句只能用于switch语句题中 (B) continue语句的作用是使程序的执行流程跳出包含它的所有循环 (C) break 语句只能用在循环体内和switch语句体内 (D)在循环体内使用break语句和continue语句的作用相同36.已知枚举类型声明语句为:enum COLORWHITE,YELLOW,GREEN=5,RED,BLACK=10;则下列说法错误的是【 】。(A) 枚举常量WHITE的值为1 (B) 枚举常量RED的值为6 (C) 枚举常量BLACK的值为10
16、(D) 枚举常量YELLOW的值为137.若有以下说明语句: struct int a; double b;stu;则下面的叙述错误的是【 】。(A) struct是定义结构体类型的关键字(B) stu是用户自定义的结构体变量(D) a和b都是结构体成员名(D) struct stu是用户自定义的结构体类型38.在32位PC机上使用C+语言,若有如下定义: struct data int i; double f; char ch;b;则结构变量b占用内存的字节数为【 】。(A) 1 (B) 2 (C)8 (D) 1339下列关于数组概念的描述中,错误的是【 】。(A) 数组中所有元素类型是相同
17、的(B) 数组定义后,它的元素个数是可以改变的(C) 数组在定义时可以被初始化,也可以不被初始化(D) 数组元素的个数与定义时的每维大小有关40下列关于数组下标的描述中,错误的是【 】。(A)C+语言中数组元素的下标是从0开始的(B) 数组元素下标是一个整常型表达式(C) 数组元素可以用下标来表示(D) 数组元素的某维下标值应小于该维的大小值41.下列合法的数组初始化语句是【 】。(A) int a5 = 0,1,2,3,4,5;(B) char a = string;(C) int a = string(D) char a = 0,1,2,3,4,5;42.int b3=1,3,2,4,5,6,0;则b12的值为【 】。(A) 0 (B) 6 (C) 2 (D)343.下列给字符数组进行初始化中,【 】是正确的。 (A) char s33=a,x,y; (B) char s23=xyz; (C) char s1 =12345abcd; (D) char s423=xyz,mnp;44.在下列对字符数组进行初始化中,【 】是错误的。(A) char s1=”abcd”; (B) char s23=”xyz”;(C) char *p=”hello”; (D) char s324