goo blog サービス終了のお知らせ 

gooブログはじめました!

写真付きで日記や趣味を書くならgooブログ

编程辅导

2019-07-25 16:44:11 | 日記
留学生们怎么去训练自己的编程思路?

编程,程序猿的入门基础,想要做好一个程序员就要懂得编程这个相信大家都知道的。那个怎么去学好编程呢?洋蜜蜂可以给大家提供编程辅导,给大家仔细分析这个问题。

首先要解决一个问题,学习编程是学习啥?是纯学习语法吗?

留学府告诉你,不是的,是要学习计算思维,编程思路。

何为计算思维:



计算思维(Computational Thinking)概念的提出是计算机学科发展的自然产物。



第一次明确使用这一概念的是美国卡内基·梅隆大学周以真(Jeannette M. Wing)教授。



计算思维是运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为;



计算思维最根本的内容,即其本质是抽象和自动化。



何为编程思路,望文生义,思路,思考的道路,方向也。就是说,从哪里下手,从哪里着手解决问题。

其实就是计算思维的具体体现,用语法来表达解决问题的方法、算法。

没有人天生会编程,计算机科学家总结了很多解决问题的方法(也就是算法),现在学习编程,不是

从头自己发明算法,不是重新造轮子,站在巨人的肩膀上,学习计算机科学家总结出来的解决方法,利用

这些成熟的算法,组合和微创新来解决自己的问题。



编程思路是训练出来的(自我训练或者跟着别人学习)。



黄哥python培训,黄哥提醒大家解决问题时,要将任务切分,大问题化解为小问题,其中有的小问题,已经有成熟的解决方案,直接拿来用,

剩下不会求解的小问题,那么就集中解决它。



训练就是要学习成熟的解决问题的方法:if 语句用来做分支判断,循环用来解决反复运算的问题。

穷举法、递推、递归、排序、回溯等等(如果需要当专业程序员,需要学习数据结构和算法,设计模式等等,需要学的东西很多很多。但首先要解决的一个问题是自己能写代码解决一般问题。)

训练函数抽象,类抽象解决问题。



如对有序数组,查找特定数值,没有经过训练,初学者,直接用循环遍历。

如果经过二分法算法的训练,下次碰到这样的问题,就用二分法求解。



做习题,要像开发项目的流程一样(需求->需求分析->设计->编码->测试->交付等),

拿到一个习题,还没有进行分析,就匆匆忙忙敲代码,这个学习方法,是不好的学习方法。

先要分析清楚题目(所谓的需求分析,何为需求分析,请自己搜索),再设计,用那种数据类型(数据结构)

来组织或保存数据,用何种算法来计算效率最高,用面向过程,还是面向对象的编程范式,还是用函数式编程等等。

设计后,再编写代码,最后写测试。(也可以采用软件开发过程中的应用方法,测试驱动开发等)

很多基础的东西,对于程序员来说,认为是顺理成章的事,但对于初学者有一个习惯的过程。



1、有超级小白学员问黄哥,计数循环为何要从1起。当时感觉很讶异,为啥有这样的问题,

这就是上面说的对于程序员来说,认为是顺理成章的事,但对于初学者有一个习惯的过程。

计数循环从1起是为了方便,大家从儿时数数,扳手指也是从1开始啊。

如果从负100,开始计数,不是不可以,不方便啊。



2、对于这样的问题。

python list中放二个变量,有初学者也不理解和习惯。

list 这个数据类型(或者说数据结构)中,可以放python任意对象。

python 中变量是对象的引用,当然也可以放变量。

computer = "剪刀"

people = "石头"

guess_lst = [computer, people] 相当于 guess_lst = ["剪刀", "石头"]



3、看这个程序员认为理所当然的事情。



4、多敲代码,多训练,才能找到感觉。

不敲代码,不知道会犯变量名前后敲错了。

不敲代码,不知道会犯缩进错误。

不敲代码,不知道如何看python报错信息快速排除错误。



总而言之,编程不是天生就会的,那些高手也不是天生的,而是经过后期训练出来的。积累再积累,实践再实践。那么离成功也是一步之遥!如果各位留学生在编程这块需要补习的话可以直接加微信(yuff996),洋蜜蜂online tutor时刻为你准备!

GPA辅导

2019-07-25 16:05:57 | 日記
GPA是什么?很多刚出国留学的留学生们都没有深度了解GPA,也不知道有什么作用,甚至很多人都不重视GPA。洋蜜蜂在这里提醒下大家,GPA是申请国外大学的唯一指标,也涉及到以后的读研,找工作,申请奖学金等,所以是非常重要的一个东西。现在留学府就给大家深度讲解下什么是GPA以及如何进行GPA辅导



  GPA是什么?

  GPA全称Grade Point Average,俗称绩点,是由学生提交长时间(3到4年)的成绩单进行加权计算得来。GPA是留学生们的紧箍咒,是申请美国学校必备的材料之一。因此,GPA对于在美国读高中或大学的留学生们的重要性显而易见。

  

  GPA的计算方法

  GPA的具体计算方法每个学校不尽相同,大致上,成绩为A时记作4分,B记做3分,C为2分,D为1分,E(不及格)则为0分。根据不同计算方法,A-一般记做3.6-3.8分,B+则会被记做3.2-3.4分,以此类推。在记录每科的成绩之后,根据学分加权平均得出GPA。如当GPA为3.4时,则表示平均成绩基本在85分以上,获得这个分数的学生已是非常不错了。

  与中国教育通过期末考试一锤定音的计分方法不同,GPA的评估源自数年的连贯考核,这就要求学生在考试和随堂测验取得高分之外,还要保持出勤率、长期优异的课堂表现和按时递交作业与学习报告。绩点的上涨绝非一朝一夕之功,更不是一次大考就可扭转的。

  GPA的意义

  GPA高,益处多!

  大部分学校的奖学金和荣誉称号对GPA都有不同程度的门槛要求,没有3.45GPA的国际学生申请奖学金是基本没有希望的。而毕业时,达到一定GPA的学生才有被授予荣誉毕业生称号的可能。还有些荣誉奖项意义重大,比如著名的“phi beta kappa society” (美国优等生联谊会),会员包括17位美国总统在内的各类社会名流,该社团每年会从全美顶尖大学招聘优秀学生,GPA达3.75以上才有机会入选。一旦通过选拔加入这个社团,已经证明了自己出色的能力,一脚迈进了成功的大门。

  

  GPA低,没机会!

  进入美国大学以后,如需报名参加学术团体、项目研究或是申请助教岗位,学校对GPA也有相应限制。麻省大学波士顿校区的C同学长期辅导美国同学学习中文,因此中文系主任非常想聘请C同学担任助教。可惜C同学由于第一学年GPA不足3.0,不满足学校聘请助教的要求,因此即使中文系主任极力推荐,C同学也只能无奈错失良机。除此之外,减轻学生经济负担的奖助学金、助学贷款等都对GPA有不同程度的要求。

  GPA太低,危险!

  在美国,国际学生的F1签证合法性与GPA直接挂钩。GPA过低学生在次年续签学生签证时,将面临被大使馆拒签的极大风险。而多数美国学校明确规定,本科GPA不足2.0、研究生不足3.0的学生会被勒令退学。在美国高中,通常GPA低于2.0的学生会进入“学术留校查看”,半年的考察期后未见提高即刻将被劝退。2010年被美国一所学校录取的Z同学就经历了这样的波折。本科学习生物的Z同学在进入药学院攻读研究生时,因为专业转换和英语写作技巧匮乏,即使自己万分努力成绩依然不理想。由于GPA不满3分,Z同学被告知如果不能提高成绩将被劝退。万幸的是,经导师推荐Z同学转到生物系学习,回归本专业的Z同学虽然逃脱了失学的危险,但也要重读研一,浪费了不少时间和学费。GPA不达标就有可能被退学,这就是国外大学所谓“宽进严出”的机制。

  这也是很多家长宁愿让孩子在就读大学之前先进入预科项目做准备的原因。在国内通过托福考试并不意味着学术英语水平的达标,TOEFL90分左右直接升入美国大学的中国学生普遍反映第1个学期不敢修5门课,在修4门课的情况下每门达到80分也有挑战度。与其一边适应一边修学分拉低GPA,不如先认真巩固论文写作、演讲技巧等学术英语,适应与掌握美国文化和思维方式,做好准备后入学的国际学生认为每科得B以上会容易很多。

  GPA,升学就业敲门砖

  3.0以下的GPA基本让留学生与优秀大学失之交臂。根据官方公布的已录取学生数据,麻省大学阿姆赫斯特校区所录取本科学生的平均GPA达到3.73。可见,想要进入好的学校,没有过硬的GPA会非常艰难。除了升学,美国企业在招聘时,都要求申请人填写上一个教育项目里取得的GPA,这在中国职场并不常见。美国企业习惯根据在校成绩来衡量学生的学习态度和专业技能。由此看来,GPA分数的高低对学生的未来发展至关重要。

  一些留学生为了获得更高的GPA费尽心思,甚至放弃一些不易拿A的课程,转而选修相对简单的科目,此举有投机取巧之嫌。要知道在申请美国大学时,所修课程的难度也是招生官要考查的因素之一。其实,一个近乎满分的GPA并不代表最高竞争力,GPA也只是众多参数中的一个。即使GPA不占优势的学生也可以通过其他方面给自己加分,如论文、社团活动、实习经历、竞赛证书、老师推荐信等等。不过对于每一个留学生来说,维持高GPA是留学成功的根本,对待GPA的心态是万万不能放松的。



如何去提高GPA

重点来了,看到这里,相信很多留学生们都关心如何去提高GPA呢。在这里就简单说下,要提高GPA就需要提高自己的成绩,所以各位留学生们可以把重心放在提高各科成绩上面。如果对知识不明白的话可以寻求洋蜜蜂online tutor来帮忙,洋蜜蜂提供的一对一在线辅导,专门针对留学生的各科目辅导,提升GPA首选!

Assignment 辅导

2019-07-25 15:33:21 | 日記
留学assignment来说,一般分为两种,一种是essay,另一种是report,大多数作业会要求以essay的要求来写,这篇文章主要介绍一下北美assignment的写作问题和注意事项,对于essay来说,格式上要求不是很严格,比较简单,往往包括引言,正文以及结论这三部分。下面洋蜜蜂就给大家简单辅导下assignment的一些写作问题总结。



英国assignment通常分为两种形式,一是essay,一是report。二者在形式上有所差别,但大体相同。一篇assignment上面会对essay还是report格式作出明确要求。 Essay的写作相对report要简单一些。通常只包括三个部分,Introduction, Main Body, Conclusion.


Introduction 包括topic的背景介绍和文章要解决的主要问题。一般占总字数的10%左右。Main Body是主体部分,占总字数80%左右。如果题目中作了具体要求,就根据题目提到的几个方面来逐一讨论就可以了。有的题目没有作具体要求,就根据自己的构思来写。但要求有逻辑性。Conclusion也是占10%,在这一段里把文章中的主要观点用一到两句话概括出来。


Essay 可以不写题目,不要把小标题加粗。Reference的写作是两种形式都要涉及的,我放在最后来详细说。 Report: 它的写法大体上和essay差不多,但要求要严格一些。第一:标题页:包括标题和executive summary. 在Executive summary中是对文章的摘要。这个大家都知道怎么写我就不多说了。这两个东西一般是单独占一页第二:主体部分。Report的主体部分,前三个和essay差不多,只是在conclusion后还有一部分就是recommendations.是对提出的问题的建议。如果题目中没有单独要求,一般就按照这几部分来写,但有的题目会作出规定。请按题目要求写哪几部分来写。


下面来说reference 是老师最看重的,所以请一定注意。


1、不管前面的主体部分最后一页剩多少空格,reference都要另起一页写。2、每条reference之间要空一行。如果一条reference一排写不完,那么下面的几排提行时要和第一排三格。基本格式请参照我发过来的referencing 里面的要求。3、References 的排列要按字母顺序排列。可以用网址的reference放在最后。4、引用分为直接引用和间接引用。直接引用就是用了文章或书中的原话。请在出现的作者后面以(年代,页码)的形式标注。没有出现作者就在引用的句子后面用(作者名,年代,页码)的形式标注。间接引用就是参照发文章或书中的观点,引用方法与直接引用形式一样,只是不需要标注页码。总之referencesq绝对不能出现编造的情况,一定要真实。



reference有2种,一种是in-text reference 也就是在文章里的reference,一种是在文章最后出现的reference, 也就是reference list。写一篇论文,2种reference都要出现,也就是说做完in-text reference,还要做最后的reference list。



以上是洋蜜蜂online tutor给各位留学生带来的assignment辅导,其中对essay还有report进行了简单的比较。如果各位留学生在这方面还有不懂得地方需要补习的可以联系WeChat:yuff996

金融辅导

2019-07-25 15:33:21 | 日記
现如今将金融学专业作为首选的留学生人数越来越多,许多人都认为进入金融行业,就相当于进入了高端行业。在各个行业中,金融学专业会是绝对的老大,选择这个专业在学校里也会特别有优越感。但其实有些金融学生毕业之后就会发现,其实金融行业的就业渠道较窄,大多数只能选择银行、保险和证券,而且金融行业的门槛会比较高。下面就让我们来为大家介绍一下选择金融学专业的就业方向概述。

金融行业最好的选择是能进入银行工作,但是银行不是说进就能进的,近期经济下滑,银行的工作人员想要离职很容易,但想要进入却是很困难,银行的用人标准很高,而且竞争压力大。银行一般更趋向录取有工作经验的人,这样的人一进来就能给银行创造效益,其实不止银行是这样,各个行业都会有这种想法,他们都更愿意找一些有经验的人员,能够马上适应工作的人。并且每个公司的人员流动比较大,每一批毕业生留下来的比较少。现在银行也并不像大家所想象那样高收入,大多数人还是会选择离职去找一份更高收入的工作。

金融行业不止要求有高学历,最好你手上也能有几本体现自己能力的证书。想CFA、FRM这类高含金量的证书,如果能拿到这类证书,你就不需要再为工作发愁,很多金融行业都会争相邀请你。拥有CFA证书的大多数人通常都是就职于投资公司、互惠基金公司、证券公司、投资银行等,包括各大银行,金融公司,证券公司都会需要这类人才。所以想要进入金融行业,拥有好的职位,不光要高学历,含金量高的证书也是必须得。

金融业监督管理机构

金融市场管理机构是指专门对金融市场行使管理职能的机构。中国的金融市场管理机构主要是以中国人民银行、中国证券监督管理委员会、中国银行保险监督管理委员会和国家外汇管理局为主体的“一行二会一局”的金融监管体系。进入行业监督管理部门做金融官员,对于金融专业学生生而言应是首选。

其一,中国金融学立足于宏观经济学,基于金融市场宏观调控,专业应用较易入手,政策把握比较到位;其二,在行业管理部门做上三五年再入行到实践机构,至少给个中层以上的职位。

商业银行

中国的商业银行主要包括:6家大型国有商业银行(工、农、中、建、交、邮储)、12家全国性股份制商业银行、其余还有134家城市商业银行和约302家农村商业银行。

除收入相对较高及工作稳定外,银行有比较完善的就业前景,从入职培训、定期考核、列入晋升名单、职位晋升等方面都较为公平,体系较为完善,在职位晋升上,银行还可以横向晋级,比如从柜员/客户经理岗可以转到大堂经理岗位,所以对于员工的培养较为全面。

此外,银行每年都会在春季和秋季组织校园招聘,专门针对应届生进行招聘,主要目的在于为广大应届生提供一个更好的岗位和提供更多的就业机会,这也是每年很多应届生执着于报考银行的原因。

政策性银行

我国有国家开发银行、中国进出口银行、中国农业发展银行三大政策性银行,均直属国务院领导。

其工作性质类似公务员,金融业务并不突出,是靠政策吃饭的地方,对于个人职业生涯的益处相对于行业监管部门、商业银行来说还是较弱的,不过目前这类单位的工资水平待遇等比商业银行好,而这也成为吸引毕业生眼球的亮点所在。

高风险的金融公司

高风险的金融公司主要指:证券公司(含基金管理公司)、信托投资公司、金融控股集团等。证券、信托、基金这三家均是靠风险管理吃饭的,存在行业系统风险因素,但一旺俱旺,赚钱相对较易,短期回报较高(风险亦大),且按真正的企业管理机制运行。如果想在专业方面有所发展,有所建树,在这一行业做是极佳选择,很多基金经理、投资银行经理人员都年薪过百万。总体来看,是付出与收入成正比的一个选择

资产管理公司、金融租赁、担保公司

资产公司:一类是进行正常资产管理业务的资产管理公司,没有金融机构许可证;另一类是专门处理金融机构不良资产的金融资产管理公司,持有银行业监督委员会颁发的金融机构许可证。金融租赁公司:金融租赁公司是指经中国银行业监督管理委员会批准,以经营融资租赁业务为主的非银行金融机构。

担保公司:个人或企业在向银行借款的时候,银行为了降低风险,不直接放款给个人,而是要求借款人找到第三方(担保公司或资质好的个人)为其做担保。担保公司会根据银行的要求,让借款人出具相关的资质证明进行审核,之后将审核好的资料交到银行,银行复核后放款,担保公司收取相应的服务费用。金融租赁、担保,行业发展迅速,可以考虑进入,当然,如果有在银行、证券的从业经历,进入到这个行业中应该更有作为。

保险公司、保险经纪公司

保险公司可以参照对商业银行的分析,做上数年,有保险营销、风险管理经验之后,在国内股份制保险机构迅速成长、外资保险机构进入的契机下,还是大有可为的。保险精算专业是非常吃香的。国内保险公司(人寿、平安、太平洋、中国太平)都是就业热门单位。至于工作职责,主要是从事精算及风控业务,属于公司的高薪职位。

上市(准上市)股份公司

上市(准上市)股份公司部门主要是证券部、财务部、证券事务代表、董事会秘书处等。在这类公司工作会有较大的个人发展空间和较高收入,如果全程做过IPO(首次公开募股)筹备工作,对未来的职业生涯将更加有益。

听完了我们的介绍,大家是不是会对金融人的就业方向有了更清晰的轮廓呢,不过也不用担心,其实只要做足了充分的准备,在这个行业上有所拔尖有所优势,不论形势再怎么变化,都不会担心被这个时代所淘汰哦~如果在金融专业上有课程疑惑、需要寻求金融辅导的同学,也可以主动去寻找专业老师们的帮助,寻求最专业的Finance辅导,这样才能在学业上有所突破呢。我们洋蜜蜂在线教育平台是北美首家在线全中文辅导平台,不受时间还有地域的限制。集合全球各地的高校tutor,帮助留学生降低教育成本,让留学生在线辅导更方便!

C++编程语言

2019-07-25 15:33:20 | 日記
C++是一门比较复杂的课程,很多留学生学习起来比较吃力,这也是一门枯燥的课程,但是还有很多的留学生报这门课,虽然难,但是学好的话对以后出来找工作有很大的帮助。下面洋蜜蜂的online tutor就给各位留学生在线辅导下关于C++辅导的一些基础。



(1)union

联合和struct是几乎一样的语法,所不同的就是内存结构上,union的各个元素共享一个空间,union的总体空间以元素的最空间为准。一次只有一个元素有效(最后一个被赋值的元素有效),其他的元素如果在没有被赋值的情况下的值,是一个不确定的值。

union就像是一个对于一段内存空间,向外可以表现出各种类型。

union test

{

int a;

int b;

char c;

short d;

float e;

char * f;

}test1;

由于不管哪种数据在内存空间中都是以0101来存储的,所以这使得,union成为可能。也就是说,不同的数据类型从同一个内存空间读出来的是不通的(解码的规则不同)。

事实上,union用于表达一个事物属性有可能的不同数据类型,所以,同一时刻只应该有一个元素被使用,并且该元素是最近一次被赋值的。

但是其它的元素,在没有被赋值的情况下,也可以读出数据来,但是这个时候由于该内存空间中的0101代码不是为该类数据类型个设定的(但有可能是同类型,或者相容类型)。所以用户读出来的结果是不确定了。

兼容的数据类型之间(int,char,short)这种转换是可以的,但是int和float之间却是不能访问的。

test1.a=97;

则test1.b==97,test1.c=='a' test1=97.因为他们是兼容的。

但是这个时候.

test1.e==0.0000,说明它与int,char这样的不兼容。

后来再输出test1.a发现等于97.

所以对于union改变该内存空间数据的只有赋值,使用哪种元素读(不管能不能正确读出),只是对该内存空间的不同解释罢了,float就无法解释int的内存空间,所以返回的结果是0.000.但是,内存空间并不会因为这次的读而发生改变。

注意,这个结构体的最后一项,也就是指向字符的指针,如果使用%s,基本时出现段错误,因为%s输出的时候,从该地址开始一直到\0结束。



union的一个应用就是拆分数据的字节。一个int内省在C++中有四个字节,我们可以通过如下方式分别得到这是个字节

union test

{

int a;

char b[4];

}testT;

testT.a=0x01202343;

printf("%x,%x,%x,%x",testT.b[0],testT.b[1],testT.b[2],testT[3]);

输出结果为43,23,20,01。分别输出来了,但是顺序有点奇怪,这是为什么呢?

这就是,很多系统存储数据的时候的高地位问题,经常是数的低位字节放在低地址,高位字节放在高位地址。通常我们表达地址时,是从左到右,地址增高(从低地址到高地址)。而我们平时看number的时候是从左到右,字节从高到低,所以恰好相反。这就是我们要注意的。



(2)无符号整数和有符号整数的转换

整数分为无符号和有符号,通常无符号整数用户作为序号,所以也就没有正负的概念,也就可以省出1各位来存放更大的数。但是,同样是我们前面的将的,两者之间的转换并不牵涉内存空间上的0101代码出现变动,只是程序、系统将该部分内存空间怎么读取而已。

int a=-10;

unsigned int b=-10;

的内存空间上的内容是一样的,为什么呢?不管是那个赋值语句,-10这个常量的内容是确定好的,分别拷贝在a和b空间中,所不同的是,系统读取a时认为第一个位是代码符号位;而读取b是,第一个位仍然是数。



所以,当某个变量已经是一个无符号整数的时候,不要用有符号整数的相关语句来操作它(尤其它负数),基本南辕北辙。这里就有一个陷阱题。



int a=6;

unsigned int b=-20;

print("%d",a+b);

print("%d",(a+b)>6);

分别输出的是-14和1.

有人会说这矛盾,但是这只是你写错了。因为a+b已经变成了unsigned int(想大转换原理)。所以第一个输出应该用%u 来输出。(a+b)>6判断的时候,由于我们系统已经制定a+b是一个unsigned int,所以它自然是一个很大的所谓的正数。

其实我们要注意的是,a+b,本来就很有争议,因为运算器,接收a和b,他们虽然会被转换成无符号数,但是,仍然使用那种相加(以有符号模式相加,这也是使用补码的格式保存负数的原因)。所以计算出来的结果使用%d输出自然是-14,你这种输出,更使用%d输出字符元素是一回事,a+b这个变量存储的是一个无符号整数,系统比较它和6时是把它当成一个很大的正数来比较的。



使用补码保存负数,让计算机中的计算器的加法和减法统一,利于设计。对于CPU的运算器(加减法)来说,它只知道接收两个寄存器上的数据(对它来说,没有正负之分),然后进行最简单的二进制加法。结果就是正确的结果。所以a+b在运算器中的运算结果是一致的,不会因为你是无符号还是有符号,关键在于如何去解码运算器的结果。







(3)printf输出格式控制

1.转换说明符

%a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99)

%c 字符

%d 有符号十进制整数

%f 浮点数(包括float和doulbe)

%e(%E) 浮点数指数输出[e-(E-)记数法]

%g(%G) 浮点数不显无意义的零"0"

%i 有符号十进制整数(与%d相同)

%u 无符号十进制整数

%o 八进制整数 e.g. 0123

%x(%X) 十六进制整数0f(0F) e.g. 0x1234

%p 指针

%s 字符串

%% "%"

2.标志

左对齐:"-" e.g. "%-20s"

右对齐:"+" e.g. "%+20s"

空格:若符号为正,则显示空格,负则显示"-" e.g. "% 6.2f"

#:对c,s,d,u类无影响;对o类,在输出时加前缀o;对x类,在输出时加前缀0x;

对e,g,f 类当结果有小数时才给出小数点。

3.格式字符串(格式)

[标志][输出最少宽度][.精度][长度]类型

"%-md" :左对齐,若m比实际少时,按实际输出。

"%m.ns":输出m位,取字符串(左起)n位,左补空格,当n>m or m省略时m=n

e.g. "%7.2s" 输入CHINA

  输出" CH"

"%m.nf":输出浮点数,m为宽度,n为小数点右边数位

e.g. "%3.1f" 输入3852.99

输出3853.0

长度:为h短整形量,l为长整形量

printf的格式控制的完整格式:

% - 0 m.n l或h 格式字符

下面对组成格式说明的各项加以说明:

①%:表示格式说明的起始符号,不可缺少。

②-:有-表示左对齐输出,如省略表示右对齐输出。

③0:有0表示指定空位填0,如省略表示指定空位不填。

④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。

⑤l或h:l对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。

---------------------------------------

格式字符

格式字符用以指定输出项的数据类型和输出格式。

①d格式:用来输出十进制整数。有以下几种用法:

%d:按整型数据的实际长度输出。

%md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。

%ld:输出长整型数据。

②o格式:以无符号八进制形式输出整数。对长整型可以用"%lo"格式输出。同样也可以指定字段宽度用“%mo”格式输出。

例:

main()

{ int a = -1;

printf("%d, %o", a, a);

}

运行结果:-1,177777

程序解析:-1在内存单元中(以补码形式存放)为(1111111111111111)2,转换为八进制数为(177777)8。

③x格式:以无符号十六进制形式输出整数。对长整型可以用"%lx"格式输出。同样也可以指定字段宽度用"%mx"格式输出。

④u格式:以无符号十进制形式输出整数。对长整型可以用"%lu"格式输出。同样也可以指定字段宽度用“%mu”格式输出。

⑤c格式:输出一个字符。

⑥s格式:用来输出一个串。有几中用法

%s:例如:printf("%s", "CHINA")输出"CHINA"字符串(不包括双引号)。

%ms:输出的字符串占m列,如字符串本身长度大于m,则突破获m的限制,将字符串全部输出。若串长小于m,则左补空格。

%-ms:如果串长小于m,则在m列范围内,字符串向左靠,右补空格。

%m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。

%-m.ns:其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果n>m,则自动取n值,即保证n个字符正常输出。

⑦f格式:用来输出实数(包括单、双精度),以小数形式输出。有以下几种用法:

%f:不指定宽度,整数部分全部输出并输出6位小数。

%m.nf:输出共占m列,其中有n位小数,如数值宽度小于m左端补空格。

%-m.nf:输出共占n列,其中有n位小数,如数值宽度小于m右端补空格。

⑧e格式:以指数形式输出实数。可用以下形式:

%e:数字部分(又称尾数)输出6位小数,指数部分占5位或4位。

%m.ne和%-m.ne:m、n和”-”字符含义与前相同。此处n指数据的数字部分的小数位数,m表示整个输出数据所占的宽度。

⑨g格式:自动选f格式或e格式中较短的一种输出,且不输出无意义的零。

---------------------------------------

关于printf函数的进一步说明:

如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示,如:

printf("%f%%", 1.0/3);

输出0.333333%。

---------------------------------------

对于单精度数,使用%f格式符输出时,仅前7位是有效数字,小数6位.

对于双精度数,使用%lf格式符输出时,前16位是有效数字,小数6位.

######################################拾遗 ########################################

由高手指点

对于m.n的格式还可以用如下方法表示(例)

char ch[20];

printf("%*.*s\n",m,n,ch);

前边的*定义的是总的宽度,后边的定义的是输出的个数。分别对应外面的参数m和n 。我想这种方法的好处是可以在语句之外对参数m和n赋值,从而控制输出格式。

--------------------------------------------------------------------------------

今天(06.6.9)又看到一种输出格式 %n 可以将所输出字符串的长度值赋绐一个变量, 见下例:

int slen;

printf("hello world%n", &slen);

执行后变量被赋值为11

C++作为世界上的运用最多的计算机语言,获得很多留学生的青睐,该语言支持数据封装和数据隐藏,支持继承和重用,支持多态性。其实学起来也不是很难,学好C++后去学习一些延续性的计算机语言就轻而易举了。洋蜜蜂-----北美留学生们的专业课程在线辅导平台。