




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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-1、2-3、2-8上机习题:2-2第3章基本控制结构1、三种基本结构:顺序结构
3、、选择结构、循环结构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、定义函数:确定函数的类型、形参的类型及名称、返回值及一致性、定 义位置等。3、函数调用:确
4、定实参及类型、调用方式与方法、参数传递方式(传值调 用、传址调用)。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复习题一及参考答案:一、单选题 (每小题
7、1 分,共 6 分)1、在每个 C+ 程序中都必须包含有这样一个函数,该函数的函数名 为。A. main B. MAIN C. name D. function2、设 x 和 y 均为 bool 量,则 x&y 为真的条件是 。A. 它们均为真 B. 其中一个为真 C. 它们均为假 D. 其中一个为假3、下面的哪个保留字不能作为函数的返回类型?。A. void B. int C. new D. long4、假定 a 为一个整型数组名,则元素 a4 的字节地址为 。A. a+4 B. a+8 C. a+16 D. a+325、假定AB为一个类,则执行“ A由,b3 , * p2;语句时,自动调用
8、该类构造函数的次数为。A. 3B. 4C. 6D. 96、 假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为:。A. AB operator+(AB & a , AB & b) B. AB operator+(AB & a)C. operator+(AB a)D. AB & operator+( )二、填空题 ( 每小题 2 分,共 24 分)1、 C+语言中的每条基本语句以作为结束符,每条复合语句 以作为结束符。2、 执行“ cout5的相反表达式为。5、 假定一个一维数组的定义为“ chai* a8; ”则该数组所含元素的个数为,
9、所占存储空间的字节数为。6、 变量分为全局和局部两种,变量没有赋初值时,其值是不确定 的。7、假定a是一个二维数组,则aij的指针访问方式为8、假定一个结构类型定义为“ structD int a ; union int b ; double c ; ; D * d2 ; ; ”,则该类型的大小为字节。9、 对一个类中的数据成员的初始化可以通过构造函数中的实现,也可以通过构造函数中的实现。10、假定AB为一个类,贝U执行“ ABa10;语句时,系统自动调用该类的构造函数的次数为。11、 假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员bb的写法为。三、给出下列程序运行
10、后的输出结果(每小题6分,共36分)1、# include void SB(char ch) switch(ch)case A: case a:cout well!; break;case B: case b:cout good!; break;case C: case c:cout pass!; break;default:cout nad!; break;void mai n() char a仁b,a2=C,a3=f;SB(a1);SB(a2);SB(a3);SB(A);cout e ndl;2、# include # include void main() char *a5=studen
11、t,worker,cadre,soldier,peasant;char *p1,*p2;p1=p2=a0;for (int i=0; i0) p1=ai;if (strcmp(ai,p2)0) p2=ai;cout p1 p2endl;3、# include int a=5;void main() int a=10,b=20;cout a bendl; int a=0,b=0;for (int i=1; i6; i+) a+=i; b+=a;cout a b :aendl;cout a bendl;4、# include int LB(int *a,int n) int s=1;for (in
12、t i=0; in; 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);cout b=bendl;5、# include # include struct Workerchar name15; / 姓名int age; / 年龄float pay; / 工资;void main() Worker x;char *t=liouting;int d=38; float f=493;strcpy(,t);x.age=d; x.pay=f;cout x.age x.paye
13、ndl;6、# include class A int a;public:A(int aa=0) a=aa; A() cout Destructor A!aendl; ;class B:public A int b;public:B(int aa=0,int bb=0):A(aa) b=bb; B() cout Destructor B!bendl; ;void main() B x(5),y(6,7); / 后定义的变量将先被释放四、写出下列每个函数的功能 (每小题 6 分,共 24 分)1、# include int SA(int a,int b) if (ab) return 1;els
14、e if (a=b) return 0;else return -1;2、float FI(int n) / n 为大于等于 1 的整数float x,y=0;do cin x; n-; y+=x*x; while (n0);return y;3、template void WE(Type a,Type b,int n) for (int i=0; if-name;StrNode * p=f;while (-n) p=p-next=new StrNode; cin p-name; p-next=NULL;五、编写程序,把从键盘上输入的一批整数 ( 以-1 作为终止输入的标志 )保存 到文本文件
15、 “a:xxk1.dat 中”。 (10 分)一、单选题(每小题 1分,共 6 分) 评分标准:选对者得 1 分,否则不得分。1、A 2 、 A 3 、 C 4 、 C 5 、B 6 、B二、填空题(每小题 2分,共 24 分) 评分标准:每题与参考答案相同者得 2 分,否则不得分。1、: 2 、 C3、4 84、 x+yb 则返回 1 ,若 a= =b 则返回 0 , 若 ab 则返回 -1 。2 、求出从键盘上输入的 n 个常数的平方和并返回。3 、模板函数,把数组 a 的每个元素按逆序放入数组 b 中。4 、建立一个具有 n 个结点的链表,每个结点的字符串值由键盘输入,链 表的表头指针由
16、引用变量 f 带回。五、编写程序,把从键盘上输入的一批整数 ( 以-1 作为终止输入的标志 )保存 到文本文件 “a:xxk1.dat 中”。 (10 分)评分标准:见参考程序中的注释。# include / 使用此命令得 1 分# include # include void main() ofstream fout(a:xxk1.dat); / 定义输出文件流并打开文件得 2 分 if (!fout)cerr 文件没有打开! x;while (x!=-1) fout vvxvv; cin x; /能够从键盘向文件正确输出数据得6分fout.close(); /关闭输出文件流得1分复习题二及
17、参考答案、 填空题1. C+源程序文件的缺省扩展名为 。2. 程序的三种基本控制结构是:顺序结构、结构、结构。3. 在C+程序中,当函数调用在前、函数定义在后时,则应在主调函数中,在调用前增加对被调函数的明。4. 在调用具有数组参数的函数时,须以作为实在参数。5 函数递归调用指的是,在函数定义的函数体中又出现直接或间接地调 用。6. C+依据调用中实在参数在上或上的不同来确定调用的是重载函数的哪一个。7. 在函数外定义的变量称为变量。8. 字符串常量是用括起来的字符序列,在字符串的末尾有一个结束标志。9. 当撤消一个含有基类和类对象成员的派生类 对象时,将首先完 成勺析构函数定义体的执行,接着
18、完成勺析构函数 定义体的执行,最后完成勺析构函数定义体的执行。10. 设px是指向一个类动态对象的指针变量,则执行” delete px;”语句时,将自动调用该类的。(2分)11. 假定p所指对象的值为25,p+1所指对象的值为46,则*p+的值为 。(2 分)12. 假定a为一个整型数组名,则元素a4的字节地址为。(2分)13. 假定一个结构类型的定义为Struct Dint a; union int b; double c;D*d2;:则该类型的大小为 字节。(2分)14. 假定要动态分配一个类型为 Worker的具有n个元素的数组,并由r指向这个动态数组,则使用的语句为 (2分)二、写出
19、下列表达式的值及运算过程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 :计算表达式!(ab) | xy 的值3. 设a=1,b=-2,c=1 :计算表达式x=(d=b*b 4*a*c, (d=0)? - b/(2*a) : - b/(2*a)+ sqrt(d)/(2*a) 的值4. 设有变量说明 int a=4 , b=2, x=3, y=0 :计算表达式(-a+b)& (xy) 的值5. i nt a=1,&b=a,*p=&a,y:计算表达式y=(a+=b,b+=*p,*p+a)的值
20、6. 设:int a5=10,20,30,40,50; int *p=&a0;计算表达式 +*p+*(a+3)的值。三、读程序,并将运行结果写在对应输出语句的后面1 . #includevoid mai n() int a6=0,1,2,3,4,5;int i=0;for(i=0;i6;i+)if(i%2=0) ai=ai+1;else ai=ai+2;cout ai;2. #includevoid f(int & a,i nt &b)int t=a; a=b; b=t;void mai n()int x=10,y=15;f(x,y);coutx y 3. #includevoid mai n
21、() int i=10; switch (i) case 9:i+; case 10:+i; case 11:i+; default:i=i+1 ;coutvvivve ndl;4. #in clude#i ncludevstri ng.hstruct Worker char n ame15;/ 姓名int age; 年龄float pay;工资;void mai n() Worker x; char *t=WeiRo ng; int d=45; float f=1235; strcpy(x. name,t); x.age=d; x.pay=f; coutx .n ame x.age x.pa
22、ye ndl;四、编程题1 .设计一程序,它输入10个整数到一个数组中,调整这10个整数在数组中 的排列位置,使得其中最大的一个数成为数组的首元素,最小的一个数成为数组的 末元素。2 .用递归方法设计函数int arraymin(int d,int size);其中d为数组,size为 数组元素个数;arraymin返回d中的最小元素。3.定义描述圆柱体的结构体类型 Cylinder,该结构体类型的数据成员为圆 柱体底半径r与高h。编写函数Volume()计算出圆柱体的体积。在主函数中定义 圆柱结构体变量,输入圆柱体的半径与高,调用 Volume()函数计算出圆柱体体 积,并输出圆柱体的体积。
23、参考答案、填空题I. cpp5.自身0 9.派生类II. 252.6.12.条件分支 数量类型类成员所属类a+1613.循环基类203.原形7.全局4.单独的数组名8.双引号10.析构函数14. Worker* r=new Workern;1、写出下列表达式的值及运算过程05. 86. 511. 5.52.03.14.二读程序,并将运行结果写在对应输出语句的后面1. 1 3 3 5 5 72. 15103. 134weirong 45 1235四、编程题1#includevoid main() int data10,m;for(m=0;mdatam;int j=0,k=0;for(int i=
24、1;idataj) j=i;else if(datai0)int d=data0;data0=dataj;dataj=d; if(k=0) k=j;if(k9)int d=data9;data9=datak;datak=d;coutendl ”排序后:” ;for(m=0;m10;m+) coutdatamdsize-1)d0=dsize-1;min=arraymin(d,size-1); return min ;复习题三一、单项选择题1. C+源程序文件的默认扩展名为()。A. cppB. exeC. objD. lik2. 由C+源程序文件编译而成的目标文件的默认扩展名为()A. cppB
25、. exeC. objD. lik3. 由C+目标文件连接而成的可执行文件的默认扩展名为A. cppB. exeC. objD. lik4. C+程序从上机到得到结果的几个操作步骤依次是A. 编译、编辑、连接、运行C. 编译、运行、编辑、连接 以下标识符中不全是保留字的是(A. caseforintC. boolclass long能作为C+程序的基本单位是(A. 字符B. 语句程序中主函数的名字为(A. mainB. MAIN( )。5.6.7.B. 编辑、D. 编辑、 )。B. defaultD. goto)。函数()。编译、连接、运行 运行、编辑、连接then while return
26、charC.)。C. Main )。D. 源程序文件D. 任意标识符8. C+程序的基本模块为(A. 表达式B. 标识符C. 语句9. 可用作C+语言用户标识符的一组标识符是(A. void define +WORD B. a3_b3C. for -abc Case D. 2a10. 存储以下数据,占用存储字节最多的是(A. 0 B. 0C. “ 0”D. 0.011. 程序运行中需要从键盘上输入多于一个数据时, 符号作为分隔符。空格或逗号B. 逗号或回车DO)D. 函数)。_123 YN sizeof各数据之间应使用 ( )C. 逗号或分号D.A.空格或回车12. 设” A. 1213. 假
27、设在程序中 a、b、c 均被定义成整型,所赋的值都大于 1,则下列能” a+=a*a后,a的值是()C. 156 D. 288int a=12;,则执行完语句B. 144正确表示代数式 的表达式是 ()。A. 1.0/a*b*c B. 1/(a*b*c) C. 1/a/b/(float)c D. 1.0/a/b/c14. 设” int a=15,b=26;”,贝cout(a,b);” 的输出结果是()A. 15 B. 26,15 C. 15,2615. 设 x 是一个 bool 型的逻辑量, y 的值为 ( )。A. 1B. 0 C. 与 x 值相同16. x0 & x=10 的相反表达式为(
28、A. x10 B. x10D. 2610,则表达式 x & y 的值为D. 与 x 值相反0C. x=0 | x0 &x1017. x0 | y=5的相反表达式为()A. x=0 | y!=5 B. x0 | y!=5 D. x0 &y=518设 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
29、B. 7 C. 8 D. 921. 假定下列 x 和 y 均为 int 型变量,则不正确的赋值为( )。A. x+=y+ B. x+=y+ C. x=+y D. +x=+y22. 下列的符号常量定义中,错误的定义是()。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 ;”中循环体执行的次数为 ( )。A. 1B. n-1C. n D. n+124. 在下面循环语句中循环体执行的次数为()。for(int i=0; in/
30、2) break;A. n/2 B. n/2+1 C. n/2-1 D. n-125. 在下面循环语句中内层循环体 S语句的执行总次数为()。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. 在下面循环语句中循环体执行的次数为()。int i=0,s=0; while(s20) i+; s+=i;A. 4 B. 5 C. 6 D. 727. 在下面循环语句中循环体执行的次数为()。int i=0; do i+; while(i*i10);A. 4 B. 3 C. 5 D.
31、 2)来解决。D. switch 语句D. 任一种循环28. 当处理特定问题时的循环次数已知时,通常采用(A. for 循环B. while 循环C. do 循环29. 循环体至少被执行一次的语句为( )。A. for 循环B. while 循环C. do 循环30. switch 语句能够改写为( )语句。A. forB. if C. do D. while31. do语句能够改写为()语句。A. 复合B. if C. switch D. while32. 在下面的一维数组定义中,哪一个有语法错误。 ()A. int a=1,2,3; B. int a10=0;C. int a; D. in
32、t a5;33. 在下面的字符数组定义中,哪一个有语法错误。 ( )。A. char a20= ”abcdefg”;B. char a= ”x+y=55.”;C. char a15;D. char a10=5;34. 在下面的二维数组定义中,正确的是 ( )。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 的值为( )。A. 2 B. 4 C. 6 D. 836. 假定一个二维数组的定义语句为“ int a34=3,4,2,8,6; ”,则
33、元素 a21 的值为( )。A. 0 B. 4 C. 8 D. 637. 若定义了函数 double *function(), 则函数 function 的返回值为( )。A.实数型B.实数的地址C.指向函数的指针D.函数的地址38. 以下说法中正确的是( )。A. C+程序总是从第一个定义的函数开始执行B. C + +程序总是从 main 函数开始执行C. C+函数必须有返回值,否则不能使用函数D. C + +程序中有调用关系的所有函数必须放在同一个程序文件中39. 以下叙述中不正确的是( )。A. 在一个函数中,可以有多条 return 语句B. 函数的定义不能嵌套,但函数的调用可以嵌套C
34、. 函数必须有返回值D. 不同的函数中可以使用相同名字的变量40. 函数重载是指( )。A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同B. 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类 型可以不同C. 两个以上的函数名字不同,但形参的个数或类型相同D. 两个以上的函数取相同的函数名,并且函数的返回类型相同41. 以下关于函数模板叙述正确的是( )。A. 函数模板也是一个具体类型的函数B. 函数模板的类型参数与函数的参数是同一个概念C. 通过使用不同的类型参数,函数模板可以生成不同类型的函数D. 用函数模板定义的函数没有类型42. 下列( )的调用方式是引用调用。A. 形参和实参都是变量B. 形参是指针,实参是地址值C.形参是引用,实参是变量D.形参是变量,实参是地址值43. 为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应 选择( )。C. 递归函数D.函数模板)。B.void Function (int);D. void int(double a);)决定的。A.内联函数B.重载函数44. 函数原型语句正确的是(A. int Function(void a);C. int Function(a);45. C+中函数返
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 出租预混料工厂合同范本
- 公司车租赁合同范本
- 劳动合同范本1995
- 办公家具订购合同范本
- pc构件模具合同范本
- 中学军训合同范本
- 共同抵押合同范本
- 中介和工厂合同范本
- 华泰期货合同范本
- 公司签订赔偿合同范例
- 精选湖北恩施州2023中考英语试题英语(解析版)
- GB/T 15166.3-2023高压交流熔断器第3部分:喷射熔断器
- 小学体育-小小特种兵教学设计学情分析教材分析课后反思
- 中智公司人员招聘笔试题库
- 中国故事英文版年英文二篇
- 略论明心见性
- GB/T 5470-1985塑料冲击脆化温度试验方法
- GB/T 37827-2019城镇供热用焊接球阀
- GB/T 16839.2-1997热电偶第2部分:允差
- GB/T 14335-2008化学纤维短纤维线密度试验方法
- 10000中国普通人名大全
评论
0/150
提交评论