c语言常用语法(共9篇)
1、标识符
由字母、数字和下划线组成。标识符必须以字母或下划线开头。大、小写的字母分别认为是两个不同的字符。不同的系统对标识符的字符数有不同的规定,一般允许7个字符。
2、注释
“/*”和“*/”必须成对出现; 注释不能嵌套;
注释可出现在程序的任何位置。
3、常量
整型常量十进制常数(八进制常数、十六进制常数、长整型常数); 字符常量(用单引号括起来的字符); 字符串常量(用双引号括起来的字符序列); 浮点型常量(小数形式、指数形式)。
4、表达式
算术表达式(整型表达式、实型表达式);
逻辑表达式(用逻辑运算符连接的整型量,结果为一个整数0或1,逻辑表达式可以认为是整型表达式的一种特殊形式); 字位表达式;
强制类型转换表达式(用“类型”运算符使表达式的类型进行强制转换); 逗号表达式;
赋值表达式(将赋值号“=”右侧表达式的值赋给赋值号左边的变量); 条件表达式;
指针表达式(对指针类型的数据进行运算)。
5、数据定义
对程序中用到的所有变量都需要进行定义。对数据定义其类型,需要时要指定其存储类别。类型标识符可用:int、short、long、unsigned、char、float、double、struct 结构体名、union 共用体名等;存储类别可用:auto、static、register、extern(如不指定存储类别,作auto处理)。注意:外部数据定义只能用extern或static,而不能用auto或register。
6、函数定义
形式为:存储类别 数据类型 函数名(形参表列);形参说明;函数体。
函数的存储类别只能用extern或static。函数体是用花括弧括起来的,可包括数据定义和语句。
7、变量的初始化
1“程序设计基础”课程教学内容要点
“程序设计基础”课程教学大纲中明确规定了教学内容,这些内容涵盖的知识单元有:程序设计语言概论,程序设计基本结构,算法与问题求解,事件驱动程序设计,算法策略,基本算法,面向对象程序设计。
一般情况下,一个问题的求解过程可能涉及多个知识点,一个知识点可能会出现多个语法要素,如在求解两个整数的最大公约数问题上,会用到如变量定义、输入输出、数据交换、循环控制结构等知识点,而就单纯循环控制结构中就会出现很多语法要素,如用到的关键词可能有while,for等,运算符有=,%等。
问题空间,知识点和语法要素的对应关系可以用图1表示。
因此对语法内容的选取首先需要确定问题空间,即先确定学习者所能解决的问题范围。对于程序设计初学者来说,用前文所述的十三类常用算法就足够了。
2 C/C++语法特点
从语法的角度看,源程序实际上是一个字符序列。这些字符序列按顺序分别组成了一系列“单词”。这些“单词”包括语言事先约定好的保留字(ReservedWords,如用于描述分支控制的if、else,用于描述数据类型的int等)、常量(Constant)、运算符(Operator)、分隔符以及程序员自己定义的变量名、函数名等。
“单词”的组合形成了语言有意义的语法单位,如变量定义、表达式(Expression)、语句、函数定义等。一些简单语法单位的组合又形成了更复杂的语法单位,最后一系列语法单位组合成程序。下面就以C/C++语言为例,简要说明其最主要的语法要素。
3 C/C++语言的主要“单词”
标识符C/C++语言的标识符规定由字母、数字以及下划线组成,且第一个字符必须是字母或下划线。在C/C++语言中,标识符中的字母大小写是有区别的。最主要的标识符是:保留字和用户自定义标识符。保留字也称关键字,它们是C/C++语言规定的、赋予它们以特定含义、有专门用途的标识符。这些保留字也主要与数据类型和语句有关。如int(整数类型)、float(浮点数类型)、char(字符类型)、typedef(类型定义)、以及与语句相关的if、else、while、for、break等。
自定义标识符:包括在程序中定义的变量名、数据类型名、函数名以及符号常量名。一般来说,为了便于程序阅读,经常取有意义的英文单词作为用户自定义标识符。常量常量是有数据类型的,如,整型常量123、实型常量12.34、字符常量’a’、字符串常量“helloworld!”等。
运算符:代表对各种数据类型实际数据对象的运算。如,+(加)、-(减)、*(乘)、/(除)、%(求余)、>(大于)、>=(大于等于)、==(等于)、=(赋值--assignment)等。绝大多数运算为双目运算(涉及两个运算对象),也有单目(涉及一个运算数)和三目(三个运算数)运算,如C/C++语言中的条件运算“?:”就是一个三目运算。
分隔符:也叫做界符。如:;、[、]、(、)、#等。
4 C/C++语言的主要语法单位
表达式运算符与运算对象(可以是常量、函数、变量等)的有意义组合就形成了表达式。如,2+3*4、i+2
变量定义:变量也都有数据类型,所以在定义变量时要说明相应变量的类型。变量的类型不同,它在内存中所占的空间大小也会有所不同。变量定义的最基本形式是:“类型名变量名;”。如,“inti;”就定义了一个整型变量i。
语句:语句是程序最基本的执行单位,程序的功能就是通过对一系列语句的执行来实现。C/C++语言中的语句有多种形式:
最简单的语句:表达式加“;”。在C/C++语言中赋值也被认为是一种运算,如“i=j+2”(把j加2的结果给变量i)就是一个包含“+”和“=”两种运算的表达式,“+”优先级较高。在上述表达式后加“;”就成了一个执行赋值过程的语句。
分支语句:实现分支控制过程,即根据不同的条件执行不同的语句(或语句模块)。具体有两种形式,即双路分支的if-else语句与多路分支的switch语句。循环语句:C/C++语言实现循环控制的过程具体有三种形式,即while语句、for语句、do-while语句等。
复合语句(Compoundstatement):通过一对大括号“{}”,将若干语句顺序组合在一起就形成了一个程序段。如,前面while语句中的“{sum=…}”。
函数定义与调用:函数是完成特定任务的独立模块,是C/C++语言唯一的一种子程序形式。
以上简单描述了C/C++语言最主要的语法要素,它还有非常丰富的库函数以支持和实现非常庞大的功能。由以上内容可见,语法单位是单词之间通过各种组合方式构成的,如,变量和运算符组合的表达式,关键字中如for,while等构成的语句等。所以,本研究只从“单词”的角度研究基本语法要素构成的语法子集,暂时不考虑语法结构的问题。
5 实验设计
实验主要由以下几个步骤组成:
1)数据采集(数据采样):原始数据主要来源于目前国内用于“程序设计基础”课程的教材,包括国内的许多专家学者所编著的教材和国外原文教材的翻译版本教材。处理数据主要是其中的样例程序和课后习题的实现程序。由于这些教材形式主要包括课件及相关的电子文本,所以首先要解决的问题就是从自然语言文本中抽取样例程序,并生成TXT文本。
2)数据处理:数据处理阶段要解决的问题就是对已经筛选出的符合条件的程序进行分词、标注。分词工作会去除掉程序中多余无用的部分(如注释,多余空格等),标注的信息包括该词的类型(关键字、运算符、界符、标识符、常量),该词所属的程序文件编号,该程序所属的问题范畴。
对采集到的每个源程序文件进行分词标注之后均产生一个单词表,取名为“源文件名_单词表”,其结构如表1所示。
3)数据统计:对数据处理阶段得到的单词表进行统计。以单词出现的频数和在所有文件中出现的比例为统计依据。也就是说,最终得到的是所有程序文件中出现的C/C++语言的单词频数统计表(不包括重复出现的情况)。通过对该表的分析得出最后的结论。
6 数据采集
将目前国内大多数院校所选用的作为计算机及相关专业的“程序设
计基础”课程的教材作为主要分析对象。由于数据量较大,只能选取其中的一些由权威出版社及程序设计方面的专家学者所著的一部分。为了尽量降低采样主观性,体现实验数据的普遍性,主要使用了以下两种方法:一是在搜集到的现有教材中随机采样选三本;二是根据教材的发行量及在各大院校的使用情况选三本。
数据采集的渠道主要有网上搜索,与出版社联系。经过近半年的时间,收集到了大量用于普通高校本科计算机专业教学用C或者C++语言的程序设计教材,但是,这些教材绝大多数是PDG格式,或PDF格式,按照实验设计要求,数据处理阶段的数据源必须是TXT文本文件。这就对教材中例题的提取造成了很大的困难。现将例题转换过程中所用到的相关软件及技术简单总结如下。
1)PDG格式文件转TXT文件:Pdg2Pic软件的格式转化器将PDG文件以三种语言(英语、简体中文、繁体中文)生成TXT文件,生成的TXT文件中,已不再保留教材中文字的原有格式。经过对比实验,将该软件的转换语言选择为英语的时候,生成的TXT文件中的例题错误之处会更少。最后,将生成的TXT文档与源文件进行人工比对,发现例题中的错误,将其改正,并将例题之外的部分删除,就可以得到只含有例题的TXT文件了。
2)PDF文件转换为TXT文件:PDF文件的生成原文件可以是文档文件,也可以是图像文件。有于其原文件的不同,在将PDF文件转换TXT文件的过程中,决定了在转换过程中将采用不同的软件。
参考文献
[1]李炜.计算机高级语言程序设计课程的教学改革与实践[J].安徽师范大学学报:自然科学版,2003(2):24-26,29.
[2]杨起帆.C语言程序设计教程[M].浙江:浙江大学出版社,2006.
基变序,很容易,
一二三,特殊记,
th从四起,
八去t来九去e,
遇到ve,f替,
ty变为tie,后加th莫迟疑,
若想表示几十几,只变个位就可以。
时间介词巧记歌
年、月、季节前须用in(如:in 2008, in September, in spring),日期前面行不通,遇到几号改用on(如:on January 1),上午、下午、晚上仍用in(如:in the morning/afternoon/evening),若是某日上下午,也是用on才能行(如:on the evening of the Mid-autumn Day),正午、夜里用at(如:at noon, at night),时、分用法也同理(如:at two),如若“差”点须加to(如:two to two),如若“过”点改past(如:half past one),多说勤练牢牢记,学好英语非儿戏。
be的几个顺口溜
(1)我用am,你用are,单三is,复数are。
(2)I用am,you用are,非I非you是is,复数全部都用are。
(3)代词主格的顺口溜:
I是我来we复数,你和你们都用you;he,she,it男、女、它,復数一律把they用。
一般现在时
一般现在时态中,动词一般用原形;
表述事实讲真理,习惯动作常发生;
动词词尾加-s(es),只表单数三人称;
若变一般疑问句,得看句型是哪种;
系表结构和there be, be放句首可完成;
若遇实义动词句,do或does莫忘用。
现在进行时
Look,Listen是标志,现在进行正发生;
有时now在句中现,“be+v-ing”时态成;
若问be用何形式,须看主语数、人称;
He/She is, I am, We, you, they后are紧跟;
v-ing形式更好记,三种构成要分清;
一般问句be提前,be后加not否定成!
一般过去时
肯定句的过去式:规则动词加ed,不规则的必须记。
From the cartoon we can see that_____。
We can see from the cartoon that_____。
As is indicated in the cartoon, _____。
(2)引出暗含主题句
We can deduce from these two vivid drawings that_____。
What has been describe in the cartoon carries great implications for our life, esp. how to_____。
What it illustrates is a common phenomenon in today“s society, and it conveys the symbolic meaning of_____。
(3)引出漫画人画图目的句
What is the purpose of the drawer of this cartoon? In the first place,_____. In the second place,_____。
(4)引出原因句
There are quite a few possible reasons suggested here. To begin with,_____. In the second place,_____. Finally,_____。
There are some possible reasons for this tendency. To begin with,_____. In the second place,_____. Finally,_____。
What caused the effect? There are at least two possible reasons. To begin with,_____. In the second place,_____。
(5)引出对策句
It is, therefore, necessary that efforts should be made to cope with the problem as early as possible。
We should take immediate measures, for if the present situation continues as before, serious outcome will come up。
As far as I am concerned, my suggestions as to ___are as follows。
(6)过渡句_以往文章提到很多,在此不多提
It is clear that ___plays a important role in our life and work。
There may be some other reasons responsible for ___, but I think what has been mentioned above is generally acceptable。
This is my point of view as to how to___, and I am sure that my ideas are both sound and reasonable。
(7)举例子
A case in point is my neighbor, who_____。
I”d like to quote a further example here。
According to a recent survey made by professor Wang, head of social department in Peking University, 90% of the people across the country are suffering from the problem。
Another survey also shows that the trend is turning from bad to worse。
(8)结论句
Only in this way can we_____。
(9)列举意义的短语
In the first place , ___. In the second place , ___. Last but not the least, ___。
To begin with , ___. Furthermore , ___. The most important of all, ___。
On the one hand, ___.On the other hand, ___.In addition, ___。
For one thing , ___. For another, ___. What’s more, ___。
(一)情态动词can
can 在英语中有一个特殊的名字,叫做情态动词,表示“能够”,“会”,“能力”后面要跟着表示动作的动词。没有时态和人称的变化。表示不能做什么的时候,后面加上 not为can not,或者缩写为can’t。问别人“能…吗?”要把can 放在句子前面,首字母要大写,句尾别忘加上问号。
例句:
—I can swing.I can draw.—She can jump.He can play.—We can touch.They can run.—I can’t sing.You can’t see.—She can’t dance.He can’t hear a car.—We can’t hear an aeroplane.—Can you hear a dog?Can he hear a bus? —Can Lucy write?Can you do it? 将下面各组词组成句子
1._____________(an,aeroplane,hear,Lucy,can)2._____________________(not,he,dance,can)3.__________________?(you,can,see,what)4._________________(can,see,not,we,you)5._________________.(I,can,help,you)6._____________________?(I,can,do,what)7.___________________?(you,can,hear me)8.___________________?(you,can,dance)(二)人称代词所属格
注意:主格作主语,其中she指带代国家,it可指代天气时间等。宾格作宾语,介词宾语,表语。动词后面用人称宾格 形容词性物主代词作定语。
名词性物主代词作主语,宾语,介词宾语,表语书信yours… 表示----的,这样的词我们也学习很多了,你能想出来吗? 记住这个小口诀就很容易了:我的 my,你的your,他的 his、她的her.//它的是its;我们的 our;你们的是 your他们(它们,她们)的是their//这些人称代词形式称为人称代词所属格,也叫形容词性物主代词。通常用在名词前面表示所属关系。另外,表示某人的还可以用名词或人名+ ’s 来表示。如: mykite;yourbook;hispen;hercoat;itstail;our class;their teachers;my brother’s;book;the cat’s ears;Mary’s mother 一.写出下列人称代词的所属格形式
I________ you_________ he______________ She_________ it____________ we_____________ You_________ they_________ 二.用合适的人称代词填空
(1)This is Ben.This is _______bicycle.(2)I am Kitty.______ bag is blue(3)She’s Alice.That’s _____ umbrella.(4)You are Mr Li.______ car is black.(5)Is this ______ hat? Yes,it’s my hat.(6)That’s my mother.That’s _____ coat.(7)Where’s ______ scarf? Here you are.(8)He’s Mr Wang._____ gloves are new.三.翻译下列词组
1.你的名字 _____________ 2.我们班___________ 3.他的小弟弟____________ 4.我祖母___________ 5.它的尾巴 ______________ 6.我的鞋____________ 7.她的围巾________________ 8.我的衬衫_________ 9.他们的老师______________ 10.玛丽的雨伞_________ 四.用下列单词组句
1.___________________________(my,is,name,Tom)2.____________________________(is,miss,Gao,our,friend)3.____________________________(is what,your number,telephone)4.____________________________?(mother,your,a teacher,is)5.____________________________?(who’s,cap 四.用下列单词组句
1.___________________________(my,is,name,Tom)2.____________________________(is,miss,Gao,our,friend)3.____________________________(is what,your number,telephone)4.____________________________?(mother,your,a teacher,is)5.____________________________?(who’s,cap(三)介词、连词和感叹词
1.介词:介词是一种虚词,不能单独使用,必须在介词后面加上个名词或代词使用,作句子成份。介词后面的名词(或相当于名词的其它词)叫做介词的宾语。介词和介词宾语合称为介词短语。介词短语在句中可作壮语、定语或表语。
介词如: in 在…里面on在…上面under在…下面等。in the classroom in the tree in the hall on the road on the desk on the floor under the table under the bed under the chair 2.连词:连词是用来连接词与词、短语与短语、句子与句子等的词叫连词。连词是一种虚词,在句子中不能单独作句子成分。连词分两类:一类叫等立连词,另一类叫从属连词。
(1).等立连词是用来连接同等的词、词组和分句的。等立连词有许多 我们现在只学到了and和but,其他的以后学到再介绍。
如:A and B;blue and white;an apple and a banana;a car and a bus;Lucy and Ben;Ben and Kitty;This is a lorry and that’s a drill.I like dolls and you like robots.(2).从属连词是用来引起从句的、从属连词又分为 1)引起名词性从句的连接词,如:if,that 等。
2)引起壮语从句的连接词,如:when,after,befare等。以后会逐渐学到再介绍。3.感叹词: 表示说话人的某种感情(惊讶,高兴,痛苦等)的词叫感叹词。感叹词后常用感叹号。常用的感叹词有:oh(表示惊奇或痛苦),ah(表示惊奇或满意),hello(常被用来打招呼相当于汉语的“喂!”),well(表示惊讶,无奈)如:Hello.Are you Mary? 练习:翻译下列词组 1.在桌子上面
2.在树下面 3.在椅子上面
4.在盒子里面 5.在黑板上
6.在书里 7.在脸上
8.在公共汽车上 9.一只猫和一只狗.10.又小又胖
答案:1.on the desk 2.under the tree 3.on the chair 4.in the box
5.on the blackboard 6.in the book 7.on the face 8.on the bus
9.a cat and a dog
10.small and fat(四)单数句和复数句:
口诀:单数句子变,变化规则要记住。名词代词要变化,am,is要变are。
this,that变成啥,these,those来替它。he,she,it要变啥,全部变they不用怕。I要变we莫落下,名词后面把s/es加。名前冠词去掉它,其余成分原样加。具体注意下面的六要素:
1.单数主格人称代词要变成相应的复数主格人称代词,即I→we;you→you;she,he,it→they。如: She is a girl.→They are girls.2.am,is要变为are。如: I‘m a student.→We are students.3.不定冠词a,an要去掉。如: He is a boy.→They are boys.4.普通单数名词要变为复数形式。如: It is a cat.→They are cats.5.指示代词this,that要变为these,those。如: This is a book.→These are books.6.man,woman作定语修饰可数名词时,要在 ”数”上与被修饰名词保持一致。但其他名词修饰名词表示 ”性质”时,不作变化。如:
He is a man doctor.→They are men doctors.This is an apple tree.→They are apple trees.单复数相互转换,每空一词(含缩写)。1.The woman is a nurse.(改为复数句)The _________ _________ _________.2.There are some old cars.(改为单数句)There _______ _______ old _______.3.He has a new book.(改为复数句)______ ______ new _______.4.Are these your chicks ?(改为单数句)_____ _______ your _______? 5.Is there a sheep in the playground?(改为复数句)____ there ____ ____ in the playground?(五)一般疑问句及特殊疑问句 句子基本是:简单陈述句,由简单陈述句转变成肯定句,否定句,疑问句。疑问句是用来提出问题。英语中有四种疑问句: 一般疑问句、特殊疑问句、选择疑问句和反意疑问句。我们现在已经接触到了前两种疑问句。后两种疑问句以后我们还会学到.一.一般疑问句:
英语中要用 yes和no 来回答的疑问句叫一般疑问句。如: 1)Is it hot ?Yes,it is.No,it isn’t.—— be动词引导 2)Is it a car ?Yes,it is.No,it isn’t.—— be动词引导 3)Is this your ruler ?Yes,it is.No,it isn’t.—— be动词引导 4)Do you like bananas ?——含实义动词
Yes,I like bananas.No,I don’t like bananas.5)Can Ming hear a drill ?——含情态动词
Yes,Ming can hear a drill.No,Ming can’t hear a drill..陈述句(肯定句,否定句,一般疑问句)的转变规律: 1.肯定句:2.否定句:3.一般疑问句及肯否定回答
1)主语+be动词+….1)主语+be动词+not+….1)be动词+主语+…? Yes,主语+be动词./ No,主语+be动词+not.I am a teacher.I amnot a teacher.Are you a teacher?--Yes,I am./ No,I am not.My mother is thin.My mother is not /isn’t thin.Is your mother thin?--Yes,she is./ No,she isn’t.They areinsects.They are not/aren’t insects.Are they insects?--Yes.they are./ No,they aren’t.2)主语+情态动词can+… 2)主语+情态动词can+ not+….2)情态动词can+主语+…? Yes,主语+情态动词can/ No,主语+情态动词can+ not He can jump.He cannot/can’tjump.Can he jump?--Yes,he can./ No,he can’t.3)助动词do/does+主语+….动词原形+….动词原形? Yes,主语+助动词do/does.No,主语+助动词do/does+not.He likes to eat apples.He doesn’t like to eat apples.Does he like to eat apples? Yes,he does./ No,he doesn’t.二.祈使句:表示请求、命令、建议或劝告等的句子叫祈使句,主语you常省略。
1、肯定形式:一般以动词原形开头。Open the door,please.2、否定形式:在句首谓语动词前加Don‘t。Don‘t be late for class.三特殊疑问句(又叫wh-question)用特殊疑问词来提出问题的疑问句叫作特(五)一般疑问句及特殊疑问句
句子基本是:简单陈述句,由简单陈述句转变成肯定句,否定句,疑问句。疑问句是用来提出问题。英语中有四种疑问句: 一般疑问句、特殊疑问句、选择疑问句和反意疑问句。我们现在已经接触到了前两种疑问句。后两种疑问句以后我们还会学到.一.一般疑问句:
英语中要用 yes和no 来回答的疑问句叫一般疑问句。如: 1)Is it hot ?Yes,it is.No,it isn’t.—— be动词引导 2)Is it a car ?Yes,it is.No,it isn’t.—— be动词引导 3)Is this your ruler ?Yes,it is.No,it isn’t.—— be动词引导 4)Do you like bananas ?——含实义动词 Yes,I like bananas.No,I don’t like bananas.5)Can Ming hear a drill ?——含情态动词
Yes,Ming can hear a drill.No,Ming can’t hear a drill..陈述句(肯定句,否定句,一般疑问句)的转变规律: 1.肯定句:2.否定句:3.一般疑问句及肯否定回答
1)主语+be动词+….1)主语+be动词+not+….1)be动词+主语+…? Yes,主语+be动词./ No,主语+be动词+not.I am a teacher.I amnot a teacher.Are you a teacher?--Yes,I am./ No,I am not.My mother is thin.My mother is not /isn’t thin.Is your mother thin?--Yes,she is./ No,she isn’t.They areinsects.They are not/aren’t insects.Are they insects?--Yes.they are./ No,they aren’t.2)主语+情态动词can+… 2)主语+情态动词can+ not+….2)情态动词can+主语+…? Yes,主语+情态动词can/ No,主语+情态动词can+ not He can jump.He cannot/can’tjump.Can he jump?--Yes,he can./ No,he can’t.3)助动词do/does+主语+….动词原形+….动词原形? Yes,主语+助动词do/does.No,主语+助动词do/does+not.He likes to eat apples.He doesn’t like to eat apples.Does he like to eat apples? Yes,he does./ No,he doesn’t.二.祈使句:表示请求、命令、建议或劝告等的句子叫祈使句,主语you常省略。
想要用好一个词汇,大家要做的第一件事是了解这个词汇的准确定义,disadvantage的定义是a quality or condition that puts something or someone in an unfavorable or inferior position compared to others. 这里需要注意的是compared to others这个细节部分,也就是说这个词是用来对比的,换句话说,很多时候所谓的disadvantage其实都是相对而说的,如果没有对比对象,那么这个词汇也是不能随意使用的,它和shortcome还是存在一定区别的。
关键词:搜索引擎,搜索语法,通配符搜索,精确搜索,逻辑搜索
在互联网信息爆炸式增长的今天, 谷歌、百度等搜索引擎, 已经成为广大网民获取信息的主要途径和重要工具。对有互联网信息搜索需求的用户而言, 如何提高搜索引擎的科学使用技巧, 高效便利地获取有效信息, 就显得至关重要。要提高搜索结果的有效性和精确度, 主要方法有选择优秀的搜索引擎、优化搜索的关键词, 以及善用各种搜索语法等。本文主要从如何运用各类搜索引擎提供的搜索语法, 来提高搜索的效率。搜索语法主要包括通配符搜索语法、精确搜索语法、逻辑搜索语法、以及高级搜索语法。
1 通配符搜索语法
通配符, 作为一种用于模糊搜索的特殊语句, 主要有星号 (*) 、问号 (?) 、百分号 (%) 等, 用以代替一个或多个真正的字符。谷歌支持的通配符是*, 属于“full-w ordw ildcard” (全词通配符) , 可以代替一个或多个英文单词、中文字词, 以及多个字符, 能多个*一起使用, 但是谷歌不支持?和%。国外的一些搜索引擎如N orthernlight、yahoo支持通配符*, aolsearch、inktom i等支持通配符?, N orthernlight还支持通配符%, 不过这些通配符不同于谷歌支持的“全词通配符”, 而属于“partial-w ordw ildcard” (词间通配符) , 只能代替单词中的一个或几个字母, 而非整个单词。国内的中文搜索引擎, 如百度、搜狗等是不支持通配符搜索语法。
2 精确搜索语法
精确搜索, 又称为强制搜索, 主要有加号 (+) 、双引号 (“”) 、书名号 (《》) 等几种。
1) 加号 (+) , 强制停用词 (stopw ord) 搜索, 表达式为+A, 即检索的文本处理过程中, 遇到+后面的关键词A, 就要立即停止, 由此减少索引量, 提高检索效率。当前支持+停用词搜索语法的主要是google, 百度等国内搜索并不支持。
2) 双引号 (“”) , 强制关键词的精确匹配搜索, 表达式为“A”, 无中英文状态的要求, 使用该语法的关键词, 是被视作一个整体来搜索, 不再进行拆分, 对于一个完成的句子或特定短语比较适合。作为一种基本搜索语法, 被大多数搜索引擎所支持。
3) 书名号 (《》) , 强制图书、报刊、音乐、影视等名称的精确匹配搜索, 表达式为《A》, 谷歌、百度、360、有道等对此支持, 而必应、雅虎、搜狗、搜搜并不支持。
3 逻辑搜索语法
逻辑搜索就是在检索两个或以上的关键词时, 需要用到布尔逻辑运算。具体语法主要有“逻辑与”、“逻辑或”、“逻辑非”, 分别表示A N D、O R、N O。
1) “逻辑与”, 表示要同时包含两个或以上的关键词, 操作符有空格、加号 (+) 、and号 (&) 等几种, 表达式分别是A B、A+B、A&B, 多数搜索引擎是将空格作为“逻辑与”的操作符, 而谷歌支持空格和加号 (+) , 百度支持空格和and号 (&) 。
2) “逻辑或”, 表示搜索指定关键词中的至少一个, 操作符有大写O R、分隔符 (|) , 表达式分别为A&B, A|B。谷歌和必应支持上述两个操作符, 并且O R必须是大写。百度不支持O R, 但支持分隔符 (|) , 需要注意的是分隔符 (|) 的前后必须要有空格与关键词分开。国内的其他搜索引擎暂不支持逻辑或的检索。
3) “逻辑非”, 表示排除某一个指定关键词的搜索, 操作符是减号 (-) , 表达式为A╞B。需要注意的是在搜索引擎中为避免减号 (-) 被当做连字符处理, 所以前一个关键词与减号 (-) 之间必须要有空格, 但减号 (-) 后不能有空格。国内外各大搜索引擎基本上都支持该语法。
4 高级搜索语法
高级搜索语法, 是各个搜索引擎设定某些特定的字段语法来对关键词的位置、类型、范围、链接进行限定, 从而更有效的提高检索的准确度和可靠性。常用的高级搜索语法如下:
1) Filetype:专业文档搜索语法, 限定要搜索的文件类型, 表达式为“A filetype:C”, 表示搜索包含关键词A的所有文档类型为C的文件, 若A缺省, 则表示搜索全部文档类型为C的文件。文档的类型有xls、doc、ppt、pdf、xm l等, 甚至可以设定为all, 即全类型。这种语法基本上被各大搜索引擎支持。
2) Site:限定站点搜索语法, 对关键词的搜索仅局限于某一个网站内, 表达式为“A Site:W”, 表示仅在网站W内搜索关键词A, 如A缺省, 则表示对网站W的所有网页进行检索。需要注意的是, W是不含http://的网站域名, 且域名前无空格。这种语法也被多数搜索引擎支持。
3) Intitle:限定网页标题搜索语法, 对关键词的搜索仅局限于网页的主题范围内, 表达式为“Intitle:A”, 表示搜索所有主题中含有关键词A的网页。需注意的是A的前面不能有空格。
4) Inurl:限定url链接搜索语法, 对关键词的搜索进行了网页url链接的限制, 表达式为“A Inurl:B”, 代表在所有url链接含关键词B的页面里搜索关键词A。如果A缺省, 就表示, 搜索所有url链接中包含关键词B的页面。这一语法被谷歌和百度所支持。
5) Link:链接网站搜索语法, 搜索的是与某一url做了链接的网站, 表达式为“Link:U”, U为关键词, 也是一个url地址。谷歌对该语法支持, 百度等其他多数搜索引擎并不支持。
6) Info:网站信息搜索语法, 其关键词是一个网站域名, 搜索的是关键词网站相关的信息, 表达式为“Info:W”, 代表搜索网站W的相关信息。谷歌和百度等多数搜索引擎支持该语法。
只要熟练掌握了以上常用的搜索语法, 再根据各个搜索引擎的自身特点, 并结合关键词的优化, 就能够对所需信息进行快速有效的搜索。
参考文献
[1]周维京.浅谈搜索引擎使用技巧[J].计算机光盘软件与应用, 2011.
[2]刘汝建.大学生搜索引擎搜索语法使用调查与分析[J].图书馆学刊, 2011.
A. adaptedB. admired
C. adoptedD. admitted.
7. Generally, to a university in the USA, foreign students need to prove their strong ability in using English.
A. admittingB. admitted
C. to be admittedD. being admitted
8. It is the protection for the living trees that really matters, how many trees are planted each year.
A. other thanB. or rather
C. rather thanD. more than
9. —Frank, Ive learned about your plan. May I make some suggestions?
— .
A. Just for funB. Go right ahead
C. With pleasureD. Take it easy
10. —Hi, Peter, how are you?
—Sorry, I am Jack. You me twin brother and me.
A. would mix upB. mixed up
学习C语言不是一朝一夕的事情,但也不需要花费十年时间才能精通。如何以最小的代价学习并精通C语言是本文的主题。请注意,即使是“最小的代价”,也绝不是什么捷径,而是以最短的时间取得最多的收获,同时也意味着你需要经历艰苦的过程。
一、要读就读好书,否则不如不读
所有初学者面临的第一个问题便是:如何选择教材。好的开始是成功的一半,选择一本优秀的教材是事半功倍的关键因素。不幸的是,学校通常会帮你指定一本很差劲的C语言课本;而幸运的是,你还可以再次选择。
大名鼎鼎的谭浩强教授出了一本《C语言程序设计》,据说发行量有超过400万,据我所知,很多学校都会推荐这本书作为C语言课本。虽然本人的名字(谭浩宇)跟教授仅仅一字之差,但我是无比坚定地黑他这本书的。这本书不是写给计算机专业的学生的,而是给那些需要考计算机等级考试的其它专业学生看的。这本书的主要缺点是:例子程序非常不专业,不能教给你程序设计应该掌握的思考方式;程序风格相当地不好,会让你养成乱写代码的恶习;错误太多,曾经有人指出过这本书的上百个错误,其中不乏关键的概念性错误。好了,这本书我也不想说太多了,有兴趣大家可以百度一下:)
Kernighan和Ritchie的《The C Programming Language》(中译名《C程序设计语言》)堪称经典中的经典,不过旧版的很多内容都已过时,和现在的标准C语言相去甚远,大家一定要看最新的版本,否则不如不看。另外,即使是最经典最权威的书,也没有办法面面俱到,所以手边常备一本《C语言参考手册》是十分必要的。《C语言参考手册》就是《C Reference Manual》,是C语言标准的详细描述,包括绝大多数C标准库函数的细节,算得上是最好的标准C语言的工具书。顺便提一句,最新的《C程序设计语言》是根据C89标准修订的,而《C语言参考手册》描述的是C99标准,二者可能会有些出入,建议按照C99标准学习。还有一本《C和指针》,写得也是相当地不错,英文名是《Pointers on C》,特别地强调指针的重要性,算是本书的一个特点吧。不过这本书并不十分适合初学者,如果你曾经学过C语言,有那么一些C语言的基础但又不是很扎实,那么你可以尝试一下这本书。我相信,只要你理解了指针,C语言便不再神秘。
如果你已经啃完了一本C语言教材,想要更进一步,那么有两本书你一定要看。首先是《C Traps and Pitfalls》(中译名《C陷井与缺陷》),很薄的一本小册子,内容非常非常地有趣。要注意一点,这本书是二十多年前写成的,里面提到的很多C语言的缺陷都已被改进,不过能够了解一些历史也不是什么坏事。然后你可以挑战一下《Expert C Programming》(中译名《C专家编程》),书如其名,这本书颇具难度,一旦你仔细读完并能透彻理解,你便可以放心大胆地在简历上写“精通C语言”了。
切记一个原则,不要读自己目前还看不懂的书,那是浪费生命。如果你看不懂,那你一定是缺失了某些必需基础知识。此时,你要仔细分析自己需要补充哪些内容,然后再去书店寻找讲述的这些内容的书籍。把基础知识补充完毕再回头来学习,才会真正的事半功倍。
二、Unix/Linux还是Windows,这是个很大的问题
不同的编程环境会造就出不同思维的程序员。Windows的程序员大多依赖集成开发环境,比如Visual Studio,而Unix程序员更加钟爱Makefile与控制台。显而易见,集成开发环境更容易上手,在Windows上学习C语言,只需要会按几个基本的Visutal C++工具栏按钮就可以开始写Hello, World!了,而在Unix下,你需要一些控制台操作的基本知识。有人也许认为Unix的环境更简洁,但习惯的力量是很大的,大家都很熟悉Windows的基本操作,而为了学习C语言去专门装一个Unix系统,似乎有点不划算。
对于一个只懂得Windows基本操作、连DOS是什么都不知道的新手而言,尽快做一些有趣而有意义的事情才是最重要的。用C语言写一个小程序远比学习ls、cat等命令有趣,况且我们要专注于C语言本身,就不得不暂时忽略一些东西,比如编译链接的过程、Makefile的写法等等等等。
所以我建议初学者应该以Visual C++ 6.0(不是VisualC++.NET)或者Dev C++作为主要的学习环境,而且千万不要在IDE的使用技巧上过多纠缠,因为今后你一定要转向Unix环境的。Visual C++ 6.0使用很方便,调试也很直观,但其默认的编译器对C标准的支持并不好,而Dev C++使用gcc编译器,对C99的标准都支持良好。使用顺带提一下,很多大学的C语言课程还在使用Turbo C 2.0作为实验环境,这是相当不可取的,原因其一是TC 2.0对C标准几乎没有支持,其二是TC 2.0编译得到的程序是16位的,这对今后理解32位的程序会造成极大的困扰(当然,用djgpp之类的东西可以使TC 2.0编译出32位程序,不过那过于复杂了)。
等你学完一本C语言的教材,你一定要转向Unix平台继续学习,几乎所有的C语言高级教程都是基于Unix平台的(比如《C专家编程》)。转变的过程是痛苦的,你需要面对的是各种纷繁复杂的命令,完全不同于Windows平台的思考方式,但是这种痛苦是值得的。Unix与C是共生的,Unix的思考方式和习惯更加符合C语言的思考方式和习惯。在Unix下,你可以找到无数优秀的源代码供你尽情阅读,你可以方便地查看某个库函数的联机手册,还可以看到最优秀的代码风格
归结起来就是一句话:初学C语言,建议使用Windows系统和集成开发环境,在准备向“高手”方向努力时,请先转向Unix平台。
三、万事俱备,你就是东风
书已选定,环境配置完成,正所谓万事俱备,只欠你自己的努力了。请从书的前言开始,仔细地阅读手头的教材,很多人看书喜欢直接从第一章开始看,这是错误的做法。前言是作者对整本书的大体介绍,作者一般会告诉你需要什么基础才能够顺利阅读本书,这可以帮助你检验自己的基础知识是否已经具备。看完前言,还要浏览一下目录,了解一下书的整体结构,顺便给自己安排一下学习计划。
学习C语言,必需注意每一个细节,书上的例子代码一定要自己亲自敲一遍,编译执行输出都跟书上说的一致才能算是学完了一个例子,如果不一致,就要仔细找原因。出了书本上有的例子,自己还要“创造”一些例子,比如学习运算符优先级的时候,可以写几个相同的表达式,在不同的位置加上括号,看看有哪些不同的行为,比如*p++和(*p)++,又比如a = b == c、(a = b)== c和a =(b == c)等等。自己抄的书上的例子以及改造之后的例子,还有自己“创造”的例子,都应该仔细地归类保存,并且要在源代码中写上简短的注释,阐述这个例子的意图。
例子之后就是习题了,我建议初学者把所有的习题都独立做一遍,然后对照答案的代码,看看自己的代码有那些不足,再试着修改自己的代码。很多人不重视习题,这是极大的错误,因为作者通常会在习题中说明一些重要的道理,而不是单纯地检验前面的知识。
也许你认为这样学习太慢,其实不然。学得细致就不用走回头路,等你学到后面才发现自己前面没搞清楚,那才是真的得不偿失。一般说来,整本书读完,你应该完成数千行乃至上万行的代码,无论是原封不动照抄书上的,还是自己心血来潮写就的,都是今后继续学习的一笔财富。以我自己举例,阅读《Windows核心编程》时(我只阅读了3/4的内容),除了抄书上的代码,还自己写了很多例子,一共有5574行(用unix下的wc工具统计),时隔多日,我早已记不清Windows的系统编程了,但只要花几分钟翻出以前的代码看看,便会重新了然于胸。所谓好记性不如烂笔头,就是这个道理。
仔细读书、认真抄写源代码、独立完成习题外加更进一步的实验,最后将所有的代码留下,成为自己的经验和财富,绝对的辛苦,也绝对的事半功倍。当然,这种方式只适合学习需要精通的技术,如果不是学习C语言,你还要具体情况具体分析。