大一学期C++题库.docx
- 文档编号:16291660
- 上传时间:2023-07-12
- 格式:DOCX
- 页数:107
- 大小:66.17KB
大一学期C++题库.docx
《大一学期C++题库.docx》由会员分享,可在线阅读,更多相关《大一学期C++题库.docx(107页珍藏版)》请在冰点文库上搜索。
大一学期C++题库
2012年大学C++期末考试题库
一、单选题:
1.能作为C++程序的基本单位是( C)。
A.字符 B.语句C.函数D.源程序文件
2.程序中主函数的名字为(A)。
A. main B. MAIN C. Main D.任意标识符
3.关于C++与C语言的关系的描述中,(D)是错误的。
A.C语言是C++的一个子集;B. C语言与C++是兼容的;ﻩ
C.C++对C语言进行了一些改进;ﻩD.C++和C语言都是面向对象的
4.可用作C++语言用户标识符的一组标识符是( B)。
A.void define+WORD B.a3_b3 _123 YN
C.for -abc Case D.2a DO sizeof
5.存储以下数据,占用存储字节最多的是( D)。
A. 0 B.‘0’C. “0” D.0.0
6.设inta=12;则执行完语句a+=a*a;后,a的值是(C )。
A.12 B. 144 C. 156 D.288
7.假设在程序中 a、b、c均被定义成整型,所赋的值都大于1,则下列能正确表示代数式
的表达式是( D )。
A.1.0/a*b*c B.1/(a*b*c) C.1/a/b/(float)c D.1.0/a/b/c
8.以下说法中正确的是(B)。
A. C++程序总是从第一个定义的函数开始执行
B. C++程序总是从main函数开始执行
C.C++函数必须有返回值,否则不能使用函数
D. C++程序中有调用关系的所有函数必须放在同一个程序文件中
9.下面有关构造函数的描述中,正确的是(B)。
A.构造函数可以带有返回值 B.构造函数的名字与类名完全相同
C.构造函数必须带有参数 D.构造函数必须定义,不能缺省
10.10.在声明类时,下面的说法正确的是( )。
A.可以在类的声明中给数据成员赋初值
B. 数据成员的数据类型可以是register
C.private,public,protected可以按任意顺序出现
D.没有用private,public,protected定义的数据成员是公有成员
11.在下面有关析构函数特征的描述中,正确的是(A)。
A. 一个类可以有多个析构函数 B.析构函数与类名完全相同
C. 析构函数不能指定返回类型D.析构函数可以有一个或多个参数
12.构造函数是在(B )时被执行的。
A.程序编译 B. 创建对象 C. 创建类 D.程序装入内存
13.下面有关静态成员函数的描述中,正确的是(B )
A.在静态成员函数中可以使用this指针
B. 在建立对象前,就可以为静态数据成员赋值
C.静态成员函数在类外定义是,要用static前缀
D.静态成员函数只能在类外定义
14.下面有关友员函数的描述中,真确的说法是(A)
A.友员函数是独立于当前类的外部函数
B.一个友员函数不可以同时定义为两个类的友员函数
C.友员函数必须在类的外部进行定义
D.在类的外部定义友员函数时必须加上friend关键字
15.友员的作用之一是(A )
A.提高程序的运行效率B.加强类的封装
C.实现数据的隐蔽性 D.增加成员函数的种类
16.使用派生类的主要原因是(A )
A.提高代码的可重用性 B. 提高程序的运行效率
C.加强类的封装性 D.实现数据的隐藏
17.在C++中继承方式有几中( C)
A.1 B.2 C. 3 D.4
18.假设已经定义好了类student,现在要定义类derived,它是从student私有派生的,则定义类derived的正确写法是( D )
A.class derived:
:
studentprivate{ //………….}
B. classderived:
:
student public{//………….}
C.class derived:
:
publicstudent{ //………….}
D.classderived:
:
privatestudent{//………….}
19.派生类的对象对它的基类成员中(C)是可以访问的。
A.公有继承的公有成员;ﻩ B.公有继承的私有成员;
C.公有继承的保护成员; D.私有继承的公有成员。
20.类中定义的成员默认为(A)访问属性。
A.publicﻩB.private ﻩC.protectedD.friend
21.下列存储类标识符中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用(A)合适。
A.内联函数;B.重载函数; C.递归调用;D.嵌套调用。
22.C++对C语言作了很多改进,下列描述中(D)使得C语言发生了质变,从面向过程变成了面向对象。
A.增加了一些新的运算符; B.允许函数重载,并允许设置缺省参数;
C.规定函数说明必须用原型; D.引进了类和对象的概念;
23.按照标识符的要求,(A)符号不能组成标识符。
A.连接符 B.下划线 C.大小写字母 D.数字字符
24.下列变量名中,( A)是合法的。
ACHINA Bbyte-sizeCdouble DA+a
25.下列各种函数中,(C)不是类的成员函数。
A 构造函数B 析构函数 C 友元函数D拷贝构造函数
26.下列(A )是正确的语句。
A; B a=17 C x+yD cout<<"\n"
27.不能作为函数重载判断的依据的是(B)
A.返回类型 B.const C.参数个数 D.参数类型
28.通常,拷贝构造函数的参数是(C)
A.某个对象名 B.某个对象的成员名
C.某个对象的引用名 D.某个对象的指针名
29.下面对静态数据成员的描述中,正确的是(C)
A类的不同对象有不同的静态数据成员值
B 类的每个对象都有自己的静态数据成员
C静态数据成员是类的所有对象共享的数据
D静态数据成员不能通过类的对象调用
30.假定AB为一个类,则执行ABx;语句时将自动调用该类的(B)
A.有参构造函数B.无参构造函数 C.拷贝构造函数 D.赋值构造函数
31.C++程序从上机到得到结果的几个操作步骤依次是( B )。
A.编译、编辑、连接、运行 B. 编辑、编译、连接、运行
C.编译、运行、编辑、连接 D. 编辑、运行、编辑、连接
32.假定一条定义语句为“int a[10],x,*p=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的语句为(A )。
A.x=p[3]; B. x=*(a+3); C. x=a[3];D.x=*p+3;
33.关于封装,下列说法中不正确的是(D)。
A.通过封装,对象的全部属性和操作结合在一起,形成一个整体
B.通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见)
C.通过封装,每个对象都成为相对独立的实体
D. 通过封装,对象的属性都是不可见的
34.预处理命令在程序中都是以( B)符号开头的。
A.* B.# C.& D.@
35.存储以下数据,占用存储字节最少的是(B )。
A. 0B.‘0’ C.“0” D. 0.0
36.程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( D)符号作为分隔符。
A.空格或逗号 B.逗号或回车C. 逗号或分号 D.空格或回车
37.假定变量m定义为“intm=7;”,则定义变量p的正确语句为(B)。
A.intp=&m; B.int*p=&m; C.int&p=*m; D.int *p=m;
38.下面的哪个保留字不能作为函数的返回类型?
C 。
A. void B. int C. new D.long
39.采用重载函数的目的是(B )。
A.实现共享B.减少空间 C.提高速度 D.使用方便,提高可读性
40.假定AB为一个类,则(C )为该类的拷贝构造函数的原型说明。
A.AB(ABx);B.AB(intx); C.AB(AB&x);D.voidAB(AB&x);
41、 C++对C语言作了很多改进,下列描述中(D )使得C语言发生了质变,从面向过程变成了面向对象。
A、增加了一些新的运算符;B、允许函数重载,并允许设置缺省参数;
C、规定函数说明必须用原型;D、引进了类和对象的概念;
42、所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是(A)。
A.类B.对象C.函数体 D.数据块
43、关于new运算符的下列描述中,(C )是错误的。
A、 它可以用来动态创建对象和对象数组;
B、使用它创建的对象或对象数组可以使用运算符delete删除;
C、使用它创建对象时要调用构造函数;
D、使用它创建对象数组时必须指定初始值;
44、(D)不是构造函数的特征。
A、构造函数的函数名与类名相同; B、构造函数可以重载;
C、构造函数可以设置缺省参数;D、构造函数必须指定类型说明。
45、假定一个类的构造函数为B(int x,int y){a=x--;b=a*y--;},则执行Bx(3,5);语句后,x.a和x.b的值分别为(C)
A、3和5B、5和3C、 3和15 D、20和5
46、 关于成员函数特征的下列描述中,( A)是错误的。
A、成员函数一定是内联函数; B、成员函数可以重载;
C、成员函数可以设置缺省参数值; D、成员函数可以是静态的;
47、在公有继承的情况下,基类成员在派生类中的访问权限(B)。
A、受限制 B、保持不变 C、受保护 D、不受保护
48、友元的作用是(A)。
A、提高程序的运用效率; B、加强类的封装性;
C、实现数据的隐藏性; D、增加成员函数的种类;
49、在C++中,关于下列设置缺省参数值的描述中,(B)是正确的。
A、不允许设置缺省参数值;
B、在指定了缺省值的参数右边,不能出现没有指定缺省值的参数;
C、只能在函数的定义性声明中指定参数的缺省值;
D、设置缺省参数值时,必须全部都设置;
50、关于delete运算符的下列描述中,( C)是错误的。
A、它必须用于new返回的指针;
B、使用它删除对象时要调用析构函数;
C、对一个指针可以使用多次该运算符;
D、指针名前只有一对方括号符号,不管所删除数组的维数。
51、const int*p说明不能修改( C)。
A、p指针; B、p指针指向的变量;
C、p指针指向的数据类型;D、上述A、B、C三者;
52、当需要打开A盘上的以xxk.dat文件用于输入时,则定义文件流对象的语句为(B)。
A、fstreamfin(“A:
xxk.dat”,1) B、ifstreamfin(“A:
xxk.dat”,ios:
:
nocreate)
C、ofstream fin(“A:
xxk.dat”) D、ifstreamfin(“A:
xxk.dat”,ios:
:
app)
53、派生类的对象对它的基类成员中(A)是可以访问的。
A、公有继承的公有成员; B、公有继承的私有成员;
C、公有继承的保护成员;D、私有继承的公有成员;
54、假定一个字符串的长度为n,则定义存储该字符串的字符数组的长度至少为(C)。
A、n-1 B、n C、n+1 D、n+2
55、在int a=3;*p=&a;中,*p的值是( D)。
A、变量a的地址值 B、无意义 C、变量p的地址值 D、3
56、下列常量中,(D)不是字符常量。
A、’\005’B、’\n’ C、’c’ D、“a”
57、在inta=3,*p=&a;中,*p的值是(D)。
A)变量a的地址值 B)无意义 C)变量p的地址值 D)3
58、以下4个选项中,不能看作一条语句的是(B)。
A) if(b==0)m=1;n=2; B)a=0,b=0,c=0; C) if(a>0); D){;}
59、(D )不是构造函数的特征。
A)构造函数的函数名与类名相同 B)构造函数可以重载
C)构造函数可以设置缺省参数 D)构造函数必须指定类型说明
60、以下程序段中与语句k=a>b?
1:
0;功能等价的是(D)。
A)if(a>b)k=1; B)if(a>b)k=0
C)if(a>b)k=1; D)if(a
61、下列常量中,( D)不是字符常量。
A)’\005’ B)’\n’ C)’c’D)"a"
62、表示“x大于1而小于10”的逻辑表达式是(B)。
A)1<x<10 B)x>1&&x<10 C)!
(x<=1||x>=10) D)x>1||x<10
63、关于成员函数特征的下列描述中,( A)是错误的。
A)成员函数一定是内联函数 B)成员函数可以重载
C)成员函数可以设置缺省参数值 D)成员函数可以是静态的
64、有以下程序
#include voidmain() {inti,s=0; for(i=1;i<10;i+=2)s+=i; cout<<s;} 程序执行后的输出结果是(C)。 A)自然数1~9的累加和 B)自然数1~10的累加和 C)自然数1~9中的奇数之和 D)自然数1~10中的偶数之和 65、设有定义: intn=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是(D)。 A)p=1; B)*q=2; C)q=p; D) *p=5; 66、( A)能正确输出结果: C++。 A) chars[]="C++";cout<<s< B)chars[3]="C++";cout< C)char s[3]={'C','+','+','\0'};cout< D)char s[3]={'C','+','+'};cout< 67、有以下程序段 inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a,b; b=p[5]; b中的值是(B)。 A)5 B)6 C) 8 D) 9 68、有以下程序 #include<iostream.h> voidmain() { char*p[10]={"abc","aabdfg","dcdbe","abbd","cd"}; cout< } 执行后输出结果是 B A)dcdbe B) abbd C)abc D) abb 69、下列静态数据成员的特性中,(C)是错误的。 A)说明静态数据成员时前边要加修饰符static B) 静态数据成员要在类体外进行初始化 C)静态数据成员不是所有对象所共用的 D)引用静态数据成员时,要在其名称前加<类名>和作用域运算符 70、有以下语句 structS {intg; charh;}T; 则下面叙述中不正确的是(C)。 A)S是结构体名 B)该结构体包含2个成员 C)S是struct类型的变量D)T是structS类型的变量 71、派生类的对象对它的基类成员中(A)是可以访问的。 A)公有继承的公有成员 B)公有继承的私有成员 C)公有继承的保护成员 D)私有继承的公有成员 72、实现运行时的多态性用 。 D A、重载函数B、构造函数C、析构函数 D、虚函数 73.下列变量名中,(A )是合法的。 A.CHINAB.byte-sizeC.double D.A+a 74.在intb[][3]={{1},{3,2},{4,5,6},{0}};b[2][2]的值是(D)。 A.0 B.2ﻩ C.5 D.6 75.下列各运算符中,(B)优先级最高。 A.+(双目)B.*(单目)C.<= D.*= 76. 下列for循环的次数为(B)。 for(inti(0),x=0;! x&&i<=5;i++) A.5B. 6ﻩ C .1 D. 无限 77.下述关于break语句的描述中,(C)是正确的。 A.break语句可用于循环体内,它将退出该重循环。 B.ﻩbreak语句可用于开关语句中,它将退出开关语句。 C.break语句可用于if体内,它将退出if语句。 D.break语句在一个循环体内可以出现多次。 78.在一个被调用函数中,关于return语句使用的描述,(D)是错误的。 A.ﻩ被调用函数中可以不用return语句。 B.ﻩ被调用函数中可以使用多个return语句。 C.被调用函数中,如果有返回值,就一定要有return语句。 D.被调用函数中,一个return语句可返回多个值给调用函数。 79. 在C++中,关于下列设置参数默认的描述中,( C)是正确的。 A.不允许设置参数的默认值。 B.设置参数默认值只能在定义函数时设置。 C.ﻩ设置参数默认值时,应该是先设置右边的再设置左边的。 D.ﻩ设置参数默认值时,应该全部参数都设置。 80.下列存储类标识符中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用(A )合适。 A. 内联函数B.重载函数ﻩ C. 递归调用 D. 嵌套调用 81.下列的各类函数中,(C)不是类的成员函数。 A. 构造函数 B.析构函数 ﻩC.友元函数D.拷贝初始化构造函数 82.ﻩ(D)不是构造函数的特征 A.构造函数的函数名与类名相同 B.构造函数可以重载 C.ﻩ构造函数可以设置缺省参数 D.构造函数必须指定类型说明 83.ﻩf1(int)是类A的公有成员函数,p是指向成员函数f1()的指针,采用(C)是正确的。 A.ﻩp=f1B.p=A: : f1 C.p=A: : f1() D. p=f1() 84.下列定义中,(A)是定义指向数组的指针p。 A.ﻩint*p[5] B.int(*p)[5] C.ﻩ(int*)p[5] D.int*p[] 85.循环while(inti=0) i--;执行次数是(A )。 A.0 B.1 C.5 D. 无限 86.设intx;,则经过( C)后,语句*px=0;可将x值置为0。 A. int*px; B.intconst*px=&x; C.int*const px=&x; D.constint * px=&x; 87.设voidf1(int*m,long&n);int a;longb;则以下调用合法的是(B)。 A. f1(a,b); B. f1(&a,b); C.f1(a,&b); D.f1(&a,&b) 88.关于对象概念的描述中,(A)是错误的。 A.对象就是C语言中的结构变量; B. 对象代表着正在创建的系统中的一个实体; C.对象是一个状态和操作(或方法)的封装体; D.对象之间的信息传递是通过消息进行的; 89.在下列double型常量表示中,(A)是错误的。 A.E15; B..35;ﻩ C.3E5;ﻩ D.3E-5 90. 下列给字符数组进行初始化中,(A )是正确的。 A. chars1[]="12345abcd"; B.chars2[3]="xyz"; C. chars3[][3]={‘a’,’x’,’y’}; D.chars4[2[3]={"xyz","mnp"}; 91.对于int*pa[5];的描述,(D)是正确的。 A.pa是一个指向数组的指针,所指向的数组是5个int型元素; B.pa是一个指向某个数组中第5个元素的指针,该元素是int型变量; C.ﻩpa[5]表示某个数组的第5个元素的值; D.pa是一个具有5个元素的指针数组,每个元素是一个int型指针; 92.下列各运算符中,(A)优先级最低。 A.? : B. | C.|| D.! = 93.下列for循环的循环体执行次数为(D)。 for(inti(0),j(10);i=j=4;i++,j--) A.0; B. 1;ﻩC.4;ﻩD.无限; 94. 下述关于开关语句的描述中,(A)是正确的。 A.开关语句中default子句可以没有,也可以有一个; B.ﻩ开关语句中每个语句序列中必须有break语句; C.开关语句中default子句只能放在最后; D.开关语句中case子句后面的表达式可以是整形表达式。 95. 下列存储类标识符中,(C)的可见性与存在性不一值。 A. 外部类;ﻩB. 自动类;ﻩ C.内部静态类; D.寄存器类。 96.下述静态数据成员的特征中,(D)是错误的。 A.说明静态数据成员时前边要加修饰符static; B.ﻩ静态数据成员要在类体外进行初始化; C.ﻩ引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符; D.ﻩ静态数据成
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大一 学期 C+ 题库