地大《C++程序设计》作业一
共30道题 总分:100分
一、单选题(共10题,30分)
1.下列运算符中,优先级最高的是( A )。
A、*(双目)
B、||
C、>>
D、%=
2.当一个函数没有返回值时,该函数类型应说明为( A )。
A、void
B、int
C、无
D、任意
3.下列关于数组下标的描述中,错误的是( B )。
A、C++语言中数组元素的下标是从0开始的
B、数组元素下标是一个整常型表达式
C、数组元素可以用下标来表示
D、数组元素的某维下标值应小于该维的大小值
4.下列关于C++程序中使用提取符和插入符的输入/输出语句的描述中,错误的是( C )。
A、提取符是对右移运算符(>>)重载得到的
B、插入符是对左移运算符(<<)重载得到的
C、提取符和插入符都是双目运算符,它们要求有两个操作数
D、提取符和插入符在输入/输出语句中不可以连用
5.下列关于开关语句的描述中,错误的是( B )。
A、开关语句中,case子句的个数是不受限制的
B、开关语句中,case子句的语句序列中一定要有break语句
C、开关语句中,default子句可以省略
D、开关语句中,右花括号具有退出开关语句的功能
6.已知:int a[ ]={1,2,3,4,5},*p=a;在下列数组元素地址的表示中,正确( C )。
A、&(a+1)
B、&(p+1)
C、&p[2]
D、*p++
7.下列运算符中,不能用于浮点数操作的是( D )。
A、++
B、+
C、*=
D、&(双目)
8.下列关于数组维数的描述中,错误的是( C )。
A、定义数组时必须将每维的大小都明确指出
B、二维数组是指该数组的维数为2
C、数组的维数可以使用常量表达式
D、数组元素个数等于该数组的各维大小的乘积
9.已知:int a=1,b=2,*p[2];下列表达式中正确的是( C )。
A、p=&a
B、p=&b
C、p[0]=&a,p[1]=&b
D、p[ ]={&a,&b};
10.已知:int a(5),&ra=a;下列描述中,错误的是( D )。
A、ra是变量a的引用,即为变量的别名
B、ra的值为5
C、ra的地址值为&a
D、改变ra的值为10,变量a值仍为5
二、多选题(共10题,40分)
1.若有定义: char *str[]={“one”,”two”,”three”},**p=str; 则可以表示出字符’t’的表达是 ( )。
A、*str+2
B、*str[2]
C、*(p+1)
D、**++p
2.以下为不合法的十六进制数是 ( )。
A、0x2A
B、0x11Au
C、0X0
D、3A
3.若有以下定义和语句 : int w[2][3],(*pw)[3]; pw=w; 则对 w 数组元素合法引用是 ( )。
A、pw[0][0]
B、*(pw[1]+2)地大答案请进:opzy.net或请联系微信:1095258436
C、*(w[0]+2)
D、*(pw+1)[2]
4.有以下语句:char str[4][12]={“aaa”,”bbbb”,”ccccc”,”dddddd”},*strp[4];int i;for(i=0;i< 4;i++) strp[i]=str[i];( )是对字符串的正确引用,其中 0≤ k< 4。
A、strp[k]
B、*strp
C、str[k]
D、strp
5.已知 x, y, z 是整型变量,则下列选项中正确的是 ( )。
A、if (x&&y) cout<<”x&&y”;
B、if (x=y) cout<<”x=y”;
C、if (x#y) cout<<”x#y”;
D、if(x<>y) cout<<”x<>y”;
6.若有说明 “int x=3, y[3][3];” ,则对 y 数组元素的非法引用是 ( )。
A、y[0][x]
B、y[x][2]
C、y[2][1+1]
D、y[1][3-x]
7.以下叙述中正确的是( )。
A、在一个函数内定义的变量只在本函数范围内有效
B、在一个函数内的复合语句中定义的变量在本函数范围内有效
C、在不同的函数中可以使用相同名字的变量
D、函数中的形式参数是局部变量
8.设有如下定义 :int (*ptr)();则以下叙述中不正确的是( )。
A、ptr 是指向一维组数的指针变量
B、ptr 是指向 int 型数据的指针变量
C、ptr 是指向函数的指针 ,该函数返回一个 int 型数据
D、ptr 是一个函数名 ,该函数的返回值是指向 int 型数据的指针
9.若 x 是整型变量, pb 是基类型为整型的指针变量,则不正确的赋值表达式是 ( )。
A、*pb=&x;
B、pb=&x5
C、pb=x;
D、*pb=*x
10.下列正确的转义字符是( )
A、’ \ ‘
B、’\0′
C、’\\’
D、’074′
三、判断题(共10题,30分)
1.虚基类是用来解决多继承中公共基类在派生类中只产生一个基类子对象的问题 .
A、对
B、错
2.可以在类的构造函数中对静态数据成员进行初始化 .
A、对
B、错
3.在私有继承中 ,基类中只有公有成员对派生类是可见的 .
A、对
B、错
4.指向对象数组的指针不一定必须指向数组的首元素 .
A、对
B、错
5.派生类是从基类派生出来 ,它不能再生成新的派生类 .
A、对
B、错
6.在公有继承中 ,基类中的公有成员和私有成员在派生类中都是可见的 .
A、对
B、错
7.const char *p 说明了 p 是指向字符串常量的指针 .
A、对
B、错
8.单继承情况下 ,派生类中对基类成员的访问也会出现二义性 .
A、对
B、错
9.多继承情况下 ,派生类的构造函数中基类构造函数的执行顺序取决于定义派生类时所指定的各基类的顺 序 .
A、对
B、错
10.一个类的构造函数中可以不包含对其子对象的初始化 .
A、对
B、错
地大《C++程序设计》作业一
共30道题 总分:100分
一、单选题(共10题,30分)
1.已知:int b[3][5]={0};下列数组元素值的表示中,错误的是( D )。
A、**(b+1)
B、(*(b+1))[2]
C、*(*(b+1)+1)
D、*(b+2)
2.下列关于设置函数默认的参数值的描述中,错误的是( C )。
A、可对函数的部分参数或全部参数设置默认值
B、在有函数说明时,默认值应设置在函数说明时,而不是定义时
C、设置函数默认参数值时,只可用常量不可用含有变量的表达式
D、设置函数参数默认值应从右向左设置
3.下列关于变量存储类的描述中,错误的是( C )。
A、任何变量定义后都具有一个确定的存储类
B、变量的存储类确定了变量的作用域和寿命
C、定义变量时没有存储类说明符者一律为自动类
D、内部静态类变量和外部静态类变量的存储类说明符都是static
4.下列关于定义一个指向double型变量的指针,正确的是( B )。
A、int a(5);double *pd=a;
B、double d(2.5),*pd=&d;
C、double d(2.5),*pd=d;
D、double a(2.5),pd=d;
5.已知:int a=1,b=2,*p[2];下列表达式中正确的是( C )。
A、p=&a
B、p=&b
C、p[0]=&a,p[1]=&b
D、p[ ]={&a,&b};
6.下列运算符中,不能用于浮点数操作的是( D )。
A、++
B、+
C、*=
D、&(双目)
7.已知:int b(5),下列表达式中,正确的是( D )。
A、b=”a”
B、++(b-1)
C、b%2.5
D、b=3,b+1,b+2
8.下列关于开关语句的描述中,错误的是( B )。
A、开关语句中,case子句的个数是不受限制的
B、开关语句中,case子句的语句序列中一定要有break语句
C、开关语句中,default子句可以省略
D、开关语句中,右花括号具有退出开关语句的功能
9.已知:int a[3][4],(*p)[4];下列赋值表达式中,正确的是( A )。
A、p=a+2
B、p=a[1]
C、p=*a
D、p=*a+2
10.下列关于被调用函数中return语句的描述中,错误的是( D )。
A、一个函数中可以有多条return语句
B、return语句具有返回程序控制权的作用
C、函数通过return语句返回值时仅有一个
D、一个函数中有且仅有一条return语句
二、多选题(共10题,40分)
1.以下叙述中正确的是( )。
A、在一个函数内定义的变量只在本函数范围内有效
B、在一个函数内的复合语句中定义的变量在本函数范围内有效
C、在不同的函数中可以使用相同名字的变量
D、函数中的形式参数是局部变量
2.以下说法中不正确的是 ( )。
A、C++语言程序总是从第一个函数开始执行
B、C++语言程序总是从 main() 函数开始执行
C、C++语言程序中的 main() 函数必须放在程序的开始部分
D、在 C++语言程序中 ,要调用的函数必须在 main() 函数中定义
3.下列语句中不符合 C 语言语法的赋值语句是( )。
A、a=7+b+c=a+7;
B、a=7+b++=a+7;
C、a=7+b,c=a+7;3
D、a=7+b,b++,a+7
4.C 语言规定,有关 main 函数参数的描述不正确的是( )。
A、只能有 0 个
B、只能有 0 个或一个
C、只能有 0 个或 2 个
D、可有任意个
5.若有以下说明和语句,请选出哪个是对 c 数组元素的不正确引用( )。int c[4][5], (*cp)[5];cp=c;
A、*(cp+1)+3
B、cp+1
C、*(cp+3)
D、*(*cp+2)
6.有以下语句:char str[4][12]={“aaa”,”bbbb”,”ccccc”,”dddddd”},*strp[4];int i;for(i=0;i< 4;i++) strp[i]=str[i];( )是对字符串的正确引用,其中 0≤ k< 4。
A、strp[k]
B、*strp
C、str[k]
D、strp
7.若变量已正确定义并赋值,下面不符合 C 语言语法的表达式是( )。
A、a:=b+1
B、a=b=c+2
C、int 18.5%3
D、a=a+7=c+b
8.若有以下定义和语句 : int w[2][3],(*pw)[3]; pw=w; 则对 w 数组元素合法引用是 ( )。
A、pw[0][0]
B、*(pw[1]+2)
C、*(w[0]+2)
D、*(pw+1)[2]
9.若有以下的定义: “int x[2][3];” ,能正确表示 x 数组元素地址的表达式是( )。
A、&x[2][3]
B、x[0]
C、x[2]
D、x[1]
10.以下叙述中不正确的是( )。
A、函数中的形式参数是局部变量
B、在一个函数内的复合语句中定义的变量在本函数范围内有效
C、在一个函数内定义的变量只在本函数范围内有效
D、函数的形式参数不可以说明为 register 变量
三、判断题(共10题,30分)
1.T象数组的元素可以是不同类的对象 .
A、对
B、错
2.构造函数和析构函数都不能重载 .
A、对
B、错
3.构造函数可以被继承 .
A、对
B、错
4.一维对象指针数组的每个元素应该是某个类的对象的地址值 .
A、对
B、错
5.说明或定义对象时 , 类名前面不需要加 class 关键字 .
A、对
B、错
6.在私有继承中 ,基类中所有成员对派生类的对象都是不可见的 .
A、对
B、错
7.派生类是从基类派生出来 ,它不能再生成新的派生类 .
A、对
B、错
8.一个类的构造函数中可以不包含对其子对象的初始化 .
A、对
B、错
9.const char *p 说明了 p 是指向字符串常量的指针 .
A、对
B、错
10.一个能够更新的变量使用在一个不能被更新的环境中是不破坏类型保护的 ,反之亦然 .
A、对
B、错
地大《C++程序设计》作业一
共30道题 总分:100分
一、单选题(共10题,30分)
1.下列表达式中,其值不为逻辑值的是( A )。
A、算术表达式
B、关系表达式
C、逗号表达式
D、逻辑表达式
2.下列常量中,十六进制int型常量是( A )。
A、0x5f
B、x2a
C、46
D、7a
3.函数返回值的类型是由( B )决定的。
A、调用该函数的调用函数的类型
B、定义该函数时所指定的类型
C、return语句中表达式的类型
D、接收函数返回值的变量或对象的类型
4.下列关于初始值表的描述中,错误的是( C )。
A、数组可以使用初始值表进行初始化
B、初始值表是用一对花括号括起的若干个数据项组成的
C、初始值表中数据项的个数必须与该数组的元素个数相等
D、使用初始值表给数组初始化时,没有被初始化的元素都具有默认值
5.已知:char ss[ ][6]={“while”, “for”, “else”, “break”};输出显示”reak” 字符串的表达式是(B)。
A、ss[3]
B、ss[3]+1
C、ss+3
D、ss[3][1]
6.下列关于被调用函数中return语句的描述中,错误的是( D )。
A、一个函数中可以有多条return语句
B、return语句具有返回程序控制权的作用
C、函数通过return语句返回值时仅有一个
D、一个函数中有且仅有一条return语句
7.当一个函数没有返回值时,该函数类型应说明为( A )。
A、void
B、int
C、无
D、任意
8.下列关于循环语句的描述中,错误的是( A )。
A、while循环语句中<条件>给定的表达式不能为非0的常量,否则便是死循环
B、for循环语句的循环体内可以出现while循环语句、do-while循环语句和for
C、循环语句的循环体可以是空语句
D、环语句的循环体内可以出现break语句,也可以出现continue语句
9.长双精度浮点型常量的后缀是( C )。
A、U
B、F
C、L
D、无
10.已知:int a[ ]={1,2,3,4,5},*p=a;在下列数组元素地址的表示中,正确( C )。
A、&(a+1)
B、&(p+1)
C、&p[2]
D、*p++
二、多选题(共10题,40分)
1.有以下语句:char str[4][12]={“aaa”,”bbbb”,”ccccc”,”dddddd”},*strp[4];int i;for(i=0;i< 4;i++) strp[i]=str[i];( )是对字符串的正确引用,其中 0≤ k< 4。
A、strp[k]
B、*strp
C、str[k]
D、strp
2.C++ 语言中,下面的描述不正确的是 ( )。
A、do-while 语句构成的循环,当 while 语句中的表达式值为非零时结束循环
B、do-while 语句构成的循环必须用 break 语句才能退出
C、不能使用 do-while 语句构成的循环
D、do-while 语句构成的循环,当 while 语句中的表达式值为零时结束循环
3.若有以下定义和语句 : int w[2][3],(*pw)[3]; pw=w; 则对 w 数组元素合法引用是 ( )。
A、pw[0][0]
B、*(pw[1]+2)
C、*(w[0]+2)
D、*(pw+1)[2]
4.设有以下定义 :int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};int (*ptr)[4]=a,*p=a[0];则下列表达式中,能正确表示数组元素 a[2][1] 的表达式有 ( )。
A、*(p+9)
B、*(*(a+2)+1)
C、(*ptr+2)+1
D、*((*ptr+2)[1])
5.若有定义: char *str[]={“one”,”two”,”three”},**p=str; 则可以表示出字符’t’的表达是 ( )。
A、*str+2
B、*str[2]
C、*(p+1)
D、**++p
6.在 C++语言中,不合法的字符常量是 ( )。
A、’\x43′
B、’ab’
C、’\084′
D、”\0″
7.请选出不可用作 C 语言用户标识符的选项( )
A、a3_b3 _123 IF
B、For -abc Case
C、void define WORD
D、2a DO sizeof
8.设有如下定义 :int (*ptr)();则以下叙述中不正确的是( )。
A、ptr 是指向一维组数的指针变量
B、ptr 是指向 int 型数据的指针变量
C、ptr 是指向函数的指针 ,该函数返回一个 int 型数据
D、ptr 是一个函数名 ,该函数的返回值是指向 int 型数据的指针
9.C 语言规定,有关 main 函数参数的描述不正确的是( )。
A、只能有 0 个
B、只能有 0 个或一个
C、只能有 0 个或 2 个
D、可有任意个
10.若有以下说明和语句,请选出哪个是对 c 数组元素的不正确引用( )。int c[4][5], (*cp)[5];cp=c;
A、*(cp+1)+3
B、cp+1
C、*(cp+3)
D、*(*cp+2)
三、判断题(共10题,30分)
1.使用关键字 class 定义的类中默认的访问权限是私有 (private) 的 .
A、对
B、错
2.T象数组的元素可以是不同类的对象 .
A、对
B、错
3.某类中的友元类的所有成员函数可以存取或修改该类中的私有成员 .
A、对
B、错
4.一个能够更新的变量使用在一个不能被更新的环境中是不破坏类型保护的 ,反之亦然 .
A、对
B、错
5.析构函数是一种函数体为空的成员函数 .
A、对
B、错
6.如果 A 类型是 B 类型的子类型 ,则 A 类型必然适应于 B 类型 .
A、对
B、错
7.一个类的构造函数中可以不包含对其子对象的初始化 .
A、对
B、错
8.在保护继承中 ,对于派生类的访问同于公有继承 ,而对于派生类的对象的访问同于私有继承 .
A、对
B、错
9.只要是类 M 继承了类 N, 就可以说类 M 是类 N 的子类型 .
A、对
B、错
10.派生类是从基类派生出来 ,它不能再生成新的派生类 .
A、对
B、错