提高计算机专业C语言教学效果的方法探讨

时间:2023-06-01 08:10:22 其他范文 收藏本文 下载本文

提高计算机专业C语言教学效果的方法探讨(锦集15篇)由网友“逝去的日子”投稿提供,以下是小编精心整理的提高计算机专业C语言教学效果的方法探讨,希望对大家有所帮助。

提高计算机专业C语言教学效果的方法探讨

篇1:提高计算机专业C语言教学效果的方法探讨

提高计算机专业C语言教学效果的方法探讨

分析总结了目前c语言教学中存在的问题,并针对存在的问题,在教学方法、教学内容、教学手段、上机实践等多方面进行了一些尝试性的`改革工作.实践结果表明,这些教学方法的推行在培养学生的动手能力、思维能力以及创新能力方面均取得了较佳效果,有效地提高了教学质量,改善了教学效果.

作 者:徐晓蓉 陈洪波  作者单位:湖南文理学院,计算机科学与技术学院,湖南,常德,415000 刊 名:福建电脑 英文刊名:FUJIAN COMPUTER 年,卷(期): 25(4) 分类号:G71 关键词:C语言   程序设计   教学方法  

篇2:巧用计算机提高语文课堂教学效果(网友来稿)

巧用计算机提高语文课堂教学效果(网友来稿)

洛阳八中实验初级中学  赵黎斌

传统的教学手段似乎就是那么单调,“课本+黑板+粉笔”,偶尔加一些简单的幻灯片,自然缺乏形象、生动、具体。难怪学生会感到枯燥无味,这就直接影响了学生学习的积极性。

随着社会知识信息激增和“减负提素”工作的深入开展,以及新课程标准的逐步实施,传统教育面临着越来越大的挑战,教学手段及教学方法的改革已势在必行。随着时代的发展,科学技术的运用也日趋广泛,尤其是计算机的运用,可以说渗透到世界的每一个角落。这一高性能的现代化设备,对作为培养人才摇篮的学校而言,更是不可缺少的辅助工具。因为,作为一种新型的教育形式和现代化教学手段的多媒体技术,它比传统教育手段有无比的优越性。

利用多媒体技术对文本、声音、、图像、动画等的综合处理,可以编制各种教学课件辅助教学,能充分创造出一个图文并茂、有声有色、生动逼真的教学环境,进而极其有效地激发学生的学习兴趣和热情,为教师教学的顺利实施提供有效的辅助工具,真正改变传统教育的单调模式,使乐学落到实处,极大地提高课堂教学效率。所以,巧用计算机进行课堂教学,是提高语文课堂效果极为有效的方法,也是教学改革不容忽视的内容之一。在教学中,我尝试使用计算机进行教学改革,收到了很好的教学效果。下面就谈谈我在语文课堂教学中运用计算机教学的几点体会。

一、优化课堂教学,活跃课堂气氛。

计算机最大的优越性就是可以运用现代化的多媒体手段,全方位、多角度、立体式地刺激学生的`多种感官,激发学生的兴趣和热情,调动学生的积极性主动性创造性,从而克服传统教学手段单一,课堂气氛沉闷的不足,达到课堂教学的优化,促进学生主动学习,有效提高教学效率。例如,在学习朱自清先生《春》这一课的时候,计算机多媒体的优越性就充分显示出来了。那优美和谐的背景音乐、生动形象的动画画面、声情并茂的课文朗读,将作者朱自清先生文章的内容、意境、乃至主旨,全方位、立体化、创造性地展示了出来。这就不仅仅是活跃了课堂气氛,更将学生带入了美好无比的春天,使学生具有身临其境的感受,学生在美的享受之中,读通了课文,读懂了课文,读透了课文,其教学效果自然是不言而喻了。

二、有效扩大课堂容量,加快课堂教学节奏。

现在,知识越来越多,内容越来越广,如何加快课堂教学节奏,并在有限的四十五分钟内有效地扩大容量,是每一位语文教师面临的问题。我认为,巧妙运用计算机是解决问题的最佳方法。计算机能方便迅速地处理信息,无论是文字、声音、还是图画,都可以根据需要随心所欲的进行操作,这就打破了”一书、一板、一粉笔”的传统教学模式,大大加快了课堂教学节奏,不仅只教课文,还能最大限度地将与课文有关的内容融进课堂,有效地扩大课堂容量。例如,鲁迅先生的散文《藤野先生》,不但篇幅较长,内容较多,思想感情丰富,而且还涉及到很多其他内容。过去学习这一课,都要用三个甚至四个课时。运用计算机教学,就极大丰富了课堂内容,加快了教学节奏,提高了课堂效率,用两个课时就可以了,而且教学效果非常之好。

三、变抽象为形象,激发学生丰富的联想力和想象力。

传统的教学注重书本内容,学生主要是根据书本上的文字来学习的,而由于年龄、阅历、或其他条件的限制,仅仅只看抽象的文字,则往往会影响学生对内容的理解、知识的掌握及思想感情的领会。运用计算机教学,就可以变抽象为形象,并能有效地激发学生的联想和想象思维,从而提高教学效果。例如,《大自然的语言》涉及到一年四季的气候和景物,还涉及经纬不同和海拔不同造成的气温变化和景物差异等,而这些内容只看文字就未免太抽象了。借助计算机,就可以轻而易举的把各个季节、各种气候、各个地方的各种景物生动形象地展示在学生眼前,并启发学生联想自己见过和知道的相关知识和内容,加深对知识的理解和掌握。《海滨仲夏夜》中,作者对景色变化描写的极其细致入微,富有层次感。借助于计算机将文字描写的景色逐次展示出来,不但丰富了课堂所学内容,而且使从未到过海滨的学生对海滨仲夏的夜色也有了形象化的认识,并进而促使他展开丰富的想象力,去想象更为丰富的景色。

四、发挥学生的主体作用,提高教学质量。

在课堂教学中,充分发挥学生的主体作用,使学生积极主动地学习,积极主动地思考,并具有积极主动的参与意识,是现代社会对学校培养人才的要求。计算机可以通过屏幕呈现教学内容、展示学习目标、提出思考与讨论的问题,学生又针对性地进行阅读、思考、讨论并做出回答,计算机对学生的学习情况与回答及时迅速地给出判断,能最大限度的发挥学生的主体作用,促使学生积极主动的学习。同时,使用计算机辅助教学,还便于课堂的及时反馈、知识的迁移和能力的拓展,进而培养学生的创造精神和创造能力。尤其是练习设计,容量大,方便快捷。利用多媒体技术编写的系列有针对性的练习,其训练效果非常好,是传统练习方法不可比拟的。它的最大成功之处在于化学习被动为主动,化抽象为具体,通过带娱乐性的练习,能轻松巩固已学知识,从而切实激发学生发自内身学习兴趣,真正做到“减负提素之目的。比如在练习中编各种形式的选择题、填空题、是非题等,由软件来判断学生解答的正确与否,根据练习的情况,给予必要表扬鼓励或重复练习等。例如,学习陆游的《十一月四日风雨大作》时,通过计算机向学生提出艺术思想等方面的思考问题,让学生通过反复朗读,悉心体会和充分讨论,然后回答解决以上问题;再通过计算机及时反馈学生对作品的背诵、理解、欣赏以及对内容的联系,最后对学生的知识、能力进行迁移和拓展的测验和训练(比如,陆游还有哪些爱国作品?运用什么手法?宋朝还有哪些爱国诗人?有哪些作品?其中有哪些是千古传诵的名句?等等),从而全面提高学生的能力,以达到提高教学质量的目的。

总之,将计算机引入课堂教学,是时代的需要和要求,也是提高课堂教学效率和学生素质的有效方法。巧妙恰当地运用计算机多媒体进行语文教学,具有广阔的空间和美好的前景。

作者邮箱: bazhongxuecun@sohu.com

篇3:计算机专业毕业论文开题报告C语言

开题报告是由选题者把自己所选的课题的概况(即“开题报告内容”),向有关专家、学者、科技人员进行陈述。然后由他们对科研课题进行评议。再由科研管理部门综合评议的意见,确定是否批准这一选题。开题报告作为毕业论文答辩委员会对学生答辩资格审查的依据材料之一。

一、选题目的和意义

选题的目的:粗糙集理论自从提出后20多年来,逐渐成为数据挖掘领域的研究热点之一,基于粗糙集理论的属性约简算法具有重要的研究意义。目前,属性约简已有多种算法,各种算法也有其不同的优、缺点。求属性约简集,通常是从求核属性开始的。目前提出的各种算法当中,使用具体程序实现比较少,而本文实现了粗糙集理论中的求核和属性约简算法。另外,人们可能认为粗糙集仅仅是理论方面的研究,但实际上,粗糙集理论在现实生活中的应用是非常广泛的,不论是医疗、气象学方面,还是电信业、金融业等方面都有所应用。

选题的意义:本文使用C语言程序实现求属性核算法和基于分明矩阵的属性约简算法,通过程序可以清楚地表达算法的各个步骤和算法的具体实现过程。而本文中又结合了实际生活中的两个实例,分别是在房地产信息决策系统医疗诊断系统方面,说明粗糙集理论并不只是空洞的理论,而在实际当中有着广泛的应用,和人们日常的生产、生活和学习是息息相关的。

二、本选题在国内外的研究现状和发展趋势

国内外的研究现状:粗糙集理论是1982年由波兰数学家Z.Pawlak提出的,当时没有引起国际计算机学界和数学界的重视,研究仅限于东欧的一些国家,直到20世纪80年代末才逐渐引起各国学者的注意。1991年,Z.Pawlak发表了专著《Rough Set: Theoretical Aspects of Reasoning about Data》,奠定了粗糙集理论的`基础,从而掀起了粗糙集的研究热潮。后来,在日本举行的国际粗糙集研讨会以及在重庆举行中国粗糙集研讨会推动了亚洲地区和我国对粗糙集理论与应用的研究。具体地说,粗糙集中的求核算法和属性约简算法也有许多种,而这多种不同的方法也有其各自在空间复杂性或者时间复杂性上的优点和缺点。而将这些算法使用具体程序设计语言实现出来的,也是比较少的。

发展趋势:在理论研究方面,国内外学者不断提出新的研究成果和研究方法,其中包括数据库中的数据约简、数据相关性的发现、数据意义的评估、数据产生决策控制、数据的近似分类等方面,这些方面的理论研究是当前研究的热点之一,并引起越来越多的学者的关注。除了理论研究,人们也在积极寻找粗糙集在数据挖掘和知识发现中的应用,如在医疗诊断、药物学、气象学、电信业、银行及金融业、市场研究、工程设计及其他领域都有重要的应用。对于本文实现的这两种算法,通过文中的具体例子,也可以看出它们与人们生产、生活和学习等方方面面有着密切的联系。粗糙集理论在机器学习、归纳推理、模式识别、决策支持系统、振动分析、开关函数、冲突分析、图象处理、声音和字符等方面都已经有了成功应用的实例,在这些方面以及推广到其他方面的应用必将更加的广泛。另外,国际上研究粗糙集的机构和个人开发了一些应用粗糙集的实用化软件,也出现了商业化的软件,而且应用粗糙集理论的商业化软件也越来越多。

三、课题设计方案[主要说明:研究(设计)的基本内容、观点及拟采取的研究途径。]

研究的基本内容:理解数据挖掘和知识发现的基本概念,了解粗糙集的提出与发展、现状和发展前景,通过深入理解粗糙集理论及其相关定义和概念、属性约简和求属性核的方法,提出这两个算法使用C语言程序的具体实现,之后再研究粗糙集理论在人们实际生活中具体应用的可行性,并通过选取人们生产、生活中很具体的两个例子,文中选取德州市房地产信息决策系统和某医疗诊断系统,说明该理论确实是实际可行的、有用的和有效的,该理论的应用是同样可以推广到诸多其他领域的。

研究途径:在指导老师的指导下,阅读指导老师提供的有关书籍中的基本知识以及指导老师提供的一些个人的研究成果,并通过网络查阅相关论文数据库、借鉴国内大学往届优秀研究生论文,以及查阅相关国外大学论文数据库的资料,搜索网络中粗糙集具体应用方面的具体数据和资料,综合概括查询得到的有关知识,确定论文研究内容的可行性、完成开题目报告,用C语言程序写出文中两个算法、将程序在Microsoft Visual C++ 6.0中加以运行和调试、输入多个具体例子进行测试,积极与指导老师探讨研究方法、研究中疑惑的问题和论文的写作方法,针对指导老师对论文内容和格式等方面提出的意见和建议,修改论文,直到最终完成论文。

四、计划进度安排[主要说明:起止时间及分阶段的进度要求。]

10月10日——月31日 查阅相关资料,确立论文研究方向和指导老师。在指导老师的指导下,阅读指导老师提供的有关书籍中的基本知识,并结合网络查询到的相关论文,确定论文题目,完成开题报告、任务书和课题说明书。

年11月1日——2005年12月10日 学习论文内容的基本知识,并用程序具体实现算法并通过调试和测试,完成论文部分章节,接受中期检查。

2005年12月11日——1月15日 进一步查阅相关书籍和资料,并与指导老师探讨相关问题,写出论文。

203月——年4月 检查论文,根据指导老师提出的关于论文内容和格式等问题,修改论文并最终完成,提交指导老师检查。参加毕业论文答辩。

五、主要参考文献

[1]刘清.Rough集及Rough推理.北京:科学出版社,.8:1~79,182~229.

[2]康晓东.基于数据仓库的数据挖掘技术.北京:机械工业出版社,.1.

[3]刘清.Rough集理论:现状与前景.计算机科学,.4:1~4.

[4]徐凤生.一种新的可区分矩阵与求核方法.计算机工程与应用(已录用).

[5]左孝凌,李为鉴,刘永才.离散数学.上海:上海科学技术出版社,1982.

[8]Masahiro Inuiguchi,Shoji Hirano,Shusaku Tsumoto. Rough Set Theory and Granular Computing, Springer,,125.

[9]Lech Polkowski,Shusaku Tsumoto,Tsau Y. Lin.Rough Set Method and Applicaions: New Deverlopments in Knowledge Discovery in Information Systems,Physica-Verlag,,56: 649~681.[10]叶东毅.Jelonek属性约简算法的一个改进.电子学报,2000.12:81~82.

[10]叶东毅.Jelonek属性约简算法的一个改进.电子学报,2000.12:81~82.

[11]孙惠琴,熊璋.粗集理论集成ORDBMS的原型系统.计算机学报,2005.11:1875~1877.

[12]代春艳.粗糙集理论及其应用发展综述.重庆工商大学学报,2004.12:575~576.

[13]王宗军,李红侠,邓晓岚.粗糙集理论的最新应用.统计与决策,2005.11(下):27~29.

[14]束金龙,丁文霞.粗糙集理论在属性约简及知识分类中的应用.运筹与管理,2003.12:41~43.

[15]闫德勤,刘菲斐.属性约简中的差别矩阵与近似精度.小型微型计算机系统,2005,11:1975~1976

[16]朱凌云,吴宝明.医学数据挖掘的技术、方法及应用.生物医学工程学杂志,2003,20(3):559~562

[17]杨涛,李龙澍.Rough集在软件测试用例选择中的应用.微机发展,2005,2:12~14

[20]刘惠,邱天爽.知识发现及其在临床医学上的应用.生物医学工程学杂志,2004,4:677~680

[21]蓝敏.用粗集理论挖掘项目审查(评估)中的专家共识.西南交通大学学报,2005,2:85~89

[22]Jiawei Han,Micheline Kamber.Data Mining Concepts and Techniques,China Machine Press, 2005,11

[23]吴明芬.粗糙集理论的研究现状与前景.五邑大学学报(自然科学版),,6

[24]刘健勤.粗糙集理论及其最新进展.计算技术与自动化,,17(1):43~48

[25]王国胤.决策表核属性的计算方法.计算机学报,2003,5:611~615

篇4:学习计算机c语言的方法有哪些

学习计算机c语言的方法

一、要读就读好书,否则不如不读

Kernighan和Ritchie的《TheCProgrammingLanguage》(中译名《C程序设计语言》)堪称经典中的经典,不过旧版的很 多内容都已过时,和现在的标准C语言相去甚远,大家一定要看最新的版本,否则不如不看。另外,即使是最经典最权威的书,也没有办法面面俱到,所以手边常备一本《C语言参考手册》是十分必要的。《C语言参考手册》就是《CReferenceManual》,是C语言标准的详细描述,包括绝大多数C标准库函数 的细节,算得上是最好的标准C语言的工具书。顺便提一句,最新的《C程序设计语言》是根据C89标准修订的,而《C语言参考手册》描述的是C99标准,二者可能会有些出入,建议按照C99标准学习。还有一本《C和指针》,写得也是相当地不错,英文名是《PointersonC》,特别地强调指针的重要性, 算是本书的一个特点吧。不过这本书并不十分适合初学者,如果你曾经学过C语言,有那么一些C语言的基础但又不是很扎实,那么你可以尝试一下这本书。我相信,只要你理解了指针,C语言便不再神秘。

如果你已经啃完了一本C语言教材,想要更进一步,那么有两本书你一定要看。首先是《CTrapsandPitfalls》(中译名《C陷井与缺 陷》),很薄的一本小册子,内容非常非常地有趣。要注意一点,这本书是二十多年前写成的,里面提到的很多C语言的缺陷都已被改进,不过能够了解一些历史也不是什么坏事。然后你可以挑战一下《ExpertCProgramming》(中译名《C专家编程》),书如其名,这本书颇具难度,一旦你仔细读完并能透 彻理解,你便可以放心大胆地在简历上写“精通C语言”了。

切记一个原则,不要读自己目前还看不懂的书,那是浪费生命。如果你看不懂,那你一定是缺失了某些必需基础知识。此时,你要仔细分析自己需要补充哪些内容, 然后再去书店寻找讲述的这些内容的书籍。把基础知识补充完毕再回头来学习,才会真正的事半功倍。

二、Unix/Linux还是Windows,这是个很大的问题

不同的编程环境会造就出不同思维的程序员。Windows的程序员大多依赖集成开发环境,比如VisualStudio,而Unix程序员更加钟爱 Makefile与控制台。显而易见,集成开发环境更容易上手,在Windows上学习C语言,只需要会按几个基本的VisutalC++工具栏按钮就可以开始写Hello,World!了,而在Unix下,你需要一些控制台操作的基本知识。有人也许认为Unix的环境更简洁,但习惯的力量是很大的。

所以我建议初学者应该以VisualC++6.0(不是VisualC++.NET)或者DevC++作为主要的学习环境,而且千万不要在IDE的 使用技巧上过多纠缠,因为今后你一定要转向Unix环境的。VisualC++6.0使用很方便,调试也很直观,但其默认的编译器对C标准的支持并不好, 而DevC++使用gcc编译器,对C99的标准都支持良好。使用顺带提一下,很多大学的C语言课程还在使用TurboC2.0作为实验环境,这是相当不 可取的,原因其一是TC2.0对C标准几乎没有支持,其二是TC2.0编译得到的程序是16位的,这对今后理解32位的程序会造成极大的困扰(当然,用 djgpp之类的东西可以使TC2.0编译出32位程序,不过那过于复杂了)。

等你学完一本C语言的教材,你一定要转向Unix平台继续学习,几乎所有的C语言高级教程都是基于Unix平台的(比如《C专家编程》)。转变的过程是痛 苦的,你需要面对的是各种纷繁复杂的命令,完全不同于Windows平台的思考方式,但是这种痛苦是值得的。Unix与C是共生的,Unix的思考方式和习惯更加符合C语言的思考方式和习惯。在Unix下,你可以找到无数优秀的源代码供你尽情阅读,你可以方便地查看某个库函数的联机手册,还可以看到最优秀的代码风格(说到代码风格,我会专门写一篇文章详细叙述)。

归结起来就是一句话:初学C语言,建议使用Windows系统和集成开发环境,在准备向“高手”方向努力时,请先转向Unix平台。

三、万事俱备,你就是东风

书已选定,环境配置完成,正所谓万事俱备,只欠你自己的努力了。请从书的前言开始,仔细地阅读手头的教材,很多人看书喜欢直接从第一章开始看,这是 错误的做法。前言是作者对整本书的大体介绍,作者一般会告诉你需要什么基础才能够顺利阅读本书,这可以帮助你检验自己的基础知识是否已经具备。看完前言, 还要浏览一下目录,了解一下书的整体结构,顺便给自己安排一下学习计划。

例子之后就是习题了,我建议初学者把所有的习题都独立做一遍。

也许你认为这样学习太慢,其实不然。学得细致就不用走回头路,等你学到后面才发现自己前面没搞清楚,那才是真的得不偿失。一般说来,整本书读完,你应该完成数千行乃至上万行的代码,无论是原封不动照抄书上的,还是自己心血来潮写就的,都是今后继续学习的一笔财富。以我自己举例,阅读《Windows核心编程》时(我只阅读了3/4的内容),除了抄书上的代码,还自己写了很多例子,一共有5574行(用unix下的wc工具统计),时隔多日,我早已记不清Windows的系统编程了,但只要花几分钟翻出以前的代码看看,便会重新了然于胸。所谓好记性不如烂笔头,就是这个道理。

仔细读书、认真抄写源代码、独立完成习题外加更进一步的实验,最后将所有的代码留下,成为自己的经验和财富,绝对的辛苦,也绝对的事半功倍。当然,这种方式只适合学习需要精通的技术,如果不是学习C语言,你还要具体情况具体分析。

写到最后,还有非常非常重要的一点没有提及──代码风格,从最开始学习就必须强迫自己模仿最优秀的代码风格。因为代码风格太重要内容也太多,我会用专门的一篇文章来详细讨论,请大家关注《程序员之路──关于代码风格》。

在这里停一下,上面说的便是我学习的风格:总要经历一番波折,瞎折腾几下,然后才会有偶然间的明悟-开窍了!我甚至没见过几个人有我这么笨,现在明白过来 了,我总是一开始把事情想得过于复杂,造成狗咬刺猬的难堪的局面,然而竟然有意想不到的收获!但是不建议大家模仿这种风格,起码追女朋友的时候不能这样, 生活中很多机会在于接手的那一瞬间,失去就永远找不回来了。

现在回来,后来偶然间,我看懂了一行代码,是print语句,当时兴奋得要命,又仔细看了这个看了那个,一下子看懂了很多东西,像是在霎那间被什么给击中似的,立刻间醍醐灌顶。。。。

可是,还是那句话不破不立,不阻不行。就像我现在有了电脑,整天泡在互联网的海洋里,感受着快餐文化,好久都没静下心来好好想点东西了。

谈及C语言,我想凡是学过它的朋友都有这样一种感觉,那就是“让我欢喜让我忧。”欢喜的是,C语言功能非常强大、应用广泛,一旦掌握了后,你就可以理直气 壮地对他人说“我是电脑高手!”,而且以后若是再自学其他语言就显得轻而易举了。忧虑的是,C语言犹如“少林武功”一般博大精深,太难学了。其实就笔者认为C语言并非是“difficult(困难)”的,只要你能理清思路,掌握它的精髓,那么自学C语言是一件非常容易且又其乐无穷的事。今天本人就与大家一 起谈谈如何学习C语言或者说学习C语言应从哪几方面着手。

计算机二级C语言考试技巧

一、计算机二级C语言上机考试

全国计算机等级考试二级C语言上机考试具有三种题型:程序填空、程序修改和程序设计,其中程序填空30分,程序修改30分,程序设计40分。从以往的机试的情况来看,许多考生在程序设计题目上失分比较严重,而程序设计题占总分值的40%,一旦答错,如果程序填空和程序修改又不能取得满分的话,就不能通过上机考试。

9月,教育部考试中心对现有的全国计算机等级考试大纲进行了改革,二级C语言上机考试时间由60分钟增加到了90分钟,编程环境由以前的TC2.0改为VC++6.0。本文根据对近几年来二级C语言上机考试中的程序设计题进行归类总结,提出相应的策略,并对考生应对新大纲以后的C语言上机环境给出一些建议。

二、对以往考试的分析

历年的全国计算机等级考试中二级C语言上机考试程序设计题目全部出自于由南开大学出版社编写南开100题,每次考试教育部考试中心会对题库做相应的改动,增加一些新的题型或题目,考试中,考生随机抽取一套进行测试。笔者对4月至209月版新大纲以后的6次考试中的程序设计题目进行了总结,将这些题目一共分成了6大类,对每种类型的题目进行了分析。

三、对一维数组和字符串的操作

该类型的题目在以往的机试中所占比例最大,为40%,考生应对该知识点做全面的复习和掌握。一维数组可以分为数值型和字符型,其中数值型数组的数据类型为整型和实型,字符型数组的数据类型为字符型,我们通常会把字符型数组叫做字符串,但是应该注意字符型数组与字符串之间是存在区别的,也就是’\0’结束标志问题。

在复习该部分的时候,考生应该掌握以下两个问题:

1.对一维数组的操作

对一维数组进行操作的时候,不可避免的要访问相关的数组元素,在C语言中访问数组元素一般采取单层循环的方法进行遍历,假设数组长度为n,数组下标是在0到(n-1)之间的,考生应该牢固掌握在一维数组中求最大值、最小值,移动元素,查找特定值,存储数组元素的方法。

2.对字符串的操作

该类问题是每次考试的重点和难点,特别是将字符串同指针结合起来以后,难度就更大了。考生在解决此类问题是应特别注意字符串的结束标志’\0’,它不仅仅用来作为字符串的结束标志,而且在对字符串进行操作的时候,它也是循环的结束标志。考生在复习该部分的时候,应该注意这样的几个基本问题:大小字母转换、奇偶数判别、删除或添加指定的字符和字符的移动。此外,考生应该牢固掌握指针的特性及字符串操作函数的使用和实现方法,特别是字符串连接函数与求子串函数,在以往的考试中多次要求考生自己编写,考生应对该知识点做重点掌握。

四、数值计算

该类型的题目在历年的机试中占22%,考查的机率也非常高。该类题目一般给定一个数列计算公式,然后要求考生编写一个函数类实现求数列的前n项的值、累加和或者积。在解决该类的问题,首先要找到给定数列的变化规律,然后根据其变化规律来编写一个单层或者双层的循环来求其相应的值。在编写程序的过程中,往往还会用到一些数学函数,如:sqrt、fabs()、pow()等,考生应该牢固掌握math.h中的一些常用数学函数的功能和使用方法。另外,还应该注意数据类型之间的区别,特别是float和int类型,不同的数据类型产生的运算结果也是不一样的。

五、对结构体的操作

该部分对非计算机专业的学生来说是一个难点,因为结构体在《数据结构》这门课程中应用最为广泛,但考生忽视对该知识点的复习,但在以往的机试中,有17%的题目是属于该类型。考生在复习这部分的时候,首先应注意结构体成员的两种不同的引用方法:结构体变量和指向结构体的指针,也就是结构体成员运算符’.’和指向运算符’->’,在编程的过程中,往往会涉及到结构体数组,其实这类数组除了数据类型是结构体以外,其它的特性和普通数组是一样的,结构体除了定义、赋值和初始化以外,它的其它操作和普通变量也是一样的,包括在结构体数组(记录)中进行查找、删除、求最大最小值等操作,我们应该用对待普通变量的方法来解决结构体的问题,这样的话,难度就可以大幅度的降低。

学习计算机程序设计中应注意的问题

1.熟悉编程环境

根据2007年9月教育部考试中心颁布的新大纲,二级C语言的编程环境由TC2.0改为VC++6.0,考生应该熟练掌握VC++6.0的使用方法,虽然VC支持鼠标操作,但是考生还是应该掌握几个常用快捷方式来提高编程效率。特别要注意在对程序进行改动以后要保存,要进行编译连接生成可执行(.exe)文件。

2.养成良好的程序设计风格

二级C语言机试中的程序设计题,一般来说程序都比较简短,源代码一般不超过5行,在题目指定的函数内编写程序。考生在答题的时候尽量采用易于理解而且比较简单的代码来解决问题,注意不要改动函数的参数,语句的界符“{}”也应该具有层次性的缩进,必要时,使用一定的注释来帮助自己理解程序。

3.谨慎使用指针

指针是C语言的精华,也是机试考查的重点内容,指针的使用非常灵活,在使用的指针的时候一定要注意对其进行初始化,所谓初始化也就是给指针一个初值,没有初值的指针是很危险的,除了一定得不到正确答案外,如果指针越界,容易引起死机。如果死循环带来的死机是“假死”,大部分可以用“Ctrl+Break”来恢复,但指针越界引起的死机却是真死,请考生一定要牢记。

4.熟练掌握循环结构

循环结构的程序是程序设计中涉及最多的知识点,根据以上的分析,我们可以看出几乎每一类题目都会涉及到使用循环来解决问题,因此考生应该掌握循环结构的特征和使用方法,以达到能够熟练使用的目标。应该引起注意的是,在编制循环结构程序的时候考生应该尽量使用“for”循环和“while”循环,避免使用“do……while”循环和“goto”语句,因为“for”循环和“while”编写出来的循环程序易于理解,不容易出错。

5.沉着应战,认真细心

二级C语言上机考试时间有限,虽然从以前的60分钟改为了90分钟,但是相对于其它语种的上机考试来说,二级C语言的上机时间还是非常紧迫的。考生在答题的过程中应该保持一个良好的心态和平静的心情,遇到问题的时候不能慌乱,最好能够在机试时带一张草稿纸和一支笔,在编程之前先画出程序的流程图来明确解题思路。在遇到程序错误时一定要根据错误代码检查相应位置,检查的过程中应该认真仔细,确保能够解决问题。

篇5:计算机c语言试题及答案

计算机c语言试题及答案

1.

#include “stdio.h”

main

{char c;

c=get);

while(c!='?') {putc);c=get); }

}

如果从键盘输入abcde?fgh(回车)

运行结果为:abcde

2.

#include

main()

{ char c;

while((c=get))!=’$’)

{ if(‘A’<=c&&c<=‘Z’)putc);

else if(‘a’<=c&&c<=‘z’)putc-32);}

}

当输入为ab*AB%cd#CD$时,运行结果为:ABABCDCD

3.

#include

main()

{ int x, y =0;

for(x=1;x<=10;x++)

{ if(y>=10)

break;

y=y+x;

}

printf(“%d %d”,y,x);

}

运行结果为:10 5

详见教材p120for语句

详见教材p126~128break,continue语句

for( 表达式1;表达式2;表达式3)

{

}

(1) 先求解表达式1

(2) 求解表达式2,若其值为真,执行循环体,然后执行 (3). 若为假,则结束循环,转到(5)

(3) 求解表达式3

(4) 转回上面 (2)继续执行

(5) 循环结束,执行for语句下面的一个语句

break ,跳出循环体;continue,结束本次循环(第i次循环),继续执行下一次循环(第i+1次循环)

此题 表达式1为x=1,表达式2(循环条件)为x<=10,表达式3为x++

初值x为1,y为0,循环条件(即表达式2)x<=10成立,进入循环体

第1次循环

执行if语句。0小于10,if语句的条件表达式不成立,不执行break;

执行y=y+x; y=0+1=1

转向表达式3,执行x++,x=x+1=1+1=2。循环条件x<=10成立,进入第2次循环

第2次循环

执行if语句。1小于10,if语句的条件表达式不成立,不执行break;

执行y=y+x; y=1+2=3

转向表达式3,执行x++,x=x+1=2+1=3。循环条件x<=10成立,进入第3次循环

第3次循环

执行if语句。3小于10,if语句的条件表达式不成立,不执行break;

执行y=y+x; y=3+3=6

转向表达式3,执行x++,x=x+1=3+1=4。循环条件x<=10成立,进入第4次循环

第4次循环

执行if语句。6小于10,if语句的条件表达式不成立,不执行break;

执行y=y+x; y=6+4=10

转向表达式3,执行x++,x=x+1=4+1=5。循环条件x<=10成立,进入第5次循环

第5次循环

执行if语句。10等于10,if语句的条件表达式成立,执行break,跳出循环。

从break跳出至for语句的下一条语句。执行printf(“%d %d”,y,x);

输出当前的y与x.结果为10 5

4.

#include

main( )

{char ch;

ch=get );

switch(ch)

{case‘A’ : printf(“%c”,’A’);

case‘B’ : printf(“%c”,’B’); break;

default: printf(“%s”,”other”);

} }

当从键盘输入字母A时,运行结果为:AB

详见教材p103,switch语句

switch(表达式)

{ case常量1 :语句1

case常量2 :语句2

┇┇ ┇

case常量n :语句n

default :语句n+1

}

其中表达式,常量1,…,常量n都为整型或字符型

case相当于给出执行程序的入口和起始位置,若找到匹配的常量,则从此处开始往下执行程序,不再匹配常量,直至遇到break或switch结束

本题过程:

首先从键盘接收一个字符’A’并将其放在变量ch中。

执行switch语句。Switch后面的条件表达式为ch,因此表达式的值即为字符’A’. 用字符’A’依次与下面的 case中的常量匹配。

与第1个case后的常量匹配,则从其后的语句开始往下执行程序(在执行过程中不再进行匹配。)因此先执行printf(“%c”,’A’),屏幕上输出A;再往下继续执行printf(“%c”,’B’),屏幕上输出B;再继续执行break, 此时跳出switch语句。

5.

#include

main( )

{ int a=1,b=0;

scanf(“%d”,&a);

switch(a)

{case 1: b=1;break;

case 2: b=2;break;

default : b=10;}

printf(“%d ”, b);

}

若键盘输入5,运行结果为:10

本题过程:

首先用scanf函数为变量a赋值为5。

执行switch语句。switch后面的条件表达式为a,因此表达式的值即为5. 用5依次与下面 case中的常量匹配。没有找到匹配的常量,因此两个case后的语句都不执行。执行default后面的语句b=10;将10赋给变量b。

输出变量b,结果为10

6.

#include

main()_

{ char grade=’C’;

switch(grade)

{

case ‘A’: printf(“90-100”);

case ‘B’: printf(“80-90”);

case ‘C’: printf(“70-80”);

case ‘D’: printf(“60-70”); break;

case ‘E’: printf(“<60”);

default : printf(“error!”);

}

}

运行结果为:

70-80

60-70

本题过程:

首先从键盘接收一个字符’C’并将其放在变量grade中。

执行switch语句。switch后面的条件表达式为grade,因此表达式的.值即为字符’C’. 用字符’C’依次与下面的 case中的常量匹配。

与第3个case后的常量匹配,则从其后的语句开始往下执行程序(在执行过程中不再进行匹配。)因此先执行printf(“70-80”);,屏幕上输出70-80,并换行;再往下继续执行printf(“60-70”),屏幕上输出60-70,并换行;再继续执行break, 此时跳出switch语句。

7.

#include

main()

{ int y=9;

for(;y>0;y- -)

if(y%3==0)

{ printf(%d”,- -y);

}

}

运行结果为:

852

详见教材p53,自增自减符号

此题 表达式1被省略,表达式2(循环条件)为y>0,表达式3为y--

初值y为9,循环条件(即表达式2)y>0成立,进入循环体

第1次循环

执行if语句。9%3==0,if语句的条件表达式成立,执行printf(%d”,- -y),即y先自减1变为8,然后在输出,因此屏幕上输出8

转向表达式3,执行y--,y=y-1=8-1=7。循环条件y>0成立,进入第2次循环

第2次循环

执行if语句。7%3不为0,if语句的条件表达式不成立,不执行printf(%d”,- -y)

转向表达式3,执行y--,y=y-1=7-1=6。循环条件y>0成立,进入第3次循环

第3次循环

执行if语句。6%3==0,if语句的条件表达式成立,执行printf(%d”,- -y),即y先自减1变为5,然后在输出,因此屏幕上输出5

转向表达式3,执行y--,y=y-1=5-1=4。循环条件y>0成立,进入第4次循环

第4次循环

执行if语句。4%3不为0,if语句的条件表达式不成立,不执行printf(%d”,- -y)

转向表达式3,执行y--,y=4-1=3。循环条件y>0成立,进入第5次循环

第5次循环

执行if语句。3%3==0,if语句的条件表达式成立,执行printf(%d”,- -y),即y先自减1变为2,然后在输出,因此屏幕上输出2

转向表达式3,执行y--,y=y-1=2-1=1。循环条件y>0成立,进入第5次循环

第6次循环

执行if语句。1%3不为0,if语句的条件表达式不成立,不执行printf(%d”,- -y)

转向表达式3,执行y--,y=1-1=0。循环条件y>0不成立,循环结束。

8.

#include

main()

{ int i,sum=0;i=1;

do{ sum=sum+i; i++; }while(i<=10);

printf(“%d”,sum);

}

运行结果为: 55

9.

#include

#define N 4

main()

{ int i;

int x1=1,x2=2;

printf(“”);

for(i=1;i<=N;i++)

{ printf(“%4d%4d”,x1,x2);

if(i%2==0)

printf(“”);

x1=x1+x2;

x2=x2+x1;

}

}

运行结果为:

1 2 3 5

8 132134

此题 首先为整型变量赋初值x1=1,x2=2

表达式1为i=1,表达式2(循环条件)为i<=N即i<=4,表达式3为i++

循环变量初值i为1,循环条件(即表达式2)i<=4成立,进入第1次循环

第1次循环

执行printf(“%4d%4d”,x1,x2);因此屏幕上输出12

执行if语句。1%2不为0,if语句的条件表达式不成立,不执行printf(“”);

执行x1=x1+x2=1+2=3;此时x1中的值已变为3

执行x2=x2+x1=2+3=5。

转向表达式3,执行i++,i为2。循环条件i<=4成立,进入第2次循环

第2次循环

执行printf(“%4d%4d”,x1,x2);因此屏幕上输出35

执行if语句。2%2==0,if语句的条件表达式成立,执行printf(“”);换行

执行x1=x1+x2=3+5=8;此时x1中的值已变为8

执行x2=x2+x1=5+8=13。

转向表达式3,执行i++,i为3。循环条件i<=4成立,进入第3次循环

第3次循环

执行printf(“%4d%4d”,x1,x2);因此屏幕上输出813

执行if语句。3%2不为0,if语句的条件表达式不成立,不执行printf(“”);

执行x1=x1+x2=8+13=21;此时x1中的值已变为21

执行x2=x2+x1=21+13=34。

转向表达式3,执行i++,i为4。循环条件i<=4成立,进入第4次循环

第2次循环

执行printf(“%4d%4d”,x1,x2);因此屏幕上输出2134

执行if语句。4%2==0,if语句的条件表达式成立,执行printf(“”);换行

执行x1=x1+x2=21+34=55;此时x1中的值已变为55

执行x2=x2+x1=34+55=89。

转向表达式3,执行i++,i为5。循环条件i<=4不成立,结束循环

10

#include

main( )

{intx, y;

for(x=30, y=0; x>=10, y<10; x--, y++)

x/=2, y+=2;

printf(“x=%d,y=%d”,x,y);

}

运行结果为:

x=0,y=12 11.

#include

#define N 4

main( )

{ inti,j;

for(i=1;i<=N;i++)

{ for(j=1;j  printf(“ ”);

printf(“*”);

printf(“”);

}}

运行结果为:

*

*

*

*

详见教材P41符号常量

用宏处理指令定义符号常量N为4,在编译过程中,遇到N即视为整数4。

外层for循环,表达式1为i=1,表达式2(循环条件)为i<=N,表达式3为 i++

内层for循环,表达式1为j=1,表达式2(循环条件)为j  首先计算外层循环的表达式1,i为1,使得循环条件i<=4成立,进入外层for循环体

外层for循环第1次此时i为1

内层循环j=1,使得循环条件j  执行printf(“*”);

执行printf(“”);换行

至此外层循环体执行完,计算外层循环的表达式3,i++,此时i为2. 使得循环条件i<=4

成立,再次进入外层for循环体

外层for循环第2次 此时i为2

内层循环j=1,使得循环条件j  第1次执行内层循环体printf(“ ”);

执行内层循环表达式3,j++为2,j  执行printf(“*”);

执行printf(“”);换行

至此外层循环体执行完,计算外层循环的表达式3,i++,此时i为3. 使得循环条件i<=4

成立,进入外层for循环体

外层for循环第3次 此时i为3

内层循环j=1,使得循环条件j  第1次执行内层循环体printf(“ ”);

执行内层循环表达式3,j++为2,j  第2次执行内层循环体printf(“ ”);

执行内层循环表达式3,j++为3,j  执行printf(“*”);

执行printf(“”);换行

至此外层循环体执行完,计算外层循环的表达式3,i++,此时i为4. 使得循环条件i<=4

成立,进入外层for循环体

外层for循环第4次 此时i为4

内层循环j=1,使得循环条件j  第1次执行内层循环体printf(“ ”);

执行内层循环表达式3,j++为2,j  第2次执行内层循环体printf(“ ”);

执行内层循环表达式3,j++为3,j  第3次执行内层循环体printf(“ ”);

执行内层循环表达式3,j++为4,j  执行printf(“*”);

执行printf(“”);换行

至此外层循环体执行完,计算外层循环的表达式3,i++,此时i为5. 使得循环条件i<=4

不成立,跳出外层for循环体

篇6:计算机二级C语言基本知识

C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

【考点1】C程序

C语言程序结构有三种: 顺序结构 , 循环结构(三个循环结构), 选择结构(if 和 switch)

【考点2】main函数

每个C语言程序中main 函数是有且只有一个。读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。

【考点3】存储形式

计算机的数据在电脑中是以二进制的形式保存。最低的存储单元是bit(位),位是由为 0 或者1构成。 byte 是指字节, 一个字节 = 八个位。数据存放的位置就是它的地址。

【考点4】注释

是对程序的说明,可出现在程序中任意合适的地方,注释从“/*”开始到最近一个“*/”结束,其间任何内容都不会被计算机执行,注释不可以嵌套。

【考点5】书写格式

每条语句的后面必须有一个分号,分号是语句的一部分。一行内可写多条语句,一个语句可写在多行上。

【考点6】标识符

合法的用户标识符考查:

合法的要求是由字母,数字,下划线组成。有其它元素就错了。

并且第一个必须为字母或则是下划线。第一个为数字就错了。

C语言标识符分如下3类

(1)关键字。它们在程序中有固定的含义,不能另作他用。如int、for、switch等。

(2)预定义标识符。预先定义并具有特定含义的标识符。如define、include等。

(3)用户标识符。用户根据需要定义的标识符,符合命名规则且不与关键字相同。

关键字不可以作为用户标识符号。main define scanf printf 都不是关键字。迷惑你的地方If 是可以做为用户标识符。因为If 中的第一个字母大写了,所以不是关键字。

【考点7】实型数据

实型数据的合法形式:小数形式和指数形式。掌握判定指数形式合法性。

2.333e-1 就是合法的,且数据是2.333×10-1。

考试口诀:e 前e 后必有数,e 后必为整数。

【考点8】字符

字符数据的合法形式::

'1' 是字符占一个字节,“1”是字符串占两个字节(含有一个结束符号)。

'0' 的ASCII 数值表示为48,'a' 的ASCII 数值是97,'A'的ASCII 数值是65。

字符型和整数是近亲:

char a = 65 ;

printf(“%c”, a); 得到的输出结果:a

printf(“%d”, a); 得到的输出结果:65

一般考试表示单个字符错误的形式:'65' “1”

字符是可以进行算术运算的,记住: '0'-0=48

大写字母和小写字母转换的方法: 'A'+32='a' 相互之间一般是相差32。

【考点9】整型数据

整型一般是两个字节, 字符型是一个字节,双精度一般是4 个字节:

考试时候一般会说,在16 位编译系统,或者是32 位系统。碰到这种情况,不要去管,

一样做题。掌握整型一般是两个字节, 字符型是一个字节,双精度一般是4 个字节就可以了。

【考点10】转义字符

转义字符的考查:

在程序中 int a = 0x6d,是把一个十六进制的数给变量a 注意这里的0x 必须存在。

在程序中 int a = 06d, 是一个八进制的形式。

在转义字符中, ’x6d’ 才是合法的,0 不能写,并且x 是小写。

‘141’ 是合法的, 0 是不能写的。

‘108’是非法的,因为不可以出现8。

【考点11】算术运算

算术运算符一共有+、―、*、/、%这五个。%符号两边要求是整数。不是整数就错了。

三种取整丢小数的情况:不是四舍五入是舍掉小数部分。

1、int a =1.6;

2、(int)a;

3、1/2; 3/2;

【考点12】强制类型转换

将一个运算对象转换成指定类型,格式为(类型名)表达式

一定是 (int)a 不是 int(a),注意类型上一定有括号的。

注意(int)(a+b) 和(int)a+b 的区别。前是把a+b 转型,后是把a 转型再加b。

【考点13】赋值

是表达式就一定有数值。

赋值表达式:表达式数值是最左边的数值,a=b=5;该表达式为5,常量不可以赋值。

复合赋值运算符:注意:a*=m+2 是 a=a*(m+2)

自加、自减表达式:假设a=5,++a(表达式的值为6), a++(表达式的值为5);

j=a++;等价于j=a;a=a+1; 而j=++a;等价于a=a+1;j=a;。

考试口诀:++在前先加后用,++在后先用后加。

【考点14】逗号运算

逗号表达式:优先级别最低; 表达式的数值逗号最右边的那个表达式的数值。

(2,3,4)的表达式的数值就是4。

【考点15】数制转换

一定要记住二进制 如何转换成十进制。

八进制是没有8 的,逢8 进1,018 的数值是非法的。

【考点16】位运算

会有一到二题考试题目。

C语言提供6种位运算符:按位求反~,按位左移<<,按位右移>>,按位与&,按位异或|,按位或^。

总的处理方法:几乎所有的位运算的题目都要按这个流程来处理(先把十进制变成二进制再变成十进制)。

异或运算的规则:0异或1得到1,0异或0得到0,1异或1得到0。可记为“相同为0,不同为1”。

见教材31页例1。

在没有舍去数据的时候,<<左移一位表示乘以2;>>右移一位表示除以2。

1.计算机二级c语言试题

2.计算机二级C语言复习建议

3.计算机二级C语言每日练习

4.计算机二级C语言重点知识点

5.计算机二级C语言练习题

6.计算机二级C语言模拟练习

7.计算机二级C语言考试冲刺练习

8.计算机二级C语言预测试题

9.计算机二级C语言选择题练习

10.计算机二级C语言测试题及答案

篇7:计算机二级C语言试题

2017计算机二级C语言试题有哪些呢?下面一起来看看~

用win7系统用什么练习编写c语言?

答:windows上就用微软的Visual Studio挺好的。

主页君专攻c语言?

答:不是,基本是工作项目中需要什么就学什么,但业余时间练练算法时还是习惯用c来写。

主页君,我想做网页,能告诉我从哪几个角度入手吗?

答:纯网页的话,最基本的html+css布局,javascript做交互脚本,如果是整个网站,还要做后端,php/python/java都可以,数据库mysql。

主页君,不知你会看见我的留言吗?一直想问你身边女编程人员多吗?

答:大家的留言我都能看见。女编程人员,这个名字好怪,还是叫做软件开发工程师妹子吧,就我呆过的一些环境来看,比例很低,差不多1/5。

我要看数据结构与算法。

答:今后会考虑做这个方向,但确实要花时间,敬请期待。

你要是在优酷上做视频就好了。

答:感谢支持,我不是大牛,纯业余时间跟大家交流,确实拿不出来时间跟精力做视频,不好意思了。

最后还是把昨天的答案放上来,也算有始有终

CABBD

(12)以下选项中,能用作用户标识符的是

A)void

B)8_8

C)_0_

D)unsigned

答案:C,void和unsigned都是保留字,变量名不能以数字开头,故8_8也不行

(13)阅读以下程序

#include

main

{ int case; float printF;

printf(“请输入2个数:”);

scanf(“%d %f”,&case,&pjrintF);

printf(“%d %f\n”,case,printF);

}

该程序编译时产生错误,其出错原因是

A)定义语句出错,case是关键字,不能用作用户自定义标识符

B)定义语句出错,printF不能用作用户自定义标识符

C)定义语句无错,scanf不能作为输入函数使用

D)定义语句无错,printf不能输出case的值

答案:A,原因答案里已经说了,这题没啥意思,实际工程中用不到,纯概念。

(14)表达式:(int)((double)9/2)-(9)%2的值是

A)0

B)3

C)4

D)5

答案:B,(double)9/2是4.5,(int)((double)9/2)是4,(9)%2是1,两者之差是3。

(15)若有定义语句:int x=10;,则表达式x-=x+x的值为

A)-20

B)-10

C)0

D)10

答案:B,原表达式等于 x= x - (x+x)= 10 - (10 + 10) = -10。

(16)有以下程序

#include

main()

{ int a=1,b=0;

printf(“%d,”,b=a+b);

printf(“%d\n”,a=2*b);

}

程序运行后的输出结果是

A)0,0

B)1,0

C)3,2

D)1,2

答案:D,printf打印的是表达式计算后的值。

篇8:计算机二级C语言测试题

计算机二级C语言测试题

计算机二级C语言测试题

1、设一棵满二叉树共有15个结点,则在该满二叉树中的叶子结点数为( )。

A.7 B.8 C.9 D.10

参考答案:B

参考解析:在具有n个结点的满二叉树,其非叶子结点数为int(n/2),而叶子结点数等于总结点数减去非叶子结点数。本题n=15,故非叶子结点数等于int(15/2)=7,叶子结点数等于15-7=8。

2、数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是( )。

A.控制流 B.加工 C.存储文件 D.源和潭

参考答案:A

参考解析:数据流图用于抽象描述一个软件的逻辑模型,它由一些特定的图符构成,包括4个方面,即加工、数据流、存储文件、源和潭。

3、对关系S和R进行集合运算,结果中既包含S中的所有元组也包含R中的所有元组,这样的集合运算称为( )。

A.并运算 B.交运算 C.差运算 D.积运算

参考答案:A

参考解析:关系的并运算是指由结构相同的两个关系合并,形成一个新的关系,新关系中包含两个关系中的所有元组。

4、下列方法中,属于白盒法设计测试用例的方法的是( )。

A.错误推测 B.因果图 C.基本路径测试 D.边界值分析

参考答案:C

参考解析:白盒测试方法也称为结构测试或逻辑测试,主要方法有逻辑覆盖测试、基本路径测试等。

5、设R是一个2元关系,有3个元组,S是一个3元关系,有3个元组。如T=RX S,则T的元组的个数为( )。

A.6 B.8 C.9 D.12

参考答案:C

参考解析:R为n元关系,有P个元组S为m元关系,有q个元组。两个关系笛卡儿积是一个n+m元的关系,元组个数是qXp。所以T的元组的个数为9个。

6、在数据库系统中,数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述是( )。

A.外模式 B.逻辑模式 C.概念模式 D.物理模式

参考答案:A

参考解析:外模式也称子模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,它是由概念模式推导出来的,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。…个概念模式可以有若干个外模式。

7、数据管理技术发展的三个阶段中,( )没有专门的软件对数据进行管理。

I.人工管理阶段

II.文件系统阶段

Ⅲ.数据库阶段

A.仅I B.仅Ⅲ C.I和II D.II和Ⅲ

参考答案:A

参考解析:数据管理技术发展的兰个阶段中,只有人工管理阶段,没有操作系统,没有管理数据的软件,数据处理方式是批处理。在文件系统阶段,操作系统中已经有了专门数据管理软件,一般称为文件系统。在数据库系统阶段,出现了统一管理数据的专门软件系统,即数据库管理系统。

8、数据库系统的核心是( )。

A.数据模型 B.软件开发 C.数据库设计 D.数据库管理系统

参考答案:D

参考解析:数据库管理系统DBMS是数据库系统的核心。DBMS是负责数据库的建立、使用和维护的软件。DBMS建立在操作系统之上,实施对数据库的统一管理和控制。用户使用的各种数据库命令以及应用程序的执行,最终都必须通过DBMS。另外,DBMS还承担着数据库的.安全保护工作,按照DBA所规定的要求,保证数据库的完整性和安全性。

9、以下叙述正确的是( )。

A.变量的作用域取决于变量定义语句的位置

B.全局变量可以在函数以外的任何部位进行定义

C.局部变量的作用域可用于其他函数的调用

D.一个变量说明为static存储类型是为了限制其他编译单元的引用

参考答案:D

参考解析:本题考查函数调用的变量作用域。全局变量不在任何函数俸内定义,作用域为整个文件i局部变量在函数体内定义,作用域仅为本次函数;static类型是静态变量,为了方便其他编译单元的引用,不能随意改变。一个函数包含两部分:函数首和函数体,函数体包括花括号内的所有语句。

10、下列选项中,不属于数据管理员(DBA)职责的是( )。

A.数据库维护 B.数据库设计

C.改善系统性能,提高系统效率 D.数据类型转换

参考答案:D

参考解析:数据库管理员(DataBaseAdministrator,DBA)是指对数据库的规划、设计、维护、监视等的人员,其主要工作如下:

·数据库设计。DBA的主要任务之一是数据库设计,具体地说是进行数据模式的设计。

·数据库维护。DBA必须对数据库中的数据安全性、完整性、并发控制及系统恢复、数据定期转储等进行实施与维护。

·改善系统性能,提高系统效率。DBA必须随时监视数据库的运行状态,不断调整内部结构,使系统保持最佳状态与效率。

篇9:计算机二级c语言试题

单项选择题,40 题,40 分(含公共基础知识部分 10 分);

程序填空题,3 小空,18 分;

程序改错题,2 个错误,18 分;

程序设计题,24 分。

篇10:计算机二级c语言试题

1.(A )是构成C语言程序的基本单位。

A、函数

B、过程

C、子程序

D、子例程

2.C语言程序从 C 开始执行。

A、程序中第一条可执行语句

B、程序中第一个函数

C、程序中的main函数

D、包含文件中的第一个函数

3、以下说法中正确的是( C )。

A、C语言程序总是从第一个定义的函数开始执行

B、在C语言程序中,要调用的函数必须在main( )函数中定义

C、C语言程序总是从main( )函数开始执行

D、C语言程序中的main( )函数必须放在程序的开始部分

4.下列关于C语言的说法错误的是( B ) 。

A、C程序的工作过程是编辑、编译、连接、运行

B、C语言不区分大小写。

C、C程序的三种基本结构是顺序、选择、循环

D、C程序从main函数开始执行

5.下列正确的标识符是(C )。

A、-a1

B、a[i]

C、a2_i

D、int t

5~8题为相同类型题

考点:标识符的命名规则

只能由字母、数字、下划线构成

数字不能作为标识符的开头

关键字不能作为标识符

选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)

6.下列C语言用户标识符中合法的是(B )。

A、3ax

B、x

C、case

D、-e2 E)union

选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);

7.下列四组选项中,正确的C语言标识符是( C )。

A、%x

B、a+b

C、a123

D、123

选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)

8、下列四组字符串中都可以用作C语言程序中的标识符的是( A)。

A、print _3d db8 aBc

B、I\am one_half start$it 3pai

C、str_1 Cpp pow while

D、Pxq My->book line# His.age

选项B中的“”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)

9.C语言中的简单数据类型包括(D )。

A、整型、实型、逻辑型

B、整型、实型、逻辑型、字符型

C、整型、字符型、逻辑型

D、整型、实型、字符型

10.在C语言程序中,表达式5%2的结果是 C 。

A、2.5

B、2

C、1

D、3

%为求余运算符,该运算符只能对整型数据进行运算。且符号与被模数相同。5%2=1; 5%(-2)=1;(-5)%2=-1;(-5)%(-2)=-1;

/为求商运算符,该运算符能够对整型、字符、浮点等类型的数据进行运算,5/2=2

11.如果int a=3,b=4;则条件表达式“aA、3

B、4

C、0

D、1

详见教材P97.

表达式1?表达式2:表达式3

先计算表达式1,

若表达式1成立, 则选择计算表达式2,并表达式2的值作为整个大表达式的值;

若表达式1不成立,则选择计算表达式3,并将表达式3的值作为整个大表达式的值

此题中的aa为3,b为4。a12.若int x=2,y=3,z=4 则表达式x

A、4

B、3

C、2

D、0

E)1

13.C语言中,关系表达式和逻辑表达式的值是( B ) 。

A、0

B、0或1

C、1

D、‘T’或’F’

14. 下面( D )表达式的值为4.

A、11/3

B、11.0/3

C、(float)11/3

D、(int)(11.0/3+0.5)

14~16题为同一类型

详见教材P54~56.

(1)相同数据类型的元素进行数学运算(+、-、*、/)得到结果还保持原数据类型。

(2)不同数据类型的元素进行数学运算,先要统一数据类型,统一的标准是低精度类型转换为高精度的数据类型。

选项A,11与3为两个整数,11/3结果的数据类型也应为整数,因此将3.666666的小数部分全部舍掉,仅保留整数,因此11/3=3.

选项B,11.0为实数,3为整数,因此首先要统一数据类型,将整型数据3转换为3.0,转换后数据类型统一为实型数据,选项B变为11.0/3.0,结果的数据类型也应为实型数据,因此选项B 11.0/3=3.666666

选项C,先将整数11强制类型转换,转换为实型11.0,因此选项C变为11.0/3,其后计算过程、结果与选项B同

选项D,首先计算11.0/3,其计算过程、结果与选项B同,得到3.666666;再计算3.666666+0.5=4.166666,最后将4.166666强制类型转换为整型,即将其小数部分全部舍掉,结果为4

15.设整型变量 a=2,则执行下列语句后,浮点型变量b的值不为0.5的是( B )

A、b=1.0/a

B、b=(float)(1/A、

C、b=1/(float)a

D、b=1/(a*1.0)

16. 若“int n; float f=13.8;”,则执行“n=(int)f%3”后,n的值是(A)

A、1

B、4

C、4.333333

D、4.6

“(int)f“表示将f中的值强制类型转换为整型,即将13.8的小数部分舍掉,转换为13;然后计算13%3,结果为1,再将结果赋给变量n,因此n的值为1

17. 以下对一维数组a的正确说明是: D

A、char a(10);

B、int a[];

C、int k=5,a[k];

D、char a[3]={‘a’,’b’,’c’};

详见教材P143~144,一维数组的定义、初始化

类型符 数组名 [常量表达式]

类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;常量表达式是指数组的长度(数组中包含元素的个数),其值只能是整数,不可以是变量,而且从1开始计数。

选项A,常量表达式只能放在中括号 [ ]中

选项B,只有在对数组初始化(即赋值)的时候才可以省略数组的长度,B中并未对a进行初始化。

选项C,常量表达式不能为变量。

18.以下能对一维数组a进行初始化的语句是:( C )

A、int a[5]=(0,1,2,3,4,)

B、inta(5)={}

C、int a[3]={0,1,2}

D、int a{5}={10*1}

详见教材P145,一维数组的定义、初始化

选项B,D,常量表达式只能放在中括号 [ ]中

选项A,数组可以看做是若干个相同数据类型元素的有序集合,因此以集合的形式对其初始化,使用{ }对其初始化,选项A用了.

19.在C语言中对一维整型数组的正确定义为 D 。

A、int a(10);

B、int n=10,a[n];

C、int n;a[n];

D、#define N 10

int a[N];

20、已知:int a[10]; 则对a数组元素的正确引用是( D )。

A、a[10]

B、a[3.5]

C、a(5)

D、a[0]

详见教材P144,数组元素的引用

数组名[下标]

引用数组元素时,[ ]中的下标为逻辑地址下标,只能为整数,可以为变量,且从0开始计数

int a[10]表示定义了一个包含10个整型数据的数组a,数组元素的逻辑地址下标范围为0~9,即a[0] 表示组中第1个元素; a[1] 表示组中第2个元素; a[2] 表示组中第3个元素; ......;a[9] 表示组中第10个元素.

选项A,超过了数组a的逻辑地址下标范围;

选项B,逻辑地址下标只能为整数

选项C,逻辑地址下标只能放在[ ]中

21.若有以下数组说明,则i=10;a[a[i]]元素数值是(C )。

int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};

A、10

B、9

C、6

D、5

先算a[a[i]]内层的a[i],由于i=10,因此a[i]即a[10].

a[10]对应下面数组中的元素为9. 因此a[a[i]]即为a[9]

a[9]对应下面数组中的元素为6. 因此a[9]即为6

22.若有说明:int a[][3]={{1,2,3},{4,5},{6,7}}; 则数组a的第一维的大小为: ( B )

A、2

B、3

C、4

D、无确定值

5 7

D、3 6 9

二维数组的一维大小,即指二维数组的行数,在本题中,按行对二维数组赋值,因此内层有几个大括号,数组就有几行

23.对二维数组的正确定义是(C )

详见教材P149~152,二维数组的定义、初始化

类型符 数组名 [常量表达式][常量表达式]

二维数组可以看做是矩阵

类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;第一个常量表达式是指数组的行数;第二个常量表达式是指数组的列数;常量表达式的值只能是整数,不可以是变量,而且从1开始计数。

一维数组初始化时可以省略数组长度

二维数组初始化时可以省略行数,但不能省略列数

选项A,B,都省略了列数

选项D,不符合二维数组定义的一般形式,行、列常量表达式应该放在不同的[]中

A、int a[ ][ ]={1,2,3,4,5,6};

B、int a[2] []={1,2,3,4,5,6};

C、int a[ ] [3]={1,2,3,4,5,6};

D、int a[2,3]={1,2,3,4,5,6};

24.已知int a[3][4];则对数组元素引用正确的是__C___

A、a[2][4]

B、a[1,3]

C、a[2][0]

D、a(2)(1)

详见教材P150,数组元素的引用

数组名[下标] [下标]

引用数组元素时,[ ]中的下标为逻辑地址下标,只能为整数,可以为变量,且从0开始计数

第一个[下标]表示行逻辑地址下标,第二个[下标]表示列逻辑地址下标。

本题图示详见P149图6.7

因此a的行逻辑地址范围0~2;a的列逻辑地址范围0~3;

选项A,列逻辑地址下标超过范围

选项B,D,的引用形式不正确。

25.C语言中函数返回值的类型是由 A 决定的.

A、函数定义时指定的类型

B、return语句中的表达式类型

C、调用该函数时的实参的数据类型

D、形参的数据类型

26. 在C语言中,函数的数据类型是指(A )

A、函数返回值的数据类型

B、函数形参的数据类型

C、调用该函数时的实参的数据类型

D、任意指定的数据类型

27.在函数调用时,以下说法正确的是( B )

A、函数调用后必须带回返回值

B、实际参数和形式参数可以同名

C、函数间的数据传递不可以使用全局变量

D、主调函数和被调函数总是在同一个文件里

28. 在C语言中,表示静态存储类别的关键字是: ( C )

A、auto

B、register

C、static

D、extern

29.未指定存储类别的变量,其隐含的存储类别为(A )。

A、auto

B、static

C、extern

D、register

30. 若有以下说明语句:

struct student

{ int num;

char name[ ];

float score;

}stu;

则下面的叙述不正确的是: (D )

A、struct是结构体类型的关键字

B、struct student 是用户定义的结构体类型

C、num, score都是结构体成员名

D、stu是用户定义的结构体类型名

31.若有以下说明语句:

struct date

{ int year;

int month;

int day;

}brithday;

则下面的叙述不正确的是__C___.

A、struct是声明结构体类型时用的关键字

B、struct date 是用户定义的结构体类型名

C、brithday是用户定义的结构体类型名

D、year,day 都是结构体成员名

32. 以下对结构变量stul中成员age的非法引用是 B

struct student

{ int age;

int num;

}stu1,*p;

p=&stu1;

A、stu1.age

B、student.age

C、p->age

D、(*p).age

33.设有如下定义:

struck sk

{ int a;

float b;

}data;

int *p;

若要使P指向data中的a域,正确的赋值语句是 C

A、p=&a;

B、p=datA、a;

C、p=&datA、a;

D、*p=datA、a;

34.设有以下说明语句:

typedef struct stu

{ int a;

float b;

} stutype;

则下面叙述中错误的是( D )。

A、struct是结构类型的关键字

B、struct stu是用户定义的结构类型

C、a和b都是结构成员名

D、stutype是用户定义的结构体变量名

35.语句int *p;说明了 C 。

A、p是指向一维数组的指针

B、p是指向函数的指针,该函数返回一int型数据

C、p是指向int型数据的指针 // 指针的定义教材P223

D、p是函数名,该函数返回一指向int型数据的指针

36.下列不正确的定义是( A )。

A、int *p=&i,i;

B、int *p,i;

C.int i,*p=&i;

D、int i,*p;

选项A先定义一个整型指针变量p,然后将变量i的地址赋给p。然而此时还未定义变量i因此编译器无法获得变量i的地址。(A与C对比,选项C先定义变量i,则在内存中为i分配空间,因此i在内存空间的地址就可以确定了;然后再定义p,此时可以为p赋i的地址,C正确)

37. 若有说明:int n=2,*p=&n,*q=p,则以下非法的赋值语句是: ( D )

A、p=q

B、*p=*q

C、n=*q

D、p=n

p,q同为整型指针变量,二者里面仅能存放整型变量的地址。

选项A,q中为地址,因此可将此地址赋给p

选项B,*p表示p所指向对象n的内容,即一个整数;*q表示q所指向对象的内容,由于在定义q时为其初始化,将p中n的地址给q,因此p中存放n的地址,*q表示q所指向对象n的内容.因此*p=*q 相当于 n=n;

选项C,n=*q 等价于n=n;

选项D,p中只能存放地址,不能将n中的整数值赋给p

38.有语句:int a[10],;则 B 是对指针变量p的正确定义和初始化。

A、int p=*a;

B、int *p=a;

C、int p=&a;

D、int *p=&a;

选项A,a是数组名,不是指针变量名,因此不可用*标注数组名a

选项C,a是数组名,数组名就是地址,无需再用地址符号。而且在定义指针变量p时,应在变量名前加*,标明p是指针变量

选项D,a是数组名,数组名就是地址,无需再用地址符号。

39.若有说明语句“int a[5],*p=a;”,则对数组元素的正确引用是( C )。

A、a[p]

B、p[a]

C、*(p+2)

D、p+2

首先定义一个整型数组a,a的长度为5,然后定义一个指针变量p,并同时对p进行初始化,将数组a的地址赋给p。因此此时p中存放的数组a的首地址,即数组中第一个元素a[0]的地址。

对于数组元素下标的引用(详见p144), 一般形式 数组名[下标] 其中下标为逻辑地址下标,从0开始计数,方括号中的下标可以是变量,可以是表达式,但结果一定要是整数。

选项A,p中存放的是地址,不是整数,不能做数组元素的下标

选项B,a是数组名,数组名就是地址,不是整数,不能做数组元素的下标

选项C,(重点!!!详见p231~234) p+2表示指向同一数组中的下两个元素的地址,当前p指向a[0],则p+2表示a[2]的地址,因此*(p+2)表示a[2]的内容

40. 有如下程序

int a[10]={1,2,3,4,5,6,7,8,9,10},*P=a;

则数值为9的表达式是 B

A、*P+9

B、*(P+8)

C、*P+=9

D、P+8

(重点!!!详见p231~234)

首先定义一个整型数组a,a的长度为5,然后定义一个指针变量P,并同时对P进行初始化,将数组a的地址赋给P。因此此时P中存放的数组a的首地址,即数组中第一个元素a[0]的地址。

数组中9对应的是a[8], 选项B,P+8表示数组中后8个元素的地址,即a[8]的地址。*(P+8)则表示该地址内所存放的内容,即a[8]的值。

选项A,*P表示P所指向对象的内容,此时P指向a[0], *P即a[0]的值1. *P+9=1+9=10

选项C,*P表示P所指向对象的内容,此时P指向a[0], *P即a[0]的值。因此*P+=9 即*P =*P+9, 等价于a[0]=a[0]+9.

选项D,P+8表示数组中后8个元素的地址,即a[8]的地址,而非a[8]中的值。

篇11:怎么有效学习计算机c语言

学习计算机c语言的方法

一、一字真言

各位看官,学好C语言,其实只需一个字,那就是“编”。

(一)编。

学习C语言,乃至学习所有的语言,都讲究一个动手——不是动手打人,而是动手编程序。你必须通过编写程序来熟悉知识、理解知识。倘若只学不编,只看别人的程序,自己不动手写,是不能从入门到精通的。要知道,在计算机界,只说不练的人很欠揍。试想一下,你在哪里辛辛苦苦的编程序,他却站在一边,如老板一样喋喋不休,对你提出这项意见,那项思路,甚至畅谈自己编程将会如何如何,好像很牛皮的样子,但就是不编一行代码。估计大家碰上如此之人,只会一个动作,那就是点击“踩”。

一个“编”字就可以学好C语言吗?真的如此简单吗?不是的,仅仅“编”是不够的,你还需要“我编”。

(二)我编。

请注意修辞,“我”编!这个“我”其实就是只“你”,也就是学习C语言的人。

大家在学习C语言时,要多编写程序,比如学习链表时,要自己编写链表程序,甚至自己编写俄罗斯方块等游戏程序来练习。不过有个前提条件,你必须自己编写这些所有的程序才有效果,如果你从网络上下载了某某源代码,或者拷贝了同学的程序,任何大言不惭的说是自己编写的,那么我也只能大言不惭的告诉你,这样做出了养成偷窃的习惯外,没有任何效果!

有同学会问,那么“亲自”编程序总可以精通C语言了吧,其实还差一点点,仅仅“编”是不够的,只是“我编”还不足以精通,为了达到C语言的最高峰,你还需要“我编编编”。

(三)我编编编。

“编”字重复三次,这里的“三”,代表多,意思是你必须多多的编写程序。亲自编写10行代码等于没有编,亲自编写1000行代码是远远不够的,亲自编写1万行代码还马马虎虎,亲自编写10万行代码,你绝对成为程序员中的战斗员。

乍一看10万行代码,估计有同学会先直挺挺的躺下去,然后又眼珠一转站了起来——他们想起了坏主意。“不就是10万行吗,容易!现在的编程工具都有代码生成功能,随便在VC中用鼠标拖曳几下,搞一个MFC窗口程序,系统就自动生成了几百行的代码。在搞几个三方控件,几千行代码就生成了!”

再次声明,“编编编”是有前缀的,那就是“我”,也就是学习者自己,使用代码自动生成工具产生的代码难道是“学习者”编写的?

要不上有政策,下有对策,“不用代码生成器,那么就抄,照着输入代码就行!”哎,人不能无耻到那种地步!这十万行代码要“你”亲自完成,亲自在脑海中发芽、生根,再亲自逐行输入。这又不是什么政绩任务,也不是什么形象工程,欺骗别人最终只能是自欺欺人。

二、两种态度

一般人提起C语言,常常一个字如影随形涌上心头,那就是“难”!害怕啊,C语言真是太恐怖了,传说中的指针真是太锋利了,一不留神就把系统划破,搞出几个死机重启都是太正常不过了。

其实没有必要这么担心,本朝太祖曾经说过:“在战略上藐视敌人,在战术上重视敌人。”

(一)战略上藐视C语言

其实,C语言也就是一个普通的语言而已,别把它想象的太难!与Java相比,C语言也只是程序复杂一点、代码冗长一点、库函数少上一点、三方控件难学一点,编译工具简陋一点、指针麻烦一点,其他的都差不了多少,程序设计思想总是一样、程序构建总是相同的、程序语法总是类似的、程序逻辑总是差不多的。

没有必要对C语言谈虎色变,把他当成一门普通的语言就行了。要知道,就算C语言再难,总比汇编语言容易掌握、比机器语言容易记忆、比英语容易掌握。所以要自信!一切C语言都是纸老虎。

(二)战术上重视C语言

虽然我们在C语言面前保持了激昂的斗志,虽然我们无所畏惧。但是真正在学习得过程中,还是务必保持谦虚谨慎的态度,戒骄戒躁,不要因为搞了一两个俄罗斯方块游戏程序就洋洋自得,以为老子天下第一,甚至只遍了10行代码,就到博客中到处骂人,到处“踩”人的帖子。要知道,“雄关漫道真如铁,而今迈步从头越”,无论你学了多少,只要还没有走上工作岗位,那么万里长征就只是才迈出了第一步,还有很长的道路等待着你。

三、三个框架

学习C语言,“编”不是问题,问题是“编什么”、“怎么编”、“编多深”,下面就来解决这些问题。

(一)静心不静

1、静心。

学习的过程,是一个漫长而枯燥的过程,学习者必须要有吃苦耐劳的准备,静下心来,从大家的视觉中消失,经受一个长时间的编程学生过程。吃尽苦中苦,方成人上人!等你重新回到大家的视野时,你会有一个蜕变,那时一切的痛苦都将化为甘甜。

温瑞安先生有一部武侠小说,叫做《请借夫人一用》,我们这里也借用一下。当然不是借用别人的女朋友,而是了解一下主人翁的学习历程。主人翁韦青青青出场时浑然是一个高手,他把一千零一招的功夫柔和在一招之中,但是在其出场之前,江湖上没有人知道韦青青青这一号人物,因为他正在十年如一日的专心练功,正是这种练功时的不为人知,才造就了了日后的温瑞安小说高手。

不谈武侠,来个IT版的例子。在遥远的大洋彼岸,在微软的IE横行之前,在互联网刚刚起步之时,有一个叫做“网景”的浏览器占据了市场99%的份额,网景公司在当时的美国更是比易中天还如日中天。可是,大家知道这个“网景”浏览器是谁开发的吗?是一个学生,他在大学中不显山不漏水,别的同学每天考虑着泡MM,他却每天除了上课就是泡机房,是上也泡,下也泡,终于泡出了浏览器。

所以说,静下心来,无论其他同学在多么兴奋的展示他们的某某系统,他们的某某网站,既然你选择了学习C语言,那么以韦青青青为榜样吧,总有一天,你会一举成名天下知的。

2、不静

学习C语言,务必不可以急躁,务必一步一个脚印,此乃静心。但是,学习C语言,也不可以太过沉默,一个人呆在机房里闭门造车妄想着创造出某个绝世程序然后成为中国的比尔盖茨是不可能的。

学习靠自己,所以大部分时候我们需要自己思考、闭关修炼。但是一个人的力量终究是有限的,很多时候我们需要借助外力。比如不懂的地方咨询老师,不明白的地方可以与同学相互讨论等等,都是可以的。

有很多同学,学习时碰上困难,遇上了麻烦,于是自己冥思苦想——这是对的——还是得不到结果,于是故意回避不闻不问——这是自欺欺人。有同学说,那是因为无人可问,问老师,貌似大学老师总是神龙见头不见尾,根本找不到;问网络大虾,网络大虾们经常不在线,就算在线,面对洋洋洒洒的留言也视而不见,更别提回复了;问同学,别提了太丢面子!大家同学而已,为什么要问他,问他岂不是说明自己低人一等吗,不问!

其实,大学之中同学之间相互讨论是最可行的一种做法,毕竟一个王重阳没有时间指点全真七子,网络大虾比投名状中的兄弟还不可靠,所以除了自己多思考就是同学之间多讨论了。不要担心问问题会低人一等,老祖宗有一句话叫做“不耻下问”,虽然你的水平比我低上一点点,但是,我不觉得向不如自己的问提问是耻辱。多好的阿Q精神啊,用这点!

只有静心,才可以更好的学到知识;只有不静心,才可以更快的学到知识。

(二)深入不深

1、深入

学好C语言,就一定不能浮躁,要深入的学习知识。

其实,以上的话就极其浮躁,极其不深入。谁不知道要深入学习啊,但是你的告诉大家,到底什么内容属于深入学习的内容。

其实,浮躁就是学习知识就是浮于表面,没有深入理解专业知识。表现在编程上就是只想编写一些所谓漂亮的、能够拿得出手的程序,而对于一些底层的支持程序置之不理。

有的同学喜欢编写一些漂亮的程序,比如设计漂亮的网页,使用某某工具开发某某‘大型’系统等等,当然这都是人之常情。正如鲁迅先生所说,文章写出来总是希望拥有更多的读者,除非是写给恋人的。程序编出来,总是希望拥有更多用户,除非是专门为爱人开发的。但问题是,只编写这类程序是不够的,是有缺陷的。

这些所谓的程序,往往只需要对知识应用,并不需要刨根究底研究知识的本身,甚至有很多加入了很多相当专业的内容,并不适合于初学者学习。比如VC中的MFC就是一个典型的误导初学者的工具。利用MFC可以很方便的编写出DIAG界面程序或者视图文档程序,从表面上看风光无限,但对初学者却祸害无穷!假如使用VC学习C++,大部分时间将用于消息的处理,控件的处理,还要阅读大量的视图文档结构类库说明,这些操作将耗费了你大量的时间,得不偿失。而且VC++的大部分编程是在某些位置插入代码,至于C++部分系统自动实现了,留给你的是纯C语言操作。同学请注意,你学习的是C++,不是VC类库,也不是VC操作!

比如使用数据结构,就必须自己编写有关链表、队列和栈等内容,你是在学习,又不是工作,当然得用自己编写的东西呢。

又比如说C语言的内存分配函数,就是那个malloc和free。一般人直接调用就行了,但是计算机专业的学生不应该止步于此,而应该思考这两个函数的系统实现方法,并且编程序模拟内存分配和释放。设计这样的程序,不但可以增强动手能力,还可以加深对计算机知识的理解,一举多得,何乐而不为。

2、不深

深入学习C语言是极其应该的,但是大家也必须有所侧重,不能胡子眉毛一把抓,所有的东西统统深入,具体表现在两个方面:

其一、一些知识范围不可过于深入。

有一些知识,属于偏僻的内容,既不是基础,日后工作中也很难碰上,而且还极度困难,像这样的东西,了解即可,完全没有必要深入。比如说某同学心血来潮,要编写一个漂亮的输入法软件,于是苦心学习了有关输入法的所有知识,还妄图气死清华紫光,饿死搜狗拼音,于是仔细研究输入法的犄角旮旯。其实这些知识均相当偏僻,了解即可,完全没有必要打破沙锅问到底。

其二、一些界面或者不必要的功能不可过于深入。

大家编写的程序,往往伴随大量的交互式界面设计。事实上,编程有个二八原则,即编写80%的核心内容将耗费你20%的时间,而另外20%的功能将耗费你80%的时间。实际上,作为C语言学习,深入编写好那80%的核心功能就可以了,耗费80%的时间去深入完善那些20%的功能,得不偿失!

所以,练习用的程序,最好是一些基础的、底层的实现,不要有太多花俏的图像和交互式操作。当然也可以设计一些简单的具备图形界面的小游戏,但此时你应该将精力更多注重于游戏本身的设计,而不是游戏的画面风格和动画效果上。

学习C语言,有所为有所不为。

(三)枯燥不枯

1、枯燥

学海无涯苦作舟,学习当然是一个枯燥的过程。用语言设计程序,表面上程序漂漂亮亮风光无限,其实风光的背后是黑漆漆的屏幕和冗长的代码。程序员是把美丽献给别人,把枯燥留给自己的职业。

所以,学习C语言,就必须多设计一些枯燥的、无趣的实例。当flash程序员在展示图片时,C语言程序员要去学习空洞的0和1的图片格式;当Java程序员设计网站时,C程序员要去理解抽象的HTTP协议;当.net程序员使用对象托管时,C程序员总是要考虑内存的申请与释放;当C++程序员在欢乐的使用STL库时,C程序员必须自己搭建所有的数据结构。

在C语言的学习路上,绝对没有学习其他语言那么多鲜花,这是每一个C语言爱好者必须接受的事实。

2、不枯

其实,人都是需要动力的,凭什么别的程序员可以通过漂亮的程序享受MM的崇敬和同学的赞叹,而C语言程序员就只能在0和1的世界中与电脑沟通。其实,学习C语言的过程完全可以是快乐的。

大家在基础内容了解的差不多时,完全可以循序渐进设计一些简单的趣味游戏程序,从贪吃蛇到俄罗斯方块,从搞怪碰碰球到连连看,从扫雷到雷电,甚至还可以是植物大战僵尸和愤怒的小鸟,编写一些在界面上简化的趣味游戏程序来,同意可以激起自己的兴趣并获取老师、同学尤其是MM的阵阵掌声。

枯燥,是因为学习并非玩耍。不枯,是因为要像玩耍一样的学习。

四、四项注意

(一)错误观点:C语言低人一等

由于C语言常常应用于一些服务器程序,没有漂亮的界面,在一些同学的心目中,C语言程序员就成了IT民工的代名词。类似于煤矿工人,整天生活在地底下。而那些Java程序员,.net程序员则成了白领丽人。

(二)错误观点:C语言高人一等

与第一种情况相反,一部分同学则认为C语言才是语言正统。俗话说:真正的程序员用C,聪明的程序员用delphi。那么其他的语言统统是神马牌浮云,不值一提。其他的程序员,无论聪明也好,愚蠢也罢,都是盗版水货。

(三)错误观点:C语言是忠贞情人。

弱水三千,只取一瓢。有人在爱情上的忠贞,有人去在语言上忠贞,有人如斯内普般一生只爱一个女人,有人欲效仿之,一生只使用一种语言。

正如人生而平等一样,其实,语言也没有高低贵贱之分,只有适合于不适合之分。Java适合做WEB开发,C语言适合服务器,C++适合做游戏,等等。真正的程序员,不是只使用C语言的人,而是到什么山唱什么歌。任何语言、任何数据库、任何操作系统对他来说都只是工具,呼之能来、来之能战、战之能胜、挥之能去。当JQuery方便时,我不直接用JavaScript;当速度优先时,我不用Java;当稳定优先时,我不用Windows。总之,倚天剑也好,屠龙刀也罢,统统是工具,为我所用,为我所奴役。

(四)光说不练假把式

学习C语言的真言是“编”,但是也有同学会反驳,“这么简单的程序,也需要我亲自编写吗?”、“这个程序我看一眼就知道怎么做了”、“跳过这个程序,直接编写后面的程序”、“不要把天才浪费在这种小程序上”等等之类的言论不绝于耳。

上面其实就是典型的“眼高手低”。

大家在高中学习数学时常常有这样的体会:一看就会,一做就错。计算机编程其实也是一样,咋一看简简单单,谁都可以说出个丁三卯四来,但是真正上一实战,手也抖了,腰也弯了,脑袋也浆糊了。要么半天写不出一行代码,要么编译就是报错,怎么查也查不出原因之所在。

所以,这里奉劝各位“高手”,实践出高手。是骡子是马,拉出来溜溜。请那些所谓的“高手”先试着做一两个作业,真正得心应手一气呵成才才是真正的高手,否则,老老实实的地毯式编程吧。

C语言初学者必读的十句话

一、一定要养成一个规范标准的代码排版格式,好的排版会让帮助你的人事半功倍。

二、一定要培养自己查找错误的能力,要记住别人只帮你一时。

三、一定要养成写注释的习惯,特别是你的代码要给别人看时。

四、遇到问题,一定不要立刻问别人,其实很多问题都是自己不小心所致,回头看看书你可能会明白原来这也很简单。

五、多看看头文件中的内容,它能告诉你标准地调用库函数的方法。

六、书上的程序其实都是比较经典的,何不在上机运行一下这些程序,看看你对程序的理解力是怎么样的。

七、优秀的程序员不只对书本上的知识了解很透澈,而且对更深层次的知识有着强烈地吸引力。

八、一定要跟上世界的脚步,闭门造车会导致你失败的很重要的原因。

九、一定要认定一个方向,不要什么语言都想学,没必要,你也没有这个精力。

十、一定要培养好自己的阅读代码的能力,必竟现在软件项目不是一个人能完成的。

计算机二级c语言考试攻略

全国计算机等级考试二级C语言四本书:

一、谭浩强《C程序设计》第三版(这本书只适合考二级,不适合深入学习)

二、二级《公共基础知识》 高等教育出版社

三、历年真题,而不是模拟题

四、二级上机习题集《南开100题》,也就是俗称的南开百题,

要是笔试部分,那就历年真题最好不过了,尽量少做模拟题,通过真题反复练三遍,过是没问题的,在学习的过程中最好边学理论知识边上机实践验证。

公共基础知识有效复习方法:

1、买一本高等教育出版社出版的计算机等级考试二级公共基础知识,一定要高教出版社的,没有多厚,挺薄的一本书;

2、历年真题,每份试题的选择题前十道,填空题前五道都是考二级的公共基础知识试题;

3、先把高教的公共基础知识认真地看一遍,一定要认真看,“认真”的标准是:知道这本书上讲的知识点,遇到试卷上不会的问题,能够迅速的在书上找到,而不用在看书的第一遍就死记书上的内容;

4、做两套试卷上的公共基础知识题目,两套就可以了,主要是感觉一下真题的难度;

5、把书看第二遍,这一遍是大略的看,此时结合做完两套题目的感受,把书上的知识点串成一个整体,这时要用好书本上目录的功能,通过目录反复联想,让自己的大脑中有一个整体框架;

6、这时用较集中的时间把剩余的公共基础知识题目做完,一定要在较集中的时间内做完,比如一个上午或一个下午(题目不是很多,也不会很难),因为这样能更好的感受到长考内容和考点;

7、把所做题目中的错题在书上找到改正的依据;

8、把全部试题(不管是做对的还是做错的)再做一遍,再纠正错题;

9、把前几次的错题再反复做两遍;

10、考试前再把所有试题看一遍。

11、等着拿公共基础知识的满分!!

篇12:计算机二级c语言试题

计算机二级c语言试题

多花点时间看看书,然后做做题,计算机二级完全没有问题。下面是计算机二级c语言试题,欢迎练习。

1、以下叙述中正确的是

A.只要适当地修改代码,就可以将do-while与while相互转换

B.对于“for(表达式1;表达式2;表达式3)循环体”首先要计算表达式2的值,以便决定是否开始循环

C.对于“for(表达式1;表达式2;表达式3)循环体”,只在个别情况下才能转换成while语句

D.如果根据算法需要使用无限循环(即通常所称的“死循环”),则只能使用while语句

参考答案:A

参考解析:B选项中,for语句中需要先求解先求解表达式1;C选项中,for语句使用最为灵活,它完全可以取代while语句;D选项中,对于死循环,也可以使用for语句。因此A选项正确。

2、以下叙述中正确的是

A.两个字符串可以用关系运算符进行大小比较

B.函数调用strlen(s);会返回字符串S实际占用内存的大小(以字节为单位)

C.C语言本身没有提供对字符串进行整体操作的运算符

D.当拼接两个字符串时,结果字符串占用的内存空间是两个原串占用空间的和

参考答案:C

参考解析:本题考查字符串处理函数strien、strcat、strcmp。B选项中strlen返回的是字符串s实际占用内存大小加上结尾符,A选项中不能用关系运算符进行大小比较,可以使用strcmp。D选项当使用连接函数strcat时,内存空间会减少一个字符位置。

3. 下列不正确的定义是( )。

A、int *p=&i,i;

B、int *p,i;

C.int i,*p=&i;

D、int i,*p;

参考答案:A

参考解析:选项A先定义一个整型指针变量p,然后将变量i的地址赋给p。然而此时还未定义变量i因此编译器无法获得变量i的地址。(A与C对比,选项C先定义变量i,则在内存中为i分配空间,因此i在内存空间的地址就可以确定了;然后再定义p,此时可以为p赋i的地址,C正确)

4.下列数据中属于“字符串常量”的是( )。

A、“a”

B、{ABC}

C、‘abc\0’

D、‘a’

参考答案:A

参考解析:若干个字符构成字符串

在C语言中,用单引号标识字符;用双引号标识字符串。选项B,C,分别用{}和’’标识字符串。选项D,标识字符。

5.已知char x[]=”hello“, y[]={'h','e','a','b','e'};, 则关于两个数组长度的正确描述是 .

A、相同

B、x大于y

C、x小于y

D、以上答案都不对

参考答案:B

参考解析:can'kaoC语言中,字符串后面需要一个结束标志位'\0',通常系统会自动添加。

对一维数组初始化时可采用字符串的形式(例如本题数组x),也可采用字符集合的形式(例如本题数组y)。在以字符串形式初始化时,数组x不尽要存储字符串中的字符,还要存储字符串后的结束标志位,因此数组x的长度为6;在以字符集合形式初始化时,数组y,仅存储集合中的元素,因此数组y长度为5

6、若有定义语句:char a='82';则变量a( )

A.说明不合法

B.包含1个字符

C.包含2个字符

D.包含3个字符

参考答案:B

参考解析:char a='82',定义字符量a,char型变量值为1个字节长度,并从右侧开始运算,所以a的值应为'2'。因此B选项正确。

7、以下叙述中正确的`是

A.对于逻辑表达式:a++|| b++,设a的值为1,则求解表达式的值后,b的值会发生改变

B.对于逻辑表达式:a++&&b++,设a的值为0,则求解表达式的值后。b的值会发生改变

C.else不是一条独立的语句,它只是if语句的一部分

D.关系运算符的结果有三种:0,1,-1

参考答案:C

参考解析:B选项和A选项中,&&、||都是先计算左边表达式的值,当左边表达式的值能确定整个表达式的值。而且&&、||的优先级比++高,所以题中只需判断a的值即可知道符合表达式的真假;D选项中,关系运算符的结果有“真”和“假”两种。因此c选项正确。

8、以下选项中合法的c语言常量是( )。

A.,C—STR’

B..1

C.”l.0

D.2EK

参考答案:B

参考解析:所谓常量是指在程序运行的过程中,其值不能被改变的量。在C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。选项A是字符串,但使用单引号,错误,选项c,D,为实型常量中指数形式,但指数形式e(E)之前必须是数字,之后必须为整数,错误。故答案为B选项。

9. 若“int n; float f=13.8;”,则执行“n=(int)f%3”后,n的值是( )

A、1

B、4

C、4.333333

D、4.6

参考答案:A

参考解析:“(int)f“表示将f中的值强制类型转换为整型,即将13.8的小数部分舍掉,转换为13;然后计算13%3,结果为1,再将结果赋给变量n,因此n的值为1

10.以下能对一维数组a进行初始化的语句是:( )

A、int a[5]=(0,1,2,3,4,)

B、inta(5)={}

C、int a[3]={0,1,2}

D、int a{5}={10*1}

参考答案:C

参考解析:详见教材P145,一维数组的定义、初始化

选项B,D,常量表达式只能放在中括号 [ ]中

选项A,数组可以看做是若干个相同数据类型元素的有序集合,因此以集合的形式对其初始化,使用{ }对其初始化,选项A用了.

篇13:计算机c语言实习报告

初踏社会,心情激动、紧张、难过。激动的是我终于可以长大了,可以开始我真正的人生;紧张的是不知自己是否能适应这个社会,战胜这新环境;难过的是从此我就要在这纯真的学生生活上画上句号了。心里矛盾,脑子里翻天覆地。

我现在在科技有限公司工作,担任网络管理职务。刚进来公司的时候经理就和我聊了很多,问我网络方面会不会,组装和维护计算机有过吗?我当时真是出了一把冷汗,不过还好平日在学校都有这方面的动手,自己的电脑被我也折腾过一段时间,还是游刃有余的回答了经理的“逼问”。到现在我工作有两个月了,还记得实习开始的那一天,我是在无聊中度过的,整日无所事事,几乎在办公桌前一坐就是一天,空闲得让我要打瞌睡了,真希望可以有人叫我帮忙做点事情啊!现在可不是这样了,五月一日劳动节是我们搬迁新公司的日子,所有的东西都是新的,我进公司的那天起我就知道,我最大挑战的时刻才刚刚开始,五一全公司员工都有四天假期,我可是天天在加班的哦,因为我就是要趁着假期把新公司的网络弄好——组建局域网。这其实就是我的工作。我当然全力以赴,尽心尽力做到最好。而且时间很紧,对于刚刚出来工作的我觉得压力挺大的,经理还给了我好几点要求,要所建的局域网能够做到:

1.网络类型为:服务器/工作站型;

2.各工作站之间可以互相访问,共享某些目录,就是所谓的资源共享;

3.服务器同时作为邮件服务器,可以在收发互联网的同时使得公司内部员工可以局域网内部自由收发邮件,统一内部邮箱地址如:而且这个邮箱可以用outlook 等邮件软件自由收发。

4.电脑收发传真。

5.公司最终实现一个无纸办公化的办公场所。

我大学三年里老师好象没教我这上面几点耶?!但是…我是不太懂,不过没关系的,我有信心,怎么说也跟计算机相关,不懂就多动手多请教应该很快领悟过来的!劳动节第一天我就开始动手实干了。布线、接水晶头、装机、搞网络和调试;其实除了我,还有一个比较有经验的师傅一起做的,我一边做还可以一边学,他也会在一边指导,很快我对一些一直没接触过的事物了解过来!就这么一搞假期一下子就过去了,每天都是早上忙到晚上,很累,从未那么累!

篇14:提高高等数学教学效果的方法探讨

提高高等数学教学效果的方法探讨

本文针对提高高等数学教学效果的'方法这一问题,结合教学中的一些具体经验,从培养学生主动学习高等教学的意识、教师努力提高自身修养及努力提高教学方法等三方面展开讨论.

作 者:谢宝英 徐强  作者单位:谢宝英(安徽农业大学理学院)

徐强(安徽农业大学园艺学院,安徽合肥,230036)

刊 名:科技资讯 英文刊名:SCIENCE & TECHNOLOGY INFORMATION 年,卷(期): ”“(7) 分类号:G642 关键词:教育教学   高等数学   教学方法  

篇15:利用计算机仿真系统 提高化工专业实验教学效果

利用计算机仿真系统 提高化工专业实验教学效果

本文以CO中低温变换仿真实验操作为例,介绍了化工计算机仿真系统及其在化学工程与工艺专业实验教学中的应用.将化工仿真技术引入到实践教学中,较好的`解决了学生实验脱离实际、工厂实习不能动手的矛盾,收到良好的效果.

作 者:尚年  作者单位:泰山医学院,271016 刊 名:中国科技信息 英文刊名:CHINA SCIENCE AND TECHNOLOGY INFORMATION 年,卷(期):2009 ”"(3) 分类号:G71 关键词:计算机仿真系统   化工专业实验   教学效果  

高职《C语言程序设计》课程教学方法的实践与探索

高校非计算机专业《C程序设计》无纸化考试模式探讨

计算机论文

材料力学课程分层次教学的研究与实践

高校信息专业C语言教学改进体验论文

《程序设计课程》教学方法的探索与实践

计算机论文范文

C语言程序设计课件和教学网站设计论文

大学物理论文

高校非计算机专业计算机基础教育的教学方法

提高计算机专业C语言教学效果的方法探讨
《提高计算机专业C语言教学效果的方法探讨.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

【提高计算机专业C语言教学效果的方法探讨(锦集15篇)】相关文章:

项目教学法角度上的单片机课程教学策略分析论文2023-01-15

项目式教学法在电子课程的实施论文2023-10-12

分层次教学模式在护理英语教学中的应用2022-08-02

关于分层教学的论文题目2024-01-10

不同层次任职教育教学实践探讨论文2023-09-24

高职院校C语言教学初探教育论文2023-12-28

环境计算机论文2022-07-23

工科专业有限单元法及程序设计课程改革新思路2022-06-07

项目驱动教学法在C语言课程中的应用的论文2023-02-15

关于教育实验论文范文2022-08-22

点击下载本文文档