C程序设计练习答案.docx
《C程序设计练习答案.docx》由会员分享,可在线阅读,更多相关《C程序设计练习答案.docx(29页珍藏版)》请在冰豆网上搜索。
![C程序设计练习答案.docx](https://file1.bdocx.com/fileroot1/2022-11/16/9ca8b55c-6298-414a-ac10-f0efa0f42e5f/9ca8b55c-6298-414a-ac10-f0efa0f42e5f1.gif)
C程序设计练习答案
高等教育自学考试C++程序设计练习
一、单项选择题
1.对C++语言和C语言的兼容性,描述正确的是()
A.C++兼容CB.C++部分兼容C
C.C++不兼容CD.C兼容C++
2.C++中注释“/*”的有效范围是()
A.从“/*”开始到行尾B.从“/*”开始后不终止
C.从“/*”开始到“//”为止D.从“/*”开始到“*/”为止
3.对C++中主函数描述正确的是()
A.名称为main,可为多个B.名称不限,可为多个
C.名称为main,必须有且只能有一个D.名称不限,必须有且只能有一个
4.调用声明为intresult(inta,intb)的函数时,正确的方法是()
A.result(1,2)B.result
(1)
C.result(0.1,0.3)D.result(1,2,3)
5.在C++中使用流进行输入输出,其中用于屏幕输出的对象是()
A.cerrB.cin
C.coutD.cfile
6.如想使用std命名空间,正确的程序语句是( )
A.usingstd;B.namespacestd,
C.usingnamespace;D.usingnamespacestd;
7.无类型标识符是指()
8.下列选项不是C++关键字的是()
A.typedefB.void
C.bool
9.在编译指令中,宏定义使用哪个指令()
A.#includeB.#define
C.#ifD.#else
10.对使用关键字new所开辟的动态存储空间,释放时必须使用()
A.freeB.create
C.deleteD.realse
11.用于包含C++标准库iostream的预处理指令是()
A.#defineB.#include
C.#define‘iostream’D.#include‘iostream’
12.用于标识长整型常量的前缀或后缀是( )
A.无前后缀B.后缀L或l
C.前缀零D.前缀0x
13.从本质上看,引用是被引用变量的()
A.拷贝
14.用于标识十进制常量的前缀或后缀是()
A.无前后缀B.后缀L或l
C.前缀0D.前缀0x
15.使用下列哪个流格式控制符可以设置转换基数为十六进制( )
A.decB.oct
C.hexD.endl
16.使用下列哪个流格式控制符可设置转换基数为八进制()
A.decB.oct
C.hexD.endl
17.设intx=56;intr=x;若cout<<&x;显示0012FF7A,则cout<<&r;输出值为()
A.56B.00l2FF7A
C.0012FF7B
18.对于new类型名[size]描述正确的是( )
A.申请可以存储size个字节的空间
B.申请可以存储1个该数据类型的空间
C.申请可以存储size个该数据类型对象的空间
D.申请可以存储1个字节的空间
19.使用new创建的对象,对其生命周期描述正确的是( )
A.由系统决定B.由用户控制
C.全局生命周期D.永久存在
20.使用值传递方式将实参传给形参,下列说法正确的是()
A.形参是实参的备份B.实参是形参的备份
C.形参和实参是同一对象D.形参和实参无联系
21.设函数voidswap(inta,intb)将交换两形参数值,如有两整型变量inta=10;intb=15,则执行swap(a,b);之后,a,b值分别为( )
A.15,10B.15,15
C.10,15D.10,10
22.设函数voidsubone(int)将形参值减1,如有整形变量intb=10;则执行subone(b)后,b的值为( )
A.9B.10
C.11D.未知
23.C++中函数返回值类型不可以是( )
A.引用B.指针
C.结构D.数组
24.声明函数intFunc(inta=0,intb=3,intc=4)相当于声明了几个函数形式( )
A.1B.2
C.3D.4
25.对函数intmax(inta,intb=0,intc=0,intd=0,inte=0);下列调用方式正确的是()
A.intm=max(10,11,12,13,14);B.intm=max(10,,12,13,14);
C.intm=max(10,1l,,13,14);D.intm=max(10,11,12,,14);
26.在函数调用时,如某一默认参数要指明一个特定值,则有()
A.其之前所有参数都必须赋值B.其之后所有参数都必须赋值
C.其前、后所有参数都必须赋值D.其前、后所有参数都不必赋值
27.下面关于数组的初始化正确的是()
A.charstr[]={'a','b','c'};
B.charstr[2]={'a','b','c'};
C.charstr[1][2]={{'a','b'},{'e','d'}};
D.charstr[][]={'a','b','c'};
28.设存在函数intmax(int,int)返回两参数中较大值,若求22,59,70三者中最大值,下列表达式不正确的是()
A.intm=max(22,max(59,70));B.intm=max(max(22,59),70);
C.intm=max(22,59,70);D.intm=max(59,max(22,70));
29.声明函数为内联函数时所使用的关键字为()
A.const
30.包含哪种语句的函数不能声明为内联函数()
A.变量定义B.if……else
C.位操作
31.下列哪个类型函数不适合声明为内联函数()
A.函数体语句较多B.函数体语句较少
C.函数执行时间较短D.函数执行时间过长
32.intFunc(int,int);不可与下列哪个函数构成重载()
A.intFunc(int,int,int);B.doubleFunc(int,int);
C.doubleFunc(double,double);D.doubleFunc(int,double);
33.决定C++语言中函数的返回值类型的是()
34.函数int&min(int&,int&)返回参数中较小者,设有两整型变量inta=10;intb=15;
在执行语句min(a,b)--;之后,a,b值分别为()
A.9,14B.9,15
0,14D.10,15
40.函数intsum(inta=l,intb=1,intc=3)可与下列哪个函数同时声明()
A.doublesum(int);B.charsum(int,int);
C.intsum(double);D.intsum(int,int,int);
41.函数模板templatevoidFunc(T,T)可具有下列哪种实例化形式()
A.voidFunc(float,int)B.voidFunc(char,char)
C.voidFunc(int,double)D.voidFunc(bool,float)
42.声明函数模板的关键字是()
A.inlineB.template
C.constD.short
43.C++中专门定义一个仅在模板中使用的参数类型的关键字是( )
A.constB.inline
C.shortD.typename/class
44.对类中声明的变量,下列描述中正确的是()
A.属于全局变量
B.只属于该类
C.属于该类,某些情况下也可被该类不同实例所共享
D.任何情况下都可被该类所有实例共享
45.基类private成员,通过public派生,其在派生类中为()
A.privateB.protected
C.publicD.不可访问
46.如没有使用private关键字定义类的数据成员,则默认为()
A.privateB.public
C.protectedD.friend
47.类的私有成员可在何处访问()
A.通过子类的对象访问B.本类及子类的成员函数中
C.通过该类对象访问D.本类的成员函数中
48.如果没有为一个类定义任何构造函数的情况下,下列描述正确的是()
A.编译器总是自动创建一个不带参数的构造函数
B.这个类没有构造函数
C.这个类不需要构造函数
D.该类不能通过编译
49.构造函数用于()
A.定义对象B.初始化对象
C.清除对象D.普通计算
50.析构函数被调用的时间点是( )
A.对象被创建时B.对象被销毁时
C.不会被调用D.主函数被调用时
51.一个类可包含析构函数的个数是()
A.0个B.1个
C.至少一个D.0个或多个
52.this指针存在的目的是()
A.保证基类公有成员在子类中可以被访问
B.保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码
C.保证基类保护成员在子类中可以被访问
D.保证基类私有成员在子类中可以被访问
53.下列关于类的权限的描述错误的是()
A.类本身的成员函数只能访问自身的私有成员
B.类的对象只能访问该类的公有成员
C.普通函数不能直接访问类的公有成员,必须通过对象访问
D.一个类可以将另一个类的对象作为成员
54.设类A将其它类对象作为成员,则建立A类对象时,下列描述正确的是()
A.A类构造函数先执行B.成员构造函数先执行
C.两者并行执行D.不能确定
55.对象的构造函数调用顺序取决于( )
A.对象成员在初始化列表中给出的顺序
B.对象成员在类中声明的顺序
C.对象成员与在初始化列表中顺序和类中声明顺序均有关
D.随机顺序
56.下列描述错误的是()
A.在创建对象前,静态成员不存在B.静态成员是类的成员
C.静态成员不能是虚函数D.静态成员函数不能直接访问非静态成员
57.下列访问公有静态成员的方式,错误的是()
C.对象指针->静态成员名
58.下列对静态成员函数描述正确的是( )
A.静态成员函数中可使用1个this指针
B.静态成员函数中不能使用this指针
C.静态成员函数中可使用多个this指针
D.静态成员函数中只可使用1个that指针
59.友元的声明可出现在()
A.类的私有部分B.类的公有部分
C.类的保护部分D.类的任何部分
60.在下列派生中,子类和父类间是isa关系的是( )
A.privateB.protected
C.publicD.publish
61.面向对象不仅进行功能抽象,还要进行( )
A.动态抽象B.消息抽象
C.数据抽象D.算法抽象
62.下列访问成员的方式哪个是正确的()
.对象成员名
C.对象名→对象成员名D.类名→对象成员名
63.对类A,复制构造函数的原型是()
A.A:
:
A(constA&);B.A:
:
A(constA*);
C.A:
:
A(constA);D.A:
:
A();
64.假定MyClass为一个类,则该类的复制构造函数的声明语句为()
A.MyClass&(MyClassx);B.MyClass(MyClassx);
C.MyClas