c语言 哥德巴赫猜想(通用10篇)
c语言 哥德巴赫猜想 篇1
C语言验证哥德巴赫猜想(100以内)
#include “stdafx.h”
#include “stdio.h”
int ss(int i)
{
int j;
if(i <= 1)
return 0;
if(i == 2)
return 1;
for(j = 2;j < i;j++)
{
if(i % j == 0)
return 0;
else if(i!= j + 1)
continue;
else
return 1;
}
}
int main()
{
int i, j, k, flag1, flag2, n = 0;for(i = 6;i < 100;i += 2)
} {} return 0;for(k = 2;k <= i / 2;k++){} j = i-k;flag1 = ss(k);if(flag1){} flag2 = ss(j);if(flag2){} printf(“%3d=%3d+%3d,”, i, k, j);//输出结果 n++;if(n % 5 == 0)//每个数自动换一行 printf(“n”);//调用ss函数判断另一个数是否为素数 //如果都是素数//调用ss函数判断当前数是否为素数//循环判断是否为素数//如果等于返回//如果小于等于返回
c语言 哥德巴赫猜想 篇2
一、速度
《C大调前奏与赋格》中的前奏曲是一首神圣、美好的曲子, 若是弹得特别快, 就表达不出那种庄严神圣的感觉;若是弹得特别慢, 就会给人的感觉特别拖, 因此我们在弹这首曲子的时候速度要平稳, 要怀着一种虔诚的心态去演奏。同样, 在《C大调赋格》中也是如此, 从曲子的开头到结尾都在一个统一的拍子中, 基本上没有什么速度变化。
在巴赫的作品中我们很少看到速度记号, 他的作品在速度上是适中的, 不快也不慢, 但是这里的快慢是相对的。当然, 在平均律中也有一些曲子并不是从头到尾速度都是一成不变的, 例如《平均律钢琴曲集》第一册中的第二首《降E大调前奏曲》, 曲子的开头是快板, 中间是急板, 快结束的时候是慢板, 结尾又回到了快板, 但是还处在一个统一的拍子当中。
二、力度
《C大调前奏曲与赋格》中的前奏曲在演奏时, 左手与右手之间的分解和弦的衔接要流畅, 力度要平均, 要把它当做是一条流动的旋律线;右手的十六分音符也要控制住力度, 音与音之间, 不能有的音弹得很强, 有的音弹得很弱, 音乐力度变化以阶梯式为主;每小节之间的力度对比不能太大, 要注意细致的差别, 要想达到这一效果, 我们必须先慢速去练, 然后逐渐的加快速度。
巴洛克时期的钢琴是古钢琴, 由于这种钢琴的音色柔和力度变化很小, 不像现代钢琴的力度那么分明, 因此我们在弹奏巴赫的作品时, 不能用过多的力度触健, 但也不能很弱, 要有控制的去弹奏。更重要的是要注意细微的力度变化, 句子与句子之间可以做一些强弱的对比。巴赫作品的力度变化幅度较小, 基本上趋于平稳, 但这不排除某些段落里的强弱力度的变化。无论如何, 强弱分明的奏法绝不能用到所有的前奏曲与赋格曲上去。
三、声部
在《C大调前奏曲与赋格》的赋格中, 我们可以很轻易地发现这首曲子的主题是乐曲开始的第一句, 随着曲子的发展, 主题通过多次模仿出现在不同的声部中, 但是节奏型基本保持不变。主题每一次出现, 不可以都用一样的力度去弹奏, 在段落的刚开始如第1小节和第14小节, 主题的进入可以稍微的轻一点, 如果太大声会让人觉得很突兀, 然后随着主题的多次出现, 可以用从弱到强的力度安排, 当然也可以从强到弱, 这就得根据演奏者对于曲子的理解去自主安排。
巴赫的赋格中出现了很多纵向的对位和横向的声部交错, 因此我们在演奏他的作品时, 不能只看一个方向, 要纵横结合, 才能够把握住声部的线条, 而且每个声部都不是一个独立的个体, 各声部间都有着密切的联系。由于钢琴只能发出一种音色, 因此要想更好的弹奏巴赫的作品, 就必须通过触健力度的变化去演奏不同的声部。
四、触健
要想弹好巴赫的作品, 就必须与巴赫作品的风格一致。这套《C大调前奏曲与赋格》的前奏曲是相对缓慢且平稳的, 要弹出神圣平和的感觉, 显然非连奏是不合适的, 要用连奏去演奏。只有连奏才能弹出旋律的歌唱性和抒情性;而赋格则与前奏曲形成了对比, 这首赋格是稍快些的, 因此要用非连奏或手指断奏来模仿古钢琴上的清脆效果比较合适, 保持音色的圆润饱满, 这样才能获得古朴典雅的音响效果。
巴赫生活在巴洛克时期, 当时人们所弹奏的钢琴是古钢琴, 这是一种以拨弦方式发音的键盘乐器。古钢琴的音色十分的清脆、柔和, 键盘的反应力没有现代钢琴那么灵敏, 不能表现音量变化的过大张力, 即便在古钢琴上弹得是连奏, 发出的音色也是非连奏的。
五、装饰音
在巴洛克时期, 大键琴发出的声音很短促, 为了弥补这一缺陷, 音乐家们便使用颤音去延长发音。在巴赫的音乐中, 大部分的颤音都是从骨干音的上方邻音开始颤起, 且都是从正拍开始弹奏。
装饰音在巴洛克时期是音乐家们创作音乐极为重要的一部分, 也是巴洛克时期的一个重要特点。巴洛克时期的风格追求华丽辉煌、彰显气派, 这种风格也表现在建筑上, 这个时期的宫廷建筑墙壁上雕刻着精致的花纹, 大厅中的圆柱上也被雕饰所布满, 无不彰显着金碧辉煌。这样一种艺术风格对当时的音乐创作也产生了很大的影响, 音乐家们更多的去关注对旋律的雕刻, 运用了大量华丽多彩的装饰音, 使得旋律富有趣味, 更有层次感。装饰音在巴赫的作品中也极为重要。
六、结语
c语言 哥德巴赫猜想 篇3
有人认为,2012年国庆长假高速公路大堵车是因为人们争相占免费政策的便宜,这其实是误解。节假日高速公路堵车,之前就有,而并非免费后才有的景象;出现车流扎堆儿,肯定有受免费诱惑的,但更多源于信息不对称,公路管理方对此缺乏充分的高速车流信息预警。免费,不只是免通行费的问题,而是为了消除收费站这个关键的堵点,以免费放行减少时滞、促进顺畅。可是虽然免费了,收费站却还像收费时那样拦车发卡收卡,等于没有解决问题,还因为免费把车流引向高速,加剧了拥堵。
2.阅读下列材料,概括出内容要点。(不超过30字)
在我国城市大气污染的首要污染物PMIO(即可吸入颗粒物,粒径≤10微米)组成中,PM2.5(即可入肺颗粒物,粒径≤2.5微米)平均占到50%-80%。PM2.5主要来自日常发电、工业生产、汽车尾气排放等过程中经过燃烧而排放的残留物,如机动车尾气尘、燃煤尘、硫酸盐、餐饮油烟尘、建筑水泥尘、煤烟尘和硝酸盐等,通常含有重金属等有毒物质。PM2.5粒径更小,含有大量的有毒、有害物质,且寿命长、输送距离远,因而对人体健康和大气环境质量的影响更大,是导致黑肺和灰霾天的主要凶手。当吸入之后,PM2.5可能抵达细支气管壁,并干扰肺内的气体交换,引发包括哮喘、支气管炎和心血管病等方面的疾病。中国的华北、华东、华中全部属于全球PM2.5最高的地区之一。目前,日、美、印、欧盟等都已陆续将PM2.5纳入国标并进行强制性限制,我国的相关监治举措也已提上日程。
3.阅读下面的表和图,完成题目。
中学生对“垃圾分类”认知状况表
是否愿意参与垃圾分类是否了解垃圾分类方法
愿意不愿意很了解不很了解不了解
90.1%9.9%5%64.6%30.4%
“垃圾分类预计成效”示意图
(1)根据上表,概括中学生对 “垃圾分类” 认知的基本状况。要求不出现数字,不超过30个字。
(2)结合以上图、表,给学校拟写一条加强“垃圾分类”宣传教育的建议。
4.62岁的张景和是江苏徐州的环卫工人,其儿子儿媳在外地打工,孙女由他和老伴带着。上幼儿园的孙女放学早,他需要边工作边照看孙女。下面的照片是他在工作间隙抱孙女鼻吻的情景,被以《幸福》为题发到网上,引发了热议。
对这一问题,你的看法怎样?请结合照片内容写一段话,表达你的观点。(80字左右)
5.请欣赏下面的漫画,回答下面的问题。
①请简要描述画面的内容。(不超过55字)
②说说这幅画给我们的启示。(不超过30字)
6.电视剧《神探狄仁杰》中一句“元芳,此事你怎么看”,继“凡客体”、“淘宝体”等之后盛行于网络,被网友戏称为“元芳体”。对于这些网络语言,有人肯定,有人批评。请写一段话表明你的观点并陈述理由,至少使用一种修辞手法,不超过60字。
7.新闻点评就是用简约的文字对新闻进行评论。请点评下面这则新闻。
《江南Style》讲的是一个韩国“屌丝”的白日梦。其貌不扬的“鸟叔”幻想着各种幼稚的炫富行为,比如在阳光下的沙滩上,一位美女给他扇着风——其实他身处一个儿童公园,美女也是他想象出来的;装作是黑帮大佬蒸桑拿,结果文身男出现之后,他胆怯地挨着另一个男人;想要骑马,却只是在大街上装模作样地跳骑马舞……
全世界都爱死《江南Style》了,短短3个月,它在优酷网上的点击量已超过7亿次,创下了世界纪录。世界上的许多角落里都有人在跳“鸟叔”的招牌舞步,甚至连68岁的联合国秘书长潘基文也和“鸟叔”一起跳起了骑马舞。
8. 莫言首获诺贝尔文学奖后,国内出现了莫言热,作品被抢一空,修建故居,品牌开发……对此,请你写一段评论,表达你的观点。(不超过50字)
9.填入下面横线处的句子,与上下文衔接最恰当的一组是( )
幸福是什么? 一旦人的精神需要、情感诉求和心理期待无法获得充分满足和应有尊重,幸福的天平就会在失衡中倒向失望、叹息和迷茫、无助的另一端。
①惟其如此,幸福才会不经意间来敲门。
②它是实践付出和心理满 足的和谐一致,
③幸福固然包含着物质层面的拥有和满足,
④所以,幸福也可以狭义地理解为人的精神寄托、心灵安顿与人格实现。
⑤但更多指涉精神层面的感受,
⑥是包括健康、情感、财富和理想等生活要素间的一种和谐共振状态。
A.③⑥⑤④②① B.③⑤⑥②④① C.②⑥③⑤①④ D.②⑥①③⑤④
参考答案:
1.①公路管理方缺乏高速车流信息预警;②免费政策把车流引向高速,加剧了拥堵;③收费站拦车发卡收卡。
2.PM2.5的来源,特点及危害,在我国的状况和监治前景
3.(1)中学生普遍愿意参与垃圾分类,但大多数不了解垃圾分类方法。
(2)开展专题活动,了解分类方法,倡导减量减排,创建绿色校园。
4.体现了中国百姓最朴素、最本质的幸福,幸福和物质条件有时不一定成正比;同时也让我们深切地感受到所谓的幸福背后的辛酸,社会应该关注并改善贫困民众的生活状况。
5.(1)图的左边站着高矮胖瘦不同的四位女子,经过美容院的整容后就变成了右边的形体、动作一致的四个时髦的女子。
(2)人们对美的认识不应该是统一的标准,而应该是千姿百态的。
人们对美的想法不应该是相同的,而应该是不一的。
人们对美的追求不应该是一致的,而应该是多彩的。
6.示例一:值得肯定。网络语言大多特色鲜明,诙谐幽默,是排遣现代人莫名压抑和忙碌辛劳的一副良方。
示例二:应该批评。被疯狂传播的网络语言,如潮水般涌向各种媒体,缺乏内涵的语言形式,被生搬硬套,破坏了语言的规范性。
示例三:应该辩证对待。网络语言是一把双刃剑,它能够丰富语言形式,也会破坏语言的规范性。
7. 能针对新闻事实和材料本身,言之成理即可。
(1)人物形象普通而卑微,幼稚而做作
(2)音乐节奏简单、热闹
(3)舞蹈动作简单、夸张、有趣
(4)表现了小人物的白日梦
(5)从众心理
(6)经济上的“迪士尼效应”,是一种经济发达程度与娱乐业发达程度成反比的特殊现象。韩国经济持续低迷,全球经济低迷,经济复苏的预期很不乐观,衰退到来,人们便会通过看喜剧寻求心理安慰,希望借看喜剧表演来解闷、调节心理。
8.示例一:莫言获奖提升了中国文学在世界上的地位,点燃了国人的文学热情,期待这种文学热情能长盛不衰。
示例二:莫言获奖唤起了国人的文学梦想,但愿抢购作品不是盲从,更不要让它成为过去的风景。
示例三:莫言热可以理解,但不要过头,如果给莫言造成巨大压力,干扰了他创作,这是大家都不愿看到的。
9.D(②⑥①总说“幸福是什么”,其中①是对②⑥的小结;③⑤④是一个第一层为因果关系第二层为转折关系的多重复句,第④句与后面的文字连接紧密。)
c语言 哥德巴赫猜想 篇4
学习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语言,你还要具体情况具体分析。
c语言 篇5
姓 名: 李文丽 学 号:034108048 班 级:083411 指导老师:张印
2009年12月
学C语言有感
第1页
学C语言有感
摘要:C语言既有高级语言的特点,又具有汇编语言的特点;既能用来编写不依赖计算机硬件的应用程序,又能用来编写各种系统程序;是一种受欢迎、应用广泛的程序设计语言C语言版本。首先按照学习C语言的顺序分别介绍了我在学习C语言过程中所遇到的问题,叙述了在C语言学习过程,学习C语言的重点,难点,以及易出错的地方,并且用具体的案例做解释。然后阐述了学习C语言的体会:C语言的语法部分是学好C语言的基础,学习c语言不能停留在学习它的语法规则,只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。最后总结学习c语言,既是件有趣的事情,又是件艰苦的事情。静下心来学习,我们会有所收获,更会其乐无穷的。
关键词:运算符 表达式 优先级 语句 变量
一、C语言的学习中的问题
在这个学期里,我们工商管理专业的学生在专业老师张印的带领下进行了实用c语言简明教程的学习。经过这一个学期的学习,我们已经对c语言这门课程有了一定的了解。C语言是一门最基础的语言,也是一门广泛使用的语言。所以学习C语言义不容辞
首先,在学习的最初几节课,老是主要向我们讲述了C语言的特点,学习C语言的意义,以及学习C语言能给我们所带来的方便优越之处。
C语言是一种结构化语言。它层次清晰,简洁紧凑、灵活方便,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强,语法限制不太严格、程序设计自由度大。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作,适用范围大,可移植性好。总之,C语言既有高级语言的特点,又具有汇编语言的特点;既是一个成功的系统设计语言,有是一个使用的程序设计语言;既能用来编写不依赖计算机硬件的应用程序,又能用来编写各种系统程序;是一种受欢迎、应用广泛的程序设计语言C语言版本。
当然,C语言也有自身的不足,比如:C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数族下标越界不作检查等。从应用的角度,C语言比其他高级语
学C语言有感
第2页
言较难掌握。
下面我给大家说一说我在学习C语言过程中所遇到的问题。
在第二章,我们学习的是数据描述与基本操作。在这一章,我们主要讲了数据类型,运算符与表达式,和不同类型数据间的混合运算。其中比较难以理解和掌握的是自加、自减运算符。
自加、自减运算符作用是使变量的值增1或减1;当符号在前,变量在后,++i/--i 变量的值先加1或先减1,然后再参与其它运算。当符号在后,变量在前,++i/--i 变量的值先参与其它运算,然后再加1或先减1。例如: # include
1.自加运算符(++)和自减运算符(--)只能用于变量,而不能用于常量或表达式,如6++或(a+b)++都是不合法的。因为5是常量,常量的值是不能改变的。(a+b)++也不可能实现,假如a+b的值为5,那么自加后得到的6放在什么地方?
2.++和--的结合方向是“自右向左”。负号运算符和++运算符同优先级,而结合方向为“自右向左”,即它相当于-(i++),如果有printf(“%d”,-i++),则先取出i的值3,输出-i的值-3,然后i增值为4。注意-(i++)是先用i的原值3加上负号输出-3,再对i加1,不要认为加完1后再加负号,输出-4,这是不对的。
例如,x=a*b+c%d 无所谓;
例如,a=3;y=a*++a;不同的编译系统有两种处理方式,结果不同:
A)按从左到右的顺序处理为:先取a的值3,再计算++a,a的值 自增为4,子表达式++a的值也为4,所以相乘的结果为12;
学C语言有感
第3页
B)按从右到左的顺序处理为:先计算++a,a的值自增为4,子表达式++a的值也为4,再取a的值为4,所以相乘的结果为16。
在第三章我们讲的是顺序结构程序设计,其中所涉及的主要问题说优先级。
说到优先级什么叫优先级?比方说,我们在公交车终点站排座队时总会遇到70岁以上的老人不需要排队就能上车的情景,这就是优先级的涵义。C程序在运行时也象排队坐车一样,首先照顾那些优先级高的运算符,若是优先级相同,那么就象遇到两位(或两位以上)70岁以上的老人那样,让他们依次上车。
下面我们通过几个例子来说明:
(1)3*20/4%10 这个表达式中出现3种运算符,是同级运算符,运算顺序按从左至右结合,因此先计算3 * 20=60,然后被4除,结果为15,最后是%(求余数)运算,所以表达式的最终结果为15%10 = 5(2)a = 3;b = 5;c =++ a* b ;d =a + +* b;
例子中的“;”是C语言的语句分隔符,执行顺序为从左到右,第1条语句执行后a的值为3,第2条语句执行后b的值为5,第3条语句中有两个运算符前置+ +和*,按表中所列顺序,+ +先执行,*后执行,所以+ + a执行后,a的值为4,由于+ +为前置运算,所以a的值4参与运算,C的值为20,最后执行第4条语句,由于a + +为后置运算,所以a值为4参与运算,使得d的值仍为20,而a参与运算后其值加1,值为5。这个例子执行后,a的值为5,b的值为5,c的值为20,d的值也是20。(3)a = 3,b = 5,b+ = a,c = b* 5
例子中的“,”是逗号结合运算,上式称为逗号表达式,自左向右结合,最后一个表达式的结果值就是逗号表达式的结果,所以上面的逗号表达式结果为40,a的值为3,b的值为8,c的值为40。
但是C语言中的优先级的运算并不是千篇一律的,只能说是在大多数情况下,有些运算符的优先级有其自己的特点,因此这点大家要注意。例如条件表达式:条件?结果1:结果2,这种表达式很多朋友都知道,它的作用与IF…ELSE…条件判断语句很雷同,它运算时的优先级就不是按照C语言的规则来完成的。所以说对于优先级各位编程爱好者一定灵活掌握,不要死记硬背。
第三四章的选择结构程序设计和循环结构设计说我们这学期所学内容的重点。在这里,学者结构程序设计比较简单,我们就不多说了,主要谈一下循结构环程序设计。
学C语言有感
第4页
循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构,C语言中提供四种循环,即goto循环、while循环、do –while循环和for循环。四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提昌用goto循环,所以下面我们重点讲解另外的三种循环。
用while和do—while循环时,循环变量的初始化的操作应在循环体之前,而for循环是在语句1中进行的;while 循环和for循环都是先判断表达式,后执行循环体,而do—while循环是先执行循环体后判断表达式,也就是说do—while的循环体最少被执行一次,而while 循环和for就不一定了。这三种循环都可以用break语句跳出循环,用continue语句结束本次循环,而goto语句与if构成的循环,不能用break和 continue语句进行控制。这三种结构并不是彼此孤立的,在循环中可能出现分支、顺序结构,分支中也可能出现循环、顺序结构而把循环、分支看成一个语句,它又是构成顺序结构的一个元素,因此这三种结构相互结合,就能实现各种算法,设计出解题程序,但若是很大的题目,这样编出的程序往往很长,重复结构多,并且可阅读性差,因此我们常将C程序设计成模块化结构。
二、C语言学习的重点、难点
针对我个人而言,在C语言学习过程,学习C语言的重点,难点,以及易出错的地方主要有以下几个方面: 如果对几个变量赋予同一个初值,应写成: int a=3,b=3,c=3;表示a、b、c的初值都是3。不能写成: int a=b=c=3;2 强制类型转换其一般形式为(类型名)(表达式)表达式应该用括号括起来。如(int)(x+y)表示将x+y的值转换成整形如果写成(int)x+y则表示将x转换成整形,然后与y相加。使用scanf函数注意的问题: ①“格式控制”后面应当是变量地址,而不应是变量名。如 scanf(“%d”,a)是不对的,应改为scanf(“%d”,&a);②scanf函数格式控制最后面不能有n否则将没有结果输出如scanf(“%dn”,&a);是不对的。③输入数据时不能规定精度,如scanf(“%7.2f”),&a);是不合法的 ④如果在%后有一个“*”附加说明符,表示跳过它指定的列数。
学C语言有感
第5页
三、学习c语言的体会
在经过了一个学期的学习之后,对于学习c语言心得体会也总结了一下:
1、既然是一门语言,他就汉语,英语一样,都有自己的语法规则,学习一门语言,就是要按照它的语法来编程。C语言的语法部分是学好C语言的基础,只有学好了这些语法,才会写程序,看程序。所以对一个初学者来说,加深对课堂讲授内容的理解,要扎实地熟悉每一个语法,并能根据这些语法来编程。
2、课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住死记硬背是不可取的。然而要使用c语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。
3、学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。学习C语言是没有什么捷径的,打好基础,做好每章的练习才是关键。尤其是书本里的习题,不能因为简单就不去实践,学习C语言,乃至于学习所有的电脑知识都是一样的,实践练习永远处于最为重要的地位,须知电脑是要实际操作的,对于C语言,更是要是把这个程序自己编出来并且运行成功,知识点才记得最为深刻。
通过上机实验来验证自己编制的程序是否正确,恐怕是大多数同学在完成老师作业时的心态。但是在程序设计领域里这是一定要克服的传统的、错误的想法。因为在这种思想支配下,可能你会想办法去“掩盖”程序中的错误,而不是尽可能多地发现程序中存在的问题。自己编好程序上机调试运行时,可能有很多你想不到的情况发生,通过解决这些问题,可以逐步提高自己对c语言的理解和程序开发能力。学习c语言更为重要的是掌握编程的思想,如何用简捷的方法解决一个问题。同样做一个循环问题,可能有人要做300次循环,而有的人要做100次,这就是差距。平时,我们学习的时候要注意掌握每个概念,当然理论的学习是离不开实践的,尤其是c语言,需要你编写大量的程序,最初可以学着别人的程序打,慢慢就应该独立出来,把自己的想法用c语言描述出来,这是一件十分快乐的事情。建议初学者不要看高级编程,先勤写代码、多看代码、培
学C语言有感
第6页
养风格、熟悉语法、最关键的还是把握思想。当你能够信手拈来的时候,你的c语言才可以说学会了。一定要养成自己独立写完一个程序的能力,这样可以有一种成就感。不断培养这种成就感,循序渐进,进步是自然的事情。
四、总结
学习c语言,既是件有趣的事情,又是件艰苦的事情。说它有趣,是因为从中你能得到快乐,能使你的计算机整体水平上升一大步。说它艰苦,是因为学习它的过程比起学习其他计算机知识,要难得多
C语言只是一门计算机语言,说到底就是一种工具。它的用处就是可以让你用它编出能够运行的程序来,而这些程序可以实现某些人需要的功能。人通过学习c语言也可以更加深入的了解计算机,所以很多人都把c语言作为计算机入门的第一门语言来学习,因为他学习起来相对简单一些。至于实际的意义,无非是让你多学会一门技能,让你更加深入对计算机的了解,为学习其他计算机语言打下好的基础。
学习最好抱着一种踏踏实实的心态,老是想着有什么实际的好处并不会促进我们的学习,因为知识对人的影响是潜移默化的,静下心来学习吧,我相信我们会有收获的!而且如果你真的用心学习,会发现学起来越来越有意思,也会给你带来无穷的乐趣的!
学C语言有感
第7页
参考文献:
[1] 3 沈其益等编著,棉花病害——基础理论与防治,北京:科学出版社,1992.7 [2] 3 沈其益、张三等编著,棉花病害——基础理论与防治,北京:科学出版社,1992.7。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。参考文献(不少于10篇,中文参考文献不少于7篇,英文不少于3篇)
学C语言有感
第8页
学C语言有感
C语言体会 篇6
学习了也快一星期的C语言基础了……有一些自己的体会:
一:虽然以前学过一段C++,可是以前学习毕竟大多多是在看书,对真正的上级编程练得并不是太多……经过这几天的练习,我才发现原来实际编程并不是那么的轻松……以前以为自己懂的,其实不然;很多时候都有一种突然用到的时候才发现没掌握的感觉……让我充分的感到‚多练,勤练‛的重要性……
二:C语言编程对格式的要求非常严格……以前我对这个问题还没有充分的认识……知道现在我才发现格式规范对我们的重要性。一个好的程序格式不仅方便自己检查程序,也方便别人检查……而且通过编程的过程我发现有些时候编程发生错误,就是因为格式不规范而出错……由此,格式规范的重要性可见一斑……
三:刚开始上课时,朱老师就要求我们大家要互帮互助……通过大家之间的交流不断学习,这是非常重要的!大家之间的讨论,可以帮助我们很好的解决不懂或不太清楚的问题,并且印象更为深刻……每次,大家在一起解决一个问题后都会有一种很欣喜的感觉……让我们体会到了学习的乐趣……
以下是我这一段时间遇到的一些实际问题:
1:在用‚scanf‛,要特别注意‚%‛后跟的数据类型,有的时候经常会出错;还有就是‚scanf‛后‚&‛符号会出现忘加的情况,不过要注意的就是其后就是表示地址是不用加‚&‛,要灵活应用……还有就是输入时‚n‛的加否有时也会使我们执行时出现错误,一定要有清晰的理解……
2:对算法的不熟悉……一些常用简单算法;例如,最大值,排序,表示‚个,十,百,千位‛等还不能信手拈来…… 3:赋值‚=‛和判断‚==‛之间的区别,在使用时一定不要混淆,这从他们的字面实际可以直接地理解……
4:在学习函数时,要灵活的运用返回值‚return‛,对程序的精简度和可读度有很大提高……
5:在使用‚switch‛语句中,‚case‛后整型常量是字符时一定要加‘’,否则会发生错误……
6:‚break‛是跳出循环而不是跳出函数体,这点要注意,例如:if(select==0)break;这样是不对的,这就要求我们理解要透彻……
待解决问题:函数的引用传递还有一些不明白的地方……
c语言 哥德巴赫猜想 篇7
关键词:C语言,编程技巧,学习,应用
随着计算机技术不断发展, 计算机编程显得愈加重要。C语言作为计算机编程中使用最为广泛的语言之一, 同样也是语言编程领域中的重要代表。其主要特点分为两点:一是高级语言;二是低级语言, 即能够通过系统软件进行编写, 同时也能够通过应用软件进行编写, 可以说C语言的应用范围极为广泛, 是计算机编程中的主流语言之一。但C语言在学习过程中存在一些难度, 需要学生对C语言有一定理解, 这样才能够更好地学习C语言、掌握C语言。
一、C语言学习困难的主要因素
由于C语言的优势非常明显, 在计算机长期发展中, 对C语言编程的重视程度越来越高, 并且职业学校与高校都开设了C语言编程专业, 学习C语言的学生也不断增加。但是, 在C语言的实践学习中, 很多学生认为C语言学习非常枯燥、乏味, 使学习效率低下, 对C语言的基本内涵与技术没有一个明确的认识, 即使学习一段时间后也很难独立进行简单的编程。究其根本原因, 是由于C语言是一种高级语言, 并且与其他语言有着较大的差异性, 在日常学习中无法直观地感受到相应的知识画面, 只有通过C语言编程之后, 再进行一定的调试, 才能够直观看到编程效果。如果学生在编程过程中稍有一丝纰漏, 就会致使编程错误, C语言编程可以说是“牵一发而动全身”。
与此同时, C语言中存在诸多数据结构与算法结构, 这些知识点只能通过机械式记忆, 至今也无法找出很好的记忆方法, 使学生在背诵繁杂的算法过程中会容易遇到障碍或产生混淆。正因如此, 才会让学生感到C语言非常枯燥、乏味, 极大地降低学生学习兴趣, 使学生在学习过程中对C语言的学习逐渐丧失主观愿望, C语言学习质量与效率止步不前, 无法很好地完成教学目标。
二、C语言编程技巧在C语言学习中的应用
(一) 指针掌握
在C语言编程学习过程中, 学生要充分掌握指针知识, 这也是实现C语言编程的重要环节。正确应用指针能够帮助学生有效地解决一些相对比较复杂的C语言编程问题。在C语言学习中, 指针是一种特殊变量, 其主要包含三大要素, 即指针名称、指针类型、指针数值。在通常情况下, 指针名称与变量名称是相同的, 两者的主要区别在于数值与指针类别层面上。除此之外, 指针不仅能够表示数组, 同时也能够作为函数的残数返回值。
(二) C语言特有函数
C语言作为一种高级语言, 其内部构成也是非常复杂的, 需要学生能够正确掌握C语言特有函数, 也可以说C语言特有功能。可以说在一般情况下, 每一个C语言函数都能够代表、实现一定的C语言功能, 同时每个函数的名称也能够反映出其功能。在给函数进行定义的过程中, 应该包含函数的名字、参数、类型、返回值类型等。其中, 在编程过程中, 函数数据库会给予函数一个系统名称, 在正式应用过程中, 只需要将指令 (#include) 把相关的头文件包含在本文件中即可。
(三) 算法技巧
在C语言学习过程中, 学生必须要掌握一定的算法技巧, 同时算法也是C语言编程的重要组成部分。通常情况下, 算法可以通过自然语言的形态表示, 也可以采用流程图的形式来表示。在应用流程图的过程中, 要求学生能够灵活、熟练地掌握一些常用流程符号。学生想要更好地掌握算法技巧, 一些基础的数学知识是非常重要的, 同时也比数学基础较差的学生要掌握得更快。所以, 在算法教学过程中, 教师可以适当融入一些数学知识, 从而提高C语言编程效率与质量。
(四) 位运算与文件
位运算可以说是C语言编程中的一大特色, 位运算在其他语言编程中是不具备的。二进制是位运算的主要针对对象, 之后再通过输入数值进行一系列的运算。例如按位、位与、取反等算法, 都是位运算中的基本算法。除此之外, 文件在C语言编程时也是十分重要的, 同样也是必不可少的。文件主要包含数据文件以及程序文件, 通过文件能够让数据查询更为便捷, 能够有效提高查询效率。可以说C语言编程的效率性, 是学习计算机编程的重要目标之一。所以, 学生必须要掌握好位运算相关的技巧与方法, 以及对文件知识更加得心应手, 在实践操作中不断自我反省、自我发现, 不断挖掘行之有效的编程方法, 从而提高学生的C语言编程技能。
C语言作为当代主流编程的代表语言之一, 在C语言应用范围非常广泛的同时, 也带来较为困难的学习难度。但是在实际学习过程中, 仍然可以挖掘一些学习方法与技巧, 来降低C语言的学习难度, 从而提高学习效率, 为社会提供更多的C语言编程人才。
参考文献
[1]段煅.C语言编程技巧在C语言学习中的应用[J].电脑编程技巧与维护, 2012, 7 (20) :97-104.
c语言 哥德巴赫猜想 篇8
关键词:c/c++;程序设计;编程思想
1引言
“c语言程序设计”课程是高校计算机及相关专业的传统课程,近年来该课程却逐渐向“C/C++程序设计”过渡,更有甚者干脆摒弃C语言课程直接开设C++课程,这一现象值得我们反思,究竟如何在C与C++之间取舍,二者有何联系与区别?下面分别从三方面进行阐述。
2联系
C++是以G语言为基础增加新内容发展而来,是C语言的推广和延伸。绝大部分C语言中正确的语句在C十十中也可以使用,C语言是C++的子集。
2.1 main函数
c++与c语言中都有main函数,main函数在两种语言中都起着不可或缺的作用,担当重要作用即程序的入口。简单的不带类的c++程序中的主函数除了输入输出(Gout/cin)与G语言不同。别的二者非常类似。
2.2类与结构
类是面向对象程序设计中最基本的概念,是实现面向对象程序设计的基础与核心。类是将不同类型的数据和与数据相关的操作封装在一起的集合体,是对要处理问题的抽象描述。定义了抽象类之后可利用该类定义其实体即该类的对象。结构是c语言中很有用的一种数据类型,是以后学习c++中“类”的基础。结构体成员组合在一起形成一个整体,其成员可为不同的类型。定义结构体之后可用该结构体类型定义结构体变量。c中的结构可以说是c++中类的雏形,但其区别也是显而易见的,结构中只是有数据成员没有成员函数;结构中也没有public和private关键字,其中的数据成员默认都是公有的,一般函数都可以访问,而C++的类中的数据成员默认情况下都是私有的,只有类对象中的成员函数和友元函数能够访问,这样极大地提高了数据的安全性。
2.3模板与宏
模板是c++程序设计中的重要机制,可以节约程序代码,提高面向对象程序设计的可重用性和可维护性。模板把函数或类要处理的数据类型参数化,表现为参数的多态性,从而有效实现了程序设计中的代码重用。c语言中的宏定义是一种预处理方式。可改进程序设计环境,提高编程效率。其中带参数的宏定义方式不只是简单的字符串替换,还要进行参数替换,为日后学习面向对象程序设计中的函数模板奠定基础。
3区别
C是一种结构化语言,其重点在于算法和数据结构。C程序设计首要考虑如何通过一个过程,对输入或环境条件进行运算处理得到输出或实现过程控制,而c++首要考虑如何构造一个对象模型,让这个模型能契合与之对应的问题域,这样就可通过获取对象的状态信息得到输出或实现过程控制。
3.1编程思想
c++与C语言最大的区别在于编程思想的截然不同,前者是面向对象的编程语言,后者则是面向过程的结构化的编程语言。面向对象程序语言将程序设计领域与日常生活拉得更近,面向过程的C语言强调程序的功能,以函数为中心,c++在C语言这一强大巨人的肩膀上发展,通过C语言强大的软硬件控制功能,融入面向对象的编程思想。强调程序的分层。分类,以抽象的类为基础,进行对象的定义与展示,使应用程序具有封装性、继承性和多态性。
3.2关键字
c语言中的关键字几乎都可以在C++中使用,但c++中增加了一些C语言中所不支持的关键字,这些关键字能够作为函数和变量的标识符在c程序中使用,尽管C++包含了所有的c,很显然没有任何e++编译器能够编译这样的c程序。例如c++中的new和delete取代了C中的malloc和free,C++中还增加了public、private、try catch。throw等很多关键字。
3.3语法格式
c++和c语言在语法格式上也有很大的不同。c程序员可以省略函数的返回类型,C++却不可以,即使无返回也应加上void类型。注释的格式:c语言只支持**。C++还支持//在C语言中输入输出是使用scanf和printf函数来实现的,而e++是使用类来实现的,C++中用于控制1/O的iostream类库替代了C语言中的stdio函数库。C++中的try/oatch/thrOw异常处理机制取代了C中的setjmp和Iongjmp函数。C++中的引用简化了c语言中过于繁杂的指针。
4结语
c语言总结 篇9
1.求一位数组a中(或若干整数)所有元素的平均值。
(注意数组作函数参数的情况)
2.求一位数组a中的最大/最小元素及下标。(例如p59,p85)
求二维数组a中的最小值/最大值。(例如p61)
3.判断m是否为素数。(例如课本p106)
求一位数组a中素数(非素数)之和/素数(非素数)个数。
将[m,n]之间的所有素数存放到以为数组a中,并输出这些素数。(例如p62)
4.求一位数组a中值为奇数(偶数)的元素的平均值(总和)。
5.输入一个百分制成绩,打印出五级积分成绩。考试成绩在90分或90分以上为优秀,80~89为良好,70~79为中等,60~69为及格,低于60分为不及格。(例如p39)
6.求给定正整数n的阶乘。(例如p75)
求)(例如课本p111)n!(即求:1!+2!+3!+…..+20!
n=120
7.打印输出以下图形(图为每两个“*”之间有一个空格)(例如p54)
*
* * *
* * * * *
* * * * * * *
打印九九乘法表的一部分。(例如课本p104)
8.输出100~200之间(或以为数组a中)既不能杯3整除也不能被7整除的整数之和,并统计这些整数的个数。(例如p47)(注意数组作函数参数的情况)
9.求N*N矩阵的主对角线/副对角线元素的和并输出。(例如p71)
10.求字符串中大写字母/小写字母(空格和非空格的)个数并输出。(例如p71)
11.求字符串的长度并输出。(例如p71)
12.从键盘上输入两个正整数x,y,求它们的最大公约数(最小公倍数)。(例如p45)
13.按下面的公式求sum的值。(例如p51,p82)
Sum=1-2+3-4+5-6+……+99-100 1111+++......234100
11111......S=1+ 3*35*57*79*9n*nSum=1+
14.求指定字符在字符串中出现的次数并输出。(例如p72)
求指定字符在字符串中第一次出现的位置(该字符的下标)并输出。
15.判断m是否为素数。(例如课本p106)
判断m~n中素数(非素数)之和/素数(非素数)的个数。
16.计算1到M(M为偶数)之间的奇数之和及偶数之和。(例如p44)
17.求Cnmm!(例如课本p154)n!*(mn)!
18.打印出1至1000中满足其个位数字的立方等于其本身的所有整数。
19.计算正整数num的各位上的数字之积。(例如课本p117)
C语言实习 篇10
姓名:黄方成班级:天目计算机0
4一、课程设计题目:
《公司职工管理系统》
二、程序主要功能:
实现基本的学生的数据管理,如:创建新数据文件、添加数据记录、查找数据记录、删除数据记录、显示所有的数据记录,以及数据的排序等等。(分别使用了shuru()、insert()、found()、delete()、inputs()、list()、putin()、print()、resave()等函数)。其中数据的输入、插入、查找、数据的删除,输入又可通过不同的方式按姓名查找等进行操作。
三、函数实现说明:
主要函数:
1、shuru()
该函数主要用来创建新数据文件,当第一次使用该程序或者原创建的文件的内容无效,需建立一个新的文件的时候,可通过该函数来实现。
该函数实现过程中首先定义了两个变量i,初始化为0,用来存储学生的数量,它们均随着输入记录的增加而增大(每输入一条增加1),用变量i来抽象表示其中的任何一条记录,对该程序来讲即为通讯录中包含的学生人数。之后需使用户输入数据,这就需要设计时先在屏幕上显示有关输入数据性质提示信息(如学生号、姓名、电话、入学分数等等)。输入完一条记录进行保存。从而使数据在文件中得到保存,另外在输入姓名为空时,函数认为添加已经结束,自动关闭函数的输入记录功能,跳出该功能。
2、insert()
该函数可对文件的数据进行插入。在进行添加的时候需要首先打开原来的数据文件,在该函数中调用了load()函数将数据文件打开。再调用shuru()函数文件之后同shuru()中一样的形式输入数据,输入完之后进行保存,对插入的 1
数据进行保存前要先确定插入的地点,insert()函数在设计时将插入点放在了文件末尾,即将添加的数据加到文件的最后。Insert()函数与创建新数据文件的shuru()函数除保存及被功能上的使用时间不同外,其他功能基本相同。
3、found()
该函数调用了find()这个函数来实现不同方式的查找。具体使用什么方式查找需由用户自己选择,于是使用switch语句先设计一个选择过程。当选择按名字查找方式,就启用find()函数查找,过程为先要求用户输入所要查找的数据文件的名字(例如是毕业学校的文件保存名字),然后再将这个名字与以存数据名字逐个进行比较,当找到数据的时候就调用printin()函数将该数据的所有信息打印出来,否则显示“没有找到这个姓名!”以示没有找到。
4、delete()
该函数用来删除不需要的数据记录。实现过程为:首先输入需要删除的记录的名字,将该数据逐一与以存文件中的学号进行比较,在比较过程中定义了若干个指针变量*node,*before,*pt,并初始化为*before=NULL,接着就是对该记录的删除操作,将此记录及其后的每一条记录逐一用它们之后的那一条记录替换,即实现了对数据的删除。并且还调用了函数load(),用来对文件数据的删除。若没有找到需要删除的数据,before的值任为1,则屏幕显示“没有该学生的记录!”。在删除记录后需对操作结果进行保存,最后根据用户的选择来决定是否继续删除,为空时是离开。
5、print()
使用该函数可以显示所有的操作员自己输入的所有的学生数据记录。它只用到了简单的printf(“”)语句,但是它用了含有++i的变量来输出下一个记录,每打开一个记录就自己增加1。当需先打开数据文件时,读取其中的数据记录,然后将这些记录按一定的形式打印在屏幕上,为是打印的效果整齐、美观,则要对其输出的方式、格式进行设计,采用了t的对齐方式。
6、putin()
该函数可对数据文件中数据具体的存放顺序进行操作,主要是用来实现排序功能。设计的此程序对数据的存放顺序只按照姓名的长度进行排列。该功能用循环实现,并且包含了许多的字符函数,包括在头文件#include
据文件的开头起,将第一条记录的姓名与之后的每一条记录的姓名的字符长度进行比较,若前者大于后者,则交换它们的位置,这一循环完毕后,再类似对第二条、第三条„„直到倒数第二条为止进行比较,即实现了第二次循环。两次循环比较完之后便将数据文件中的数据按照姓名长度的顺序,从短到长排列起来。最后保存操作结果。
7、main()
一个程序主函数不能少。当以上的函数均编完之后,要实现各个功能操作的连接,还必须有主函数将它们联系起来,这样才能达到理想的结果。对以上函数的连接,此程序采用了switch语句,格式清晰、容易接受。至此班级通讯录管理的基本功能便基本实现。
8、在其他方面对界面的美观进行了改动,采用了许多符号的编排,和大量的对齐方式。
三、调试分析:
程序调试是指对程序的查错和排错。
为了便于查错、阅读,在设计该程序的时候我采用了结构化程序方法编辑,添加了尽可能多的注释,这为我后来的调试过程带来了很多方便。
为了方便,我先大量的阅读了许多优秀程序员的成功例子,觉得在使用变量时采用大量的指针形式是使功能能大量的进行,并且使程序运行的很快。
所以就写了一份草稿,进行对低级错误的修改,在修改过程中,发现很多都是因为在写完一个语句时,忘了加上分号(;),在用到scanf时,忘了写上取地址(&)符号。过分重视分号的重要性而在for、if、while语句中画蛇添足加分号;在使用文件的时候忘记将文件先打开,对打开的方式与使用的情况不太注意而造成不匹配;还有漏掉形参的定义是值不能传递等等。这些语法错误有信息框的提示一般是能够排除的。
等低级错误。
经过仔细检查之后进行上机调试。进行编译,如果在编译和连接过程中发现错误,屏幕上显示了出错信息,根据提示找到出错的位置,加以改正,再进行编译„„如此反复,直到顺利通过编译和连接为止。在本次实习过程中碰到的编译、连接的错误主要有:
1、定义变量时;
变量不容易联系起来,经常会写错变量名,但是在错误信息的提示下一般还是很容易找到。但是在写各个函数时,发现一个变量名,只要不是全局变量就可以无数次定义,只要分开在不同的函数中就可以了。不过需要注意的是在定义的时候有些函数使用同样的变量名而表示不同的作用,因而使用要很小心,定义及定义的位置要特别留意。因此,我都才用node做为一个结构体的指针变量。采用llink为头指针,从而减少这样的变量名过多出现的错误,结果引起的那些错误解决了。
在编写程序时要安静,才不会出现低级错误。
2、语法错误;
语法错误在通过书本参考下能够修改,并且在上机的错误提示中得到修改,但是由于书本是C语言。不是C++的,所以在使用时要注意在主函数和一些定义变量跟声明函数时有些不同,这不是语法的错误,而是作为一个程序员必须要注意到的,要体会两种语言的区别,由于平时看书不仔细、没有经过仔细的思考造成的。如没有注意具体数据使用是有一定的范围限定;
在本次调试过程中我还碰到了一些以前上机过程中从未碰到过的错误。逻辑上的错误机器不易检查出来,这时需要对数据结果进行分析。这种错误的查找是最难的,需要编程序的人有相当的耐心和细心去把问题找出来。这也是本次程序编辑过程中碰到的最大的难题。因此我使用的是一个一个函数的检查,并通过调试修改。
在调试时,碰到了许多平时没有的错误,如:开辟内存时,忘了加*号,使得检查的时候认为是指针的错误,还有是在类型转换时,发现在类型转换为时要加上teperdef,并且在调试时在学习时的有个强制转换比teperdef更有用,如(strect llist*)llink与teperdef llist struct nodeteperdefnode *llink,以上两句是一样的。
四、心得体会:
编程看起来似乎是一件很枯燥、乏味的事情,但是经历了这次大程序的编辑之后,发现其实里面还是充满乐趣的,一旦真的专研下去什么事情都可以放下,来认真研究。当这个自己编写的程序在计算机上实现自己想要的功能时,很有成就感,发现了许多原来的错误,使自己的水平上升了一个大台阶。
这个程序的成功对以后要学习的数据结构就更有信心了。
【c语言 哥德巴赫猜想】推荐阅读:
哥德巴赫猜想11-07
哥德巴赫猜想简要证明06-04
浅谈“哥德巴赫猜想”证明方法07-05
“哥德巴赫猜想”讲义(第13讲)09-30
编程验证哥德巴赫猜想的一个命题01-18
c语言属于语言09-21
c语言07-21
汇编语言与C语言比较07-22
学习单片机c语言还是语言06-01