时间:2022-10-26 08:36:16
引言:寻求写作上的突破?我们特意为您精选了4篇c语言程序设计实例范文,希望这些范文能够成为您写作时的参考,帮助您的文章更加丰富和深入。
一、正向互动激励教学
正向互动激励是在任务和程序已知的情况下,只需运行程序,得出结果,再对结果进行分析来完成任务。其互动激励形式是“任务->程序->?”,需要完成结果,故称为正向互动激励。其任务紧扣新知识的理解进行教学。
教学一例:
(1)提出任务:求5!的值。问s设定为什么类型的数据变量可以容纳积值?要求:通过程序运行和结果分析,实现对程序的理解和对知识点的掌握。
(2)给出条件:给出二组程序。见表2。要求:通过运行程序,记录结果,达到看懂程序。要掌握输出语句控制符与输出结果之间的关系。
表2
(3)收集学生对任务解决的方法及结果分析。见表3。要求:在对结果分析后,学生应该掌握数据变量与容纳数据大小之间的关系。
表3
(4)正向互动激励反思:“任务->程序->?”的正向互动激励形式难度系数小,多用于知识入门阶段。任务通过结果对比完成。在新知识入门阶段学习中,有利于同学们熟悉程序,掌握知识点。同时可以提高学生学习兴趣,树立学习自信心。要求:教师归纳知识要点。同学们应该掌握常用数据类型在程序中的应用。
二、逆向互动激励教学
逆向互动激励式是在任务和结果已知的情况下,需要补写程序,运行程序,再对结果进行验证来完成任务。其任务形式是“任务->?->结果”,需要完成填空,故称为逆向互动激励。其任务紧扣知识的巩固进行教学。
教学一例:
(1)提出任务:求1+2+ … +100的值。(1)对程序填空;(2)运行程序,记录结果,并验证结果。要求:通过程序补写和结果验证,实现掌握循环控制语句的使用方法。
(2)给出条件:部分程序和输出结果已给出。
main( )
{ int i=1,sum=__⑴__;
while(i
{ sum=sum+i;
__⑵__ ;
}
Console.Write("sum="+sum);
}
给出结果:sum=5050
要求:重点掌握循环控制变量i的初值、终值和步长值设定,以及用于累加和变量的初值清零工作。
(3)收集学生对任务解决的方法及结果分析。要求:在完成程序填空后,学生应该掌握循环控制变量初值、终值、步长值的设定方法。
(4)逆向互动激励反思:“任务->?->结果”的互动激励形式难度系数中,多用于知识巩固阶段。任务通过程序填空和结果验证实现。在深入程序分析阶段学习中,可以提高学生对程序的分析和理解能力。这对巩固学生所学知识,夯实程序分析功底很有帮助。要求:教师归纳知识要点。循环控制变量三要素(初值、终值、步长值)的设定是完成任务的重要前提。
三、发散互动激励教学
发散互动激励式是在需求已知的情况下,根据自身掌握的知识,自主编写程序、运行程序、记录结果,并调试程序来完成任务。其任务形式是“任务->?->?”,需要完成程序编写和记录结果,故称为发散互动激励。其任务紧扣知识的综合应用进行教学。
教学一例:
(1)提出任务:计算87、98、69、79、82五个数的平均值。编写程序;记录结果。要求:通过编写程序,记录结果,学习程序设计方法。
(2)给出条件:编程形式不限。用循环控制结构完成数据平均值的计算任务。要求:程序结构清晰,结果正确。
(3)收集学生对任务解决的方法及结果分析(小组互助)。方法一:边输入数据边累加,最后对累加和除5求得平均值。方法二:输入数据存放于数组再累加,最后对累加和除5求得平均值。
要求:在程序编写完成后,一定要运行,对运行结果要进行分析,看结果是否正确和程序是否直观。
中图分类号:G642.0文献标识码:A文章编号:1009-3044(2012)06-1351-03
Case Discussion Method in《C# Language Program Design》Curriculum Practice
LI Hai-bo,MA Ming
(Nanyang Institute of Technolgy, Nanyang 473004, China)
Abstract:According to C # language and the problems in the traditional teaching model, presents a case discussion teaching method. Class? room teaching will be dispersed sample combination, form a case module is introduced to the teaching practice, using case teaching method to arouse the students’ interest in learning, training students thinking of object-oriented programming and the ability to analyze and solve problems, in order to make students to learn in order to practise purpose.
Key words:C# language; classroom teaching; examples of teaching; teaching mode; case discussion
随着互联网技术发展越来越快,人们对网络应用程序的需求也越来越多,而C#(C Sharp)语言自从2000年问世以来,由于其安全、跨平台、面向对象、开发速度快等特点,很快得到用户和企业的青睐,成为当今最流行的网络编程语言[1]。为顺应社会需求,各高校计算机相关专业都将C#语言课程纳入到教学计划作为高年级的就业方向课程。但是在教学过程中很多学生反应C#语言涉及的概念比较抽象难懂,规则和类库繁多;知识点零散,容易出错;学生在遇到实际编程问题时感觉“无从下手”。作者从实际教学环境入手,对《C#语言程序设计》课程从教学方法、教学手段等方面进行了一些改革,并取得了较好的教学效果。具体改进措施和方法如下。
1案例讨论教学法对传统教学方法的改进
1.1传统教学方法存在的问题
目前,《C#语言程序设计》课程是我院07级、08级软件工程专业的就业方向拓展课程。该课程是C++语言的后续编程课程,目的是让学生在建立面向对象编程的基础能力上熟练掌握C#基本语法规则,并提高实际编程能力。以往的教学方法都是先从基础概念入手,再就C#语言所带的基本控件进行讲解,其中着重讲解C#如何操作数据库中的数据。每节课先以理论概念结合一些简单示例程序讲解,最后安排学生上机操作加以深刻理解。
在以往的教学模式中,教师按照教科书编排顺序进行教学,讲授大量编程知识,但学生遇到实际项目编程应用并不理想。平时的知识点和课堂示例过于分散,学生无法体会到各个知识点之间的联系;学生在学习过程当中感觉平时的知识点很抽象,课堂上掌握的只是些表面知识,并不能正确的理解和加以应用;即使课堂上听明白了,时间一长有些知识点又会遗忘。经常在实际的编程项目中感觉“无从下手”。久而久之导致学生逐渐失去了编程的兴趣和信心,觉得没有实际用途,并产生消极情绪[2]。
综上所述,产生问题的原因在于传统教学方法只是让学生掌握了基本编程知识,知识点之间的结合应用不够灵活,在实际项目应用当中想不到应该使用哪个知识点来解决问题,因此,为了改善这种现状,有必要对C#课程的教学模式进行改革和探讨。1.2案例讨论式教学方法
C#语言的课程内容既丰富又零散,要求学生既要理解一些抽象的概念、方法又要具备一定的编程、动手能力。这就要求教师在现有课堂教学时间当中充分调动学生的积极性、主动性和参与性,采用先进的教学模式和手段,师生共同配合较好地完成教学任务。
在传统教学中,当理论知识讲述之后,针对该知识点做出示例,可以使学生加深对该知识点的理解,掌握知识的使用方法。但 是平时的课堂示例只是单独的几个知识点,如何把相关的知识点联系起来完成某个功能模块,这是我们考虑的问题。
案例讨论式教学法是运用实际案例进行交互式教学的方法。在教学过程中,要求以实际的案例模块作为被解析对象,在教师指导下按照软件工程的思想将某一工程项目分析解剖,以其中某一模块为实现目标,学生共同参与案例的分析、讨论,寻找实现途径。通过这种教学活动达到学习知识、分析问题、解决问题的目的。
通常情况一个案例应用到多个知识点。比如一个登陆模块的实现,它需要熟练掌握C#的基本语法、IF…ElSE语句、数据库操作等知识点并结合使用。所以在本课程教学中,笔者经常在讲授一部分知识点后,把各个知识点串联起来放在实际的案例模块当中。先组织学生参与讨论,分析出该案例中某个模块需要哪些知识点来完成。学生通过文字描述整个模块的实现过程,最后指出知识点在整个案例实现过程中的具体环节,确定软件处理流程,上机编码。这种方法可以使学生遇到问题后回顾以前所学知识,并把知识跟实际案例相对应,从而解决实际问题。
经过一段时间的零散知识讲解之后,应该把几个零散的知识点贯穿起来,结合实际的项目需求,组织学生分析讨论。这样不但学到了知识,还可提高对案例的分析、解决问题的能力,能够达到学习与实践的统一。因此,案例讨论式的教学模式是一种帮助学生快速适应未来职业需求的学习形式。
3 C#课程案例讨论式教学实践与教学质量评价方法
3.1“案例讨论”教学模式的实践
在“案例讨论”的C#课程教学过程中,根据该教学程序将整个教学活动分为以下几个阶段:
(1)案例需求设计
案例应该是一项具有实际意义的工程任务,也是某一具体项目中的一个模块,它的选取是学习的关键[3]。首先,案例设计要目标明确,既要满足教学要求,又能有一定应用价值;其次,案例设计要符合学生的特点,案例中应该包含之前所讲授的部分知识点,难度要适中,在平时的教学情况下学生可以分组进行讨论、明确的目标后安排学生的学习,在这一过程中要对本班学生的具体情况进行分析,定义基本任务,还可以有延伸问题;最后,案例设计要符合面向对象和面向工程的要求,让学生按照软件工程的设计要求制定该案例的分析方案。案例整体结束后,师生可以共同评价其工作成果。
教师在设计案例时,设计一个案例,让每个小组讨论同一个案例,这样可以在后期进行组与组之间的对比,激励组内成员的团结性。
(2)案例讨论前的必要准备
在布置任务之前,学生已经学习了该案例模块的基本理论知识。但在实际教学过程中,每个知识点有可能都是独立的,缺乏知识点之间的联合应用,学生很难对一些理论知识系统理解,一旦马上进行项目应用往往难以适应,感觉“无法下手”等情况,因此教师在进行布置任务前有针对性的以前知识点进行必要的复习,同时也能对学生的学习情况,相关知识的掌握情况有一个了解。这样就为教学的开展做了必要的铺垫。
(3)组织学生讨论
案例讨论是以学生为主体,但一个案例模块如果让一个学生去思考,可能会在思路上受到限制、难度有时过大。如果让所有人都参与,则合作、分工难度过大,因此,学生的组织应以小组为单位,可自由组合也可由教师编排,每组5人左右,指定其中一人为小组组长,最后讨论出整个流程,并对整个流程分析出需要哪些知识来实现。这样既能锻炼学生的分析问题、解决问题能力,也能锻炼学生在项目开发过程中的沟通协调能力。
(4)采用“讨论式”教学方法,监控整个讨论流程
学生以小组进行讨论时,教师可以指定整个讨论流程,规定时间限制,一般讨论30-40分钟时间,先让每个小组针对该模块确定工作流程思路,写出文字描述的软件工作流程,再次针对每个小组自己设计的软件工作流,指出流程中需要的知识点名称,最终提交整个流程文档。由小组成员提出自己的见解和工作计划并在这一过程中相互启发、相互学习,经过讨论最终确定出较好的解决方案。在这个过程中教师应采用“讨论式”的教学方法,组织同学们一起对方案和遇到的问题进行讨论,充分发挥学生的主动性和创造性。
(5)教师讲评
教师将每个小组的最终文档汇总,如果思路流程正确优秀的小组可以得到好评及表扬,对思路有问题的小组教师可以适当的指出其问题的所在,加以纠正。最后教师就该案例,说出正确的软件工作流程,在该流程中所应用到以前学习过的知识点,让整个学生明确思路和解决方案,布置模块编码任务,从而为功能编码的实现打下基础。
(6)实际编码环节,提高上机质量
在传统的教学模式中,上机实验由教师根据教材内容进行编排,主要以书上的例题、课后习题为主,学生只是将程序敲入计算机,运行一下即完成了上机任务。虽然程序运行结果正确,但对程序本身的设计理解并不透彻,只是掌握了该知识点的使用方法,无法理解在实际的案例工作中应该如何应用。
在“案例讨论”的教学模式驱动下,以案例讨论为主线,明确遇到问题首先应该考虑使用以前的哪些知识点解决,待思路和知识点完全确定后,再进行编码,这样可以有效的解决学生遇到实际项目时难以下手,也不知从何下手的问题。最终以讨论文档和案例程序为阶段考核和评价的依据,充分利用实验环境和条件,加强上机实验的应用效果,保证教学质量。
3.2教学质量评价方法
C#语言是一种面向对象的程序设计语言,针对C#语言及“案例讨论”中理论学习与实践并重的特点,在考核过程中采用新的教学质量评价方法,即将考试机制与案例讨论实现有效结合,综合评定教学效果。
以往的考核形式多为期末笔试+平时成绩(出勤、作业等),这种评价方式虽然能反映学生的学习态度及对一些基本概念、知识、理论的掌握情况,但无法全面反映出学生对知识点实际的理解和灵活应用,因此将考核形式变为期末笔试+案例讨论报告+案例程序,其中期末笔试主要检验学生对基本概念、语法、结构的学习和掌握情况,测试的是学生的基础理论部分,这部分成绩可占整个评价结果的50%;而案例讨论也作为一项考核内容,重点考核的是学生的分析问题解决问题的能力,最终以平时的讨论报告为主要依据,因此其成绩将占整个评价结果的25%;最后一个部分为项目源代码,主要考察学生的实际编码能力,按小组分工给出具体的分数,占整个评价的25%。
采用案例讨论为核心的教学模式,将原有的以“课堂、教师、书本”为中心的架构变为以“课堂示例、案例分析、实际应用”为中心的架构,将所学知识与实际应用紧密结合,学生既学到了知识又得到应用锻炼;教师既完成了教学又培养了学生的能力,达到了“教书、育人”的双重目的[4]。
4结束语
案例讨论教学对于语言程序设计课程来讲是一种比较有效的教学模式,它突破了传统教学模式,让学生学习一段基础理论知识之后,通过对实际案例问题的分析来理解掌握知识点,这样不仅能快速地掌握所学知识,也为代码的实现打下了坚实的基础,而且能够培养学生的社会责任感和团队合作能力,提高学生的具体分析能力和解决实际问题的能力,培养出的学生能很快适应市场需求,有助于解决学生的就业问题。因此,案例讨论教学方法不仅适合计算机程序设计语言教学的需要,也是应用型软件开发设计人才培养的一个有效途径。
参考文献:
[1]吴晓艳. C#语言程序设计精品课程建设的探索[J].科技信息,2010(25):48-50.
[2]蒋卫祥,朱利华.项目教学法在JavaWeb程序设计教学中的应用[J].科技信息(学术版),2006(9):410.
[3]李桂琼.程序设计课程的教学改革初探[J].计算机时代,2007(8):73-74.
[4]吕晓华,李素朵,张燕.任务驱动教学模式在java课程教学中探索与实践[J].北京:硅谷,2008(9):180.
[5]张悦.项目驱动教学法在C语言课程中的应用[J].职业教育研究,2007.
一、C 语言程序设计的教学现状
C 语言程序设计集抽象性、逻辑性、实践性于一身,在教学过程中解决好这三性就能提高学生的学习兴趣,减轻学习压力。传统的C 语言程序设计教学中,主要以教师讲授为主,且在教学过程中采用的大多是纯数学的抽象案例,这对于高校学生,尤其是独立学院学生而言,既抽象又枯燥无味,因而难以理解和接受,起来自然没有动力,导致课堂教学质量不高,学生学习兴趣不浓,学习效果不佳,不能真正理解程序设计的精髓,进而普遍反映C 语言难学。如何借鉴先进的教育理论和技术,转变教师角色,真正确立学生学习的主体地位,充分调动学生学习积极性,成为教学改革当务之急。
二、独立学院学生素质特征
独立学院是高等教育发展过程中出现的新生事物,它有自己独有的特征,应用型人才的培养是其目标,学生的素质与普通高校学生的素质特点又有一定差异性,若按照传统的教学模式,大多数学生的课堂听课情况不容乐观,注意力难以保持持续集中,如何保持较高的课堂效率也就成了每位教师所面临的一道难题。针对这一问题,笔者一方面通过走访有经验的老教师,了解独立学院学生的学习习惯,另一方面通过对学生进行问卷调查及当面交流,对独立学院学生素质情况有了较为充分的了解与认识。
针对独立学院大多数学生一方面学习自觉性不高、依赖性强,往往满足于课堂上所学,缺乏刻苦学习精神,但另一方面对自己感兴趣的课程又十分喜爱,笔者根据其活泼、好争辩的特点,有的放矢的进行了教学改革,使课堂效率和学生的学习积极性都有了显著提高。
三、教学改革的重点
根据独立学院培养应用型人才的目标,以及独立学院学生的素质特点,结合自己多年的教学经验,通过对传统的“ C语言程序设计”教学模式进行改革与实践,变老师主导型教学为与学生交互型学习的教学过程,在教学过程中不断探索新的教学方法和尝试先进的教学手段,首先,对教学用例进行了调整,用生活中常见的案例原型进行讲授。其次,充分利用现代教育技术资源,将实验环境搭建于课堂之上。从备课——上课——上机实践,进行了一系列的改革探索,很好地解决了 C语言程序设计教学中出现的种种问题。结果表明:教学改革后,课堂气氛活跃了,开小差的同学少了,听课效率上去了,学生学习主动性也加强了,课外主动学习的兴趣浓了。进而,程序设计能力得到了普遍提高。
1.培养学生学习兴趣
程序设计是一种能力的培养过程,这就要求在教学时注重对学生的编程能力培养。而能力的培养主要是靠强化、靠反复上机实践去体会和理解的,是通过理论结合实践,不断启发、引导,采用先进的教学方法和与时俱进的教学体系实现的。在教学之初,首先给出 C语言的用途以及学习本课程的目的,指出当前流行的 Unix操作系统等基本上是采用 C语言实现的,许多网络及单片机、嵌入式系统以及各软件开发平台与 C语言的相关性,强调了 C语言的基础性和实用性。通过介绍,学生明白了该课程的重要性,对学习该课程产生了动力,增强了学习兴趣。在课程教学计划的制订中,我们注重加强实践与训练环节比重,按 1∶1的理论课堂教学与上机实践时间进行配比,还强调了理论教学内的实践环节,使得实践课时数实际上超过理论课时数。教学强调一个“练”字,学生通过反复实践,增强了学习信心,课外也自觉学习了。
在教学中,注重把教学重心放在解决问题的算法分析上,培养学生分析与解决问题的能力。我们知道,算法的实现是围绕内存展开的,所以,在教学改革过程中,通过强调冯·诺依曼结构下的计算机运行机制,强调了内存的重要性,在教学过程中始终贯穿内存分配及缓存机制的实质。这样,在讲授数组与指针、结构体变量的内存分配时,学生理解就相对容易多了。在案例的选择上,我们通常采用生活中的趣味性、实用型的诸如水果拼盘问题、超市 POS、学生成绩管理系统等相关模块进行教学。例:引入循环时,通过用一个简单的例子:一个同学准备围绕运动场跑十圈,请另一个同学帮忙计数,要求每跑一圈告诉所跑圈数信息。用通俗易懂,既能吸引学生,又易形成互动,活跃课堂,提高课堂效率的案例始终贯穿整个教学过程,注重从直观到抽象,从特殊到一般渐进地学习,既避免了许多教材主要是数学化抽象案例的弊端,也避免了学生在学习语法知识的过程中既要用心掌握好相关语法知识,又要分散精力去思考数学实现,从而减轻了学习负担,提高了学习热情。通过对案例实现过程的分析,引导、启发学生逐步理解与掌握分析解决问题的方法与步骤,使整个学习过程下来,既能轻松掌握语法知识,又能在分析与解决问题上有所收获。最终通过各案例相关模块实现融会贯通,加深对程序设计的结构化、模块化设计思想体会,真正达到学习 C语言程序设计的目的。
2.教学手段的改革
在教学过程中,除加强正常的上机实践外,还注意教学手段的改革,充分利用现代教育技术成果。首先,在多媒体课件的制作上,注重吸取各教材之长,注重语法知识描述言简意赅,而不仅仅是教材的简单拷贝。在实践平台上,将该课程配套实验平台 VC++6.0搭建于课堂之上,在语法知识点的讲授后,通过所选案例,让学生参与一起分析,一起写出算法描述,并在课堂上同步编写程序,然后调试和实现程序,使抽象的结果通过程序的运行得以实现,让学生眼见为实,所见即所得,减弱了程序设计的抽象性,加深了对程序设计过程的体验,使学生较轻松地逐步掌握程序设计的一般方法步骤。
在授课的过程中,注意充分应用教学辅助工具。例如: Excel就是一个很好的对内存分配的分析和画程序流程图的辅助工具,在分析问题时,通过 Excel表格把抽象的内存图形象、清晰地展现了出来,取得可视化的效果,加深了学生对内存的理解,较好地解决了连续内存分配的地址计算和间接寻址问题,很好地解决了内存抽象性问题,不但加强了教学过程中的互动,同时也变学生被动学习为主动学习,不但丰富了教学手段,也提高了学生的参与意识和课堂效率,学生有了学习的兴趣,分析解决问题的能力也逐步提高了,同时还解决了学生听得懂但真正编程时无从下手的问题。
在学生具备一定的程序设计能力的基础上,通过在程序中有意识的错误设置,强调调试程序的重要性,让学生充分体验与掌握调试程序的方法,逐步提高学生独立调试程序,并在调试过程中发现问题、解决问题的能力,减轻教师在上机实践过程中的辅导压力,整个教学过程让学生在“做中学”,这也正是实用教育思想 CDIO工程教育模式的应用体现,让学生以主动的、渐进的、实践的、项目式的方法进行学习。
3.课堂外补充
作为一门程序设计类课程,仅仅靠课堂内的学习是难以熟练掌握的,必须在课堂外主动学习,通过不断强化,对语法知识加以灵活应用,才能熟能生巧。为方便学生学习,我们建设了自己的教学网站,提供了电子教案,课堂视频、作业系统、网上考试系统、网上论坛及网上答疑系统,同时在网站上还提供了许多 C语言程序设计精品课程网站链接,每位教师与所带班级都建立了课程 QQ群,方便提问和答疑,让学生通过课外自主学习,及时的掌握所学知识。
4.提高教师素质
“双师型”的教师要求教师既要能将课上好,又要能将实际应用带入课程,使教学从实践中来,又服务于实践。随着教学改革的深入,现代教育技术和成果的应用,以及应用型人才培养的需要,对老师素质提出了更高要求。在将实验平台搭建于课堂之上后,由于是在课堂上编写程序,而不是已编写好的程序的展示,这就要求老师具有良好的计算机辅助工具的使用能力、字符输入能力和程序设计能力。对此,通过制度建设,我们要求老师在日常工作中狠下苦功,勤练基本功,积极参与到教学改革实践中,通过参与社会工程项目实践,与 IT企业结对子,到企业锻炼,合作开发等,采用各种方法、手段,不断积累项目经验,按“双师型”要求提高自己,以项目、案例式教学为主,满足了教学的需要。
四、结束语
要上好一门语言课,尤其是 C语言程序设计这样的一门传统的程序设计入门课,除了要求学生主动学习外,教师还应因材施教,采用现代的教学方法与手段,使教与练相结合,切实解决好程序设计教学中易出现的问题,注意利用比喻、趣味、应用型案例来提高教学质量,这是在教学中转难为易的良好方法。
参考文献
一、 填空題(每空1分,共20分)
1. 是C程序的基本单位,一个C程序总是从 开始执行。
2.C语言规定标识符只能由字母、 和 3种字符组成,且第一个字符必须为字母或 。
3.计算机科学家沃思提出的一个公式:数据结构+ =程序
4.Turbo C++中,若有语句:unsigned int a;则a的范围是0~
5.C中的转义符“r”表示: 。
6.表达式 21 / 4 的值为 。
7.C语言中没有专门的字符串变量,如果想将一个字符串存放在变量中以便保存,必须使用 。
8.已知a=12.789,则表达式 (int)a 的值为 。
9.表达式 3 | 2 的值是 。
10.若a=5,经a-=3;后a= 。
11.已知ch='a',则表达式【(ch>='A ' && ch<='Z')? (ch+32):ch 】的值为 。
12.C中定义符号常量E为2.71828的宏命令是 。
13.函数形参和调用的实参是数组名时,参数按 方式进行传递。
14.C中按位与运算符是 、按位异或运算符是 、按位或运算符是 。
15.定义一个结构变量,共三个成员分别是字符型、整形和浮点型,则该结构体变量所占内存长度为 个字节。
二、 单项选择题(每题2分,共40分)
1.下列C语言标识符中,不合法的是……………………………………………( )
A. myname B. Wend
C. sum D. student
2.欲从键盘给整型变量a赋值3,b赋值2,则对应语句 scanf("a=%d,b=%d",%a,&b); 的输入格式是……………………………………………………………………( )
A. 3 2 B. a=3 b=2
C. a=3,b=2 D. a=b=3,2
3.C语言源程序文件后缀名是……………………………………………………( )
A. .exe B. .obj
C. .bat D. .c
4.结构化程序设计的三种基本结构是…………………………………………( )
A. 顺序结构、复杂结构、循环结构
B. 顺序结构、分支结构、循环结构
C. 顺序结构、分支结构、选择结构
D. 顺序结构、复杂结构、分支结构
5.以下表达式中,值为0的是……………………………………………………( )
A. 15%5 B. 15/5.0
C. 15/5 D. 15>5
6.设下列表达式中所涉及的变量均已正确定义,则不符合C语言语法的是…( )
A. 4||3 B. a+=4
C. a=3,b=5 D. char(65)
7.设变量定义为【int a[3]={1,3,5}, *p=a+1; 】,则*p的值是………………( )
A. 2 B. 3
C. 4 D. a+1
8.在C 语言程序中,在函数内部定义的变量称为………………………………( )
A. 全局变量 B. 外部变量
C. 全程变量 D. 局部变量
9.经过以下的变量定义后,正确的表达式是……………………………………( )
struct node {
char s[10];
int k;
} p[4];
A. p->k=21 B. p[0]->k=21
C. p(0)->k=21 D. p->s="Mary"
10.若变量c为char类型,则能正确判断出c为大写字母的表达式是…………( )
A. (c>= 'A')||(c<= 'Z') B. 'A'<=c<= 'Z'
C. (c>= 'A')&&(c<= 'Z') D. ('A'<=c)and ('Z'>=c)
11.C语言中以“只写”方式打开文件,应选择的参数是…………………………( )
A. o B. w
C. a D. r
12.变量定义为【int a[2][3]={1,2,3,4,5,6}, *p=&a[1][0]; 】,则p的值是( )
A. 数组a的首地址
B. 数组a的第1个元素的地址
C. 数组a的第“1”行第“0”列的地址
D. 数组a的第“1”列的首地址
13.用链表表示线性表的优点是…………………………………………………( )
A. 便于插入和删除操作
B. 花费的存储空间较顺序存储少
C. 便于随机存取
D. 数据元素的物理顺序与逻辑顺序相同
14.结构化程序设计主要强调的是………………………………………………( )
A. 程序的规模
B. 程序设计语言的先进性
C. 程序结构的规范化
D. 程序的效率
15.以下表达式中,不正确的浮点数常量是……………………………………( )
A. 2e2 B. 2.2
C. 2c2 D. 2E2
16. 若【int x=12,*p=x;】,则正确的赋值表达式是……………………………( )
A. p=*&x B. *p=&x
C. &p=x D. *p=x
17.设有如下程序段:
int i=15;
for(;i>=10;)i--;
执行完这段程序后,i的值是………………………………………………( )
A. 5 B. 4
C. 10 D. 9
18.设有如下程序段:
int i=15;
while(i<15)i--;
则以下描述中正确的是……………………………………………………( )
A. 循环体语句执行15次
B. 这是一个死循环
C. 循环体语句一次也不执行
D. 循环体语句只执行一次
19.设有如下程序段:
{char a[2][6]={"abcde","uvwxy"},*p=&a[0][2];
printf("n%s",p);
这段程序执行后,屏幕输出的结果是………………………………………( )
A. wxy B. cde
C. w D. c
20.设有如下程序段:
union
{int i;
char c;
}a;
a.c='A';
a.i=12;
printf("n%d",a.i);
这段程序执行后,屏幕输出的结果是………………………………………( )
A. A B. 97
C. 12 D. 65
三、 程序填空(每空3分,共15分)
1.以下程序的功能是输出杨辉三角形前10行,请在下划线处填上正确的内容,使程序能正确运行。
#include <stdio.h>
#define N 11
main()
{int i,j,a[N][N];
for(i=1;i<N;i++)
{a[i][1]= ;
a[i][i]= ;
}
for(i=3;i<N;i++)
for(j=2;j<=i-1;j++)
a[i][j]= ;
for(i=1;i<N;i++)
{for(j=1;j<=i;j++)
printf("%6d", a[i][j] );
printf("n");
}
}
2.以下程序的功能是利用函数求100-200间素数(质数)的个数,请在下划线处填上正确的语句,使程序能正确运行。
#include <stdio.h>
int isprime(int n)
{
int i,f;
f=1;
for(i=2;i<n/2;i++)
if( )
{f=0;
i=n;
}
return(f);
}
main()
{int i=100,n=0;
for(;i<200;i++)
if( )n++;
printf("Numbers of prime:%d",n);
四、 写出以下程序运行结果(每题4分,共12分)
1.以下程序输出的结果是:
#include "stdio.h"
void main()
{
char s[]=""hello"";
printf("%s",s);
}
2.以下程序输出的结果是:
#include "stdio.h"
void main()
{int a=12,b=13;
a=a+b;
b=a-b;
a=a-b;
printf("%d,%d",a,b);
}
3.以下程序输出的结果是:
#include "stdio.h"
void main()
{char ch[]="I love Great Wall of China!";
printf("%c",*(ch+5));
}
五、 编程题(第1题5分,第2题8分,共13分)
1.百钱百鸡问题:公元前5世纪,我国古代数学家张丘建在《算经》一书中提出了百鸡问题:鸡翁一值钱五、鸡母一值钱三、鸡雏三值钱一,百钱买百鸡,问鸡翁、母、雏各几何? 试编程输出所有的买法。注意:每一种鸡至少要一只。
2.编程输出所有"玫瑰花数"。(一个四位数等于它每一位数字的4次方之和.那么我们称这个四位数为"玫瑰花数")
《C语言程序设计》B卷参考答案与评分标准
一、 填空題(每空1分,共20分)
1
函数
主函数 或 main函数
2
数字
下划线
下划线
3
算法
4
65535
5
回车
6
5
7
字符数组
8
12
9
3
10
2
11
a 或 97
12
#define E 2.71828
13
地址传递 或 传址
14
&
^
|
15
7
二、 单项选择题(每题2分,共40分)
1
2
3
4
5
6
7
8
9
10
B
C
D
B
A
D
B
D
A
C
11
12
13
14
15
16
17
18
19
20
B
C
A
C
C
D
D
C
B
C
三、 程序填空(每空3分,共15分)
1
1
1
a[i-1][j-1]+a[i-1][j]
2
n%i==0
isprime(i)==1
四、 写出以下程序运行结果(每题4分,共12分)
1.运行结果:
"hello"
评分标准:内容正确得2分,引号正确得2分
2.运行结果:
13,12
评分标准:内容正确得2分,格式正确得2分
3. 运行结果:
e
五、 编程题(第1题5分,第2题8分,共13分)
1.参考程序:
#include "stdio.h"
void main()
{int cock,hen,chick;
for(cock=1;cock<20;cock++)
for(hen=1;hen<33;hen++)
{chick=100-cock-hen;
if(cock*5+hen*3+chick/3==100)
printf("cock:%d hen:%d chick:%dn",cock,hen,chick);
}}
评分标准:程序结构正确得3分,算法正确得2分
2. 参考程序:
#include "stdio.h"
void main()
{
int i,g,s,b,q,m;
for(i=1000;i<=9999;i++)
{g=i%10;
s=i/10%10;
b=i/100%10;
q=i/1000;
m=g*g*g*g+s*s*s*s+b*b*b*b+q*q*q*q;
if(i==m)printf("n%d",i);