A.x.a
B.x.a()
C.x和gt;GetValue()
D.x.GetValue()
一个类的友元函数能够访问该类的
A.私有成员
B.保护成员
C.公用成员
D.所有成员
下面是类MyClass的定义,对定义中各种语句描述正确的是( )。
class MyClass { publiC: void MyClass(int a) //①
{ x=a; ) int func(int a,int b) //②
{ x=a; y=b; } int func(int a,int b,int c=0) //③
{ x=a; y=b; z=c; } static void resetValue() //④
{ x=0; } private: int X,y,Z; };
A.语句①是类MyClass的构造函数定义
B.语句②和语句③实现类成员函数的重载
C.语句④实现对类成员变量x的清零操作
D.语句①、②、③和④都不正确
设int x:,则经过______ 后,语句*px=0;可将x值置为0。
A.int*px;
B.int const *px=&x;
C.int* const px=&x:
D.const int *px=&x;
一个类的友元函数或友元类可以访问该类的( )。
A.私有成员
B.所有成员
C.保护成员
D.公有成员
福师C 语言程序设计在线作业一-0003试卷总分:100 得分:100一、单选题 (共 20 道试题,共 40 分)1.下列语句中不是死循环的是_。A.int i=1;for(;)ii+1;B.int i10; while(1) i-; if(i=1)break; C.int i0; do i+;while(i=0)D.for( int i1:i10;i+) i-; 答案:B2.一个类的友元函数或友元类能够通过成员操作符访问该类的( )A.私有成员B.所有成员C.公有成员D.保护成员答案:B3.虚函数使用关键字_。( )A.virtualB.staticC.publicD.private答案:A4.设int x;,则经过( )后,语句*px=0;可将x值置为0。A.int const * px=&x;B.int * px;C.int * const px=&x;D.const int * px=&x;答案:C5.下面列出的保留字中,不能作为函数的返回类型的是( )A.voidB.newC.longD.int答案:B6.设void f1(int * m,long & n);int a;long b;则以下调用合法的是( )。A.f1(a,b);B.f1(a,&b);C.f1(&a,b);D.f1(&a,&b);答案:C7.下面程序错误的语句是_。 #includevoid main()int*pnew int1;p=9;cout *pdeletep A.B.C.D.答案:C8.下列标识符中,()是文件级作用域。A.语句标号B.自动态标识符C.外部静态标识符D.函数形参答案:C9.下列( )是正确的语句。A.x+yB.outnC.;D.=17答案:C10.假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为:A.operator+(AB a)B.AB operator+(AB & a , AB & b)C.AB operator+(AB & a)D.AB & operator+( )答案:C11.当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为()。A.以上都不对B.ios:outC.ios:in|ios:outD.ios:in答案:A12.对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是_。A.私有类型B.友元类型C.公有类型D.保护类型答案:B13.下列do-while循环的循环次数是( ): 已知:int i=5 do couti-endl i- while (i!=0)A.无限次B.5C.2D.0答案:A14.不能作为重载函数的调用的依据是_。A.参数个数B.参数类型C.函数类型D.函数名称答案:C15.如果类A被说明成类B的友元,则()。A.类B的成员即类A的成员B.类B不一定是类A的友元C.类A的成员即类B的成员D.类A的成员函数不得访问类B的成员答案:B16.对类的构造函数和析构函数描述正确的是()。A.构造函数可以重载,析构函数不能重载B.构造函数不能重载,析构函数可以重载C.构造函数可以重载,析构函数也可以重载D.构造函数不能重载,析构函数也不能重载答案:A17.如果友元函数重载一个运算符时,其参数表中没有任何参数则说明该运算符是()。A.重载错误B.都可能C.二元运算符D.一元运算符答案:B18.下列关于函数模板和模板函数的描述,错误的是( )A.模板函数是一个实在的函数B.模板函数在编译时不生成可执行代码C.函数模板是定义重载函数的一种工具D.函数模板是一组函数的模板答案:B19.静态成员函数仅能访问( )A.非静态的数据成员B.非静态的成员函数C.静态的数据成员D.以上都不对答案:C20.表达式9!=10的值为( )A.非零值B.trueC.1D.0答案:C二、判断题 (共 20 道试题,共 40 分)21.表达式8&3的结果是1。答案:错误22.假设所有变量均为整型,则表达式(a=2,b=5,b+,a+b)的值是8。( )答案:正确23.C+语言的参数传递机制包括传值和传地址两种,如果调用函数时,需要改变实参或者返回多个值,应该采取传地址方式。答案:正确24.声明一个结构并不分配内存,内存分配发生在定义这个新数据类型的变量中。( )答案:正确25.如果派生类的成员函数的原型与基类中被定义为虚函数的成员函数原型相同,那么,这个函数自动继承基类中虚函数的特性。答案:正确26.字符型数据在内存中的存储形式是ASCII码( )答案:正确27.用new动态申请的内存是在堆中分配的,而不是在栈中分配的。答案:正确28.输出字符指针就是输出字符串。答案:正确29.若一全局变量只允许本程序文件中的函数使用,则定义它时应加上修饰符 void。答案:错误30.在基类中被说明为虚函数的类的成员函数必须在每个派生类中说明为虚函数,才能具有多态的特征。答案:错误31.头文件中一般存放着变量和常量的定义、函数的原型以及类的定义。答案:错误32.C+语言程序中,main()函数必须放在程序开始的部分( )答案:错误33.float和double类型的大小分别为4和8。答案:正确34.一个类的对象只有一个。答案:错误35.16位计算机中整型占4个字节存储空间。答案:错误36.C+中,一个函数必须在函数声明后才能使用( )答案:正确37.定义全局变量要在程序开始时进行,并且放在所有函数的外面,静态局部变量要在函数内部定义,但生命期却随函数的第一次被调用而产生。( )答案:正确38.关键字friend用于声明友元。答案:正确39.在使用C语言库函数时,要用预编译命令“#include”将有关的头文件包括到用户源文件中。( )答案:正确40.继承的方式有公有继承、私有继承两种。答案:错误三、多选题 (共 10 道试题,共 20 分)41.下列说法中错误的是_。A.不允许设置参数的默认值B.设置参数的默认值只能在定义函数时设置C.设置参数的默认值时,应该设置右边的参数D.设置参数的默认值时,应该全部参数都设置答案:ABD42.在进行完成任何C+流的操作后,都可以用C+流的有关成员函数检测流的状态;其中不能用于检测输入流状态的操作函数名称是_。A.failB.eofC.bad
下列关于成员访问权限的描述中,不正确的是( )。
A.公有数据成员和公有成员函数都可以被类对象直接处理
B.类的私有数据成员只能被公有成员函数以及该类的任何友元类或友元函数访问
C.只有类或派生类的成员函数和友元函数可以访问保护成员
D.保护成员在派生类中可以被访问,而私有成员不可以
interface A{
int x = 0;
}
class B{
int x =1;
}
class C extends B implements A {
public void pX(){
System.out.println(x);
}
public static void main(String[] args) {
new C().pX();
}
}
错误。在编译时会发生错误(错误描述不同的JVM 有不同的信息,意思就是未明确的
x 调用,两个x 都匹配(就象在同时import java.util 和java.sql 两个包时直接声明Date 一样)。
对于父类的变量,可以用super.x 来明确,而接口的属性默认隐含为 public static final.所以可
以通过A.x 来明确。
下面的语句中错误的是( )。
A.int a=5;int x[a];
B.eonst int a=5;int x[a];
C.int n=5;int *P=new int[a];
D.const int n=5;int *p=new int[a];
下面的语句中错误的是( )。
A.int a=5;int x[a];
B.const int a=5;int x[a];
C.int n=5;int *p=new int[n];
D.const int n=5;int *p=new int[a];
有如下程序: #include <iostream> using namespace std; class point { int x, y; public: point( int vx, int vy ) { x = vx; y = vy; } point ( ) { x = 0; y = 0; } point operator+( point pl ) { point p; int px = x + p1.x; int py = y + p1.y; return point( px, py ); } point operator-( point p1 ) { point p; int px = x - p1.x; int py = y - p1.y; return point( px, py ); } void print() { cout<<x<<", "<<y<<end1; } }; int main () { point pl ( 10, 10 ), p2 ( 20, 20 ); p1 = p1 + p2; p1.print (); return 0; } 执行后的输出结果是( )。
A.10,10
B.20,20
C.10,20
D.30,30