c++复习含解答(仅供参考).doc_第1页
c++复习含解答(仅供参考).doc_第2页
c++复习含解答(仅供参考).doc_第3页
c++复习含解答(仅供参考).doc_第4页
c++复习含解答(仅供参考).doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C+面向对象程序设计模拟试题一、选择题 1. C+源程序文件的默认扩展名为( A )。 A. cpp B. exe C. obj D. lik 2. 由C+源程序文件编译而成的目标文件的默认扩展名为( C )。 A. cpp B. exe C. obj D. lik 3. 由C+目标文件连接而成的可执行文件的默认扩展名为( B )。 A. cpp B. exe C. obj D. lik 4. C+程序从上机到得到结果的几个操作步骤依次是( B )。 A. 编译、编辑、连接、运行 B. 编辑、编译、连接、运行 C. 编译、运行、编辑、连接 D. 编辑、运行、编辑、连接 5. 以下标识符中不全是保留字的是( B )。 A. case for int B. default then while C. bool class long D. goto return char 6. 能作为C+程序的基本单位是( C )。 A. 字符 B. 语句 C. 函数 D. 源程序文件 7. 程序中主函数的名字为( A )。 A. main B. MAIN C. Main D. 任意标识符 8. C+程序的基本模块为( D )。 A. 表达式 B. 标识符 C. 语句 D. 函数 9. 可用作C+语言用户标识符的一组标识符是( B )。A. void define +WORDB. a3_b3 _123 YNC. for -abc CaseD. 2a DO sizeof 10. 存储以下数据,占用存储字节最多的是( D )。 A. 0 B. 0 C. “0” D. 0.0 11. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( D )符号作为分隔符。 A. 空格或逗号 B. 逗号或回车 C. 逗号或分号 D. 空格或回车 12. 设”int a=12;”,则执行完语句”a+=a*a;”后,a的值是( C )。 A. 12 B. 144 C. 156 D. 288 13. 假设在程序中 a、b、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式的表达式是( D )。A. 1.0/a*b*c B. 1/(a*b*c) C. 1/a/b/(float)c D. 1.0/a/b/c 14. 设”int a=15,b=26;”,则”cout0 & x=10的相反表达式为( A )。A. x10 B. x10C. x=0 | x0 & x10 17. x0 | y=5的相反表达式为( B )。A. x=0 | y!=5 B. x0 | y!=5 D. x0 & y=5 18设x和y均为bool量,则x & y为真的条件是( A )。 A. 它们均为真 B. 其中一个为真 C. 它们均为假 D. 其中一个为假 19设x和y均为bool量,则x | y为假的条件是( C )。 A. 它们均为真 B. 其中一个为真 C. 它们均为假 D. 其中一个为假20题 题目没讲清楚不知道是占字节还是有效长度 按我的推测舍是求有效长度 20. 字符串”a+b=12n”的长度为( C )。 A. 6 B. 7 C. 8 D. 9 21. 假定下列x和y均为int型变量,则不正确的赋值为( B )。 A. x+=y+ B. x+=y+ C. x=+y D. +x=+y 22. 下列的符号常量定义中,错误的定义是( C )。 A. const M=10; B. const int M=20; C. const char ch; D. const bool mark=true; 23. 循环语句“for(int i=0; in; i+) couti*i ;”中循环体执行的次数为( C )。 A. 1 B. n-1 C. n D. n+1 24. 在下面循环语句中循环体执行的次数为( B )。 for(int i=0; in/2) break;/*和for(int i=0;i=n/2;i+)等价*/ A. n/2 B. n/2+1 C. n/2-1 D. n-1 25. 在下面循环语句中内层循环体S语句的执行总次数为( D )。 for(int i=0; in; i+) for(int j=i; jn; j+) S; A. n2 B. (n+1)/2 C. n(n-1)/2 D. n(n+1)/226. 在下面循环语句中循环体执行的次数为( C )。/*转化为求1+2+3+.+n20求出n+1就是答案*/ int i=0,s=0; while(s20) i+; s+=i; A. 4 B. 5 C. 6 D. 7 27. 在下面循环语句中循环体执行的次数为( A )。 int i=0; do i+; while(i*i10); A. 4 B. 3 C. 5 D. 2 28. 当处理特定问题时的循环次数已知时,通常采用( A )来解决。 A. for循环 B. while循环 C. do循环 D. switch语句 29. 循环体至少被执行一次的语句为( C )。 A. for循环 B. while循环 C. do循环 D. 任一种循环 30. switch语句能够改写为( B )语句。 A. for B. if C. do D. while 31. do语句能够改写为( D )语句。 A. 复合 B. if C. switch D. while 32. 在下面的一维数组定义中,哪一个有语法错误。( C ) A. int a=1,2,3; B. int a10=0; C. int a; D. int a5; 33. 在下面的字符数组定义中,哪一个有语法错误。( D )。 A. char a20=”abcdefg”; B. char a=”x+y=55.”; C. char a15; D. char a10=5; 34. 在下面的二维数组定义中,正确的是( C )。 A. int a5; B. int a5; C. int a3=1,3,5,2; D. int a(10); 35. 假定一个二维数组的定义语句为“int a34=3,4,2,8,6;”,则元素a12的值为( C )。 A. 2 B. 4 C. 6 D. 8 36. 假定一个二维数组的定义语句为“int a34=3,4,2,8,6;”,则元素a21的值为( A )。 A. 0 B. 4 C. 8 D. 6 37. 若定义了函数 double *function(), 则函数function的返回值为( B )。 A. 实数型 B.实数的地址 C.指向函数的指针 D.函数的地址 38. 以下说法中正确的是( B )。 A. C+程序总是从第一个定义的函数开始执行 B. C+程序总是从main函数开始执行 C. C+函数必须有返回值,否则不能使用函数 D. C+程序中有调用关系的所有函数必须放在同一个程序文件中 39. 以下叙述中不正确的是( C )。 A. 在一个函数中,可以有多条return语句 B. 函数的定义不能嵌套,但函数的调用可以嵌套 C. 函数必须有返回值 D. 不同的函数中可以使用相同名字的变量 40. 函数重载是指( A )。 A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同 B. 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同 C. 两个以上的函数名字不同,但形参的个数或类型相同 D. 两个以上的函数取相同的函数名,并且函数的返回类型相同 41. 以下关于函数模板叙述正确的是( C )。 A. 函数模板也是一个具体类型的函数 B. 函数模板的类型参数与函数的参数是同一个概念 C. 通过使用不同的类型参数,函数模板可以生成不同类型的函数 D. 用函数模板定义的函数没有类型 42. 下列( C )的调用方式是引用调用。 A. 形参和实参都是变量 B.形参是指针,实参是地址值 C. 形参是引用,实参是变量 D.形参是变量,实参是地址值 43. 为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择( A )。 A. 内联函数 B.重载函数 C.递归函数 D.函数模板 44. 函数原型语句正确的是( B )。 A. int Function(void a); B.void Function (int); C. int Function(a); D.void int(double a); 45. C+中函数返回值的类型是由( B )决定的。 A. return语句中表达式的类型 B.该函数定义时的类型 C.调用函数时的调用语句 D.系统根据结果 46. 以下函数的返回结果是( A )。 int function(char *x) char *p=x; while(*p+); return(p-x-1);/地址的运算 A. 求字符串的长度 B.将字符串x连接到字符串p后面 C. 将字符串x复制到字符串p中 D.将字符串x反向存放 47. 函数调用func(exp1,exp2),(exp3,exp4,exp5)中所含实参的个数为( B )个。 A. 1 B. 2 C. 4 D. 5 48. 设有如下函数定义 int f(char *s) char *p=s; while(*p!=0) p+; return(p-s); 在主函数中用coutf(“good”)调用上述函数, 则输出结果为( B )。 A. 3 B. 4 C. 5 D. 6 49. 以下正确的函数原型语句是( C )。 /分号 A. double fun(int x,int y) B. double fun(int x;int y) C. double fun(int,int); D. double fun(int x,y); 50. 以下正确的说法是( C )。 A. 用户调用标准库函数前,必须重新定义 B. 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 C. 系统不允许用户重新定义标准库函数 D. 用户调用标准库函数前,不必使用预编译命令将该函数所在文件包括到用户源文件中二、填空题1. C+语言是在_C_语言的基础上发展起来的。2. 在C+类中,有一种不能定义对象的类,这样的类只能被继承,称之为 抽象类,定义该类至少具有一个 _抽象函数_。3. C+语言的编译单位是扩展名为_.cpp_的_程序_文件。4. 行尾使用注释的开始标记符为_/_。5. 在基类和派生类中,成员函数的覆盖是指 _在派生类中定义了一个和基类同样类型的同名函数_。6. 多行注释的开始标记符和结束标记符分别为_/*_和_*/_。7. 用于输出表达式值的标准输出流对象是_cout_。8. 类的_私有_成员只能被该类的成员函数或友元访问.9. 用于从键盘上为变量输入值的标准输入流对象是_cin_。10. 在定义类对象的语句执行时,系统在建立每个对象的过程中将自动调用该类的_构造函数_使其初始化.11. 一个完整程序中必须有一个名为_main_的函数。a) 一个函数的函数体就是一条_复合_语句。12. 当执行cin语句时,从键盘上输入每个数据后必须接着输入一个_回车或空白_符,然后才能继续输入下一个数据。13. 在C+程序中包含一个头文件或程序文件的预编译命令为_#include_。14. 程序中的预处理命令是指以_#_字符开头的命令。15. 在C+中,定义重载函数时,应至少使重载函数的参数个数或参数类型 _不同_;a) 一条表达式语句必须以_分号_作为结束符。16. 在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是_用户自_定义的头文件。17. 在C+中建立参数类型和个数不同的同名函数是可能的,这称为_重载_。18. 使用#include命令可以包含一个头文件,也可以包含一个_程序_文件。19. 一个函数定义由_函数头_和_函数体_两部分组成。20. 若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的_声明_语句。21. C+头文件和源程序文件的扩展名分别为_.H_和_.cpp_。22. 当一个类对象被撤消时将自动调用该类的_析构函数_。23. 程序文件的编译错误分为_警告_和_错误_两类。24. 当使用_void_保留字作为函数类型时,该函数不返回任何值。25. 面向对象的程序设计有四大特征,它们是抽象、封装、 继承、 _多态_。 26. 基类和派生类的关系称为_继承_27. 如果一个派生类只有一个唯一的基类,则称这样的继承关系为_单继承_。28. 当使用_void_保留字作为函数类型时,该函数不返回任何值.29. 当函数参数表用_void_保留字表示时,则表示该参数表为空。30. 从一条函数原型语句“int fun1(void);”可知,该函数的返回类型为_整形_,该函数带有_0_个参数。31. 函数被调用时,实参向形参的传送分为引用和_值_两种传送方式.32. 当执行cout语句输出endl数据项时,将使C+显示输出屏幕上的光标从当前位置移动到_下一行_的开始位置。33. 在基类和派生类中,成员函数的覆盖是指 _在派生类中定义了一个和基类同样类型的同名函数_。34. C+常数0x145对应的十进制值为_325_。35. 在C+类中,有一种不能定义对象的类,这样的类只能被继承,称之为 _抽象类_。36. 当一个类对象被撤消时将自动调用该类的_析构函数_37. 十进制常数245对应的十六进制的C+表示为_0XF5_。38. 十进制常数245对应的八进制的C+表示为_0365_。 39. signed char类型的值域范围是_-128_至_127_之间的整数。40. 类的_私有_成员只能被该类的成员函数或友元访问.41. int和float类型的数据分别占用_4_和_4_个字节。42. float和double类型的数据分别占用_4_和_8_个字节。43. bool和char类型的数据分别占用_1_和_1_个字节。44. unsigned short int和int类型的长度分别为_2_和_4_。45. 字符串”Thiss a book.n”的长度为_15_。46. 一个完整程序中必须有一个名为_main_的函数.47. 在C+中存储字符串”a+b=c”至少需要_6_个字节。48. 如果一个派生类只有一个唯一的基类,则称这样的继承关系为_单继承_。49. 假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员bb的写法为_AB.bb_。50. 假定x和ch分别为int型和char型,则sizeof(x)和sizeof(ch)的值分别为_4_和_1_。51. 假定x=10,则表达式x=10?20:30的值为_20_。52. 表达式sqrt(81)和pow(6,3)的值分别为_9_和_216_。53. 当使用_void_保留字作为函数类型时,该函数不返回任何值.三、程序阅读题1阅读下面程序,写出输出结果。#include / 预处理命令using namespace std;/ 使用标准命名空间stdclass Pointprivate:int x;/ x坐标int y;/ y坐标public:Point(int a = 0, int b = 0):x(a), y(b)int GetX() const return x; int GetY() const return y; void SetX(int a) x = a; void SetY(int b) y = b; ;int main(void)Point obj1;const Point obj2(9, 98);cout obj1.GetX() endl;obj1.SetX(5);cout obj1.GetX() endl;obj1.SetY(18);cout obj1.GetY() endl;cout obj2.GetX() endl;cout obj2.GetY() endl;return 0; / 返回值0,返回操作系统上面程序的输出结果为:05189982阅读下面程序,写出输出结果。#include / 预处理命令using namespace std;/ 使用标准命名空间stdclass Arrayprivate:int *elem;/ 数组元素存储空间int size;/ 数组元素个数public:Array(int a, int sz): elem(a), size(sz) / 构造函数int GetSize() return size; int &operator(int pos) return elempos - 1; / 重载下标运算符;int main(void)int a = 1, 2, 3, 4, 5;Array obj(a, 5);obj1 = 8;for (int i = 1; i = obj.GetSize(); i+)/ 依次输出数组各元素之值cout obji ;cout endl;return 0; / 返回值0, 返回操作系统上面程序的输出结果为:8 2 3 4 5 3阅读下面程序,写出输出结果。#include / 预处理命令using namespace std;/ 使用标准命名空间stdclass Apublic:A() cout 构造A endl; / 构造函数A() cout 析构A endl; / 析构函数;class B: public Apublic:B() cout 构造B endl; / 构造函数B() cout 析构B endl; / 析构函数;int main(void)B obj;A *p = new A;return 0; / 返回值0, 返回操作系统上面程序的输出结果为:构造A构造B构造A析构B析构A4阅读下面程序,写出输出结果。#include / 预处理命令using namespace std;/ 使用标准命名空间stdtemplate ElemType f(ElemType x) return x * (ElemType)5.1; template void f(ElemType x, ElemType y) x = x * 1.1;y = y * 1.1;cout x endl;cout y endl;int main(void)cout f(3.0) endl;f(1, 2);f(1.0, 2.0);system(PAUSE); / 调用库函数system( ), 输出系统提示信息return 0; / 返回值0, 返回操作系统上面程序的输出结果为:15.3121.12.2四、简答题1. 面向对象的概念面向对象的概念:按人们认识客观世界的系统思维方式,采用基于对象(实体)的概念建立模型,模拟客观世界分析、设计、实现软件的办法2. 类、对象概念类:是一中复杂的数据类型来与客观世界中的复杂对象相对应对象:是累的实例化对应着客观世界的具体事物3. 多态、继承、重载的概念多态:一个操作随着所传递或捆绑的对象类型的不同能够做出不同的反应,其行为模式称为多态继承:继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系,子类可以添加自己的属性来完善自己的的功能和结构重载:两个或两个以上的函数取相同的函数名,但形参的个数或类型不同4. 构造函数、析构函数构造函数:是对定义的对象进行初始化析构函数:对不需要再访问的对象进行回收5. 抽象类的概念,其作用和意义抽象类:存在虚函数,不能实例化对象作用:是用来被继承的意义:在其派生类中进行实际的定义,实现多态。6. 类的成员访问控制符及访问Private:只能在本类中访问Protected:在本类和其派生类中都可访问Public:在类的作用域范围内都是可以访问的到的五、编程题1. 通过编程计算1+3+32+.+310的值。/3的0次方 3的1次方 3的2次方 3的10次方#includeusing namespace std;int main (void)int sum=1,a=1;for(int i=0;i11;i+)a*=3;sum+=a;coutsumendl;return 0;2. 编程求下式值,其中阶乘用函数实现:1! + 2! + 3!+5!#includeusing namespace std;int f(int x)int s=1;for(int i=1;i=x;i+)s*=i;return s;int main (void)int sum=0;for(int i=1;i6;i+)sum+=f(i);coutsumendl;return 0;3. 编写一个基于对象的程序:输入半径,计算圆的周长和面积并输出 实现提示: 1)、数据成员包括元的半径 2)、成员函数包括计算周长length(),计算面积:area() 3)、以半径值100创建一个对象,分别输出他的周长和面积#includeusing namespace std;class Circledouble r;public:Circle(int a=0)r=a;double length()return 2*3.14*r;double area()return 3.14*r*r;int main (void)Circle x(100);coutx.length()endl;coutx.area()endl;return 0;4. 建立一个名为Student的类,该类有以下几个私有成员变量:姓名、学号、性别、和年龄。还有以下2个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。定义该类,并编写一个主函数,声明一个学生对象,然后调用成员函数在屏幕输出学生信息。#include#includeusing namespace std;class Studentchar name20;int xuehao;char se

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论