C++程序设计复习资料.docx

上传人:小飞机 文档编号:3153663 上传时间:2023-03-11 格式:DOCX 页数:11 大小:42.46KB
返回 下载 相关 举报
C++程序设计复习资料.docx_第1页
第1页 / 共11页
C++程序设计复习资料.docx_第2页
第2页 / 共11页
C++程序设计复习资料.docx_第3页
第3页 / 共11页
C++程序设计复习资料.docx_第4页
第4页 / 共11页
C++程序设计复习资料.docx_第5页
第5页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C++程序设计复习资料.docx》由会员分享,可在线阅读,更多相关《C++程序设计复习资料.docx(11页珍藏版)》请在三一办公上搜索。

1、C+程序设计复习资料下面罗列了一部分重要知识点,声明:仅供参考 1、 一个C+程序可以由一个程序单位或多个程序单位构成。每一个程序单位作为一个文件。在程序编译时,编译系统分别对各个文件进行编译,因此,一个文件是一个编译单元。 (2) 在一个程序单位中,可以包括以下几个部分: 预处理命令。上节4个程序中都包括#include命令。 全局声明部分(在函数外的声明部分)。在这部分中包括对用户自己定义的数据类型的声明和程序中所用到的变量的定义。 函数。函数是实现操作的部分,因此函数是程序中必须有的和最基本的组成部分。每一个程序必须包括一个或多个函数,其中必须有一个(而且只能有一个)主函数(main函数

2、)。 但是并不要求每一个程序文件都必须具有以上3个部分,可以缺少某些部分(包括函数)。 (3) 一个函数由两部分组成: 函数首部,即函数的第一行。包括函数名、函数类型、函数属性、函数参数(形参)名、参数类型。 一个函数名后面必须跟一对圆括号, 函数参数可以缺省,如int main( )。 函数体,即函数首部下面的大括号内的部分。如果在一个函数中有多个大括号,则最外层的一对 为函数体的范围。 函数体一般包括: 局部声明部分 (在函数内的声明部分)。包括对本函数中所用到的类型、函数的声明和变量的定义。 对数据的声明既可以放在函数之外(其作用范围是全局的),也可以放在函数内(其作用范围是局部的,只在

3、本函数内有效)。 执行部分。由若干个执行语句组成,用来进行有关的操作,以实现函数的功能。 语句包括两类。一类是声明语句,另一类是执行语句。 C+对每一种语句赋予一种特定的功能。语句是实现操作的基本成分,显然,没有语句的函数是没有意义的。C+语句必须以分号结束。 (5) 一个C+程序总是从main函数开始执行的,而不论main函数在整个程序中的位置如何。 (6) 类(class)是C+新增加的重要的数据类型,是C+对C的最重要的发展。有了类,就可以实现面向对象程序设计方法中的封装、信息隐蔽、继承、派生、多态等功能。在一个类中可以包括数据成员和成员函数,他们可以被指定为私有的(private)和公

4、用的(public)属性。私有的数据成员和成员函数只能被本类的成员函数所调用。 (7)C+程序书写格式自由,一行内可以写几个语句, 一个语句可以分写在多行上。C+程序没有行号,也不像FORTRAN或COBOL那样严格规定书写格式(语句必须从某一列开始书写)。 (8) 一个好的、有使用价值的源程序都应当加上必要的注释,以增加程序的可读性。C+还保留了C语言的注释形式,可以用“/*/”对C+程序中的任何部分作注释。在“/*”和“*/”之间的全部内容作为注释。 用“/”作注释时,有效范围只有一行,即本行有效,不能跨行。而用“/*/”作注释时有效范围为多行。只要在开始处有一个“/*”,在最后一行结束处

5、有一个“*/”即可。因此,一般习惯是: 内容较少的简单注释常用“/”,内容较长的常用“/*/ ”。 2、 一个程序从编写到最后得到运行结果要经历哪几个步骤?文件包含是什么意思? 3、 数据类型各知识点 1 4、 什么叫变量?有哪些属性?变量名规则是什么?变量除了有数据类型属性外,还有哪些属性? 5、 C+的运算符有哪些?其运算的优先级是什么? C+的关系运算符有: (小于) (大于) = (大于或等于) = (等于) != (不等于) 优先级相同 (低) 关于优先次序: 前4种关系运算符的优先级别相同,后两种也相同。前4种高于后两种。例如,“”优先于“”。而“”与“a+b 等效于 c(a+b)

6、 ab=c 等效于(ab)=c a=bc 等效于a=(bc 等效于a=(bc) 用关系运算符将两个表达式连接起来的式子,称为关系表达式。关系表达式的一般形式可以表示为 表达式 关系运算符 表达式 其中的“表达式”可以是算术表达式或关系表达式、逻辑表达式、赋值表达式、字符表达式。例如,下面都是合法的关系表达式: ab, a+bb+c,(a=3)(b=5), ab)(b=0”的值为“真”。在C和C+中都用数值1代表“真”,用0代表“假”。 如果有以下赋值表达式: d=ab 则d得到的值为1 f=abc f得到的值为0 逻辑运算符的优先次序: 2 (1) ! & ,即“!”为三者中最高的。 (2)

7、逻辑运算符中的“&”和“|”低于关系运算符,“!”高于算术运算符。 6、 “判断浮点数a是否在闭区间-16.3,-10.9之中”的C+语言表达式是什么? 7、 C+提供的预处理功能有哪些? 8、 设变量a 为int 型变量,且值为8。请运算a+和+a后表达式的值和变量a 的值分别是多少? 9、什么叫文件包含处理?头文件一般包含哪几类内容 10、 程序段如下: for (s=0,i=1;i10;i+) if ( i%4 = = 0 ) break; s=s+i; 则程序段运行完毕后s的值为多少? 11、 内存中供用户使用的存储空间通常由几个部分组成? 12、 编程完成输入一个字符,判别它是否为大

8、写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。 13、 编写程序,判断某一年是否为闰年; 14、 编写程序找出100200间的全部素数; 15、 编程求3个正整数中的最大数 16、 编程输入a和b两个整数,按先大后小的顺序输出a和b(用指针变量处理) 17、 如果x=3,y=6,则int= 。 18、 double a=123.456789012345;对a赋初值 (1) couta;输出: (2) coutsetprecision(9)a;输出: (3) coutsetprecision(6);功能是 (4) cout setiosflags(iosfixed

9、);输出 (5) coutsetiosflags(iosfixed)setprecision(8)a;输出: (6) coutsetiosflags(iosscientific)a;输出: (7) coutsetiosflags(iosscientific)setprecision(4)a; 输出: int b=123456;对b赋初值 (1) coutb;输出: (2) couthexb; 输出: (3) coutsetiosflags(iosuppercase)b;输出: (4) coutsetw(10)b,b; 输出: (5) coutsetfill(*)setw(10)b;输出: (6

10、) coutsetiosflags(iosshowpos)b;输出: 19、 变量除了有数据类型属性外,还有哪些属性? 20、 什么是变量?什么是指针?变量和指针之间有何联系?指针有哪些属性? 21、 什么是数组?数组名有什么意义?用数组名作为参数有何要求?与指针之间有何联系和区别?一维和二维数组的定义、引用和初始化等 3 22、 关于用数组名作函数参数有两点要说明 (1) 如果函数实参是数组名,形参也应为数组名 ,形参不能声明为普通变量(如int array;)。实参数组与形参数组类型应一致,如不一致,结果将出错。 (2) 需要特别说明的是: 数组名代表数组首元素的地址,并不代表数组中的全部

11、元素。因此用数组名作函数实参时,不是把实参数组的值传递给形参,而只是将实参数组首元素的地址传递给形参。形参可以是数组名,也可以是指针变量,它们用来接收实参传来的地址。如果形参是数组名,它代表的是形参数组首元素的地址。在调用函数时,将实参数组首元素的地址传递给形参数组名。这样,实参数组和形参数组就共占同一段内存单元。 在用变量作函数参数时,只能将实参变量的值传给形参变量,在调用函数过程中如果改变了形参的值,对实参没有影响,即实参的值不因形参的值改变而改变。而用数组名作函数实参时,改变形参数组元素的值将同时改变实参数组元素的值。在程序设计中往往有意识地利用这一特点改变实参数组元素的值。 实际上,声

12、明形参数组并不意味着真正建立一个包含若干元素的数组,在调用函数时也不对它分配存储单元,只是用array这样的形式表示array是一维数组名,以接收实参传来的地址。因此array中方括号内的数值并无实际作用,编译系统对一维数组方括号内的内容不予处理。形参一维数组的声明中可以写元素个数,也可以不写。 23、 字符串处理函数有哪些? 24、 #include using namespace std; int main( ) char c1; c1=a+8-5; coutc1endl; return 0; 请问输出什么? 25、 有两个与指针变量有关的运算符: (1) 取地址运算符。 (2) *指针运

13、算符 26、 课本中对“&”和“*”运算符再做些说明部分; 27、 如果先使p指向数组a的首元素(即p=a),则: (1) p+。使p指向下一元素,即a1。如果用*p,得到下一个元素a1的值。 (2) *p+。由于+和*同优先级,结合方向为自右而左,因此它等价于*(p+)。作用是: 先得到p指向的变量的值(即*p),然后再使p的值加1。例6.5(3)程序中最后一个for语句: for(p=a;pa+10;p+) cout*p; 可以改写为 for(p=a;pa+10;) cout*p+; (3) *(p+)与*(+p)作用不同。前者是先取*p值,然后使p加1。后者是先使p加1,再取*p。若p的

14、初值为a,输出*(p+)得到a0的值,而输出*则得到a1的值。 (4) (*p)+表示p所指向的元素值加,即(a0)+,如果a0=3,则(a0)+的值为4。注意: 4 是元素值加1,而不是指针值加1。 (5) 如果p当前指向ai,则 *(p-) 先对p进行“*”运算,得到ai,再使p减1,p指向ai-1。 *(+p) 先使p自加1,再作*运算,得到ai+1。 *(-p) 先使p自减1,再作*运算,得到ai-1。 将+和-运算符用于指向数组元素的指针变量十分有效,可以使指针变量自动向前或向后移动,指向下一个或上一个数组元素。例如,想输出数组100个元素,可以用以下语句: p=a; p=a; wh

15、ile(pa+100) 或 while(pa+100) cout*p+; cout*p; p+; 在用*p+形式的运算时,很容易弄错,一定要十分小心,弄清楚先取p值还是先使p加1。 28、 设变量x=y=a=b=c=d=0,执行(x = a=b)|(y=c=d)后,x,y的值分别是多少? 29、 for循环有何特点? 30、 #include using namespace std; int main( ) char a,b,c; a=B;b=O;c=Y; putchar(a);putchar(b);putchar(c);putchar(n); putchar(66);putchar(79);

16、putchar(89);putchar(10); return 0; 运行结果为 31、 字符串处理函数有哪些? 32、 函数的定义格式是什么?形参和实参的要求有哪些?C+构造函数又有何特点? (1) 在定义函数时指定的形参,在未出现函数调用时,它们并不占内存中的存储单元,因此称它们是形式参数或虚拟参数,表示它们并不是实际存在的数据,只有在发生函数调用时,函数max中的形参才被分配内存单元,以便接收从实参传来的数据。在调用结束后,形参所占的内存单元也被释放。 (2) 实参可以是常量、变量或表达式,如max(3, a+b);但要求a和b有确定的值。以便在调用函数时将实参的值赋给形参。 (3) 在

17、定义函数时,必须在函数首部指定形参的类型 (4) 实参与形参的类型应相同或赋值兼容。 (5) 实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在调用函数时,编译系统临时给形参分配存储单元。请注意: 实参单元与形参单元是不同的单元。 33、 for(i = 1; +i 6 ;) GLOOP; for(i = 1; i+ 6 ;) GLOOP; 则GLOOP执行次数分别是多少? 5 34、 填空 #include Using namespace std; ; void main( ) int n; for (n=1;n5;n+) fun(n); v

18、oid fun(int i ) static s=0; s+=i; coutsendl; 执行后s的值是什么? 35、 填空 #include Using namespace std; int main( ) int ; i=8; j=10; m=+i+j+; n=(+i)+ (+j)+m; coutitjtmt nendl; return 0; 36、 编写一求三角形面积的程序; 37、 编程将一个二维数组行和列元素互换,存到另一个二维数组中; 38、 有一个54的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。 39、 40、 填空 #include Using na

19、mespace std; int main( ) int , , *p,a,; cinab; p1=&a ; p2=&b ; if(ab) p=p1; p1=p2; p2=p; cout“a=”a“b=”bendl; cout“max=” “min=”*p2endl; 6 ; 程序的功能是 41、 下面是求二维数组a34中的最大元素的值,同时显示其所在的行号和列号,请填空 #include Using namespace std; int main( ) int i,j,row= ,colum= , ; int =3,4,1,60,6,34,-2,7,0,-90,3,6; max=a00; for( ) for( ) if(aijmax) max= aij; row= ; colum= ; cout“max=” “,row=” “,colum=” endl; return 0; 42、 局部变量和全局变量的概念和特点及应用。变量的存储类别有哪些? 43、复习课中提到的知识点和重点程序内容; 7

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号