C语言之精华总结_第1页
C语言之精华总结_第2页
C语言之精华总结_第3页
C语言之精华总结_第4页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

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

文档简介

从研究生二年纪开始学习计算机也差不多两年了,一路走来,有很多的收获,也有不少的遗憾,现在正好有一段闲暇,就想对走过的路留下一些足迹,回忆。每个人都有自己不同的人生,说到这里,就是程序人生了,歌德在《浮士德》中说过:“如果不曾在悲哀中咀嚼过面包,不曾在哭泣中等待过明天,这样的人就不知道你一天的力量。”所以我想记下ー些带给我悲哀,带给我哭泣的程序人生。其实学习计算机的基础课程是非常重要的,离散数学,编译原理,操作系统,形式语言……,如果你认真走过了这些路,在以后的日子你会发现你的路会越走越宽,以前的努力和汗水会不断的给你灵感,给你支持,给你前进的武器和勇气。你会发现以后取得的很多成就,不过是朝花タ拾而已!对于程序语言我喜欢的是C++,它能带给你别的语言无法给予你的无上的智力快感,当然也会给你ー门语言所能给你的魔鬼般的折磨。其实Java,C#,Python语言也非常的不错,我也极为喜欢。它们都是非常成功的语言,我从来就不愿意做某ー种语言的盲目信仰者,每种语言都有它成功的地方,失败的地方,都有它适合的地方,不如意的地方。所以每一次看到评价语言的文章,我看看,但从来不会发言。

C++的前世是C,而且C所留下的神秘以及精简在C++中是青出于蓝而胜于蓝!c所带给人的困惑以及灵活太多,即使一个有几年经验的高段C程序员仍然有可能在C语言的小水沟里翻船。不过其实C语言真的不难,下面我想指出C语言中最神秘而又诡谄多变的四个地方,它们也继续在C++语言中变幻莫测。指针,数组,类型的识别,参数可变的函数。一,指针。它的本质是地址的类型。在许多语言中根本就没有这个概念。但是它却正是C灵活,高效,在面向过程的时代所向披靡的原因所在。因为C的内存模型基本上对应了现在vonNeumann(冯•诺伊曼)计算机的机器模型,很好的达到了对机器的映射。不过有些人似乎永远也不能理解指针【注1】。注1:JoelSpolsky就是这样认为的,他认为对指针的理解是一种aptitude,不是通过训练就可以达到的.joelonsoftware./pr.../fog0000000073.html指针可以指向值、数组、函数,当然它也可以作为值使用。看下面的几个例子:

int*p;//p是ー个指针,指向ー个整数

int**p;〃p是ー个指针,它指向第二个指针,然后

指向一个整数int(*pa)[3];〃pa是ー个指针,指向ー个拥有3个

整数的数组int(*pf)();〃pf是ー个指向函数的指针,这个函数

返回一个整数后面第四节我会详细讲解标识符(identifier)类型

的识别。.指针本身的类型是什么?先看下面的例子:inta;〃a的类型是什么?对,把a去掉就可以了。因此上面的4个声明语句中

的指针本身的类型为:int*int**int(*)[3]int(*)()它们都是复合类型,也就是类型与类型结合而成的类型。意义分别如下:pointtoint(指向ー个整数的指针)pointertopointertoint(指向ー个指向整数的指针的指针)pointertoarrayof3ints(指向ー个拥有三个整数的数组的指针)pointertofunctionofparameterisvoidandreturnvalueisint(指向ー个函数的指针,这个函数参数为空,返回值为整数).指针所指物的类型是什么?很简单,指针本身的类型去掉“*”号就可以了,分别如下:intint*int0[3]int()03和4有点怪,不是吗?请擦亮你的眼睛,在那个用来把“*”号包住的“()”是多余的,所以:int()[3]就是int[3](ー个拥有三个整数的数组)int()0就是int()(ー个函数,参数为空,返回值为整数)【注2】注2:一个小小的提醒,第二个“()”是ー个运算符,名字叫函数调用运算符(functioncalloperator)o.指针的算术运算。请再次记住:指针不是一个简单的类型,它是ー个和指针所指物的类型复合的类型。因此,它的算术运算与之(指针所指物的类型)密切相关。inta[8];int*p=a;int*q=p+3;P++;指针的加减并不是指针本身的二进制表示加减,要记住,指针是ー个元素的地址,它每加一次,就指向下ー个元素。所以:int*q=p+3;〃q指向从p开始的第三个整数。P++;〃P指向下ー个整数。double*pd;……〃某些计算之后double*pother=pd-2;"pother指向从pd倒数第二个double数。.指针本身的大小。在ー个现代典型的32位机器上【注3】,机器的内存模型大概是这样的,想象一下,内存空间就像ー个连续的房间群。每ー个房间的大小是ー个字节(一般是二进制8位)。有些东西大小是ー个字节(比如char),ー个房间就把它给安置了;但有些东西大小是几个字节(比如double就是8个字节,int就是4个字节,我说的是典型的32位),所以它就需要几个房间才能安置。注3:什么叫32位?就是机器CPU一次处理的数据宽度是32位,机器的寄存器容量是32位,机器的数据,内存地址总线是32位。当然还有一些细节,但大致就是这样。16位,64位,128位可以以此类推。这些房间都应该有编号(也就是地址),32位的机器内存地址空间当然也是32位,所以房间的每ー个编号都用32位的二进制数来编码【注4】。请记住指针也可以作为值使用,作为值的时候,它也必须被安置在房间中(存储在内存中),那么指向ー个值的指针需要一个地址大小来存储,即32位,4个字节,4个房间来存储。注4:在我们平常用到的32位机器上,绝少有将32位真实内存地址空间全用完的(232=4G),即使是服务器也不例外。现代的操作系统一般会实现32位的虚拟地址空间,这样可以方便运用程序的编制。关于虚拟地址(线性地址)和真实地址的区别以及实现,可以参考《Linux源代码情景分析》的第二章存储管理,在互联网上关于这个主题的文章汗牛充栋,你也可以google一下。但请注意,在C++中指向对象成员的指针(pointertomemberdataormemberfunction)的大小不一定是4个字节。为此我专门编制了一些程序,发现在我的两个编译器(VC7.1.3088和Dev-C++)上,指向对象成员的指针的大小没有定值,但都是4的倍数。不同的编译器还有不同的值。对于一般的普通类(class),指向对象成员的指针大小一般为4,但在引入多重虚拟继承以及虚拟函数的时候,指向对象成员的指针会增大,不论是指向成员数据,还是成员函数。【注5】。注5:在AndreiAlexandrescu的《ModernC++Design))的5.13节Pagel24中提到,成员函数指针实际上是带标记的(tagged)unions,它们可以对付多重虚拟继承以及虚拟函数,书上说成员函数指针大小是16,但我的实践告诉我这个结果不对,而且具体编译器实现也不同。一直很想看看GCC的源代码,但由于旁鹫太多,而且心不静,本身难度也比较高(这个倒是不害怕A.A),只有留待以后了。还有一点,对ー个类的staticmember来说,指向它的指针只是普通的函数指针,不是pointertoclassmember,所以它的大小是4。.指针运算符&和・它们是ー对相反的操作,&取得一个东西的地址(也就是指针),・得到ー个地址里放的东西。这个东西可以是值(对象)、函数、数组、类成员(classmember)o其实很简单,房间里面居住着一个人,&操作只能针对人,取得房间号码;・操作只能针对房间,取得房间里的人。参照指针本身的类型以及指针所指物的类型很好理解。小结:其实你只要真正理解了!,2,就相当于掌握了指针的牛鼻子。后面的就不难了,指针的各种变化和C语言中其它普通类型的变化都差不多(比如各种转型)。二.数组。在C语言中,对于数组你只需要理解三件事。.C语言中有且只有一维数组。所谓的n维数组只是ー个称呼,ー种方便的记法,都是使用ー维数组来仿真的。C语言中数组的元素可以是任何类型的东西,特别的是数组作为元素也可以。所以inta[3][4]⑸就应该这样理解:a是ー个拥有3个元素的数组,其中每个元素是ー个拥有4个元素的数组,进ー步其中每个元素是拥有5个整数元素的数组。是不是很简单!数组a的内存模型你应该很容易就想出来了,不是吗?:).数组的元素个数,必须作为整数常量在编译阶段就求出来。inti;inta;〃不合法,编译不会通过。也许有人会奇怪charstr[]="test”;没有指定元素个数为什么也能通过,因为编译器可以根据后面的初始化字符串在编译阶段求出来,不信你试试这个:inta[];编译器无法推断,所以会判错说“arraysizemissingina”之类的信息。不过在最新的C99标准中实现了变长数组【注6】注6:如果你是ー个好奇心很强烈的人,就像我ー样,那么可以查看C99标准。.对于数组,可以获得数组第一个(即下标为0)元素的地址(也就是指针),从数组名获得。比如inta[5];int*p=a;这里p就得到了数组元素a[0]的地址。其余对于数组的各种操作,其实都是对于指针的相应操作。比如a[3]其实就是・(a+3)的简单写法,由于*(a+3)==*(3+a),所以在某些程序的代码中你会看到类似3[a]的这种奇怪表达式,现在你知道了,它就是a[3]的别名。还有一种奇怪的表达式类似a[T],现在你也明白了,它就是・(a-l)【注7】。注フ:你肯定是ー个很负责任的人,而且也知道自己到底在干什么。你难道不是吗?:)所以你一・定也知道,做一件事是要付出成本的,当然也应该获得多于成本的回报。我很喜欢经济学,经济学的一个基础就是做什么事情都是要花成本的,即使你什么事情也不做。时间成本,金钱成本,机会成本,健康成本 可以这样说,经济学的根本目的就是用最小的成本获得最大的回报。所以我们在自己的程序中最好避免这种邪恶的写法,不要让自己一时的智力过剩带来以后自己和他人长时间的痛苦。用韦小宝的一句话来说:“赔本的生意老子是不干的!”但是对邪恶的了解是非常必要的,这样当我们真正遇到邪恶的时候,可以免受它对心灵的困扰!对于指向同一个数组不同元素的指针,它们可以做减法,比如int*p=q+i;p-q的结果就是这两个指针之间的元素个数。i可以是负数。但是请记住:对指向不同的数组元素的指针,这样的做法是无用而且邪恶的!对于所谓的n维数组,比如inta[2][3];你可以得到数组第一个元素的地址a和它的大小。*(a+0)(也即a[〇]或者・a)就是第一个元素,它又是ー个数组int[3],继续取得它的第一个元素,*(*(a+O)+O)(也即a[〇][〇]或者・(*a)),也即第一个整数(第一行第一列的第一个整数)〇如果采用这种表达式,就非常的笨拙,所以a[0][0]记法上的简便就非常的有用了!简单明了!对于数组,你只能取用在数组有效范围内的元素和元素地址,不过最后ー个元素的下ー个元素的地址是个例外。它可以被用来方便数组的各种计算,特别是比较运算。但显然,它所指向的内容是不能拿来使用和改变的!关于数组本身大概就这么多,下面简要说ー下数组和指针的关系。它们的关系非常暧昧,有时候可以交替使用。比如intmain(intargs,char*argvロ)中,其实参数列表中的char*argvU就是char**argv的另ー种写法。因为在C语言中,ー个数组是不能作为函数引数(argument)【注8】直接传递的。因为那样非常的损失效率,而这点违背了C语言设计时的基本理念——作为ー门高效的系统设计语言。注8:这里我没有使用函数实参这个大陆术语,而是运用了台湾术语,它们都是argument这个英文术语的翻译,但在很多地方中文的实参用的并不恰当,非常的勉强,而引数表示被引用的数,很形象,也很好理解。很快你就可以像我ー样适应引数而不是实参。dereferance»也就是・运算符操作。我也用的是提领,而不是解引用。我认为你一定智勇双全:既有宽容的智慧,也有面对新事物的勇气!你不愿意承认吗?:)所以在函数参数列表(parameter1ist)中的数组形式的参数声明,只是为了方便程序员的阅读!比如上面的char*argvロ就可以很容易的想到是对ー个char・字符串数组进行操作,其实质是传递的char・字符串数组的首元素的地址(指针)。其它的元素当然可以由这个指针的加法间接提领(dereferance)【参考注8]得到!从而也就间接得到了整个数组。但是数组和指针还是有区别的,比如在一个文件中有下面的定义:charmyname[]="wuaihua”;而在另ー个文件中有下列声明:externchar*myname;它们互相是并不认识的,尽管你的本义是这样希望的。它们对内存空间的使用方式不同【注9】。对于charmyname[]="wuaihua”如下mynamewuahua\o对于char*myname;如下表myname\l/wuaihua\0注9:可以参考AndrewKonig的《C陷阱与缺陷》4.5节。改变的方法就是使它们一致就可以了。charmyname[]="wuaihua”;externcharmyname[];或者char*myname="wuaihua”;//C++中最好换成constchar*myname="wuaihua”。externchar*myname;C之诡満(下)三.类型的识别。基本类型的识别非常简单:inta;〃a的类型是achar*p;//p的类型是char*那么请你看看下面几个:int*(*a[5])(int,char*);//#1void(*b[10])(void(*)());//#2doube(*)()(*pa)[9];//#3如果你是第一次看到这种类型声明的时候,我想肯定跟我的感觉ー样,就如晴天霹雳,五雷轰顶,头昏目眩,ー头张牙舞爪的狰狞怪兽扑面而来。不要紧(Takeiteasy)!我们慢慢来收拾这几个面目可憎的纸老虎!.C语言中函数声明和数组声明。函数声明一般是这样intfun(int,double);对应函数指针(pointertofunction)的声明是这样:int(*pf)(int,double)5你必须习惯。可以这样使用:pf=&fun;〃赋值(assignment)操作(*pf)(5,8.9);〃函数调用操作也请注意,C语言本身提供了一种简写方式如下:pf=fun;//赋值(assignment)操作pf(5,8.9);/Z函数调用操作不过我本人不是很喜欢这种简写,它对初学者带来了比较多的迷惑。数组声明一般是这样inta⑸;对于数组指针(pointertoarray)的声明是这样:int(*pa)[5];你也必须习惯。可以这样使用:pa=&a;/Z赋值(assignment)操作inti=(*pa)[2]//将a[2]赋值给i;.有了上面的基础,我们就可以对付开头的三只纸老虎了!:)这个时候你需要复习一下各种运算符的优先顺序和结合顺序了,顺便找本书看看就够了。1:int*(*a[5])(int,char*);首先看到标识符名a,“□”优先级大于“*”,a与“[5]”先结合。所以a是ー个数组,这个数组有5个元素,每ー个元素都是一个指针,指针指向“(int,char*)”,对,指向ー个函数,函数参数是“int,char*”,返回值是“int*”。完毕,我们干掉了第一个纸老虎。:)2:void(*b[10])(void(*)0);b是ー个数组,这个数组有10个元素,每ー个元素都是一个指针,指针指向ー个函数,函数参数是“void(*)0”【注10],返回值是“void”。完毕!注10:这个参数又是ー个指针,指向一个函数,函数参数为空,返回值是“void”。3.doube(♦)0(*pa)[9];pa是ー个指针,指针指向一个数组,这个数组有9个元素,每ー个元素都是“doube(*)()”[也即ー个指针,指向ー个函数,函数参数为空,返回值是"double”】。现在是不是觉得要认识它们是易如反掌,工欲善其事,必先利其器!我们对这种表达方式熟悉之后,就可以用“typedef”来简化这种类型声明。1:int*(*a[5])(int,char*);typedefint*(*PF)(int,char*);〃PF是ー个类型别名【注11LPFa[5];〃跟int*(*a[5])(int,char*);的效果ー样!注11:很多初学者只知道typedefchar*pchar;但是对于typedef的其它用法不太了解。StephenBlaha对typedef用法做过ー个总结:“建立一个类型别名的方法很简单,在传统的变量声明表达式里用类型名替代变量名,然后把关键字typedef加在该语句的开头”。可以参看《程序员》杂志2001.3期《C++高手技巧20招》。2:void(*b[10])(void(*)());typedefvoid(*pfv)();typedefvoid(*pf_taking_pfv)(pfv);pf-taking-pfvb[10];〃跟void(*b[10])(void(*)0);的效果ー样!3.doube(♦)0(*pa)[9];typedefdouble(*PF)();typedefPF(*PA)[9];PApa;〃跟doube(*)()Ppa)[9];的效果ー样!3.const和volatile在类型声明中的位置在这里我只说const,volatile是ー样的【注12]!注12:顾名思义,volatile修饰的量就是很容易变化,不稳定的量,它可能被其它线程,操作系统,硬件等等在未知的时间改变,所以它被存储在内存中,每次取用它的时候都只能在内存中去读取,它不能被编译器优化放在内部寄存器中。类型声明中const用来修饰ー个常量,我们一般这样使用:const在前面constint;//intAconstconstchar*;//charconstchar*const;//*(指针)是constconstchar*const;〃char和・都是const对初学者,constchar*;和char*const;是容易混淆的。这需要时间的历练让你习惯它。上面的声明有一个对等的写法:const在后面intconst;〃int是constcharconst*;//char是constchar*const;//*(指针)是constcharconst*const;〃char和・都是const第一次你可能不会习惯,但新事物如果是好的,我们为什么要拒绝它呢?:)const在后面有两个好处:A.const所修饰的类型是正好在它前面的那一个。如果这个好处还不能让你动心的话,那请看下ー个!B,我们很多时候会用到typedef的类型别名定义。比如typedefchar*pchar,如果用const来修饰的话,当const在前面的时候,就是constpchar,你会以为它就是constchar*,但是你错了,它的真实含义是char*const。是不是让你大吃ー惊!但如果你采用const在后面的写法,意义就怎么也不会变,不信你试试!不过,在真实项目中的命名一致性更重要。你应该在两种情况下都能适应,并能自如的转换,公司习惯,商业利润不论在什么时候都应该优先考虑!不过在开始ー个新项目的时候,你可以考虑优先使用const在后面的习惯用法。四.参数可变的函数C语言中有一种很奇怪的参数“…”,它主要用在引数(argument)个数不定的函数中,最常见的就是printf函数。printf(aEnjoyyourselfeveryday!Xn");printf(uThevalueis%d!\n”,value);你想过它是怎么实现的吗?printf为什么叫printf?不管是看什么,我总是ー个喜欢刨根问底的人,对事物的源有一种特殊的癖好,一段典故,ー个成语,一句行话,我最喜欢的就是找到它的来历,和当时的意境,一个外文翻译过来的术语,最低要求我会尽力去找到它原本的外文术语。特别是ー个字的命名来历,我一向是非常在意的,中国有句古话:“名不正,则言不顺。"printf中的f就是format的意思,即按格式打印【注13】。注13:其实还有很多函数,很多变量,很多命名在各种语言中都是非常讲究的,你如果细心观察追溯,一定有很多乐趣和满足,比如哈希表为什么叫hashtable而不叫hashlist?在C++的SGISTL实现中有一个专门用于递增的函数iota(不是itoa),为什么叫这个奇怪的名字,你想过吗?看文章我不喜欢意犹未尽,己所不欲,勿施于人,所以我把这两个答案告诉你:table与list做为表讲的区别:table:itemlIkadkglasgaldfglIjkdsfhitem2|kjdszhahlka|xcvzlist:************That'sthedifference!如果你还是不明白,可以去看一下hash是如何实现的!ThenameiotaistakenfromtheprogramminglanguageAPL.而APL语言主要是做数学计算的,在数学中有很多公式会借用希腊字母,希腊字母表中有这样ー个字母,大写为I,小写为I,它的英文拼写正好是iota,这个字母在e(theta)和k(kappa)之间!你可以./wiki/APL_programming_language下面有一段是这样的:APLisrenownedforusingasetofnon-ASCIIsymbolsthatareanextensionoftraditionalarithmeticandalgebraicnotation.Thesecrypticsymbols,somehavejoked,makeitpossibletoconstructanentireairtrafficcontrolsystemintwo1inesofcode.Becauseofitscondensednatureandnon-standardcharacters,APLhassometimesbeentermeda"write-onlylanguage",andreadinganAPLprogramcanfeel1ikedecodinganalientongue.Becauseoftheunusualcharacter-set,manyprogrammersusedspecialAPLkeyboardsintheproductionofAPLcode.NowadaystherearevariouswaystowriteAPLcodeusingonlyASCIIcharacters.在C++中有函数重载(overload)可以用来区别不同函数参数的调用,但它还是不能表示任意数量的函数参数。在标准C语言中定义了一个头文件专门用来对付可变参数列表,它包含了一组宏,和一个va_list的typedef声明。ー个典型实现如下【注14]:typedefchar*va_list;#defineva.start(list)list=(char*)&va_alist#defineva.end(list)#defineva.arg(list,mode)((mode*)(list+=sizeof(mode)))[-1]注14:你可以查看C99标准7.15节获得详细而权威的说明。也可以参考AndrewKonig的《C陷阱与缺陷》的附录A。ANSIC还提供了vprintf函数,它和对应的printf函数行为方式上完全相同,只不过用va_list替换了格式字符串后的参数序列。至于它是如何实现的,你在认真读完《TheCProgrammingLanguage^后,我相信你一定可以doityourself!使用这些工具,我们就可以实现自己的可变参数函数,比如实现ー个系统化的错误处理函数error,它和printf函数的使用差不多。只不过将stream重新定向到stderr,在这里我借鉴了<(C陷阱与缺陷》的附录A的例子.实现如下:#include#includevoiderror(char*format,...)va_listap;va-start(ap,format);fprintf(stderr,“error:");vfprintf(stderr,format,ap);va-end(ap);fprintf(stderr,“\n”);exit(1);}你还可以自己实现printf:#includeintprintf(char*format,...)(va_listap;va-start(ap,format);intn=vprintf(format,ap);va-end(ap);returnn;)我还专门找到了VC7.1的头文件看了一下,发现各个宏的具体实现还是有区别的,跟很多预处理(preprocessor)相关。其中va_list就不一定是char・的别名。typedefstruct{char*aO;/*pointertofirsthomedintegerargument*/intoffset;/*byteoffsetofnextparameter*/}va-list;其它的定义类似。经常在Windows进行系统编程的人一定知道函数调用有好几种不同的形式,比如ー一stdcall,--pascal,__cdeclo在Windows下-stdcal1,--pascal是ー样的,所以我只说ー下--stdcall和--cdecl的区别。-stdcall表示被调用端自身负责函数引数的压栈和出栈。函数参数个数一定的函数都是这种调用形式。例如:intfun(charc,doubled),我们在main函数中使用它,这个函数就只管本身函数体的运行,参数怎么来的,怎么去的,它一概不管。自然有main负责。不过,不同的编译器的实现可能将参数从右向左压栈,也可能从左向右压栈,这个顺序我们是不能加于利用的【注15】。注15:你可以在HerbSutter的《MoreExceptionalC++»中的条款20:AnUnmanagedPointerProblem,Part1:ParameterEvaluation找到相关的细节论述。_cdecl表示调用端负责被调用端引数的压栈和出栈。参数可变的函数采用的是这种调用形式。为什么这种函数要采用不同于前面的调用形式呢?那是因为ーstdcall调用形式对它没有作用,被调用端根本就无法知道调用端的引数个数,它怎么可能正确工作?所以这种调用方式是必须的,不过由于参数参数可变的函数本身不多,所以用的地方比较少。对于这两种方式,你可以编制ー些简单的程序,然后反汇编,在汇编代码下面你就可以看到实际的区别,很好理解的!重载函数有很多匹配(match)规则调用。参数为“…”的函数是匹配最低的,这ー点在AndreiAlexandrescu的惊才绝艳之作《ModernC++Design))中就有用到,参看35,2.7“编译期间侦测可转换性和继承性”。后记:C语言的细节肯定不会只有这么多,但是这几个出现的比较频繁,而且在C语言中也是很重要的几个语言特征。如果把这几个细节彻底弄清楚了,C语言本身的神秘就不会太多了。C语言本身就像一把异常锋利的剪刀,你可以用它做出非常精致优雅的艺术品,也可以剪出ー些乱七八糟的废纸片。能够将一件武器用到出神入化那是需要时间的,需要多长时间?不多,请你拿出ー万个小时来,英国Exter大学心理学教授麦克・侯威专门研究神童和天才,他的结论很有意思:“一般人以为天才是自然而生、流畅而不受阻的闪亮オ华,其实,天才也必须耗费至少十年光阴来学习他们的特殊技能,绝无例外。要成为专家,需要拥有顽固的个性和坚持的能力……每一行的专业人士,都投注大量心血,培养自己的专业才能。”1注16]注16:台湾女作家、电视节目主持人吴淡如《拿出ー万个小时来》。《读者》2003.1期。“不用太努力,只要持续下去。想拥有一辈子的专长或兴趣,就像ー个人跑马拉松赛ー样,最重要的是跑完,而不是前头跑得有多快。”推荐两本书:K&R的《TheCProgramminglanguage》,Second

Edition.AndrewKonig的《C陷阱与缺陷》。本文从中引用了好几个例子,一本高段程序员的经验之谈。但是对纯粹的初学者不太合适,如果你有一点程序设计的基础知识,花ー个月的时间好好看看这两本书,C语言本身就不用再花更多的精力了素材。★名人-电影明星,体育明星,歌F,成功的人,dult&Chi1.两类重点话题:“熟人”&“名人”★熟悉的人一可以用来准备描述家庭成员,朋友,邻居,帮助过你的人,老人,孩子等;片你羡慕的人,可以和电影,书,音乐结合。2.描述顺序:(1)身份(2)外貌,年龄(い枇蚊真题回顾,Describeoneofyourbestfriends.(2009.3.7,2009.3.14),Describeafamilymemberyouadmire.(2009.3.7,2009.4.18),Describeapersonwhoisgoodatcooking.(2009.3.14,2009.4.18,2009.6.20),Describeoneofyourfavoriteteachers.,Describeasuccessful/happyperson.,Describeaneighborofyours.,Describeanadventurouspersonyouknow.Describeacelebrity/famouspersonyou1ike.=sports/moviestar=apersonwhohasgreatinfluenceonyou=successful/happyperson=apersonyouadmire=apersonyouwanttovisit=yourfavoritebook=yourfavoritemovie=characterfromabook/TVSample1ThoughI'mnotverykeenonsports,IdohaveasportsstarwhoIadmirealot.ThenameofthemaniscalledYaoMing.YaoMingisprobablythemostrecognizablesportssuperstarsintheworld.HeplaysbasketballfortheChinanationalteamandfortheHoustonRocketsinAmerica.HeiscurrentlythetallestplayerintheNBA,measuring2.29meters.Yaostartedplayingbasketballwhenhewasnine.In2002,hebecamethefirstinternationalplayerevertobeselectedasthenumberonepickofrookiesbyNBA.HeisahugesuccessinAmerica.HehasplayedintheNBAAl1-StarGameinallofhisseasonswithHouston.YaoMingisloyaltohisfamilyaswellashiscountry.Asweallknow,YaomarriedtoYeLiin2008,aformerplayerforChina'snationalteam.Althoughheisoneofthemostpopularsportsstarintheworld,youcouldhardlyheartherumorsaboutYao.Besides,hecouldbeetheAmericancitizenquiteeasily,butherejectedthatandhetoldmediaatapressconferencethathe'sgoingtobebackChinaverysoon,andifit'spossible,he'dliketobethecoachoftheCBA.Wecanstillrememberthatin2008,hecarriedtheChineseflagduringtheopeningceremonyoftheOlympics,whichhesaidwasa“longdreametrue".Inaddition,Yaoisagenerousyoungman.Ashealsodoesagreatdealforcharity.Afterthe2008Chinaearthquake,hedonated$2mi11iondollarsandcreatedafoundationtoraisesfundstohelprebuildschoolsindisasterareaswhichmovedmi11ionsifChinesepeople.AnothersuccessofYaoishisYaorestaurant&barinHouston.Fromthat,youcouldseehowintelligentheis.Onethingworthmentioningisthatheisverypatientwithhisfansandjournalistswhoingintotherestaurantandaskingforhissignatureortakingphotoswithhim.YaohasbeenagreatprideofChinese.Beingsuchacapableyoungmanful1ofdrive,YaoMingdefinitelyismyhero.Sample2Who?-JaneAustenID-novelistWhat?-book“P&P^-love-adaptedfilm&dramaWhen?-littlePersonality-ironic,humorousInfluence-me&others,like/admire/first,Britain,worldWell,therearemanyfamouspeoplearound,invariousfields.ButthefirstonepoppingintomymindisJaneAusten,anotableEnglishnovelist.Itis"PrideandPrejudice”,herbestknownworkthatbroughthernametome.IhappenedtowatchthefilmwhenIwasquitealittlegirlandwasinstantlyattachedtoit.Forme,itwaslikeamagicworldofadifferentlanguageandculture.GreatlytouchedbytheromanticlovestoryofMissElizabethandMr.Darcy,Itriedtoreadthebook,startingwiththeChineseversionandthentheEnglishone.EverytimeIamreadinghercleverwords,Iamalwaysstruckbyherironic,humorouswritingstyleandcanneverbetiredofthem.SurelyIamnottheonlyonethatlikeher.Therearecountlessadmirersofheraroundtheworld.Thoughshe1ivescenturiesago,hergreatinfluenceremainstillnowandwi11beyond.Wecantellthatfromtheconstantadaptedfilmsanddramas.Forme,JaneAustenistheveryfirstonewhointroducesmetothebeautyofEnglish.AndsheisnotjustafamousfigureinBritainbutalsobelongstotheworld.Sample3TalkingaboutcelebritiesIadore,alotofnameswouldimmediatelyetomymind.However,ifIdohavetomakeachoice,IguessIwouldhavetogoforWuZun,whoisaBrunei-bornactorenjoyingskyrocketingpopularityalloverAsia.ThemainreasonwhyIamahugefanofWu1iesinthatthe28-year-oldnotonlypossessesdelicatefaceandmasculinebuildbutalsoisversatileindifferentareas.Youknow,Wu,whousedtobeabasketballplayer,isasharp-mindedentrepreneuraswellasafamousactor.WubecameahouseholdnameafterlandingaspotintheTaiwanesepopgroupFahrenheitthreeyearsago.Hehasmadeheadwaysincethen,appearinginnumerousTVsits(=situationedy)inTaiwan.Ontopofthat,hehasdisplayedanaptitudeforbusinessaswell.Heopenedathree-storeygymnamedFitnessZoneinBruneianditturnedouttobeagreatsuccess.Asaresult,heevenwonanawardforthemostpromisingyoungentrepreneurinBrunei.Frombasketballplayer,togymowner,toactorandmodelinTaiwan,Wuhasalwayschasedhisdreams.AndIguessthatisamajorreasonwhyIadmirehimsomuch.Referencewords:更淡定更深沉了胆更大了独立面对事情的应变能力无欲无求了...现在绝对的无欲无求,没有喜欢的吃的,没有喜欢的人,没有喜欢的各种,感觉原来不能接受的也无所谓了,考试挂了好几科都不带着急的胖了会做饭了寂寞的要抑郁了孤独从此渗入我骨髓闷骚改明骚了独立地宅了。郁郁寡欢。看得很开。无欲无求觉得比以前神叨叨了心变凉了觉得所有的感情都可有可无自己能把自己顾好就够了对自己的国家和住了二十年的城市有了新的认识发现自己其实好恋家也有贤妻良的潜质。。。III发现很多事情其实自己一个人也可以的开始觉得很多事情并不是那么理所当然的更加用心的去体会别人的心了更加宽容和忍耐了变简单了变耐心了变努力了。。。也变宅了啦。。。学会看人脸色。学会低声下气。妈的说出来怎么这么心酸淡定的面对淫乱的世界看淡了,坚强了,不斤斤计较了,会做饭了,脸皮变厚了。除了自己,神马都是可有可无的东西。。知道对自己最重要的是什么了理解爸爸妈妈了,会想到关心他们了胖了==实在了开眼了中文英文一块儿下降了某刻终于明白了我的中国心里那句“我的祖先早已把我的一切打上中国印”越发关注中国明白真朋友的可贵独立了自我了更加敢于追求自己想要的东西认清真实的自己。变得豁达、勇敢并更讨人喜欢。更笃定,也更现实。原来我是这么的爱国。。。变成生活上的好姑娘・,外形上的柔情少女,思想上的女流氓,心理上的变形金刚。感觉:国外就这么ー个村子,这么ー个破地方嘛。直接的形容就是,当别人说:**・出国啦!!!!你说:哦。什么都无所谓了,都是浮云,只有自己才真正值得信赖和依靠。对于家的需要越来越淡,连爱也可有可无,脑子分两半:过考试和工作。还有就是,朋友变得很重要不断的刷新自己做的各种事情的记录,结果就是淡定+淡然.一言以蔽之,就是孤独蒸億出来配上岁月蹉院后的成长/成熟的代价独立处理事情和团队合作的能力强了孤独膨胀到一定程度之后反而变成了一种真实的存在感淡然了,感恩获得没脾气了。淡定了。会照顾自己了。更希望能学着好好照顾别人。不爱说话了看淡了,爱情,什么的坚强了因为所有的事儿都要自己一个人忍说了也白搭想家想朋友想家乡的吃的学会了用微波炉烤箱弄出顿不错的饭然后孤零零的ー个人对着电脑吃ー点满足感都没有的饭……学会了担当和远见,学会了小心谨慎同时也寂寞的神经了,在路上能忽然和自己说起话来,还是用英语。。.嗯,对有些事情不发言了。再不跟别人谈政治了。无所畏惧了。勇往直前。。。更能一个人待了、、。惊异与自己对无聊和寂寞的承受カ。。。原来没有什么是无法忍受的更加深刻滴坚信一靠天靠地,最可靠的只有自己••…零食只有甜食和各种高热量…让我不吃也不是,吃又充满罪恶感滴歧视体重ニュ…家具什么的自己会组装了没事喜欢上网学学烧菜了减肥变成我一生的事业了纯纯的姑娘变成老爷们了厨艺零基础到厨艺不能见人是否算进步?没有assignment的时候总喜欢和国内的人聊天算不算寂寞?女朋友不断到找不到女朋友算不算孤独?花家人钱无限制到自己找临时エ开始感觉到家人的辛苦并开始计划生活费算不算孝顺?锚铢必较到学会容忍和谦让算不算成长?无限变胖了发现父母那么伟大从不会做饭变成什么都会做最后变成没时间做天天微波食品学会独立学会不同的思维方式但看的多了懂的多了,却对未来更迷茫了1懂得一个人去面对2理解和接受变的不是一回事3更敏感更孤独4家5坚持梦想厨艺见长会自己规划口袋里的钱了报喜不报忧吧很多事情不会试着去争论了对自己国家的态度有时候真还挺矛盾不过爱国是必须的!视野开阔了很多思维也变了心态更好沉稳了许多。懂得感恩。还有就是总念家。胖!!!!!!!了!!!!!!!!!!!会做菜了(以前那不叫做菜)会走出自己的fortzone了孤独...更会省钱了不会跟谁争论台湾什么的了...很随大流地胖了厨艺大涨失恋了,异地的孩子太折翼孤单变坚强,神马都要靠自己。成熟了,很多事情都看淡看开鸟很大的漂泊感,不知未来会在哪里,会怎样。更喜欢ー个人的生活体谅家人知道赚钱不容易性格开朗了朋友多了研究好吃的做给自己和朋友吃有时间就自己一个人去电影院看ー场电影走了很久回头オ发现已经离起点很远了《童趣》说课稿ー、说教材くー)、教材地位及作用《童趣》是人教社义教教材七年级上册第ー单元的ー篇教读课文,也是七年级学生接触到的第一篇文言文。这个单元的五篇课文都是抒写作者对于人生的体验和思考。本文生动地描述了作者童年的几件趣事,表达作者童年生活的无限乐趣。文章充满奇思妙想,意趣盎然,对刚步入中学的稚气未脱的孩子来说,阅读此文能较好地引起他们的共鸣,获得对人生有益的体验和启示。く二)、三维教学目标新课标提出“各个学段的阅读教学都要重视朗读”,“语文教学注重语言的积累”;“阅读浅易的文言文,能借助工具书和注释理解基本内容”;“欣赏文学作品,能有自己的情感体验,初步领悟作品的内涵,从中获取对自然、社会、人生有益的启示;要培养学生健康的审美情趣”。新课标主张关注学生的学习过程,倡导自主、合作、探究的学习方式,加强学法指导,注重提高学生的语文素养,培养学生的主动意识。依照新课标要求和教材特点,结合具体学情,确定本课教学目标如下:1、知识和能力目标(1)正确、流畅地朗读课文,达到熟读成(2)学习积累文言词汇,疏通文意,培养阅读文言文的能力;(3)领悟作者用心观察事物、发挥联想和想象的能力。2、过程和方法目标(1)联系生活,激发学生学习文言文的兴趣;(2)培养学生形成自主、合作、探究的学习方式,激发学生的主动意识。3、情感、态度和价值观目标体验生活,爱惜生命,感悟生活乐趣。く三)、教学重难点:重点:掌握诵读方法,理解并积累文言字词。难点:感悟物外之趣。二、说教法学法教法1:创设情景法。新课程重视把语文与生活联系起来,强调创设情境、贴近学生生活实际去调动学生的生活体验。从学生熟悉的游戏自然地导入课题,拉近学习与生活的距离,使学生在良好的氛围中激发出学习的兴趣和思维的火花,也使课堂变得生动活泼。教法2:导读法。教师是学生学习的组织者、主导者。引导学生感知、理解、品味文章内容,体味作者的情趣,体现教师在教学的主导作用。学法1:诵读法。“读书百遍,其义自见”,教学本文时引导学生在反复默读,朗读的基础上,疏通文意,感悟语文内容。根据对课文内容的理解,进ー步矫正自己在朗读上如语气,节奏,速度和情感等方面存在的问题,然后进一步朗读,最后达到熟读成诵的目的。学法2:合作探究法。新课程标准倡导自主、合作、探究的学习方式,强调学生是学习的主体,注重培养学生自主学习的意识和习惯。采用小组讨论、合作探究不我待的方式,有助于激发学生的兴趣和创新精神。[教具准备]:多媒体课件。[课时安排]:两课时。三、说教学过程(一)、导入新课,了解常识1、导入新课同学们,儿童是天真烂漫的。对世界,他们充满了好奇和幻想。小时候,我们都玩过“过家家”游戏,几个小朋友在一起,有的当爸爸,有的当妈妈,有的当孩子。有句儿歌唱道(教师唱):“小板発啊摆ー排,小朋友们坐上来啊坐上来。我当司机把车开啊,我当司机把车开。轰隆隆隆,轰隆隆隆,轰隆隆隆,呜——。”看,小板発排起来就成了火车了。多有趣!今天我们来学习清代文学家沈复的短文《童趣》。文中的趣事,可能会勾起我们许多儿时的回忆,或许还能给我们带来意想不到的启发。2、幻灯片显示课题。3、简介作品、作者:(学生交流收集到有关作者的信息。由此培养学生收集整理信息的能力)4、文体导学文言文是古代的书面语,特点是简洁、典雅。学习文言文是为了继承民族的文化遗产,帮助我们了解历史,可以丰富我们的语言。学好文言文关键在于培养语感。ー是要熟读、背诵,体验文言文的表达方式和语言习惯:二是要用心领悟,把“言”和“意”融为一体,见“言”而知“意”;三是不断积累文言词汇,掌握文言文的表达工具。(二)、诵读感知,疏通文意1、朗读指导,初步感知①、教师范读课文。并指导和点拨朗读方法:A、读准字音;B、读清句子和停顿;C、读出语气和感情。②、学生反复朗读课文。给加点字的注音(幻灯片显示)。③、在了解课文内容的基础上,划分句子的朗读节奏(幻灯片显示)。例:见/藐小之物/必/细察其纹理,故/时有/物外之趣。2、讨论合作,解释词义(幻灯片显示)。例:⑴又留蚊于素帐中,徐喷以烟。(慢慢(2)捉虾蟆,册数十,驱之别院。(用鞭子抽打)⑶见藐小M物必细察丼纹理。(之,的。其,它的,指“藐小之物”。)3、讨论合作,翻译语句(幻灯片显示)。例:作青云白鹤观,果如鹤唳云端,为之怡然称快。译:比作“青云白鹤”的景观,果然它们就像白鹤在云端飞鸣,[我]为此高兴得[不断地]叫好。)(以上为第一课时内容。)4、依据提纲,创新复述教师对学生的复述给予赏识和激励性评价。5、点面结合,背诵课文(三)、赏读感悟,合作探究此环节意在引导学生深入阅读文本,探究文章内容和感悟作者思想感情。1、同学们,这篇课文的主旨是什么?明确:本文的主旨是写作者儿时的“物外之趣”。2、请概括地说出作者记叙了哪几件“物外之趣”?明确:(1)把“夏蚊成雷”比作“群鹤舞于空中”。(2)把草丛、虫蚁、土砾比作森林、野兽、丘壑。(3)观“二虫斗草间”,惩治癞蛤蝶。3、这篇课文的结构特点是什么?明确:由总到分。4、你认为这种“物外之趣”是怎样产生的?明确:是借助于丰富的联想和想像创造出来的。(四)、体验反思,拓展延伸你有没有过类似的经历?试展示一下自己的创造カ。(鼓励同学们敞开述说,教师应注意引导学生围绕中心畅谈体会,做好评价。)2、讨论:这篇课文对你有怎样的启发?提示:联想和想像是创新的基础。我们要培养创新能力,首先要培养自己的联想和想像的能カ。我们要保持青少年特有的好奇心和富于幻想的特点,勇于实践,做ー个敢想敢做,勇于开拓的人。3、你认为怎样做才算是ー个有情趣的人?提示:热爱自然,热爱生活;富于联想和想像,有一定的审美能力,能发现美,认识美。4、“我”为小虫打抱不平,为什么只是“驱之别院”,而不是将癞蛤蟆处死?参考答案:A,珍惜生命。B.处置有度。C,不忍心。(以上4题答案不求统ー,只要言之成理即可。要尊重学生的独特感受,对有创意的回答,教师要给予鼓励。)(五)结语通过这ー课的学习,我们了解了作者童年时丰富奇特的想象和天真烂漫的情趣,以及身处尘世时那种超然物外的闲情,认识到了童心的纯真,童趣的美妙。同学们,让我们在以后的人生道路上,永远保持ー颗童心,用心去观察生活、感受生活的乐趣,用丰富的联想和想象去创造美好的生活!(六)、布置作业(幻灯片显示)。第一课时1、背诵课文。2、完成“研讨和练习”第二题。3、写ー个复述课文内容的提纲。第二课时以“童年记趣”为内容,写ー篇不少于300字的短文。四、说板书设计本文作者通过联想和想象的思维方式给蚊子等自然景物赋予新的形象,从而获得物外之趣。主板书按这个思路设计,更直观指导学生整体感悟课文。观蚊(联想)观蚊(联想)鹤舞物外之趣 (分)草虫土砾 (想象) 山林野兽(总)九年级(上)英语单词拼写专项训练1/1.Hemadealotof(错误)in(语法).Theteacherlistenedtothechildrenreading(大声地).(口语)English.Thereareno(区另リ)betweenEnglishnamesandAmericannames.TheyhopetojoinanEnglishclubtopractice(MEnglish.Doyouknowthe(发音)oftheword?IcaMt(发音)someofthewords.Thebabyissoyoungthathecan_(几乎不)dresshimself.IthinkEnglishgrammarisboring,butWeiMingfeels(不同地).6己ケ乙)thewordsisveryimportantllWearesoethatwejumpandsing(咼兴地).Hethinksmwordsisagreatwaytolearnalanguage.Ifsimpoliteto1atthepeopleintrouble.JtheEnglishclubcanimproveyourEnglish.DoyouoftenmakeminEnglish?Many(士兵)diedin"Xsnq〇〇;111,1-sXppsssq;s;jqouoo.I0J。叫[。ム叫 qI'U,sigq;oqi!凶guijuo〇。イ!Is;ugpn;s'\z,Xppjg;sgXujooj9qiutuinSojgqmpsjgqopg;gqx"03,sg?|Busgqijo1oqoipssnjitSoqj,*614gqs,叩!p,s]sg]gjeq〇, ngq§'^\/l3SJ!JS!(联学) gAg^gqi・ハ,Jpmgqi.ItsthatYuMinghaschangedalot..Iamafraidofbalone..Theaccidentcausedhisfather%_(死亡)..Intheendtheymadea(决定)togothere.Tomy(惊奇),hegotgoodgradesthistime.Pleasegupsmoking.Ifsbadforyourhealth.Ifyoudon'tstudy,you'llwyourtimeinschool.Hewantedhismothertopaymoreatohim.Martinhasreally(变化).2.Tshouldbeallowedtochoosetheirownclothes.Sixteen-year-oldsshouldn'tbeatodrive.Theytalkedinsteadofdtheirhomework.I,mafraidofmyheadteacher.He'sverys.Studentsshouldn'tbeallowedtos_upuntil11pm.Ifyoucmoreonyourclothes,you'lllesscareaboutyourstudies.Dourownclothesisinteresting.It'sagoodwaytoallowstudentstostudying.Ican'tc whichpairofjeanstobuy.Everyoneneedstohaveat1eighth(小时)sleep.HeshouldstopwearingthesesillyTheboyalwaysfeel(困倦)inChineseclass.Atlastthey(成功)lastyear.Studentsshouldn'tbe(允许)tosmokeatschool.Englishis(说)allovertheworld.IntheirschoolFrenchis(教)?ItwouldbeagoodeformebecauseIwanttobeadoctorwhenIamolder.4/49. Whatwouldyoudoifyouhadamilliond?—Iwouldgivethemoneytoc .IfIwyou,I'dtakeasmallpresent.WifIdon'tknowanyone?Iaskedhis(允许)tousehisbike.Thelittlegirlgavehermothera(自信的)smile.ShelearnedEnglishbyh .MissLiianewstudenttoherclassyesterday.Theylistencarefully,theyaregood1.ChengLongisafamousactor.HerChinesekungfuHeknowslotsofthings.HeisHedidn'tagreewithme,sohertodothings.Youmadelotsofmistakes.YoumustcthemTherearemanybooksontheses .I'mtooshytogivesinfrontoftheclass.Heishardlyevertired.HeisTheterriblenoisedidn'tbotheryouinthes.Ican'tthinkofanygood(建设)togiveher,butyoualwayscupwithgoodstopeople's(困难).5/66.MarkTwainisaveryfamous(作家).Thebookdoesn'tbtoyou,it'shers.Hurryup,oryoucan'tctheearlybus.Theoofthebeautifulhouseisasinger.Ihaven'tseenmydogfortwodays,Iamverywaboutit.ThedofGradeNineisMrSun.Our(邻居)areveryfriendly.Wegetonverywell.Thefoodintherestaurantsnice.Therearesomebig(石头)inthestreet.Let'smovethemaway.Heisa(不诚实的)student.Weallworryabouthim.There'sa(奇怪的)smellintheroom.Don'tforgettheimportant(约会)thisafternoon.Shedidn'tgotoschoolbofhisillness.Thenicebikemightbeapforhim.Becausehisbirthdayising.0.Hesaidhedthemusicbecauseitwastooloudly.MrQiaoisamanwithakindh.Heisalwaysreadytohelpothers.He1ikesmusicthathasgreat1They'replayingquietandgsongs.Someofthesingersdon'tsingthesongscMrGaoisafamouspHehastakenalotofbeautifulphotographs.LinLinisanhboy,andhenevertell1iestoothers.WillThursdaysyou?Wyoudo,youmustbecareful.89.I'dliketogosomewhere (放松的).Foryournextvacation,whynot(consider)(visit)Paris?Themusic(听起来)1ikebirdssinging.Wouldyou1ikesomething(别的)?Iピsaboutfive(天)work.Bobisno(不再)ayoungman.Youmuststop(抽烟).Hangzhouisoneofthemostbeautiful (城中丿intheworld.Thatoldman(死)fiveweeksago.Fatherlooksvery(担忧的)today.Ididn/thavebreadforbreakfast,Ihadabowlofnoodles(代替).Hisfather'singback(使得)himfeelveryhappy.TodayIcametoschool(没有)breakfast.Iwastoobusyand(错过)thefilm"Titanic".Iwilltellyouwhenhe _ 倒达)myhome.Therearesomany(参观者)intheWestLake.Youmustkeep(安静)inclass.He(改变)hisnamewhenhewasintheUSA.It'snotgoodtolaughatothers'(错误).There's

温馨提示

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

评论

0/150

提交评论