C程序设计复习提纲.doc_第1页
C程序设计复习提纲.doc_第2页
C程序设计复习提纲.doc_第3页
C程序设计复习提纲.doc_第4页
C程序设计复习提纲.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

C+程序设计复习提纲一、单项选择题(15题*2分=30分)1、 在每个C+程序中都必须包含有这样一个函数,该函数的函数名为 。AA. main B. MAIN C. name D. function2、 由C+目标文件连接而成的可执行文件的缺省扩展名为 。BA. .cpp B. exe C. obj D. lik3、 设x和y均为bool量,则x&y为真的条件是 。AA. 它们均为真 B. 其中一个为真 C. 它们均为假 D. 其中一个为假4、 下面的哪个保留字不能作为函数的返回类型? 。CA. void B. int C. new D. long5、 设有定义int x; float v;,则10+x+v值的数据类型是 。CA. .int B.doubleC.floatD不确定6、 下列哪个是C+语言的有效标识符? BA. mail B._lock C.3inl D. -Page7、 下列哪个是C+语言的有效标识符? AA. _No1 B.No.1 C.12345 D.int8、 决定C+语言中函数的返回值类型的是 。DA. return语句中的表达式类型B. 调用该函数时系统随机产生的类型C. 调用该函数时的主调用函数类型D. 在定义该函数时所指定的数据类型9、 下面关于break语句的描述中,不正确的是 。DA. break可以用于循环体内B. break语句可以在for循环语句中出现多次C. break语句可以在switch语句中出现多次D. break语句可用于if条件判断语句内10、 下列说法正确的是 。BA. 内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B. 内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C. 类的内联函数必须在类体内定义D. 类的内联函数必须在类体外通过加关键字inline定义11、 C+语言对C语言做了很多改进,C+语言相对于C语言的最根本的变化是 。DA. 增加了一些新的运算符B. 允许函数重载,并允许设置缺省参数C. 规定函数说明符必须用原型D. 引进了类和对象的概念12、 下面关于类和对象的描述中,错误的是 。AA. 类就是C语言中的结构体类型,对象就是C语言中的结构体变量B. 类和对象之间的关系是抽象和具体的关系C. 对象是类的实例,一个对象必须属于一个已知的类D. 类是具有共同行为的若干对象的统一描述体13、 在C+语言中,数据封装要解决的问题是 。DA. 数据的规范化B.便于数据转换B. 避免数据丢失D.防止不同模块之间数据的非法访问14、 假定a为一个整型数组名,则元素a4的字节地址为 。CA. A. a+4 B. a+8 C. a+16 D. a+3215、 设有数组定义:char arrayChina;,则数组array所占的空间为 。CA. A. 4个字节B. 5个字节C. 6个字节D. 7个字节16、 若已定义:int a=0,1,2,3, 4, 5,6,7,8,9,*p=a,i; 其中0i9,则对a数组元素不正确的引用是 。DA. A. ap-aB. *(&ai) C. piD. a1017、 在下面的一维数组定义中,哪一个有语法错误。 BA. int a=1,2,3; B. int a; C. int a10=0; D. int a5;18、 下面程序错误的语句是 。BDA. #includeB. void main()C. D. int *pnew int1;E. p=9;F. cout *pendl;G. deletepH. A. B. C. D. 19、 下面程序错误的语句是 。DA. #includeB. void main()C. D. int A=0,1,2;E. int *pA;F. cout *p= C. :D. /43、 下面关于模板的描述,错误的是 。DA. 函数模板和类模板的参数可以是任意的数据类型B. 类模板不能直接使用,必须先实例化为相应的模板类然后定义了模板类的对象后才能使用C. 函数模板不能直接使用,需要实例化为模板函数后才能使用D. 类模板的成员函数都是模板函数44、 当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为 。DA. ios:in B. ios:out C. ios:in | ios:out D. 没有二、填空题(10空*1分=10分)1、 开发一个C+语言程序的步骤通常包括编辑、 编译 、链接、运行和调试。2、 cout. put( A);,还可以表示为 couty和x=y的逻辑值分别为 0 和 1 。8、 执行“cout char(A+2)endl;”语句后得到的输出结果为 C 。9、 已知AZ的ASCII码为6590,当执行“char ch=14*5+2;coutch5的相反表达式为 x+y*b 。20、 假定a是一个二维数组,则aij的指针访问方式为 *(*(a+i)+j) 。21、 假定一个二维数组为aMN,则ai的地址值(以字节为单位)为 a+N*i 。 22、 如果需要在被调函数运行期间,改变主调函数中实参变量的值,则函数的形参应该是 指针 类型或 引用 类型。23、 进行函数重载时,被重载的同名函数如果都没有用const修饰,则它们的形参 个数 或 类型 必须不同。24、 在类中必须声明成员函数的 原型 ,成员函数的 定义 部分可以写在类外。25、 对一个类中的数据成员的初始化可以通过构造函数中的 函数体 实现,也可以通过构造函数中的 初始化列表 实现。26、 拷贝构造函数的形参必须是 本身对象的引用 。27、 设px是指向一个类动态对象的指针变量,则执行”delete px;”语句时,将自动调用该类的_ 析构函数 _。28、 若需要把一个函数”void F();”定义为一个类AB的友元函数,则应在类AB的定义中加入一条语句:_ friend void F(); _。 29、 继承的方式有公有继承、私有继承和 保护继承 3种。30、 类成员的访问控制属性有公有类型,私有类型和 保护类型 3种。31、 类模板的使用实际是将类模板实例化成一个具体的 类 。32、 抽象 类只能作为基类使用,而不能声明它的对象。33、 如果类B继承了类A,则称类A为类B的基类,类B称为类A的 派生类 。34、 在面向对象方法中,类之间共享属性和操作的机制称为 继承 。35、 假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员bb的写法为 AB:bb 。36、 假定AB为一个类,则执行“AB a(4),b10 , * p2;”语句时,系统自动调用该类的构造函数的次数为 11 。37、 假定AB为一个类,则执行“AB a10;”语句时,系统自动调用该类的构造函数的次数为 10 。 38、 将x+y中的+运算符用友元函数重载应写为 friend operator+(x,y) 。三、设计题(2题*10分=20分)(三选二)1、编写一个简单程序,要求:用while循环实现从键盘上输入20个整数并放入数组;求出数组元素的最大值及数组的平均值并输出。(有改动)#includevoid main()int n20;int i=0,s;while(ini;i+;i=0;while(ini)max=ni;s=s+ni;i+;coutthe max: maxendl;coutthe array:s/20endl;2、寻找并输出11999之间的数m,它满足m、m2和m3均为回文数。(回文:各位数字左右对称的整数。例如:11满足上述条件112=121,113=1331)(或者参考书p66)#includeint f(int a)int s=0;while(a0)s=s*10+a%10;a=a/10;return(s);void main()int m;for(m=11;m=999;m+)if(m=f(m)&m*m=f(m*m)&m*m*m=f(m*m*m)coutmendl;3、声明并实现一个矩形(Rectangle)类,有长(Length)、宽(Width)两个属性,无参构造函数,带参数构造函数、拷贝构造函数、析构函数、计算矩形的周长的成员函数Get_Circumference()和计算矩形的面积的成员函数Get_Area()#includeclass rectangleprivate:double length;double width;public:rectangle()length=0;width=0;rectangle(int l,int w)length=l;width=w;rectangle(rectangle& r)length=r.length;width=r.width;rectangle();double get_circumference(void)return(length+width)*2);double get_area(void)return(length*width);4、声明并实现一个圆(Circle)类,有数据成员半径(Radius)、无参构造函数,带参数构造函数、拷贝构造函数、析构函数、计算圆周长的成员函数Get_Circumference()和计算圆的面积的成员函数Get_Area()。(三、四两题可以对照着看)#includeclass circleprivate:double radius;public:circle()radius=0;circle(int l)radius=l;circle(circle& r)radius=r.radius;circle();double get_circumference(void)return(2*radius*3.1415926);double get_area(void)return(3.1415926*radius*radius);5、编写程序,把从键盘上输入的一批整数(以-1作为终止输入的标志)保存到文本文件“a.dat”中。(-1是否被保存?)#include#includevoid main()ofstream ofs1(a.dat,ios:out); /书上貌似不太对,没有ios_base int a100;int i=0,j;do cinj;ai=j;i+;while(j!=-1);i=0;doofs1ai ;i+;while(ai!=-1);ofs1.close();6、从文件a.dat中依次读取每个字符串(假设每个字符串的长度均小于20)并输出到屏幕上显示出来,同时统计并显示出文件中的字符串个数。#include#includevoid main()ifstream ifs1(a.dat,ios:in); /书上貌似不太,对没有ios_base char a20;int s=0;while(ifs1.eof()=0) /ifs1.eof是检测是否到达文件末尾的函数 ifs1a;coutaendl;s+;couttotal chars:s;ifs1.close();7、定义一个处理日期的类TDate,它有3个私有数据成员:Month,Day,Year和若干个公有成员函数,并实现如下要求:无参构造函数、带默认参数构造函数、拷贝构造函数、析构函数、定义一个友元函数来打印日期、定义一个非静态成员函数设置日期。(有改动)#includeclass tdateprivate:int month;int day;int year;public:tdate()month=0;day=0;year=0;tdate(int y,int m=0,int d=0)day=d;month=m;year=y;tdate(tdate& t)month=t.month;day=t.day;year=t.year;tdate();friend void pdate(tdate&);void mdate(int y,int m,int d)month=m;day=d;year=y;void pdate(tdate& t)coutyear:t.yearendl;coutmonth:t.monthendl;coutday:t.dayendl;8、定义Shape类为一个表示形状的抽象类,Area( )为求图形面积的函数,请从shape类派生三角形类(Triangle)、矩形类(Rectangle),三角形类中数据成员包括三角形一条边长度和对应的高,矩形类数据成员包括矩形的长和宽,并给出对应的构造函数和具体的求面积函数Area()。(可省略部分代码)#includeclass shapeprotected: /注意这里要用保护类型 double heigh;double width;public:shape(double h=0,double w=0)heigh=h;width=w;shape(shape& s) /拷贝构造函数可以不要heigh=s.heigh;width=s.width;shape();virtual double area(void)=0;class triangle:public shapepublic:triangle(double h=0,double w=0):shape(h,w);triangle(triangle& t):shape(t); /拷贝构造函数可以不要triangle();double area(void)return(heigh*width)/2);class rectangle:public shapepublic:rectangle(double h,double w):shape(h,w);rectangle(rectangle& r):shape(r); /拷贝构造函数可以不要rectangle();double area(void)return(heigh*width);4、 判断题(10题*1分=10分)1、 有数组定义int a22=(1),(2,3),则a01的值为0。T2、 int(*ptr)(),则ptr是一维数组的名字。F3、 设x和y均为bool量,则x&y为假的条件是其中一个为假。T4、 设x和y均为bool量,则x&y为真的条件是它们均为真。T5、 构造函数可以重载,析构函数不能重载。T6、 构造函数不能重载,析构函数可以重载。F7、 类与类之间必须是平等关系,而不能组成层次结构。F8、 在c+语言中,数据封装要解决的问题是防止不同模板之间数据的非法访问。F(如果模

温馨提示

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

评论

0/150

提交评论