C++程序设计(谭浩强版)复习资料_第1页
C++程序设计(谭浩强版)复习资料_第2页
C++程序设计(谭浩强版)复习资料_第3页
C++程序设计(谭浩强版)复习资料_第4页
C++程序设计(谭浩强版)复习资料_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

下面罗列了一局部重要知识点,声明:仅供参考〔1〕一个C++程序可以由一个程序单位或多个程序单位构成。每一个程序单位作为一个文件。在程序编译时,编译系统分别对各个文件进行编译,因此,一个文件是一个编译单元。(2)在一个程序单位中,可以包括以下几个局部:①预处理命令。上节4个程序中都包括#include命令。②全局声明局部(在函数外的声明局部)。在这局部中包括对用户自己定义的数据类型的声明和程序中所用到的变量的定义。③函数。函数是实现操作的局部,因此函数是程序中必须有的和最根本的组成局部。每一个程序必须包括一个或多个函数,其中必须有一个(而且只能有一个)主函数(main函数)。但是并不要求每一个程序文件都必须具有以上3个局部,可以缺少某些局部(包括函数)。(3)一个函数由两局部组成:①函数首部,即函数的第一行。包括函数名、函数类型、函数属性、函数参数(形参)名、参数类型。一个函数名后面必须跟一对圆括号,函数参数可以缺省,如intmain()。②函数体,即函数首部下面的大括号内的局部。如果在一个函数中有多个大括号,那么最外层的一对{}为函数体的范围。函数体一般包括:局部声明局部(在函数内的声明局部)。包括对本函数中所用到的类型、函数的声明和变量的定义。对数据的声明既可以放在函数之外(其作用范围是全局的),也可以放在函数内(其作用范围是局部的,只在本函数内有效)。执行局部。由假设干个执行语句组成,用来进行有关的操作,以实现函数的功能。〔4〕语句包括两类。一类是声明语句,另一类是执行语句。C++对每一种语句赋予一种特定的功能。语句是实现操作的根本成分,显然,没有语句的函数是没有意义的。C++语句必须以分号结束。(5)一个C++程序总是从main函数开始执行的,而不管main函数在整个程序中的位置如何。(6)类(class)是C++新增加的重要的数据类型,是C++对C的最重要的开展。有了类,就可以实现面向对象程序设计方法中的封装、信息隐蔽、继承、派生、多态等功能。在一个类中可以包括数据成员和成员函数,他们可以被指定为私有的(private)和公用的(public)属性。私有的数据成员和成员函数只能被本类的成员函数所调用。(7)C++程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。C++程序没有行号,也不像FORTRAN或COBOL那样严格规定书写格式(语句必须从某一列开始书写)。(8)一个好的、有使用价值的源程序都应当加上必要的注释,以增加程序的可读性。C++还保存了C语言的注释形式,可以用“/*……*/〞对C++程序中的任何局部作注释。在“/*〞和“*/〞之间的全部内容作为注释。用“//〞作注释时,有效范围只有一行,即本行有效,不能跨行。而用“/*……*/〞作注释时有效范围为多行。只要在开始处有一个“/*〞,在最后一行结束处有一个“*/〞即可。因此,一般习惯是:内容较少的简单注释常用“//〞,内容较长的常用“/*……*/〞。一个程序从编写到最后得到运行结果要经历哪几个步骤?文件包含是什么意思?数据类型各知识点什么叫变量?有哪些属性?变量名规那么是什么?变量除了有数据类型属性外,还有哪些属性?C++的运算符有哪些?其运算的优先级是什么?C++的关系运算符有:①< (小于)②<= (小于或等于) 优先级相同(高)③> (大于)④>= (大于或等于) ⑤== (等于)⑥!= (不等于) 优先级相同(低)关于优先次序:①前4种关系运算符〔<,<=,>,>=〕的优先级别相同,后两种也相同。前4种高于后两种。例如,“>〞优先于“==〞。而“>〞与“<〞优先级相同。②关系运算符的优先级低于算术运算符。③关系运算符的优先级高于赋值运算符。例如:c>a+b等效于c>(a+b)a>b==c等效于(a>b)==ca==b<c等效于a==(b<c)a=b>c等效于a=(b>c)用关系运算符将两个表达式连接起来的式子,称为关系表达式。关系表达式的一般形式可以表示为表达式关系运算符表达式其中的“表达式〞可以是算术表达式或关系表达式、逻辑表达式、赋值表达式、字符表达式。例如,下面都是合法的关系表达式:a>b,a+b>b+c,(a==3)>(b==5),′a′<′b′,(a>b)>(b<c)关系表达式的值是一个逻辑值,即“真〞或“假〞。例如,关系表达式“5==3〞的值为“假〞,“5>=0〞的值为“真〞。在C和C++中都用数值1代表“真〞,用0代表“假〞。如果有以下赋值表达式:d=a>b那么d得到的值为1f=a>b>cf得到的值为0逻辑运算符的优先次序:(1)!〔非〕→&&〔与〕→〔或〕,即“!〞为三者中最高的。(2)逻辑运算符中的“&&〞和“||〞低于关系运算符,“!〞高于算术运算符。“判断浮点数a是否在闭区间[-16.3,-10.9]之中〞的C++语言表达式是什么?C++提供的预处理功能有哪些?设变量a为int型变量,且值为8。请运算a++和++a后表达式的值和变量a的值分别是多少?什么叫文件包含处理?头文件一般包含哪几类内容程序段如下:for(s=0,i=1;i<10;i++){if(i%4==0)break;s=s+i;}那么程序段运行完毕后s的值为多少?内存中供用户使用的存储空间通常由几个局部组成?编程完成输入一个字符,判别它是否为大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。编写程序,判断某一年是否为闰年;编写程序找出100~200间的全部素数;编程求3个正整数中的最大数〔用3种以上不同方法〕编程输入a和b两个整数,按先大后小的顺序输出a和b(用指针变量处理)如果x=3,y=6,那么int〔x+y〕=。doublea=123.456789012345;对a赋初值(1)cout<<a;输出:(2)cout<<setprecision(9)<<a;输出:(3)cout<<setprecision(6);功能是(4)cout<<setiosflags(ios∷fixed);输出(5)cout<<setiosflags(ios∷fixed)<<setprecision(8)<<a;输出:(6)cout<<setiosflags(ios∷scientific)<<a;输出:(7)cout<<setiosflags(ios∷scientific)<<setprecision(4)<<a;输出:intb=123456;对b赋初值(1)cout<<b;输出:(2)cout<<hex<<b;输出:(3)cout<<setiosflags(ios∷uppercase)<<b;输出:(4)cout<<setw(10)<<b<<′,′<<b;输出:(5)cout<<setfill(′*′)<<setw(10)<<b;输出:(6)cout<<setiosflags(ios∷showpos)<<b;输出:变量除了有数据类型属性外,还有哪些属性?什么是变量?什么是指针?变量和指针之间有何联系?指针有哪些属性?什么是数组?数组名有什么意义?用数组名作为参数有何要求?与指针之间有何联系和区别?一维和二维数组的定义、引用和初始化等关于用数组名作函数参数有两点要说明(1)如果函数实参是数组名,形参也应为数组名,形参不能声明为普通变量(如intarray;)。实参数组与形参数组类型应一致〔现都为int型〕,如不一致,结果将出错。(2)需要特别说明的是:数组名代表数组首元素的地址,并不代表数组中的全部元素。因此用数组名作函数实参时,不是把实参数组的值传递给形参,而只是将实参数组首元素的地址传递给形参。形参可以是数组名,也可以是指针变量,它们用来接收实参传来的地址。如果形参是数组名,它代表的是形参数组首元素的地址。在调用函数时,将实参数组首元素的地址传递给形参数组名。这样,实参数组和形参数组就共占同一段内存单元。在用变量作函数参数时,只能将实参变量的值传给形参变量,在调用函数过程中如果改变了形参的值,对实参没有影响,即实参的值不因形参的值改变而改变。而用数组名作函数实参时,改变形参数组元素的值将同时改变实参数组元素的值。在程序设计中往往有意识地利用这一特点改变实参数组元素的值。实际上,声明形参数组并不意味着真正建立一个包含假设干元素的数组,在调用函数时也不对它分配存储单元,只是用array[]这样的形式表示array是一维数组名,以接收实参传来的地址。因此array[]中方括号内的数值并无实际作用,编译系统对一维数组方括号内的内容不予处理。形参一维数组的声明中可以写元素个数,也可以不写。字符串处理函数有哪些?#include<iostream>usingnamespacestd;intmain(){charc1;c1=′a′+’8’-’5’;cout<<c1<<endl;return0;}请问输出什么?有两个与指针变量有关的运算符:(1)&取地址运算符。(2)*指针运算符〔或称间接访问运算符〕课本中对“&〞和“*〞运算符再做些说明局部;如果先使p指向数组a的首元素(即p=a),那么:(1)p++〔或p+=1〕。使p指向下一元素,即a[1]。如果用*p,得到下一个元素a[1]的值。(2)*p++。由于++和*同优先级,结合方向为自右而左,因此它等价于*(p++)。作用是:先得到p指向的变量的值(即*p),然后再使p的值加1。例6.5(3)程序中最后一个for语句:for(p=a;p<a+10;p++)cout<<*p;可以改写为for(p=a;p<a+10;)cout<<*p++;(3)*(p++)与*(++p)作用不同。前者是先取*p值,然后使p加1。后者是先使p加1,再取*p。假设p的初值为a〔即&a[0]〕,输出*(p++)得到a[0]的值,而输出*〔++p〕那么得到a[1]的值。(4)(*p)++表示p所指向的元素值加1,即(a[0])++,如果a[0]=3,那么(a[0])++的值为4。注意:是元素值加1,而不是指针值加1。(5)如果p当前指向a[i],那么*(p--)先对p进行“*〞运算,得到a[i],再使p减1,p指向a[i-1]。*(++p)先使p自加1,再作*运算,得到a[i+1]。*(--p)先使p自减1,再作*运算,得到a[i-1]。将++和--运算符用于指向数组元素的指针变量十分有效,可以使指针变量自动向前或向后移动,指向下一个或上一个数组元素。例如,想输出a数组100个元素,可以用以下语句:p=a; p=a;while(p<a+100)或 while(p<a+100)cout<<*p++; {cout<<*p; p++;}在用*p++形式的运算时,很容易弄错,一定要十分小心,弄清楚先取p值还是先使p加1。设变量x=y=a=b=c=d=0,执行(x=a==b)||(y=c==d)后,x,y的值分别是多少?for循环有何特点?#include<iostream>usingnamespacestd;intmain(){chara,b,c;a=′B′;b=′O′;c=′Y′;putchar(a);putchar(b);putchar(c);putchar(′\n′);putchar(66);putchar(79);putchar(89);putchar(10);return0;}运行结果为字符串处理函数有哪些?函数的定义格式是什么?形参和实参的要求有哪些?C++构造函数又有何特点?(1)在定义函数时指定的形参,在未出现函数调用时,它们并不占内存中的存储单元,因此称它们是形式参数或虚拟参数,表示它们并不是实际存在的数据,只有在发生函数调用时,函数max中的形参才被分配内存单元,以便接收从实参传来的数据。在调用结束后,形参所占的内存单元也被释放。(2)实参可以是常量、变量或表达式,如max(3,a+b);但要求a和b有确定的值。以便在调用函数时将实参的值赋给形参。(3)在定义函数时,必须在函数首部指定形参的类型(4)实参与形参的类型应相同或赋值兼容。(5)实参变量对形参变量的数据传递是“值传递〞,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在调用函数时,编译系统临时给形参分配存储单元。请注意:实参单元与形参单元是不同的单元。〔1〕for(i=1;++i<6;)GLOOP;〔2〕for(i=1;i++<6;)GLOOP;那么GLOOP执行次数分别是多少?填空#include<iostream>Usingnamespacestd;;voidmain(){ intn; for(n=1;n<5;n++) fun(n);}voidfun(inti){statics=0;s+=i;cout<<s<<endl;}执行后s的值是什么?填空#include<iostream>Usingnamespacestd;intmain(){ int;i=8;j=10;m=++i+j++;n=(++i)+(++j)+m;cout<<i<<‘t’<<j<<‘t’<<m<<‘t’<<n<<endl;return

温馨提示

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

评论

0/150

提交评论