《C++程序设计》第一套作业及其答案
说明:本套作业涵盖第1章——第4章所学的内容。本套作业共有38道单选题,1道多选题,共41个答案,满分为100分,错一个答案扣除2.5分。
1、在一个C++程序中,main函数的位置(C)。
(A)必须在程序的开头(B)必须在程序的后面
(C)可以在程序的任何地方(D)必须在其它函数中间
2、C++程序中的语句必须以(B)结束。
(A)冒号(B)分号(C)空格(D)花括号
3、在下列八进制整型常量的表示中,(B)是正确的。
(A)0a0 (B)015 (C)080 (D)0x10
4、在下列十六进制整型常量的表示中,(C)是错误的。
(A)0x11 (B)0xaf (C)0xg (D)0x1f
5、下列正确的字符常量为(D)。
(A)“a”(B)“\0”(C)a (D)‘\101’
6、在下列运算符中,(D)优先级最低。
(A)!(B)&&  (C)!=  (D)?:
7、设i=1, j=2,则表达式i+++j的值为(C)。
(A)1 (B)2 (C)3 (D)4
8、已知i=0, j=1, k=2,则逻辑表达式
++i || --j && ++k
的值为(B)。
(A)0 (B)1 (C)2 (D)3
9、设a=1, b=2, c=3, d=4,则条件表达式a<b ? a : c<d ? c : d的值为(A)。
(A)1 (B)2 (C)3 (D)4
10、逗号表达式
(x = 4 * 5, x * 5), x + 25
的值为(D)。
(A)25  (B)20  (C)100 (D)45
11、已知int i, x, y; 在下列选项中错误的是(C)。
(A)if(x && y) i++; (B)if(x = y) i--;
(C)if(xy) i--; (D)if(x + y) i++;
-1  x<0
12、设有函数关系为 y =  0  x=0  ,下面选项中能正确表示上述关系为(C)。
1  x>0
(A)y = 1;
if(x >= 0)
if(x == 0) y = 0;
else y = -1;
(B)y = -1;
if(x != 0)
if(x > 0) y = 1;
else y = 0;
(C)if(x <= 0)
if(x < 0) y = -1;
else y = 0;
else y = 1;
(D)y = -1;
if(x <= 0)
if(x < 0) y = -1;
else y = 1;
13、假设i=2,执行下列语句后i的值为(B)。
switch(i) {
case 1: i++;
case 2: i--;
case 3: ++i; break;
case 4: --i;
default: i++;
}
(A)1 (B)2 (C)3 (D)4
14、已知int i=0, x = 0; 下面while语句执行时循环次数为(D)。
while(!x && i<3) {x++; i++;}
(A)4 (B)3 (C)2 (D)1
15、已知int i=3; 下面do_while语句执行时循环次数为(B)。
do {i--; cout << i << endl;} while(i != 1);
(A)1 (B)2 (C)3 (D)无限
16、下面for语句执行时,循环次数为(B)。
for(int i=0, j=5; i=j;) {
cout << i << j << endl;
i++; j--;
}
(A)0 (B)5 (C)10  (D)无限
17、以下为死循环的程序段是(A)。
(A)for(int x=0; x<3; x--) {x++;}
(B)int k = 0;
do {++k;} while(k>=0);
(C)int a = 5; while(a) {a--;}
(D)int i = 3; for(;i;i--);
18、以下程序段的结果是(C)。
int m=0, n=0;
if(++m || ++n)
cout << m << “,” << n << endl;
(A)0,0 (B)1,1 (C)1,0 (D)0,1
19、以下程序段的结果是(B)。
int m=0, n=0;
if(++m && ++n)
cout << m << “,” << n << endl;
(A)0,0 (B)1,1 (C)1,0 (D)0,1
20、以下程序段的结果是(C)。
int m=0, n=0;
if(m++ && n++)
m++;
cout << m << “,” << n << endl;
(A)0,0 (B)1,1 (C)1,0 (D)2,1
21、当一个函数无返回值时,函数的类型应定义为(A)。
(A)void (B)任意(C)int (D)无
22、在函数说明时,下列(D)项是不必要的。
(A)函数的类型(B)函数参数类型
(C)函数名字(D)返回值表达式
23、C++语言中规定函数的返回值的类型是由(D)。
(A)return语句中的表达式类型所决定
(B)调用该函数时的主调用函数类型所决定
(C)调用该函数时系统临时决定
(D)在定义该函数时所指定的函数类型所决定
24、在函数的返回值类型与返回值表达式的类型的描述中,错误的是(B)。
(A)函数返回值的类型是在定义函数时确定,在函数调用时是不能改变的
(B)函数返回值的类型就是返回值表达式的类型
(C)函数返回值表达式类型与返回值类型不同时,函数返回值表达式类型应转换成返回值类型
(D)函数返回值类型决定了返回值表达式的类型
25、在一个被调用函数中,关于return语句使用的描述,错误的是(D)。
(A)被调用函数中可以不用return语句
(B)被调用函数中可以使用多个return语句
(C)被调用函数中,如果有返回值,就一定要有return语句
(D)被调用函数中,一个return语句可返回多个值给调用函数
26、若有以下函数调用语句:
fun(a+b,(x,y),fun(n+k,d,(a,b)));
在此函数调用语句中,实参的个数是(A)。
(A)3 (B)4 (C)5 (D)6
27、下列(D)的调用方式是引用调用。
(A)形参是指针,实参是地址值
(B)形参和实参都是变量
(C)形参是数组名,实参是数组名
(D)形参是引用,实参是变量
28、在值调用中,要求(C)。
(A)形参和实参类型任意,个数相等
(B)实参和形参类型都完全一致,个数相等
(C)实参和形参对应的类型一致,个数相等
(D)实参和形参对应的类型一致,个数任意
29、在C++中,关于下列设置参数默认值的描述中,正确的是(C)。
(A)不允许设置参数的默认值
(B)设置参数默认值只能在定义函数时设置
(C)设置参数默认值时,应该是先设置右边的再设置左边的
(D)设置参数默认值时,应该全部参数都设置
30、要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用(A)。
(A)内联函数(B)重载函数(C)递归调用(D)嵌套调用
31、关于类和对象不正确的说法是(C)。
(A)类是一种类型,它封装了数据和操作(B)对象是类的实例
(C)一个类的对象只有一个(D)一个对象必属于某个类
32、在类定义的外部,可以被访问的成员有(C)。
(A)所有类成员(B)private或protected的类成员
(C)public的类成员(D)public或private的类成员
33、声明一个类的对象时,系统自动调用(B);撤销对象时,系统自动调用(C)。
(A)成员函数(B)构造函数(C)析构函数(D)拷贝构造函数
34、下面对构造函数的不正确描述是(B)。
(A)系统可以提供默认的构造函数
(B)构造函数可以有参数,所以也可以有返回值
(C)构造函数可以重载
(D)构造函数可以设置默认参数
35、有以下类的说明,请指出错误的地方(AB)。(此题为多选题)
class CSample {
int a = 2.5; (A)
CSample(); (B)
public:
CSample(int val); (C)
~CSample();  (D)
};
36、有关类的说法不正确的是(D)。
(A)类是一种用户自定义的数据类型
(B)只有类中的成员函数才能存取类中的私有数据
(C)在类中,如果不做特别说明,所有的数据成员和成员函数均为私有类型
(D)在类中,如果不做特别说明,所有的数据成员和成员函数均为公有类型
37、有关构造函数的说法不正确的是(D)。
(A)构造函数名字和类的名字一样
(B)构造函数在定义类的对象时自动执行
(C)构造函数无任何函数类型
(D)构造函数有且只有一个
38、有关析构函数的说法不正确的是(C)。
(A)析构函数有且只有一个
(B)析构函数无任何函数类型
(C)析构函数和构造函数一样可以有形参
(D)析构函数的作用是在对象被撤销时释放先前分配的内存空间
39、通常拷贝构造函数的参数是(C)。
(A)某个对象名
(B)某个对象的成员名
(C)某个对象的引用名逗号表达式的运算顺序
(D)某个对象的指针名
(完)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。