地大《C++程序设计》作业二
共30道题 总分:100分
一、单选题(共10题,30分)
1.已知:int a(3);下列表达式中,错误的是( C )。
A、a%2==0
B、a–+2
C、(a-2)++
D、a>>=2
2.下列关于指针概念的描述中,错误的是( B )。
A、指针中存放的是某变量或对象的地址值
B、指针的类型是它所存放的数值的类型
C、指针是变量,它也具有一个内存地址值
D、指针的值(非常量指针)是可以改变的
3.下列关于引用概念的描述中,错误的是( A )。
A、引用是变量,它具有值和地址值
B、引用不可以作数组元素
C、引用是变量的别名
D、创建引用时必须进行初始化
4.下列关于字符数组的描述中,错误的是( D )。
A、字符数组中的每一个元素都是字符
B、字符数组可以使用初始值表进行初始化
C、字符数组可以存放字符串
D、字符数组就是字符串
5.下列表达式中,其值不为逻辑值的是( A )。
A、算术表达式
B、关系表达式
C、逗号表达式
D、逻辑表达式
6.已知:int a[3][4],(*p)[4];下列赋值表达式中,正确的是( A )。
A、p=a+2
B、p=a[1]
C、p=*a
D、p=*a+2
7.已知:int a[5],*p=a;则与++*p相同的是( D )。
A、*++p
B、a[0]
C、*p++
D、++a[0]
8.下列各种高级语言中,不是面向对象的程序设计语言是( D )。
A、C++
B、Java
C、VB
D、C
9.下列表达式中,其值为0的是( A )。
A、2020/5/10
B、!0
C、2>4?0:1
D、2&&2||0
10.当一个函数没有返回值时,该函数类型应说明为( A )。
A、void
B、int
C、无
D、任意
二、多选题(共10题,40分)
1.以下不能对数组 a 进行正确初始化的语句是( )。
A、int a[]={};
B、int a[3]={1, 2};
C、int a[3]={0,1,2,3};
D、int a[]={1};
2.在下列选项中,正确的赋值语句是( )。
A、k=i==j;
B、a=b+c=1;
C、n1=(n2=(n3=0));
D、++t;
3.在 C 语言提供的不合法关键字是( )
A、Case
B、swicth
C、cher
D、default
4.下列关于数组初始化的说法正确的是( )。
A、若对数组 a 定义: “static int x[10];” ,则数组元素值均为 0
B、”int x[10]={1,2,3,4,5,6,7,8,9};” 表示 x[9] 元素值为 9
C、对于 “int x[10];” 它的元素初值是不确定的地大答案请进:opzy.net或请联系微信:1095258436
D、”int x[10]={1,2,3,4,5};” 是不合法的,因为数组长度为 10,而初始值仅有 5 个
5.下列 ( )函数能实现字符串的复制。
A、void f(char *s,char *t) { do{ *s++=*t++; } while(*t!=’\0′); }
B、void f(char *s,char *t) { while(*t) { *s++=*t++; } *s=’\0′; }
C、void f(char *s,char *t) { do { *s=*t; s++; }while(*t++); }
D、void f(char *s,char *t) { unsigned i; for (i=0;i< strlen(t);i++) s[i]=t[i]; }
6.请选出不合法的 C++语言赋值语句 ( )。
A、i++;
B、a=a mod b
C、a=/b;
D、k=int(a+b);
7.若有说明 “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]
8.请选出不合法的 C 语言赋值语句( )。
A、i++;
B、a=58,b=58
C、k=int(a+b);
D、a=b=58
9.以下说法中不正确的是 ( )。
A、C 语言程序中的 main() 函数必须放在程序的开始部分
B、C 语言程序总是从第一个函数开始执行
C、在 C 语言程序中 ,要调用的函数必须在 main() 函数中定义
D、C 语言程序总是从 main() 函数开始执行
10.已知 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”;
三、判断题(共10题,30分)
1.函数的定义不可以嵌套 , 类的定义可以嵌套 .
A、对
B、错
2.T象数组的既可以赋初值又可以赋值 .
A、对
B、错
3.一个能够更新的变量使用在一个不能被更新的环境中是不破坏类型保护的 ,反之亦然 .
A、对
B、错
4.如果 A 类型是 B 类型的子类型 ,则 A 类型必然适应于 B 类型 .
A、对
B、错
5.所谓私有成员是指只有类中所提供的成员函数才能直接使用它们 ,任何类以外的函数对它们的访问都是非法的 .
A、对
B、错
6.一维对象指针数组的每个元素应该是某个类的对象的地址值 .
A、对
B、错
7.子类型是不可逆的 .
A、对
B、错
8.指向对象数组的指针不一定必须指向数组的首元素 .
A、对
B、错
9.析构函数不能被继承 .
A、对
B、错
10.在私有继承中 ,基类中只有公有成员对派生类是可见的 .
A、对
B、错
地大《C++程序设计》作业二
共30道题 总分:100分
一、单选题(共10题,30分)
1.下列关于对象的描述中,错误的是( C )。
A、对象是类的一个实例
B、对象是属性和行为的封装体
C、对象就是C语言中的结构变量
D、对象是现实世界中客观存在的某种实体
2.下列关于指针概念的描述中,错误的是( B )。
A、指针中存放的是某变量或对象的地址值
B、指针的类型是它所存放的数值的类型
C、指针是变量,它也具有一个内存地址值
D、指针的值(非常量指针)是可以改变的
3.下列关于语句的描述中,错误的是( A )。
A、C++程序中的函数是由若干条语句组成的
B、每条语句都要实现某种操作
C、条件语句是用来实现分支操作的
D、循环语句是用来在一定条件下重复执行某段程序的
4.下列while循环语句的循环次数是( A )。 while(int i(0)) i–;
A、0
B、1
C、2
D、无限
5.在函数体内定义变量a的方式为:int a,则a的存储类为( D ) 。
A、寄存器类
B、外部类
C、静态类
D、自动类
6.下列表达式中,其值为0的是( A )。
A、2020/5/10
B、!0
C、2>4?0:1
D、2&&2||0
7.下列变量名中,非法的是( C ) 。
A、A25
B、My_car
C、My-str
D、abc
8.下列设置函数参数默认值的说明语句中,错误的是( C )。
A、int fun(int x , int y=10);
B、int fun(int x=5, int =10);
C、int fun(int x=5, int y);
D、int fun(int x , int y=a+b);
9.已知:int a[5],*p=a;则与++*p相同的是( D )。
A、*++p
B、a[0]
C、*p++
D、++a[0]
10.下列关于面向对象概念的描述中,错误的是( C )。
A、面向对象方法比面向过程方法更加先进
B、面向对象方法中使用了一些面向过程方法中没有的概念
C、面向对象方法替代了结构化程序设计方法
D、面向对象程序设计方法要使用面向对象的程序设计语言
二、多选题(共10题,40分)
1.下述对 C 语言字符数组的描术正确的是( )。
A、不可以用关系运算符对字符数组中的字符串进行比较
B、字符数组可以存放字符串
C、字符数组中的字符串可以整体输入、输出
D、可以在赋值语句中通过赋值运算符 “=” 对字符数组整体赋值
2.以下说法中不正确的是 ( )。
A、C 语言程序中的 main() 函数必须放在程序的开始部分
B、C 语言程序总是从第一个函数开始执行
C、在 C 语言程序中 ,要调用的函数必须在 main() 函数中定义
D、C 语言程序总是从 main() 函数开始执行
3.以下不能对数组 a 进行正确初始化的语句是( )。
A、int a[]={};
B、int a[3]={1, 2};
C、int a[3]={0,1,2,3};
D、int a[]={1};
4.在 C 语言提供的不合法关键字是( )
A、Case
B、swicth
C、cher
D、default
5.若有定义: char *str[]={“one”,”two”,”three”},**p=str; 则可以表示出字符’t’的表达是 ( )。
A、*str+2
B、*str[2]
C、*(p+1)
D、**++p
6.若有以下的定义: “int x[2][3];” ,能正确表示 x 数组元素地址的表达式是( )。
A、&x[2][3]
B、x[0]
C、x[2]
D、x[1]
7.下列 ( )函数能实现字符串的复制。
A、void f(char *s,char *t) { do{ *s++=*t++; } while(*t!=’\0′); }
B、void f(char *s,char *t) { while(*t) { *s++=*t++; } *s=’\0′; }
C、void f(char *s,char *t) { do { *s=*t; s++; }while(*t++); }
D、void f(char *s,char *t) { unsigned i; for (i=0;i< strlen(t);i++) s[i]=t[i]; }
8.以下定义中,不正确的是( )。
A、int x[3,4];
B、int x[1+2][3];
C、int x(3,4)
D、int x[ ][4];
9.不合法的数组定义是( )
A、char a[]={0,1,2,3,4,5};
B、int a[]=”string”;
C、int a[5]={0,1,2,3,4,5};
D、vhst s=”string”;
10.在 C 语言中,不合法的长整型常数是 ( )。
A、21869000000
B、0L2
C、4962710
D、0.054838743
三、判断题(共10题,30分)
1.T象数组的元素可以是不同类的对象 .
A、对
B、错
2.在私有继承中 ,基类中所有成员对派生类的对象都是不可见的 .
A、对
B、错
3.指向对象数组的指针不一定必须指向数组的首元素 .
A、对
B、错
4.使用关键字 class 定义的类中默认的访问权限是私有 (private) 的 .
A、对
B、错
5.只要是类 M 继承了类 N, 就可以说类 M 是类 N 的子类型 .
A、对
B、错
6.作用域运算符 (::) 只能用来限定成员函数所属的类 .
A、对
B、错
7.函数的定义不可以嵌套 , 类的定义可以嵌套 .
A、对
B、错
8.在私有继承中 ,基类中只有公有成员对派生类是可见的 .
A、对
B、错
9.子类型是不可逆的 .
A、对
B、错
10.已知: m 是类 A 的对象 ,n 是类 A 的公有数据成员 ,p 是指向类 A 中 n 成员的指针 .下述两种表示是等价的 m.n 和m.*p
A、对
B、错
地大《C++程序设计》作业二
共30道题 总分:100分
一、单选题(共10题,30分)
1.已知:int a(3);下列表达式中,错误的是( C )。
A、a%2==0
B、a–+2
C、(a-2)++
D、a>>=2
2.下列关于指针概念的描述中,错误的是( B )。
A、指针中存放的是某变量或对象的地址值
B、指针的类型是它所存放的数值的类型
C、指针是变量,它也具有一个内存地址值
D、指针的值(非常量指针)是可以改变的
3.下列关于引用概念的描述中,错误的是( A )。
A、引用是变量,它具有值和地址值
B、引用不可以作数组元素
C、引用是变量的别名
D、创建引用时必须进行初始化
4.下列关于字符数组的描述中,错误的是( D )。
A、字符数组中的每一个元素都是字符
B、字符数组可以使用初始值表进行初始化
C、字符数组可以存放字符串
D、字符数组就是字符串
5.下列表达式中,其值不为逻辑值的是( A )。
A、算术表达式
B、关系表达式
C、逗号表达式
D、逻辑表达式
6.已知:int a[3][4],(*p)[4];下列赋值表达式中,正确的是( A )。
A、p=a+2
B、p=a[1]
C、p=*a
D、p=*a+2
7.已知:int a[5],*p=a;则与++*p相同的是( D )。
A、*++p
B、a[0]
C、*p++
D、++a[0]
8.下列各种高级语言中,不是面向对象的程序设计语言是( D )。
A、C++
B、Java
C、VB
D、C
9.下列表达式中,其值为0的是( A )。
A、2020/5/10
B、!0
C、2>4?0:1
D、2&&2||0
10.当一个函数没有返回值时,该函数类型应说明为( A )。
A、void
B、int
C、无
D、任意
二、多选题(共10题,40分)
1.以下不能对数组 a 进行正确初始化的语句是( )。
A、int a[]={};
B、int a[3]={1, 2};
C、int a[3]={0,1,2,3};
D、int a[]={1};
2.在下列选项中,正确的赋值语句是( )。
A、k=i==j;
B、a=b+c=1;
C、n1=(n2=(n3=0));
D、++t;
3.在 C 语言提供的不合法关键字是( )
A、Case
B、swicth
C、cher
D、default
4.下列关于数组初始化的说法正确的是( )。
A、若对数组 a 定义: “static int x[10];” ,则数组元素值均为 0
B、”int x[10]={1,2,3,4,5,6,7,8,9};” 表示 x[9] 元素值为 9
C、对于 “int x[10];” 它的元素初值是不确定的
D、”int x[10]={1,2,3,4,5};” 是不合法的,因为数组长度为 10,而初始值仅有 5 个
5.下列 ( )函数能实现字符串的复制。
A、void f(char *s,char *t) { do{ *s++=*t++; } while(*t!=’\0′); }
B、void f(char *s,char *t) { while(*t) { *s++=*t++; } *s=’\0′; }
C、void f(char *s,char *t) { do { *s=*t; s++; }while(*t++); }
D、void f(char *s,char *t) { unsigned i; for (i=0;i< strlen(t);i++) s[i]=t[i]; }
6.请选出不合法的 C++语言赋值语句 ( )。
A、i++;
B、a=a mod b
C、a=/b;
D、k=int(a+b);
7.若有说明 “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]
8.请选出不合法的 C 语言赋值语句( )。
A、i++;
B、a=58,b=58
C、k=int(a+b);
D、a=b=58
9.以下说法中不正确的是 ( )。
A、C 语言程序中的 main() 函数必须放在程序的开始部分
B、C 语言程序总是从第一个函数开始执行
C、在 C 语言程序中 ,要调用的函数必须在 main() 函数中定义
D、C 语言程序总是从 main() 函数开始执行
10.已知 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”;
三、判断题(共10题,30分)
1.函数的定义不可以嵌套 , 类的定义可以嵌套 .
A、对
B、错
2.T象数组的既可以赋初值又可以赋值 .
A、对
B、错
3.一个能够更新的变量使用在一个不能被更新的环境中是不破坏类型保护的 ,反之亦然 .
A、对
B、错
4.如果 A 类型是 B 类型的子类型 ,则 A 类型必然适应于 B 类型 .
A、对
B、错
5.所谓私有成员是指只有类中所提供的成员函数才能直接使用它们 ,任何类以外的函数对它们的访问都是非法的 .
A、对
B、错
6.一维对象指针数组的每个元素应该是某个类的对象的地址值 .
A、对
B、错
7.子类型是不可逆的 .
A、对
B、错
8.指向对象数组的指针不一定必须指向数组的首元素 .
A、对
B、错
9.析构函数不能被继承 .
A、对
B、错
10.在私有继承中 ,基类中只有公有成员对派生类是可见的 .
A、对
B、错