C语言试题学习考试大全学习教案

上传人:莉**** 文档编号:110343327 上传时间:2022-06-18 格式:PPTX 页数:54 大小:315.07KB
返回 下载 相关 举报
C语言试题学习考试大全学习教案_第1页
第1页 / 共54页
C语言试题学习考试大全学习教案_第2页
第2页 / 共54页
C语言试题学习考试大全学习教案_第3页
第3页 / 共54页
点击查看更多>>
资源描述
会计学1C语言试题学习语言试题学习(xux)考试大全考试大全第一页,共54页。2022-6-182C+与C语言的关系(gun x):C语言是C+的一个子集,C+包含了C语言的全部内容。 C+保持与C语言的兼容 C+对C语言作了很多改进 C+与C语言的本质差别在于C+是面向(min xin)对象的,而C语言是面向(min xin)过程的。(1) 增加了一些新的运算符,如 :, new, delete, -* 等;(2) 改进了类型系统,增加了安全性;(3) 引进了引用的概念,使用引用作函数参数带来了很大方便;(4) 允许函数重载,允许设置缺省参数,提高了编程的灵活性;(5) 引进内联函数,提高了程序效率;(6) 可根据需要随时(sush)对变量进行说明。面向过程的程序设计将数据和对数据的操作分离,程序是由一个个的函数组成的,面向对象的程序设计将数据和操作封装在一起,程序是由一个个对象组成的,对象之间通过接口进行通信,它能够较好地支持程序代码的复用。 第1页/共54页第二页,共54页。2022-6-183C+数据操作(cozu)基础2.1 C+程序进行输入和输出的操作方法 #include int main( ) int x, y; /定义两个整型变量 cin x y ; /键盘输入变量值 cout “x =” x endl “y =” y ”和输出操作符“= 0 ) ? a : -a 注意(zh y):表达式1、2、3的数据类型不能是 void 类型。第6页/共54页第七页,共54页。2022-6-188switch ( 变量名 ) case 值1 : 语句(yj)序列1 ; break ; case 值 2 : 语句(yj)序列2 ; break ; default : 语句(yj)序列 n ;第7页/共54页第八页,共54页。2022-6-1892.2.2 循环(xnhun)语句for 循环(xnhun):for ( exp1; exp2; exp3) statement;.while 循环(xnhun):while ( expression) do while 循环:do statement; .while (expression);三种循环都可以嵌套。第8页/共54页第九页,共54页。2022-6-1810 for ( exp1; exp2; exp3) statement;.等价(dngji)于: exp1 ; while ( exp2 ) statement ; exp3 ; 例: int sum = 0 ;for ( int i = 1 ; i = 10 ; i + ) sum += i;第9页/共54页第十页,共54页。2022-6-18112.2.3 转移(zhuny)语句break 语句:强制退出循环及中断(zhngdun)case语句,直接执行循环体后的语句。continue 语句:不完全退出循环,而是使循环重新回到测试位置(wi zhi),并忽略此语句至循环结束前的语句序列。goto 语句:无条件转移,只限在同一程序段内转换,不能跳到另一函数或程序内。第10页/共54页第十一页,共54页。2022-6-18122.3 指针 1. 定义(dngy):包含另一变量内存地址的变量。 3. 指针与数组的关系 数组是指针的另一种表示法。数组的名字实际就是数组的起始(q sh)地址。int arr2 = 0,1;arr1 和 *(arr + 1)是完全一致的。2. 声明 指针在使用(shyng)前需进行声明,声明格式为: 数据类型 *变量; 或 数据类型* 变量;第11页/共54页第十二页,共54页。2022-6-18134. “&” 与 “*” “&”是一个(y )一元操作符,它操作一个(y )对象,得到该对象的存储单元的地址值; 例: int i; int *p; p = &i ; *p = *p + 5; “* ”也是一个一元操作符,用于表达(biod)被指针指向的对象。 第12页/共54页第十三页,共54页。2022-6-18145. new 与 delete new 用于为指针分配内存空间(kngjin);delete 用于释放指针所占有的内存空间(kngjin)。 标准(biozhn)C用malloc 和 free 函数分配内存块和释放内存块。第13页/共54页第十四页,共54页。2022-6-1815第14页/共54页第十五页,共54页。2022-6-1816第15页/共54页第十六页,共54页。2022-6-1817第16页/共54页第十七页,共54页。2022-6-1818template void Make2DArray(Type* &x,int rows, int cols) x=new Type*rows; for (int i=0;irows;i+) xi=new Typecols;第17页/共54页第十八页,共54页。2022-6-1819template void Delete2DArray(Type* &x,int rows) for (int i=0;irows;i+) delete xi; delete x; x=0;第18页/共54页第十九页,共54页。2022-6-18202.4 函数与参数传递 当一个函数定义有形参时,在进行函数调用(dioyng)时,必须提供与形参个数、类型相同的实参。 在C+中,有两种参数传递机制将实参的值传递给形参:值传递( 值调用(dioyng) )和引用传递( 引用调用(dioyng) )。1. 值传递 在这种机制中,实参的值被拷贝到由相应形参名字所标识的对象中。在函数内部对形参的访问或更新都是是对这个对象的访问或更新。实参本身(bnshn)的值在调用前后和调用过程中都不发生变化。第19页/共54页第二十页,共54页。2022-6-1821int double( int a ) a *= 2 ; cout“a=“aendl; return a; #include void main() int b = 10; double(b); cout“b=“ 数据(shj)成员 指针名 - 成员函数例:CPerson *pWang; pWang - age = 30 ; pWang -PrintAge( );类和对象的关系(gun x)就如同整型 int 与整型变量 i 之间的关系(gun x)。第30页/共54页第三十一页,共54页。2022-6-18323.3 类的成员(chngyun)3.3.1 构造函数(hnsh) 构造函数(hnsh)是一个特殊的类成员函数(hnsh),用于初始化类变量或分配内存空间。当用类定义一个对象时,自动调用构造函数(hnsh),使对象保持一个确定的状态。1. 构造函数的声明(shngmng)class CExample int I ;public: CExample( ) ; ;第31页/共54页第三十二页,共54页。2022-6-18332. 构造函数的特点 (1) 构造函数与类必须具有(jyu)相同的名字。 例:class CExample CExample ( ) ; CExample ( int i ) ; CExample ( int x , int y ) ; private : int member1, member2 ; ; (2) 创建对象时自动执行(zhxng)构造函数,构造函数不能在程 序中被显式调用。(3)构造函数不需要(xyo)函数类型,不能被继承。 (4)构造函数可以接受参数并能够重载。第32页/共54页第三十三页,共54页。2022-6-1834CExample : CExample ( int i ) member1 = i ; member2 = 0 ;int main( ) CExample ex1; CExample ex2(1); CExample ex3( 2, 3 ); CExample : CExample ( ) member1 = 0; member2 = 0;CExample : CExample ( int x , int y ) member1 = x ; member2 = y ;第33页/共54页第三十四页,共54页。2022-6-1835 (5) 若程序没有为一个类定义任何构造函数,则编译器 生成(shn chn)一个不带参数的公有构造函数,这个构造函数 什么也不做,称为缺省构造函数。 例:CExample : CExample3.3.2 析构函数 析构函数与构造函数功能(gngnng)相反,也是类成员函数,通常用于释放已分配的内存空间或完成对象被清除前的一些清理工作。第34页/共54页第三十五页,共54页。2022-6-1836 class CExample public:CExample( );void Print ( );CExample( ); ;析构函数(hnsh)的特点:1.与构造函数具有相同(xin tn)的名字,前面必须加上“”符号。2.析构函数(hnsh)没有函数(hnsh)类型,不能被继承。第35页/共54页第三十六页,共54页。2022-6-18373.3.3 内联函数 在函数定义前加上一个(y )inline前缀,该函数就被定义成一个(y )内联函数。3.析构函数(hnsh)不能带有参数,而且不可以重载。4.析构函数在 结束时被自动(zdng)调用。 对于内联函数,编译时在所有调用该函数的地方将装入实际的函数代码。 内联函数的声明必须出现在对它的每个调用之前。第36页/共54页第三十七页,共54页。2022-6-18383.3.5 对象(duxing)与成员函数成员函数的参数(cnsh)和返回值不仅可以是整型、字符型、指针类型等,也可以把对象作为参数(cnsh)和返回值。class CPoint float x, y ;public: CPoint ( float a, float b ); CPoint Add ( CPoint A ); 第37页/共54页第三十八页,共54页。2022-6-1839CPoint : CPoint ( float a, float b )x = a ;y = b ;CPoint CPoint : Add ( CPoint A )CPoint B;B.x = x + A.x ;B.y = y + A.y;return B;第38页/共54页第三十九页,共54页。2022-6-18403.4 this指针(zhzhn) this指针是一个隐含于每个类的成员函数中的特殊指针。 this用于指向(zh xin)以该成员函数所属类定义的对象。 当某个对象调用成员(chngyun)函数时,成员(chngyun)函数的this指针便指向该对象。因此,当不同的对象引用同一个成员(chngyun)函数时,编译器就依据成员(chngyun)函数 this 指针指向的不同对象来确定引用哪一个对象的数据成员(chngyun)。 第39页/共54页第四十页,共54页。2022-6-1841例:#include class A public:A( ) a=b=0; A(int i, int j ) a=i;b=j;void copy(A &aa);void print( ) couta“,”bendl; private:int a, b;void A : copy(A &aa) if(this = &aa) return; *this = aa;void main( ) A a1,a2(3,4); a1.copy(a2); a1.print();第40页/共54页第四十一页,共54页。2022-6-18423.5 const关键字3.5.2 const 的特点(tdin)及使用注意事项 3.5.1 声明语法 const 是一个类型修饰符,语法是: T const 其中,T是一个类型表达式。 const 与 T 之间的关系(gun x)是左结合的。1. 使用(shyng)const 声明的对象不能被更新。2. 由于这种对象不能被更新,因此必须进行初始化。 int const a = 2 ; a = 1 ;/ error第41页/共54页第四十二页,共54页。2022-6-18433. const 常被用于声明函数的形参。指针类型或引用(ynyng)类型的形参使函数可以更新调用者中的对象,但若函数并不更新指针所指向的对象或引用(ynyng)所引用(ynyng)的对象,那么最好将这样的参数使用 const 关键字进行声明。4. 当T是一个简单的类型(lixng)名时,习惯上写作 const T 。 例: const int x = 0 ;void Print( ) const; /类的常成员(chngyun)函数 5. 对于类中不更新对象的数据成员的成员函数,可以将其使用const进行声明。 当一个成员函数使用const进行声明后,就表明这个函数可以操作常对象。没有使用const关键字进行声明的成员函数则不能操作常对象。第42页/共54页第四十三页,共54页。2022-6-18446. 由于const对象必须初始化且不能被更新,因此,当类中声明(shngmng)了const数据成员时,只能通过成员初始化列表来构造该数据成员。例: class CExample public: CExample ( int x ) ; private: const int a ; ; CExample : CExample ( int x ) : a( x ) ; 在类中声明静态(jngti)的const数据成员时,class A private: static const int SIZE ;const int A : SIZE = 10 ;第43页/共54页第四十四页,共54页。2022-6-18453.6 友元函数(hnsh)3.6.1 定义 友元函数是一种特殊的函数,它不是类的成员函数, 但允许它访问类的私有类型数据(shj)和保护类型数据(shj)。3.6.2 声明方式class 类名称/相关的类 type vars ; public: friend 函数类型(lixng) 函数名称( ) ;/声明友元 函数类型(lixng) 函数名称( ) /定义友元 第44页/共54页第四十五页,共54页。2022-6-18463.6.3 特点1. 友元可以(ky)是一个一般的函数 (友元函数),也可以(ky)是另一个类的成员函数 (友元成员),还可以(ky)是整个的一个类 (友元类,这时类中的所有成员函数都是友元函数)。2. 友元函数须在私有成员可被它访问(fngwn)的类中声明,而函数体则在类外声明。3. 友元函数虽然在类中声明,但它不是(b shi)该类的成员函数,而是独立于任何类的一般的外界函数,它被允许访问该类的所有对象的私有成员。4. C+中使用友元是为了提高程序的运行效率。但为了确保数据的完整性及数据封装与隐藏的原则,应尽可能不使用或少使用友元函数。第45页/共54页第四十六页,共54页。2022-6-18473.7 引用 引用是给对象(duxing)取一个别名,它引入了对象(duxing)的一个同义词。error3.7.1 定义 定义引用的关键字:T & 例:int i ;int & j ; int & j = i ;j = i ; j = 6 ;注意:(1)引用不产生对象的副本,而是对象的同义词,它们(t men)表示同一个对象。 (2)定义(dngy)引用时,必须马上对它进行初始化,不能定义(dngy)完后再赋值。第46页/共54页第四十七页,共54页。2022-6-1848 (3)对对象或对引用的任何操作(cozu)都会影响到它们共同的对象。 3.7.2 引用的使用引用参数引用可以用在需要改变(gibin)实参变量的函数中; #include void swap( int x, int y ) int temp ; temp = x ; x = y ; y = temp ; (4)引用一旦(ydn)被初始化,就不能被改变,也不能更新引用, 使其标识另一个对象。第47页/共54页第四十八页,共54页。2022-6-1849运行(ynxng)结果: a = 1 b = 2 a = 1 b = 2 main ( ) int a = 1, b = 2 ; cout “a = ” a “b = ” b endl ; swap ( a , b) ; cout “a = ” a “b = ” b y ? x : y; double max(double x, double y) return xy ? x : y; template T max(T x, T y) return xy ? x : y; int i=max(1,2);double x=max(1.0,2.0);第49页/共54页第五十页,共54页。2022-6-18513.9 运算符重载为用户(yngh)定义的数据类型重载运算符。 bool Rectangle : operator = (const Rectangle &s) if(this=&s) return true; if(x1=s.x1)&(y1=s.y1)&(h=s.h)&(w=s.w)return true; else return false; 经重载运算符 = 后,即可用运算符 = 来判定2个Rectangle对象是否(sh fu)相同。第50页/共54页第五十一页,共54页。2022-6-1852第51页/共54页第五十二页,共54页。2022-6-1853第52页/共54页第五十三页,共54页。2022-6-1854第53页/共54页第五十四页,共54页。
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!