《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 )。
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)某个对象的指针名
(完)