




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象程序设计基础学习提纲第1章 程序设计与c+语言初步1、c+语言程序结构2、c+程序运行3、面向对象程序特征第2章 基本数据类型1、标识符、关键字:标识符的命名规则:以字母或下划线开始,不能包含非法字符2、常量和变量整型常量(十、八、十六进制的正确写法)实型常量(小数形式、指数形式)字符常量(普通字符和转义字符)字符串常量(结束标志、长度)变量(合法变量名、数据类型、作用域、存储类型)符号常量:#define PI 3.14const double PI = 3.14;3、C+输入输出流(无格式输入输出,输入字符串)4、 基本数据类型(整型、实型、字符型、无值型(void)、布尔型)5、
2、 运算符与表达式(重点)运算符的种类、优先级和结合性(编译器会对程序中所有表达式求值)算术运算符及表达式:* 、 / 、 + 、 、%(用于整数运算,可用来判断是否整除)、(自加、自减,只能作用于变量,放在变量前面或后面的区别)关系运算符及表达式:>、<、>=、<=、= =、!=。运算结果为1(真)或0(假)逻辑运算符及表达式:(会使用&&和|书写逻辑表达式,判断时非0即为真,0为假)赋值运算符及表达式:赋值运算符和,左边只能是变量。4、类型转换:如(int);经过强制类型转换后算术表达式的求值例题:2.3.1(p37)练习:2-1、2-3、2-8上机习
3、题:2-2第3章 基本控制结构1、三种基本结构:顺序结构、选择结构、循环结构2、顺序结构(表达式语句、空语句、复合语句)3、if.else语句实现选择结构及其嵌套4、switch语句实现多分支选择,break语句跳出分支结构5、for、while、do.while循环结构(循环次数、循环条件、循环结束后变量的值)6、break语句和continue语句7、多重循环例题:3.2.3 3.2.4 3.2.5 3.2.8 3.3.4 3.3.6 练习:3-2,3-4, 3-6上机习题: 3-3第4章 函数1、函数的有关概念:类型、参数、返回值2、定义函数:确定函数的类型、形参的类型及名称、返回值及一
4、致性、定义位置等。3、函数调用:确定实参及类型、调用方式与方法、参数传递方式(传值调用、传址调用)。4、递归函数及调用:由递推公式定义递归函数5、变量的作用域及存储类型:全局、局部变量的定义及其作用域,局部变量的三种存储类型:自动存储、静态存储、寄存器存储,静态局部变量的初始值及在函数经过多次调用后的值。6、递归程序设计7、预处理命令:宏定义8、库函数例题:4.2.2 4.7.2 练习题:4-6,4-8第5章 类与对象1、 类的定义;类成员的访问控制:公有public、保护protected和私有private。2、 成员函数的定义:在类外定义成员函数。3、 对象的概念:类和对象的关系;构造函
5、数和析构函数;习题:5-2,5-4第6章 复合数据类型1、指针与指针变量的概念、定义、指针运算(不包括指针的关系运算)、初始化。2、一维数组、二维数组的定义及初始化(下标从0开始,二维数组按行排列、根据行列数定义二维数组等)3、指向变量的指针与指向数组的指针的使用(字符指针的各种初始化形式)4、利用字符指针处理字符串(输入、输出、复制、逆序排列、求长度)5、字符串:string类的用法4、常用字符串处理函数(strlen、strcpy、strcmp、strcat)6、指针数组的使用(多个字符串按字典顺序排序)6、对象指针:用指针访问数据成员和成员函数7、指向函数的指针8、结构类型、枚举类型与类
6、型别名例题:6.3.1 6.3.2习题:6-3,6-6,6-9第7章 继承机制1、 继承和派生的概念2、 单一继承:三种继承方式的区别3、 派生类构造函数的定义方法4、 派生类析构函数的注意问题5、 多重继承的声明形式6、 多重继承的二义性及其解决方法第8章 多态性1、 多态的概念2、 函数重载3、 运算符重载:重载为成员函数;重载为友元函数4、 虚函数的声明及其用法5、 虚析构函数的作用6、 纯虚函数和抽象类的概念第10章 输入输出流1、 输入输出流类库2、 文件流的概念:文件的打开和关闭;文件的读写例题:10.5.1, 10.7.1复习题一及参考答案:一、单选题(每小题1分,共6分)1、在
7、每个C+程序中都必须包含有这样一个函数,该函数的函数名为 。A. main B. MAIN C. name &
8、#160; D. function2、设x和y均为bool量,则x&&y为真的条件是 。A. 它们均为真 B. 其中一个为真 C. 它们均为假 &
9、#160; D. 其中一个为假3、下面的哪个保留字不能作为函数的返回类型? 。A. void B. int &
10、#160; C. new D. long4、假定a为一个整型数组名,则元素a4的字节地址为 。A. a+4 &
11、#160; B. a+8 C. a+16 D. a+325、假定AB为一个类,则执行“AB a(4) , b3 , * p2 ”语句时,自动调用该
12、类构造函数的次数为 。A. 3 B. 4
13、160;C. 6 D. 96、假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为: 。A. AB
14、operator+(AB & a , AB & b) B. AB operator+(AB & a)C. operator+(AB a)
15、; D. AB & operator+( ) 二、填空题(每小题2分,共24分)1、C+语言中的每条基本语句以 作为结束符,每条复合语句以
16、 作为结束符。2、执行“cout <<char('A'+2)<<endl;”语句后得到的输出结果为 。3、float 和 double 类型的大小分别为
17、 和 。4、关系表达式x+y>5的相反表达式为 。5、假定一个一维数组的定义为“char *
18、60;a8 ”,则该数组所含元素的个数为 ,所占存储空间的字节数为 。6、变量分为全局和局部两种, 变量没有赋初值时,其值是不确定的。7、假定a是一个二维数组,则a
19、ij的指针访问方式为 。8、假定一个结构类型定义为“struct D int a union int b double
20、60;c D * d2 ” ,则该类型的大小为 字节。9、对一个类中的数据成员的初始化可以通过构造函数中的 &
21、#160;实现,也可以通过构造函数中的 实现。10、假定AB为一个类,则执行“AB a10;”语句时,系统自动调用该类的构造函数的次数为
22、 。 11、假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员bb的写法为 &
23、#160;。 三、给出下列程序运行后的输出结果(每小题6分,共36分)1、# include <iostream.h>void SB(char ch) switch(ch) case 'A': case 'a': cout <
24、<"well!" break; case 'B': case 'b': cout <<"good!" break; case 'C': case 'c':
25、 cout <<"pass!" break; default: cout <<"nad!" break; void main()
26、60; char a1='b',a2='C',a3='f' SB(a1);SB(a2);SB(a3);SB('A'); cout <<endl; 2、# include <iostream.h># include <string.h> void main() &
27、#160; char *a5="student","worker","cadre","soldier","peasant" char *p1,*p2; p1=p2=a0; for (int i=0; i<5; i+)
28、; if (strcmp(ai,p1)>0) p1=ai; if (strcmp(ai,p2)<0) p2=ai; cout <<p1<<' '<<p2<<e
29、ndl; 3、# include <iostream.h>int a=5;void main() int a=10,b=20; cout <<a<<' '<<b<<endl; int a=0,b=0;
30、 for (int i=1; i<6; i+) a+=i; b+=a; cout <<a<<' '<<b&
31、lt;<' '<<:a<<endl; cout <<a<<' '<<b<<endl; 4、# include <iomanip.h>int LB(int *a,int n) int s=1;
32、 for (int i=0; i<n; i+) s*=*a+; return s;void main() int a=1,2,3,4,5,6,7,8; int b=LB(a,5)+LB(&a3,3);
33、160; cout <<"b="<<b<<endl; 5、# include <iostream.h># include <string.h>struct Worker char name15; / 姓名 int age; &
34、#160; / 年龄 float pay; / 工资;void main() Worker x; char *t="liouting" int d=38; float
35、;f=493; strcpy(,t); x.age=d; x.pay=f; cout <<<<' '<<x.age<<' '<<x.pay<<endl; 6、# include <iostream.h>class A &
36、#160; int a;public: A(int aa=0) a=aa; A() cout <<"Destructor A!"<<a<<endl; class B:public A int b;public: &
37、#160; B(int aa=0,int bb=0):A(aa) b=bb; B() cout <<"Destructor B!"<<b<<endl; void main() B x(5),y(6,7); / 后定义的变量将先被释放 四、写出下列每个
38、函数的功能(每小题6分,共24分)1、# include <iostream.h>int SA(int a,int b) if (a>b) return 1; else if (a=b) return 0; else return -1; 2、float FI(int
39、160;n) / n为大于等于1的整数 float x,y=0; do cin >>x; n-; y+=x*x; &
40、#160; while (n>0); return y; 3、template <class Type>void WE(Type a,Type b,int n) for (int i=0; i<n; i+)
41、60; bn-i-1=ai; 4、struct StrNode char name15; / 字符串域 StrNode * next; / 指针域;void QB(StrNode * & f ,int n) &
42、#160; if (n=0) f=NULL; return; f=new StrNode; cin >>f->name; StrNode * p=f; while (-n)
43、160; p=p->next=new StrNode; cin >>p->name; p->next=NULL; 五、编写程序,把从键盘上输入的一批整数(以-1作为终止输入的标志)保存到文本文件“a:xxk1.dat”中。(10分)一、单选题(每小题1分,共6分)评分标
44、准:选对者得1分,否则不得分。1、A 2、A 3、C 4、C 5、B 6、B二、填空题(每小题2分,共24分)评分标准:每题与参考答案相同者得2分,否则不得分。1、&
45、#160; : 2、 C3、 4 8
46、; 4、 x+y<=5 5、 8 326、 局部
47、60; 7、 *(ai+j) 或 *(*(a+i)+j)8、 20
48、160; 9、 初始化表 函数体10、 10 11、
49、60; AB:bb三、给出下列程序运行后的输出结果(每小题6分,共36分)评分标准:每题与参考答案的数据和显示格式完全相同者得6分,否则酌情给分。1、 good! pass! bad! well!2、 worker cadre3、 10 2015 35 510 204、 b=2405、 liouting
50、 38 4936、 Destructor B! 7Destructor A! 6Destructor B! 0Destructor A! 5四、写出下列每个函数的功能(每小题6分,共24分) 评分标准:每题与参考答案的叙述含义相同者得6分,否则酌情给分。 1、比较两
51、个整数a和b的大小,若a>b则返回1,若a= =b则返回0,若a<b则返回-1。 2、求出从键盘上输入的n个常数的平方和并返回。 3、模板函数,把数组a的每个元素按逆序放入数组b中。 4、建立一个具有n个结点的链表,每个结点的字符串值由键盘输入,链表的表头指针由引用变量f带回。五、编写程序,把从键盘上输入的一批整数(以-1作为终止输入的标志)保存到文本文件“a:xxk1.dat”中。(10分)
52、0;评分标准:见参考程序中的注释。 # include <iostream.h> / 使用此命令得1分# include <fstream.h># include <stdlib.h> void main() ofstream fout("a:xxk1.dat"); / 定
53、义输出文件流并打开文件得2分 if (!fout) cerr <<"文件没有打开!"<<endl; exit(1);
54、60; / 可有可无 int x; cin >>x; while (x!=-1)
55、0; fout <<x<<' ' cin >>x; / 能够从键盘向文件正确输出数据得6分
56、160; fout.close(); / 关闭输出文件流得1分复习题二及参考答案一、 填空题1.C+源程序文件的缺省扩展名为_。2.程序的三种基本控制结构是:顺序结构、 结构、_结构。3.在C+程序中,当函数调用在前、函数定义在后时,则应在主调函数中,在调用前增加对被调函数的_说明。4.在调用具有数组参数的函数时,须以 作为实在参数。5函数递归调用指的是,在函数定义的函数体中又出现直接或间接地调用 。6.C+依据调用中实在参数在 上或 上的不同来确定调用的是重载函数的哪一个。7.
57、在函数外定义的变量称为 变量。8. 字符串常量是用 括起来的字符序列,在字符串的末尾有一个结束标志 。9. 当撤消一个含有基类和类对象成员的派生类对象时,将首先完成_的析构函数定义体的执行,接着完成_的析构函数定义体的执行,最后完成_的析构函数定义体的执行。10. 设px是指向一个类动态对象的指针变量,则执行”delete px;”语句时,将自动调用该类的_。(2分)11.假定p所指对象的值为25,p+1所指对象的值为46,则*p+的值为_。(2分)12.假定a为一个整型数组名,则元素a4的字节地址为_。(2分)13.假定一个结构类型的定义为 “struct Dint a; union int
58、 b; double c;D* d2;”,则该类型的大小为_字节。(2分)14.假定要动态分配一个类型为Worker的具有n个元素的数组,并由r指向这个动态数组,则使用的语句为_。(2分)二、 写出下列表达式的值及运算过程1设x=2.5,y=4.7,a=7,b=2: 计算表达式x+a%3+(int)y/(int)x的值2设x=2.5,y=4.7,a=7,b=2:计算表达式!(a>b)| x>y的值3设a=1,b=-2,c=1:计算表达式x=(d=b*b4*a*c, (d=0)?b/(2*a):b/(2*a)+ sqrt(d)/(2*a) 的值 4设有变量说明int a=4,b=2,
59、x=3,y=0:计算表达式(-a<+b)&&(x<y)的值5. int a=1,&b=a,*p=&a,y :计算表达式 y=(a+=b,b+=*p,*p+a) 的值6. 设:int a5=10,20,30,40,50; int *p=&a0;计算表达式+*p+*(a+3)的值。三、读程序, 并将运行结果写在对应输出语句的后面1#include<iostream.h>void main() int a6=0,1,2,3,4,5; int i=0; for(i=0;i<6;i+)if(i%2=0) ai=ai+1; else a
60、i=ai+2; cout<< ai; 2#include<iostream.h>void f(int &a,int &b) int t=a; a=b; b=t;void main()int x=10,y=15;f(x,y);cout<<x<<t<<y<<n;3#include<iostream.h>void main() int i=10; switch (i) case 9:i+; case 10:+i; case 11:i+; default:i=i+1;cout<<i<&
61、lt;endl;4 #include<iostream.h> #include<string.h> struct Worker char name15; /姓名 int age; /年龄 float pay; /工资 ; void main() Worker x; char *t="WeiRong" int d=45; float f=1235; strcpy(,t); x.age=d; x.pay=f; cout<<<<' '<<x.age<<'
62、9;<<x.pay<<endl; 四、编程题1设计一程序,它输入10个整数到一个数组中,调整这10个整数在数组中的排列位置,使得其中最大的一个数成为数组的首元素,最小的一个数成为数组的末元素。2用递归方法设计函数int arraymin(int d,int size);其中d 为数组,size为数组元素个数;arraymin返回d中的最小元素。 3定义描述圆柱体的结构体类型Cylinder,该结构体类型的数据成员为圆柱体底半径r与高h。编写函数Volume()计算出圆柱体的体积。在主函数中定义圆柱结构体变量,输入圆柱体的半径与高,调用Volume()函数计算出
63、圆柱体体积,并输出圆柱体的体积。参考答案一、填空题1. cpp 2. 条件分支 循环 3. 原形 4. 单独的数组名5自身 6. 数量 类型 7. 全局 8. 双引号 09. 派生类 类成员所属类 基类 10. 析构函数11. 25 12. a+16 13. 20 14. Worker* r=new Workern;二、写出下列表达式的值及运算过程15.5 2 0 3 1 40 5. 8 6. 51三、读程序, 并将运行结果写在对应输出语句的后面11 3 3 5 5 7215 10 313 4weirong 45 1235四、编程题1#include<iostream.h>void
64、 main() int data10,m; for(m=0;m<10;m+) cin>>datam; int j=0,k=0;for(int i=1;i<10;i+) if(datai>dataj) j=i; else if(datai<datak) k=i;if(j>0) int d=data0;data0=dataj;dataj=d; if(k=0) k=j;if(k<9) int d=data9; data9=datak; datak=d;cout<<endl<<”排序后:”;for(m=0;m<10;m+)
65、cout<<datam<< ;2int arraymin(int d,int size) int min;if(size=1)return d0;else if(d0>dsize-1) d0=dsize-1; min=arraymin(d,size-1);return min ;复习题三 一、单项选择题 1. C+源程序文件的默认扩展名为( )。 A. cpp B. exe C. obj D. lik 2. 由C+源程序文件编译而成的目标文件的默认扩展名为( )。 A. cpp B. exe C. obj D. lik 3. 由C+目标文件连接而成的可
66、执行文件的默认扩展名为( )。 A. cpp B. exe C. obj D. lik 4. C+程序从上机到得到结果的几个操作步骤依次是( )。 A. 编译、编辑、连接、运行 B. 编辑、编译、连接、运行 C. 编译、运行、编辑、连接 D. 编辑、运行、编辑、连接 5. 以下标识符中不全是保留字的是( )。 A. case for int B. default then while C. bool class long D. goto return char 6. 能作为C+程序的基本单位是( )。 A. 字符 B. 语句 C. 函数 D. 源程序文件 7. 程序中主函数的名字为( )。 A
67、. main B. MAIN C. Main D. 任意标识符 8. C+程序的基本模块为( )。 A. 表达式 B. 标识符 C. 语句 D. 函数 9. 可用作C+语言用户标识符的一组标识符是( )。A. void define +WORDB. a3_b3 _123 YNC. for -abc CaseD. 2a DO sizeof 10. 存储以下数据,占用存储字节最多的是( )。 A. 0 B. 0 C. “0” D. 0.0 11. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( )符号作为分隔符。 A. 空格或逗号 B. 逗号或回车 C. 逗号或分号 D. 空格或回车
68、 12. 设”int a=12;”,则执行完语句”a+=a*a;”后,a的值是( )。 A. 12 B. 144 C. 156 D. 288 13. 假设在程序中 a、b、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式的表达式是( )。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;”,则”cout<<(a,b);”的输出结果是( )。A. 15 B. 26,15 C. 15,26 D. 26 15. 设x是一个bool型的逻辑量,y的值为10,则表达式 x &a
69、mp;& y的值为( )。 A. 1 B. 0 C. 与x值相同 D. 与x值相反 16. x>0 && x<=10的相反表达式为( )。A. x<=0 | x>10 B. x<=0 && x>10C. x<=0 | x<=10 D. x>0 && x>10 17. x>0 | y=5的相反表达式为( )。A. x<=0 | y!=5 B. x<=0 && y!=5 C. x>0 | y!=5 D. x>0 && y=
70、5 18设x和y均为bool量,则x && y为真的条件是( )。 A. 它们均为真 B. 其中一个为真 C. 它们均为假 D. 其中一个为假 19设x和y均为bool量,则x | y为假的条件是( )。 A. 它们均为真 B. 其中一个为真 C. 它们均为假 D. 其中一个为假 20. 字符串”a+b=12n”的长度为( )。 A. 6 B. 7 C. 8 D. 9 21. 假定下列x和y均为int型变量,则不正确的赋值为( )。 A. x+=y+ B. x+=y+ C. x=+y D. +x=+y 22. 下列的符号常量定义中,错误的定义是( )。 A. const M=1
71、0; B. const int M=20; C. const char ch; D. const bool mark=true; 23. 循环语句“for(int i=0; i<n; i+) cout<<i*i<< ;”中循环体执行的次数为( )。 A. 1 B. n-1 C. n D. n+1 24. 在下面循环语句中循环体执行的次数为( )。 for(int i=0; i<n; i+) if(i>n/2) break; A. n/2 B. n/2+1 C. n/2-1 D. n-1 25. 在下面循环语句中内层循环体S语句的执行总次数为( )。 for(int i=0; i<n; i+) for(int j=i; j<n; j+) S; A. n2 B. (n+1)/2 C. n(n-1)/2 D. n(n+1)/2 26. 在下面循环语句中循环体执行的次数为( )。 int i=0,s=0; while(s<20) i+; s+=i; A. 4 B. 5 C. 6 D. 7 27. 在下面循环语句中循环体执行的次数为( )。 int i=0; do i+; while(i*i<10); A. 4 B. 3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年云浮市云城区招聘教育人才笔试真题
- 2024年南昌职业大学辅导员考试真题
- 法学概论学习方法与技巧探讨试题及答案
- 2024年西安市第一医院招聘笔试真题
- 加强行业分析能力的行动计划
- 广东省深圳市罗芳中学2025年八年级数学第二学期期末教学质量检测试题含解析
- 明确目标客户群的识别计划
- 数据可视化技术的应用前景试题及答案
- 赋能团队领导力提升计划
- 丰富校园经历的实习社活动计划
- 工业机器人在建筑行业的应用考核试卷
- 人体发育学 第十章 婴幼儿情绪情感的发育
- 2025年江苏省职业院校技能大赛高职组(机电一体化技术)参考试题库资料及答案
- 小学安全知识家长进课堂
- GB/T 29912-2024城市物流配送汽车选型技术要求
- 2025年1月浙江省高考英语试卷(含答案解析)+听力录音稿+听力音频
- 全套电子课件:管理学
- 高职汽车专业群“产教联动、链群对接、岗课融通、专创结合”人才培养体系研究
- 汉字的起源适合小学生课件
- 幼儿园红色故事:一封鸡毛信
- 中职学校招生接待流程
评论
0/150
提交评论