1、面向对象程序设计期末针对性训练面向对象程序设计课程期末针对性训练训练第一套一、单项选取题(每小题2分,共20分) 1设x和y均为bool量,则x | y为假条件是( )。 A. 它们均为真 B. 其中一种为真 C. 它们均为假 D. 其中一种为假 2. 假定一种二维数组定义语句为“int a34=3,4,2,8,6;”,则元素a12值为( )。 A. 2 B. 4 C. 6 D. 8 3. 假定p是具备int*类型指针变量,则给p赋值对的语句为( )。 A. p=new int; B. p=new int*; C. p=new int*; D. p=new int10; 4. 软件产品在需求发
2、生变化、运营环境发生变化或发现软件产品自身错误或局限性时进行相应软件更新难易限度叫做软件( )。 A. 可维护性 B. 可复用性 C. 兼容性 D. 对的性 5. 若需要把一种类外定义成员函数指明为内联函数,则必要把核心字( )放在函数原型或函数头前面。 A. in B. inline C. inLine D. InLiner 6. 在一种用数组实现队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队尾后一种位置为( )。 A. length+1 B. first+length C. (first+length-1)%MS D. (first+length)%M
3、S 7. 假定一种类构造函数为 “A(int aa,int bb) a=aa;b=aa*bb;”,则执行 “A x(4,5);”语句后,x.a和x.b值分别为( )。 A. 4和5 B. 5和4 C. 4和20 D. 20和5 8. 假定AB为一种类,则执行“AB *p=new AB(1,2);”语句时共调用该类构造函多次数为( )。 A. 0 B. 1 C. 2 D. 3 9. 一种类成员函数也可以成为另一种类友元函数,这时友元声明( )类域限定。 A. 需加上 B. 不需加上 C. 可加可不加 D. 取消 10. 队列具备( )操作特性。 A. 先进先出 B. 先进后出 C. 进出无序 D
4、. 仅进不出二、填空题(每小题2分,共20分) 1. 多行注释开始标记符为_。 2. 假定x=5,y=6,则表达式x+*+y值为_。 3. 假定x是一种逻辑量,则x & true值与x值_。 4. 含随机函数表达式rand()%20值在0至_整数区间内。 5. 程序编译是以_为单位进行。 6. 一种数组_事实上是指向该数组第一种元素指针,并且在任何时候都不容许修改它。 7. 指针变量pv和pc定义为“void *pv =”Hello,word!”;char *pc;”,要将pv值赋给pc,则对的赋值语句是pc=(_)pv。 8一种类_函数通惯用于实现释放该类对象中指针成员所指向动态存储空间任务
5、。 9. 假定顾客为类AB定义了一种构造函数“AB(int aa):a(aa)”,则_是该类数据成员。 10. 在多文献构造程序中,普通把具有main()函数文献称为该程序_。 三、程序填充题,依照题旨在横线上填写适当内容。(每小题6分,共24分) 1. 采用辗转相除法求出两个整数最大公约数。 #include void main() int a,b; coutab; while(a=0 | b=0) coutab; while(b) int r; r=a%b; _;_; /分别修改a和b值 coutaendl; /输出最大公约数 2. 用插入排序办法对table指针数组中size个指针所指向
6、字符串进行按升序排序算法。void sort(char *table,int size) for(int i=1;i=0 ;j-) if(strcmp(p,tablej)0) tablej+1=_; else break; tablej+1=_; 3类A定义class A char *a; public: A() a=NULL; /定义无参构造函数,使a为空指针 A(char *aa) a=_ charstrlen(aa)+1; strcpy(a,aa); /用aa所指字符串初始化a所指向动态存储空间 _ /定义析构函数,删除a所指向动态存储空间 ; 4. 类Goods定义 class pri
7、vate: char Name20; /商品名称 int Weight; /商品重量 static int totalWeight; /同类商品总重量 public: Goods (char*str,int w) /构造函数 strcpy(Name,str); Weight=w; totalWeight+=Weight; Goods ()totalWeight-=Weight; char* GetN()_; /返回商品名称 int GetW()return weight; static int GetTotalWeight() /定义静态成员函数返回总重量 _; 四、理解问答题,分别写出前2小
8、题程序运营成果和指出后2小题程序或函数功能。(每小题6分,共24分) 1. #include const int T=6; void main() int i,j,k=0; for(i=1;i=T;i+=2) for(j=2;j=T;j+=2) k+; cout”k=”kendl; 运营成果: 2. #include class CE private: int a,b; int getmax() return (ab?a:b); public: int c; void SetValue(int x1,int x2,int x3) a=x1;b=x2;c=x3; int GetMax(); ;
9、int CE:GetMax() int d=getmax(); return (dc?d:c); void main() int x=5,y=12,z=8; CE ex; ex.SetValue(x,y,z); coutex.GetMax()endl; 运营成果: 3. #include void main() int i,p=1; int N; coutN; for(i=1;i=N;i+) p*=i; cout”N!=”pms) coutError!endl;exit(1); MS=ms; n=nn; a=new intMS; for(int i=0;in;i+) ai=aai; int C
10、ompareBig(AA& b); /比较*this与b大小,从前向后按两数组 /中相应元素比较,若*this中元素值大则返回1,若b中 /元素值大则返回-1,若相等则继续比较下一种元素,直到 /一种数组中无元素比较,此时若两者n值相似则返回0, /否则若*this中n值大则返回1,若b中n值大则返回-1。 ;答案供参照一、单项选取题(每小题2分,共20分)1. C 2. C 3. B 4. A 5. B6. D 7. C 8. B 9. A 10. A 二、填空题(每小题2分,共20分)1. /* 2. 35 3. 相似 4. 19 5. 文献6. 数组名 7. char * 8. 析构 9
11、. a 10. 主文献 三、程序填充题,依照题旨在横线上填写适当内容。(每小题6分,共24分) 评分原则:每空3分 1. a=b、b=r 2. tablej、p 3. new、A() delete a; 4. return Name、return totalWeight 四、理解问答题,分别写出前2小题程序运营成果和指出后2小题程序或函数功能。(每小题6分,共24分) 1. k=9 2. 12 3. 计算并输出N阶乘值,其中N值由键盘输入。 4. 求出并返回字符指针参数s所指向字符串长度。 五、编程题(每小题6分,共12分) 评分原则:按编程完整限度酌情给分。 1. void fun(char
12、* a,int b) int i; for(i=0;i=0 & jb.n) k=b.n;else k=n; /1分 for(int i=0;ib.ai) return 1; else if(aib.ai) return -1; /3分 if(k=n & k=b.n) return 0; /4分 else if(k=i & _); return p*a*b; 2. 对数组a中元素按相反顺序重新排列。 void PV(int a,int n) int i; for(i=0;inext; t-next=_; p=_; return p; 4. 类A定义 class A int *a;int n;in
13、t MaxLen; public: A():a(0),n(0),MaxLen(0) /无参构造函数 A(int *aa,int nn,int MM) /带参构造函数 n=nn; MaxLen=MM; if(nMaxLen) exit(1); a=new intMaxLen; for(int i=0;in;i+) _; /运用数组aa给数组a赋值 A()_; /释放动态存储空间 int GetValue(int i) return ai; /函数体返回ai值 ; 四、理解问答题,分别写出前2小题程序运营成果和指出后2小题程序或函数功能。(每小题6分,共24分) 1. #include const
14、 int B=2; void main() int p=1,s=1; while(s50) p*=B; s+=p; couts=sendl; 运营成果: 2. #include class CE private: int a,b; int getmin() return (ab?a:b); public: int c; void SetValue(int x1,int x2,int x3) a=x1;b=x2;c=x3; int GetMin(); ; int CE:GetMin() int d=getmin(); return (dSetValue(x+y,y-z,10); coutGetM
15、in()endl; 运营成果: 3. int ff(int x,int y,char op) int z; switch(op) case +: coutx+yz; if(x+y=z) return 1;else return 0; break; case -: coutx-yz; if(x-y=z) return 1;else return 0; break; case *: coutx*yz; if(x*y=z) return 1;else return 0; break; case /: coutx/yz; if(x/y=z) return 1;else return 0; break;
16、 default:cout运算符错,退出!;exit(1); 函数功能: 4. char* f(char *s) int n=strlen(s); char* r=new charn+1; for(int i=0;i=a & si=i 2. ai=an-i-1、an-i-1=x 3. p、t 4. ai=aai、delete a 四、理解问答题,分别写出前2小题程序运营成果和指出后2小题程序或函数功能。(每小题6分,共24分) 评分原则:第3、4小题依照论述完整限度酌情给分。 1. s=63 2. 4 3. 以参数x和y作为运算对象,以参数op所存字符作为运算符,规定从键盘上输入运算成果,若对
17、的则返回1否则返回0。 4. 依照参数s所指向字符串,生成一种由r所指向新字符串并返回,该字符串使s字符串中小写字母均变为大写。 五、编程题(每小题6分,共12分) 评分原则:按编程完整限度酌情给分。 1. int f(int a,int n) if(n=0) return 0; /1分 else return an-1*an-1+f(a,n-1); /6分 2. Array:Array(Array& aa) n=aa.n; /1分 a=new intn; /3分 for(int i=0;in;i+) ai=aa.ai; /6分 训练第三套 一、单项选取题(每小题2分,共20分) 1. C+程序基
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1