10.在参数传递过程中,对形参和实参的要求是()。
A.函数定义时,形参一直占用存储空间
B.实参可以是常量、变量或表达式
C.形参可以是常量、变量或表达式
D.形参和实参类型和个数都可以不同
11.对数组名作函数的参数,下面描述正确的是()。
A.数组名作函数的参数,调用时将实参数组复制给形参数组
B.数组名作函数的参数,主调函数和被调函数共用一段存储单元
C.数组名作参数时,形参定义的数组长度不能省略
D.数组名作参数,不能改变主调函数中的数据
B.静态数据成员不可以在类体内进行初始化
C++语言程序设计
一、选择题
(2)C++语言的跳转语句中,对于break和continue说法正确的是()
A)break语句只应用与循环体中
B)continue语句只应用与循环体中
C)break是无条件跳转语句,continue不是
D)break和continue的跳转范围不够明确,容易产生问题
(7)下面描述中,表达错误的是()
A)公有继承时基类中的public成员在派生类中仍是public的
B)公有继承是基类中的private成员在派生类中仍是private的
C)公有继承时基类中的protected成员在派生类中仍是protected的
D)私有继承时基类中的public成员在派生类中是private的
(10)在进行完任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中只能用于检测输入流状态的操作函数名称是()
A)fail B)eof C)bad D)good
一:选择题
1-5 :B B C C C
6-10:D B C A B
1-5 :B B C C C
6-10:D B C A B
4、下列表达方式正确的是( )。
A.class P{ B. class P{
public: public:
int x=15; int x;
void show(){cout<<x;} void show(){cout<<x;}
}; }
C. class P{ D. class P{
int f; public:
}; int a;
f=25; void Seta (int x) {a=x;};
答案:D
分析:在类体内不可对数据成员进行初始化;类定义结束时需用分号;只有类中的成员函数才能存取类中的私有数据。
(7) 若指针p定义为 const char *p="Luchy!"; 则[ ]。
A) p所指向的数据不可改变,p在定义时可以不初始化。
(10) 要使字符串变量str具有初值"Lucky",正确的定义语句是[ ]。
A) char str[]={'L','u','c','k','y'}; B) char str[5]={'L','u','c','k','y'};
C) char str []="Lucky"; D) char str [5]="Lucky"; 只有这个是错的
(14) 要使语句p=new double[20];能够正常执行,变量p应定义为[ ]。
A) double p[20]; ——已分配空间 B) double p;
C) double (*p)[20]; D) double *p;——未分配空间
(17) 语句ofstream f("SALARY.DAT",ios::noreplace | ios::binary); 的功能是建立流对象f,并试图打开文件SALARY.DAT并与之连接,而且[ ]。
A) 指向类成员函数的指针若文件存在,将文件指针定位于文件尾;若文件不存在,建立一个新文件。
B) 若文件存在,将其截为空文件;若文件不存在,打开失败。
C) 若文件存在,将文件指针定位于文件首;若文件不存在,建立一个新文件。
D) 若文件存在,打开失败;若文件不存在,建立一个新文件。
(20) 语句ofstream f("SALARY.DAT",ios::nocreate | ios::trunc); 的功能是建立流对象f,并试图打开文件SALARY.DAT并与之连接,而且[ ]。
A) 若文件存在,将文件指针定位于文件尾;若文件不存在,建立一个新文件。
B) 若文件存在,将其截为空文件;若文件不存在,打开失败。
C) 若文件存在,将文件指针定位于文件首;若文件不存在,建立一个新文件。
D) 若文件存在,打开失败;若文件不存在,建立一个新文件。
C++试题2
1.下列变量名中,( )是合法的。
A.56A B._abc C.d-Ptr D.while 第一个字符必须是字母或者下划线
4. 字符串”\t\v\\\0which\n”的长度是( 3)。
遇到‘\0’就停止了 另外,字符串方式赋值比用字符逐个赋值要多占一个字节放‘\0’,计算长度的时候不会把‘\0’算进去
10.在函数的引用调用时,实参和形参应该是使用( )。
A.变量值和变量 B.地址值和指针C.变量值和引用 D.地址值和引用
18. C++类体系中,能被派生类继承的有( )。
A.构造函数 B.虚函数 C.友元函数 D.析构函数
C)break是无条件跳转语句,continue不是
由于运算符++的优先级比+高,因此表达式a+++b等价于(a++)+b。
在任何条件下,两个指针都不允许相加,因为地址相加后可能会对内存进行不合法的访问。
10 下列变量的引用中错误的是()
A)int a;int &p=a; B)char a; char &p=a;
C)int a;int &p;p=a; D)float a;float &p=a;
答案:C
引用必须在定义时进行初始化。
1)一个函数带有参数说明时,则参数的默认值应该在()中给出。
A)函数定义 B)函数声明 C)函数定义或声明 D)函数调用
答案:C
C++语言中,允许在涵数的说明或定义时给一个或多个参数指定默认值。注意不能在函数说明和函数定义时都指定默认参数值,默认参数值应该在函数名第一次出现时指定。
当函数的参数是引用类型时,参数不能是常量、表达式和变量地址,只能是变量本身。
7 假定MyClass为一个类,则执行MyClass a[3],*p[2];语句时,自动调用该类构造函数()次。
A 2 B 3 C 4 D 5
答案:B
语句中指针数组不调用类的构造函数,因为指针数组本身不定义类对象,而是定义了数组元素可以指向一个MyClass的对象。
8 对于常成员函数,下面描述正确的是()
A 类的成员函数可以操作常对象
B 类的成员函数不能操作常对象
C 只有常成员函数可以操作常对象
D 在常成员函数中,常对象可以被更新
答案:C
const是函数类型的一个组成部分,因此常成员函数不能更新对象的数据成员,不能调用该类中没有用const修饰的成员函数,也只有常成员函数才可以操作常对象。
1、连接器所生成的文件的扩展名为( D )
A、.cpp
B、.obj
C、.lib
D、.exe
5、while(!x)中的(!x)与下面条件( D )等价。
A、x==1
B、x!=1
C、x!=0
D、x==0
11、通过( A )调用虚函数时,采用动态束定。
A、 对象指针
B、 对象名
C、 成员名限定
D、 派生类名
5、在类中声明转换函数时不能指定( A )( C )
A、 参数
B、 访问权限
C、 返回类型
D、 操作
E、 标识符
9、下列虚基类的声明中正确的是( B )( D )
A、 class virtual B: public A
B、 class B: virtual public A
C、 class B: public A virtual
D、 class B: public virtual A
E、 virtual class B: public A
Tips:
(1) int x=0; int* q=&++x是对的int* p=&(x++)是错的
(2) 运算符、逗号、&&、和||保证了位于它们左边的运算对象一定在右边运算对象之前求值
(3) int i=1;
v[i] = i++; // 结果无定义
(4) b = (a=2, a+1) // b = 3
(5) if( i&mask ==0) // if( i& (mask==0) )
(6) if(0<=x<=99) // if( (0<=x) <= 99)
(7) y=x++等价于y=(t=x,x+=1,t),其中t是一个与x同类型的变量
(8) new创建的对象一直存在,直到使用delete运算符显式地销毁
(9) static_cast完成相关类型之间的转换,例如整型到枚举、浮点到整型等的转换
(10) reinterpret_cast处理互不相干类型之间的转换,例如从整型到指针等的转换
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论