A. 作为友元函数重载的1元运算符 B.作为成员函数重载的 1元运算符C. 作为友元函数重载的 2_____ 不允许 _____ 向*this 或2 .设x 和y 均为bool 量,则x && y 为真的条件是(A ) 它们均为假D.其中一个为假3.在下面的二维数组定义中,正确的语句是 (C )a[][3]={{1,3,5},{2}}; D. i nt a[](10);4.在文件包含命令中,被包含文件的扩展名( C)oD.必须是.cpp5.要使语句"p=new int[10][20]; "正确,p 应事先定义为(A. 它们均为真B. 其中一个为真C.A. i nt a[5][];B. i nt a[][5];C. i ntA. 必须是.hB. 不能是.hC. 可以是.h 或.cppD )o A. i nt *p; B. i nt **p; C. i nt*p[20]; D. i nt (*p )[20];6. 在关键字public 后面定义的成员为该类的( B )成员。
A. 私有 B. 公用 C. 保护 D. 任 何元运算符 D. 作为成员函数重载的 2元运算符1. 当执行cout 语句输岀endl 数据项时,将使C++显示输岀屏幕上的光标从当前位置移动到 _____________ 下一行 ______ 的开始位置2. 假定x 和y 为整型,其值分别为16和5,贝U x/y 和double (x )/y 的值分别为 _____ 3 ______和 _______ 3.2 __ 。
3. strlen( ” apple ”)的值为 _______ 5 _____4. C++程序运行时的内存空间可以分成全局数据区,堆区,栈区和 ______ 代码 ________ 区5•假定a 是一个一维指针数组,则a+i 所指对象的地址比a 大 —4 * i ______ 字节。
6. 如果一个派生类只有一个唯一的基类,则这样的继承关系称为 ______ 单继承 ______ o7. 假定AA 是一个类,“ AA* abc ()c on st;"是该类中一个成员函数的原型,在该函数体中 其成员赋值。
8 •假定用户没有给一个名为AB 的类定义构造函数,则系统为其定义的构造函数为 ___________ AB () {} _____ o9•假定用户为类 AB 定义了一个构造函数 "AB (i nt aa ) {a=aa;}",该构造函数实现对数据成员 _________ a ____ 的初始化10.作为类的成员函数重载一个运算符时,参数表中只有一个参数,说明该运算符有 ____ 2 ____ 个操作数。
三、程序填充题,对程序、函数或类中划有横线的位置,根据题意按标号把合适的内容填写到程序下面相应标号的后面 (每小题5分,共20分) 1.打印岀2至99之间的所有素数(即不能被任何数整除的数)。
#in clude<iostream.h> #in clude<math.h> void mai n() { int i,n;lik7. 假定AA 为一 个类, a 为该类私有的数据成员,若要在该类的一个成员函数中访问它, 则书写格式最好为 (A ) o A aB. AA::aC. a()D. AA::a()8. 队列具有( A ) 的操作特性。
A. 先进先岀B. 先进后岀C.进岀无序 D. 仅进不岀9. 假定AB 为一 个类, 则执行” AB a, b(3), *p; ”语句时共调用该类构造函数的次数为(D )次。
A.5 B.4C. 3D.210.在重载一个运算符时,其参数表中没有任何参数,这表明该运算符是( B )for(n=2; ___(1)___; n++) { int temp=i求岀n的平方根并取整nt(sqrt( n)); // for(i=2; ⑵ ; i++)if(n %i==0) ___⑶___if(i>temp)cout<<n<<':}cout<<'\n';⑴ n<=99 ⑵i<=temp2.下面是对按从小到大排列的有序数组 int Bin arySearch(i nt a[],i nt n ,i nt x) { int low=0, high=n-1; // int mid; // while(low<=high) { mid= __ (1) __ ; if(x==a[mid]) _ ⑵ ___ ; else if(x<a[mid]) high=mid-1; else ___ (3) __ ; } (3) breaka[n]中进行二分查找x 的算法,若查找成功返回该元素下标,否则返回定义并初始化区间下界和上界变量 定义保存中点元素下标的变量return -1;} (1) (low+high)/2 (2) return mid (3)low=mid+1 3 •请补充完整如下的类定义: class A {char *a; public: —(1)— //A(char *aa){ a=—⑵—;// strcpy(a,aa); // }—(3)— // 定义无参构造函数,使 a 的值为空进行动态存储分配用aa 所指字符串初始化 a 所指向的动态存储空间定义析构函数,删除 a 所指向的动态存储空间 -1}; ⑴ A() {a=0;}或 A():a(O){}(3)〜A() {delete []a;} 4. 一种类定义如下: class Goods(2) new char[strlen(aa)+1]{ private:char gd_n ame[20];//int weight;//static int totalweight; // public:Goods (char*str,i nt w){ // strcpy(gd _n ame,str); weight=w;totalweight+=weight; }〜Goods (){totalweight -= weight;} char* GetN(){___(1)___;}//int GetW(){return weight;}商品名称 商品重量 同类商品总重量构造函数返回商品名称(每小题6分,共_⑵___ GetTotal_Weight() { // 定义静态成员函数返回总重量—(3)—; } }(1) return gd n ame(2) static int (3) return totalweight四、理解问答题,写岀前三小题的程序运行结果和指岀后两小题的程序(或函数)所能实现的功能 30分)1. #in clude<iostream.h> const int T=8; void mai n() {int i,s=0;for(i=1;i<=T;i+=2){ s+=i*i;coutvvsvv'';}cout«e ndl; }运行结果:1 10 35 842. #i nclude<iostream.h>class CE { private: int a,b;int getmax() {return (a>b? a:b);} public: in t c;void SetValue( int x1,i nt x2, i nt x3) { a=x1; b=x2; c=x3; }int GetMax(); };int CE::GetMax() { int d=getmax(); return (d>c? d:c); }void mai n(){int x=5,y=12,z=8;CE ex;ex.SetValue(x,y,z);cout<<ex.GetMax()<<e ndl;}运行结果:123. #in clude<iostream.h>class A {int a,b;public:A(i nt aa, int bb) {a=aa; b=bb;}float Multip(char op) {switch(op) {case '+': retur n a+b;case '-': retur n a-b;case '*': retur n a*b;default: cout<v'\n'v<opvv" 非法运算符!"<<endl;exit(1); // 退岀程序运行}}};void mai n() {A x(10,4);char a[6]="+-*";int i=0;while(a[i]) {cout<< x.Multip(a[i])<v':i++;}cout«e ndl;}运行结果:14 6 404. #in clude<iostream.h>#in clude<stdlib.h>#in clude<time.h>con st int N=10;in t ff(i nt x, i nt y) {int乙cout<vxvv'+'vvyvv'=:cin>>z;if(x+y==z) return 1; else return 0;}void mai n(){int a,b,c=0;sran d(time(0)); // 初始化随机数序列for(int i=0;i<N;i++) {a=rand()%20+1; //rand() 函数产生 0-32767之间的一个随机数b=ra nd()%20+1;c+=ff(a,b);}cout«"得分:"<<c*10<<endl;}程序功能:让计算机随机产生岀10道20以内整数的加法题供用户计算,每道题 10分,计算完成后打印岀得分。
5. char *f(char *s){。