1、for语句能够被改写成()语句。(A)while(B)if(C)try(D)switch2语句:for(int x=0,y=0;!x&yd.score(*p).score(*p).ddata7假定有以下变量定义:int k=8,x=21;则能使x的值为5的表达式是()。x%=(k%=5)x%=(k-k%5)(x%=k)-(k%=5)x%=k-k%58结构体:struct student char name10; int age; bool sex;占内存字节数为()。2018sizeof(student)9已知:int a, *pa=&a; 输出指针pa值的十进制表示的方法是()。coutpa
2、*pa;(longint)pa;10类的析构函数是在什么时间被自动调用的?()。类创建时创建对象时销毁对象时不自动调用11下面描述中,表达错误的是()。公有继承时基类中的public成员在派生类中仍是public的公有继承是基类中的private成员在派生类中仍是private的公有继承时基类中的protected成员在派生类中仍是protected的私有继承时基类中的public成员在派生类中是private的12#includeusing namespace std;class Base char c; public: Base(char n):c(n) Base()coutc; clas
3、s Derived:public Base Derived(char n):Base(n-1),c(n) Derived()coutint main(int argc, char* argv) Derived(D); return 0;上面程序运行结果为()。CDDCDC13任何类都至少拥有()构造函数。默认拷贝2个赋值14关于多态,下面那些说法是正确的()。多态分静态的(运行时)和动态的(编译时)。运行时的多态与类的层次结构无关。在基类定义了虚函数后,在派生类中重新定义时必须加关键字virtual。仅使用虚函数并不能实现运行时的多态性,还必须采用指针或引用来调用才能真正实现运行时的多态性。1
4、5下列哪一个描述是关于引用调用的()。形参是指针,实参是地址值形参是引用,实参是变量形参和实参都是变量形参和实参都是数组名16已知类Myst有一个只需要一个double型参数的构造函数,且将运算符“-”重载为友元函数。要使语句序列:Myst x(3.2),y(5.5),z(0.0);z=(x-6.3)-(8.9-y);能够正常运行,运算符函数operator-应该在类中声明为()。friend Myst operator- (Myst&,Myst&friend Myst operator- (Myst,Myst);friend Myst operator- (Myst,Myst&,Myst);
5、二. 判断题(每小题1分,共10分)请判断下列语句是否正确,如果正确请在下列的表格题号对应的空白内用笔打上;如果错误请在下列的表格题号对应的空白内用笔打上。错打或未打均无分。( )定义数组char s1=abc和char s2=a, bc,s1的数组长度小于s2的数组长度。C+语言的跳转语句中,continue只能够用在循环语句中,而break可以不用在循环语句中。使用内联函数可节省函数调用与返回时的开销,因此能够提高程序的运行速度。在传值调用中,要求实参和形参的类型完全一致并且个数相等。语句inta(10), &b = a, *p = &中,b的值和*p的值是相等的。运算符重载只能够实现成友
6、元函数。任何函数都必须有返回值。定义一个对象时,系统只为该对象的数据成员开辟内存空间,而成员函数是同类对象共享的。类的对象可以是自身类的成员变量。模板类的成员函数若在类外实现,则必须是模板函数。三. 写出程序执行结果(每小题6分,共30分)阅读以下程序,并写出程序运行结果。程序输出结果void Exchange2(char a, char b) c=a; a=b; b=c;void exchange(char* a, char b) c=*a; *a=b;void exchange(char* a, char* b) *a=*b; *b=c;void exchange(char& a, cha
7、r& b)int main(int argc, char* argv) char a,b; a=A b=B Exchange2(a,b); coutab; exchange(&a,&b);a,b); exchange(a,b);usingnamespace std;#define N 5void transp(int aN,int n) int i,j,k; for(i=0;in;i+) for(j=0;ji;j+) k=aij; aij=aji; aji=k; int n,i,j,xNN,k=0; n=3; xij = k+; transp(x,n); coutxij; coutn retu
8、rn 0;class Bprotected: int a; virtualvoidCal() a += a; ; virtualint GetA() return a; class D1 : public B int w; int h; D1(int tw, int th):w(tw),h(th) voidCal() a = w + h;class D2 : D2(int tw, int th): a = w - h;class D3 : D3(int tw, int th): a = w * h;intmain(int argc, char* argv) B *b =new D1(3,2),
9、 new D2(3,2), new D3(3,2); int sum = 0; for(int i=0; iCal(); sum += bi-GetA();计算结果为:sumclass complex complex(double ,double ); complex(complex& complex(); complex operator* (complex& complex&operator=(complex& void display(); double real; double image;complex:complex(double x,double y) real=x,image=
10、y;complex(complex& x)Runing copy constructorn real=x.real; image=x.image;complex()real=image=0.0;complex complex:operator*(complex& return complex(real*x.real,image*x.image);complex& complex:x)Runing assign operatorn real+=x.real; image+=x.image; return *this;void complex:display()real+imagei comple
11、x c1(3,9); complex c2(c1); complex c3; c3=c1*c2; c3.display();templateclass Stack int top; T *elements; int maxSize; Stack(int=30); Stack()delete elements; void Push(const T &data); T Pop();StackStack(int maxs) maxSize=maxs; top=-1; elements=new T maxSize;void StackPush(const T &data) elements+top=d
12、ata;T StackPop() return elementstop-; int i; char a5=k,ts Stack cstack;5;i+) cstack.Push(ai);i+) cstack.Pop();四. 综合题(每小题14分,共28分)1、编写程序求这样四个整数(),使得以下等式成立:程序输出结果如下。/start:程序开始/end:程序结束2、已知函数定积分公式:(条件:区间必须为偶数n个相等区间,),, 用虚函数来实现函数和的定积分,即: 将下面程序填写完整以完成题目要求。string.hmath.h#defineN 2000/-class Simpson doubl
13、eIntevalue,a,b; /Intevalue积分值,a积分下限,b积分上限 virtualdouble fun(double x)=0; /被积函数声明为纯虚函数 Simpson(doublera=0,doublerb=0):a(ra),b(rb),Intevalue(0) void Integrate() double dx; int i; dx=(b-a)/N; Intevalue=;/-(1) for(i=1;N;i+=2) Intevalue+=4*fun();/-(2) for(i=2;i+=2) Intevalue+=2*fun();/-(3) Intevalue*=dx/3; void Print()cout积分值=IntevalueIntegrate(); /动态计算函数的定积分Print(); B b();/-(7) s=&
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1