HI,欢迎来到学术之家,期刊咨询:400-888-7501  订阅咨询:400-888-7502  股权代码  102064
0
首页 精品范文 二级c语言程序设计

二级c语言程序设计

时间:2023-05-30 10:09:09

二级c语言程序设计

第1篇

关键词 高职高专 C语言 可视化 教学目标 可视化教学

中图分类号:G424 文献标识码:A

1 C语言和可视化基本内涵

(1)C语言是一种计算机程序设计语言,主要包括汇编语言和高级语言,因而C语言具有汇编语言和高级语言的双重特点,C语言可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖于计算机硬件的应用程序。C语言是一种通用的、过程式的程序语言,广泛应用于各个领域的系统与应用软件的开发,具有高效、灵活、功能丰富、表达力强和较高的移植性等特点。随着微型计算机的普及和发展,C语言已经成为世界上使用最广泛的、最流行的高级程序设计语言之一。C语言具有可移植性、较高的绘图能力和数据处理能力,广泛适用于三维、二维图形和动画,是数值计算的高级语言,因此,C语言也广泛地在国家教学活动中应用,形成一种C语言教学课程,成为了国家计算机等级考试中计算机二级考试下的一个考试科目,也是高职高专学校教学课程中的一部分。①

(2)可视化(英文称Visualization),是利用计算机图形学和图像处理技术,将数据转换成图形或图像在屏幕上显示,并进行交互处理的理论、方法和技术,可视化已经涉及到计算机图形学、图像处理、计算机视觉、计算机辅助设计等众多领域。是一种数据显示、数据处理和决策分析等一系列的综合技术。可视化最早应用于计算科学中,并形成了一种新的可视化技术—科学计算可视化技术,科学计算可视化能够把科学数据、测量数据、图像,以及计算机产生的数字信息直观地显示出来,方便于观察、模拟和计算,科学计算可视化已经广泛运用于教育等众多领域中,在高职高专教学中发挥了很大的作用。

2 C语言课程在高职高专教学中存在的教学问题及其建议

(1)C语言是一种通用性的计算机程序设计语言,而且C语言已经成为我国国家计算机等级考试中计算机二级考试下的一个考试科目,是计算机专业的主要教学课程,也是非计算机专业的教学工具,在高职高专教学中得到了很好的实践,取得了很好的效果,C语言课程教学模式不仅培养学生程序设计方面的思想,也为学生学习其他科目奠定了的基础,也为计算机专业学生提供了基础性理论知识,对高等高专的教学发展和水平的提高有很大的促进作用,但仍存在一些问题:

第一,理论知识教学和实践教学脱节,由于理论知识教学和实践教学分别安排,以及教师、教学地点不同,使得理论知识不能更好地指导实践,也使得实践过程中缺乏理论知识,从而导致C语言教学无法得到更好的掌控;第二,学生基础差,学习积极性和学习动力不高,自信心不强,由于C语言的内涵要求学生具备计算机硬件的基础性知识,学习复杂的C语言概念和语法规则,而且要掌握C语言的高级语言、数学算法、数据结构和程序设计等多方面的知识,使得学习难度比较大,学习内容比较抽象,从而使得基础差的学生学习积极性不高,学习动力也不强,进而不利于C语言教学课程的开展和教学任务的实现;第三,课堂教学的效果不高,不良学习习惯频繁出现,由于高职高专的学生基础差,需要教师在课堂上更加细心地施教,但很难照顾到每一位学生,导致出现抄袭、作弊、替考等不良的现象,使得C语言理论课堂的效果不高教学效率也不高,从而导致C语言教学的实践环节与理论知识脱节,从而不利于C语言教学水平的提高。

(2)针对高职高专存在的一些C语言教学问题,经过分析原因,提出了一些有效的解决方法和建议,从而有助于提升C语言教学的教学效率和效果,进而提高C语言的教学水平。第一,激发学生的学习兴趣,提高学生的学习主动性,由于C语言本身的难度,使得C语言教学课程比较抽象,为了激发学生的学习兴趣,要把复杂难懂的程序简单化、具体化、生动形象化,通过展示C语言发展历史和实践成果,使得学生主动学习C语言,从而提高学生的学习积极性,增强自信心;第二要鼓励和支持学生的C语言实践活动,以身作则,采用亲自演示教学方法,从而增强学生的动手能力和解决问题的能力,进而提高教学的效率;第二,要采用由浅入深、循序渐进的教学方法,因材施教,根据学生的特点变化教学的进度,随着学生的学习情况来增加教学的难度、深度,可以采用问题启发式、引申法、框架法、求同存异等相结合的教学方法,同时要重视C语言的实践环节,要理论结合实践,进而提高教学的水平和效果。

3 目标可视化教学方法在高职高专C语言教学中的应用

目标可视化是通过利用可视化技术的一种现代化教学模方法,在学习过程中,学生都有自己的成绩目标,都希望获得较好的成绩,这是学生学习的动力,学习目标的实现是提高教学水平的关键,目标可视化教学方法在教学中有重要的作用,主要体现在学生的主观心理和客观行为两个方面的教学活动。

第一,目标可视化教学方法可以调整学生主观心理状态,提高学习的积极性和心理素质,增强自信心。人文心理学家罗杰斯认为“人类自出生起就具有学习愿望和潜能,这是一种值得信赖的心理倾向,它们可以在合适的条件下可以释放出来,当学生了解到学习内容与自身需要相关时,学习的积极性最容易激发”。第二,目标可视化的教学方法可以促使学生主动动手和主动实践,发挥潜在的能力,提高学生课堂学习的效率。美国行为派心理学家马杰认为,教学目标应该遵循“学生能做什么以证明他的成绩,以及教师怎样知道学生能做什么”,由此可以看出,教学目标应该是内在的能力与心理情感的变化,学生内在的心理情感变化来可体现外在的客观行为,据此制定教学目标和学生的成绩目标,在C语言教学中,目标可视化教学方法就可以把复杂的教学内容简单化,使得教学目标转化为一种可实现的、可实际操作的行为,从而促进学生学习热情的产生和高涨,激发学生的潜能。

4 结论

C语言课程是高职高专学校计算机专业的一门基础性课程,是该专业学生的第一门计算机语言课程,该课程对学生的后续学习程序设计提供了重要的理论知识基础。目标可视化教学方法是在计算机技术基础上不断发展而形成的,是一种现代化教学方法,它在C语言课程的教学中得到了广泛的应用,促进了学生的学习能力和效果,也提高了高职高专学校C语言教学的水平,更为国家培养了计算机程序设计专业的人才,造福了人类。

云南省高等学校教学改革研究项目:基于CDIO模式的《数据结构》课程教学改革

第2篇

关 键 词:C语言;计算机;软件编程;实验研究

一、C语言的概述

在1967年BCPL语言被英国MartinRichards 推出,到1970 年B 语言以BCPL 语言为基础被美国Ken Thompson推出[1]。但是B 语言过于简单,而且功能有限,经过研究者的多次试验研究,在1972—1973 年,C 语言在B 语言的基础上经过完善,被美国贝尔实验室D.M推出[2]。在各种计算机编程语言中,C语言属于一门高级语言,它是一切计算机语言的基础,拥有高级语言和低级语言的特点,灵活方便,简洁紧凑;而且它的语法限制不严格,程序员在设计时程序书写自由。不仅能够编写系统软件,同时还可以编写应用软件,能够适应于多种操作系统,应用广泛,可移植性强。总之,C语言对于信息技术的发展具有十分重要的作用和价值。

二、基于C语言的计算机软件编程实验研究

(一) C语言的编程技巧

1.灵活运用指针

在C语言编程的时候,指针是一种特殊类型的变量,它能够帮助程序员有效的表达和解决程序设计过程中遇到的复杂问题,熟练掌握指针是必要的。指针具有三要素:指针名以及指针类型和值[3]。在编程时,指针和一般变量名相同,但是在类型以及值上具有区别,另外,指针不仅能够被用于表示数组,还可以被作为函数的参数返回值。

2.C 语言的特有函数

在C语言编程的时候,有时需要用到一些特有函数。函数都具有一定的功能,同时函数名也反映了该函数的功能。在进行函数定义时,程序员需要把函数的名字、返回值类型以及参数名等各项都进行定义。另外,因为库函数是由C 编译系统提供的,这些函数均是系统首先定义好的,在程序调用的时候,程序员只需利用“#include 指令”把与之相关的头文件包含到所用文件中即可[4]。例如,在程序运行的过程中,如果用到了sqrt函数,则为了保证程序运行下去,头文件必须含有#include“string .h”。

3.算法技巧

在程序设计的过程中,算法是程序的灵魂,因此,掌握一定的算法技巧是必不可少的。通常情况下,算法不仅可以用自然语言表示,有的时候也利用流程图表示。需要注意的是,利用流程图表示算法时,程序设计员必须熟练掌握常用的流程图符号[5]。且“数学乃是计算机之母”,牢固的数学知识同样能够提升编程效率。

4.位运算以及文件知识

相比其他计算机高级语言的运算方法,位运算作为C 语言的重要特色,具有独特性和唯一性。位运算是以二进制位为对象,然后结合相关程序要求进行各种运算。文件包含有数据文件以及程序文件,是计算机不可缺少的,程序设计员在进行编程时,需要把所写的程序存储的文件之中,这样可以便于程序员查找数据,提升查找效率。

(二) C语言和汇编语言混合的程序设计案例分析

在本次的实验之中,在进行程序嵌入时,有其固定的格式,需要在嵌入的各行代码之前加“asm”关键字,也可以直接在asm代码块中放入汇编语句。但是程序设计者在进行嵌入时,一定要注意满足以下条件:汇编语言指令代码中关键字asm必不可少,且要放在指令代码之前;嵌入汇编语言指令代码能够和正常C语言程序混合,但是C语言的分隔符“;”必不可少;嵌入汇编语言时C语言的注释分界符必不可少,分别是“/*”和“*/” [6]。

(2)首先编写C语言程序以及汇编程序,然后独立编译目标代码模块,最终进行链接。

首先,在进行混合编程时,C语言程序能够调用汇编语言的各种子程序以及其定义的变量,同时,C语言编写的函数以及定义的变量等也可以被汇编语言调用。而且混合编程的过程中,一个任务往往是由若干个功能模块组成,且不同的功能模块均是利用合适的语言进行独立编程,且以函数的形式存在。因此,程序设计者要根据每一模块的特点选择相应的语言和语言编程系统进行独立编程,并形成目标文件,继而连接目标文件,形成完整的可执行文件。

在混合编程的过程中,设计者需要注意五个问题:参数传递问题;寄存器的使用问题;存储模式;变量以及函数的调用问题;子程序的返回值问题。

其中,关于参数传递问题,在进行C语言程序调用汇编程序时,必须遵从参数传递原则,利用堆栈把参数传递给汇编程序。例如,在C语言程序中含有函数:voidaa(char*p,int i),这个函数是利用汇编语言进行编写的,如果编译是在小内存模式下实施的,系统在进行调用时,则写成aa(&q , n);运行时程序首先把n压入堆栈,然后再把&q压入堆栈,当参数传递过来并被汇编语言的子程序取得时,BP寄存器便被用作基地址寄存器,实现对栈中所存数据进行存取操作。通常情况下,由于调用的子程序和C语言程序往往使用同一个堆栈,所以在程序执行时,汇编语言子程序需要执行两条指令:push bp pop bp、sp[7]。

2.混合的软件编程实例分析

三、小结

综上所述,随着信息技术的不断发展,人们对于计算机软件编程的功能要求也将越来越高,而利用C语言能够实现计算机软件的多种功能,因此研究者应当强化对于C语言的计算机软件编程实验研究,开发功能更加强大的软件。

参考文献

[1] 侯宏霞.提高“汇编语言”课程实验教学质量的几点思考[J].内蒙古农业大学学报(社会科学版),2011(01):25-26.

[2] 刘海峰.以培养实践能力为导向的“C语言”教学方法探讨[J].科技经济市场,2008(12):33-34.

[3] 阿娜古丽·阿布拉.C语言与汇编语言相互调用实现混合编程[J].电脑编程技巧与维护,2009(10):71-74.

[4] 刘丹,刘德山.C语言程序设计课程综合性和设计性实验研究[J].计算机教育,2012(09):31-32.

[5] 王应军,曲培新,赵晨萍.ARM汇编语言与C语言混合编程的实现方法[J].科技信息,2010(03):69-71.

第3篇

关键词:C语言;计算机软件工程;应用

中图分类号:G642 文献标识码:A文章编号:1007-9599 (2011) 20-0000-01

Thinking and Analysis of Computer Software Engineering from C Language

Han Jiying

(Shanxi Polytechic College,Taiyuan030006,China)

Abstract:C language is a computer universal programming language,it has a assembly language and high-level language advantages,its application scope is quite widespread,not only can write operating system software,and development in various fields of application software,the computer software engineering development plays a vital role in.Skilled and flexible use of C language programming is the key to solve practical problems.

Keywords:C language;Computer software engineering;Application

一、简述C语言

C语言是计算机的一种通用性程序设计语言,它拥有着汇编语言和高级语言的双重优点,它的应用范围相当广泛,既能编写操作系统软件,又能开发各个领域的应用软件,对于计算机软件工程的发展有着至关重要的作用。

(一)C语言是一种高级语言

它是将高级语言的基本结构及语句与低级语言的实用性相结合起来的。C语言也是一种汇编语言,它可以对位、字节及地址进行操作,我们知道这三个是计算机的最基本的工作单元。C语言还可以将代码及数据的分隔化,即使程序的各部分可以彼此独立,这样可以使程序层次清晰,便于使用、维护和调试。C语言是以函数形式展现,具有多种循环、条件语句控制程序流程,使程序结构化。

(二)C语言的特点

1.首先,C语言的特点是语法结构简洁,写程序也很高效,便于描述算法,这可以说是C语言优于其他高级语言的重要原因。一般而言,C,C++,java被认为同C语言的运算灵活,功能丰富,运算种类远多于其它程序设计的语言。在表达式方面要比其它程序的语言简洁,例如,自加、自减、逗号运算和三目运算使表达式更为简单,我们只需要在学习中,合理进行分类,找出它们和我们在数学中所学到运算之间的不同点,将来用起来也会得心应手。

2.C语言程序特点包含:一个源程序无论由多少个文件组成,都有且只能有一个main函数,即主函数;源程序中可以有预处理命令(包括include命令、if命令),预处理命令通常放在源文件或者源程序的最前面;适合于多种操作系统,例如Windows、DOS、UNIX等等,也适用于多种机型等等。

3.C语言能够让我们深入到系统底层,我们所知道的操作系统如windows,Unix,Linux,Mac等都是由C语言写出的,可见其重要性。而且,很多新型的语言都是由C语言延伸出的,如C++,java,C#,j#等等,这就意味着掌握了C语言也就是掌握了多种语言,只要在C语言的基础上简单学习就能够利用新型的语言进行开发了,这也同样说明了C语言对计算机软件工程发展的重要性。

二、简述计算机软件工程

计算机软件工程是专门研究如何构建和维护有效的、实用的、高质量的软件的工程。它主要涉及到程序设计语言,数据库,软件开发工具,设计模式等方面内容。

软件工程的过程主要包括了开发的过程、运作的过程、维护的过程。这三个过程覆盖了有关于需求、设计、实现、确认以及维护等方面。需求包括问题分析和需求分析两大类。问题分析可获取需求定义,需求分析可生成功能规约。设计一般包括概要设计和详细设计。概要设计是建立整个软件系统的结构,包括有子系统、模块和相关层次的情况说明和定义。详细设计则是产生程序员可以使用的模块说明,包括有每一个模块中数据结构的说明和加工描述。实现是将设计的结果经过一系列的调试工作转换为可执行的程序代码。确认是贯穿于整个软件的开发过程的,在实现完成后的相关确认,保证最终的软件产品能够满足用户提出的相关要求。维护包括有使用过程中的修改以及完善工作。在现代化的社会中,软件的应用相当广泛。典型的软件,例如,电子邮件,嵌入式系统,办公套件,操作系统,数据库,游戏等等。这些软件的应用不仅促进了经济和社会的发展,提高了人们的工作的效率,而且还提高了人们的生活质量。

三、C语言在计算机软件方面的有关应用

我们知道Linux就是由C语言写出的,它的应用范围也是相当广泛的。

嵌入式的Web服务技术的优点是功能强大、实时性好、可靠性高以及安全性能好等,对于嵌入式的Web Service的实现可采用Linux+SkyEye等软件来虚拟出相应的嵌入式的开发环境,利用嵌入式Linux来充当嵌入式的Web Service平台,这种方法是用C语言来实现客户端与服务器端的通信程序的,这样就能够进行一些简单的加运算、减运算、乘运算、除运算以及幂运算等等。

Linux下的C语言的程序设计主要包括有编译器、编译链接器、调试器及项目管理工具这四大项。在为Linux开发应用程序时,多数使用的都是C语言,因此,每一位Linux的程序员都要求必须要灵活运用C语言编译器。目前Linux下最常用的C语言编译器是gcc(gnu Compiler Collection),它能够编译用C、C++等语言编写的程序,它也可以通过不同的前端模块支持各种的语言,例如,Java、Fortran、Modula-3和Ada等等。因此,能够利用Linux来实现这些功能的基础就是通过C语言把它编写出来,由此可见,C语言在计算机软件方面的应用既是基础也是关键所在。

四、小结

总之,通过对C语言各方面的了解,认识到了C语言语法结构简洁,写程序效率高,便于描述算法,适用范围相当广泛,既能编写一些操作系统的软件,又能开发各个领域如农业、工业、银行等的应用软件,例如,C语言被广泛应用于嵌入式系统、操作系统、数据库等方面。可见,C语言在计算机软件的应用方面占有着非常重要的地位。

参考文献:

[1]张海藩.软件工程导论[M].清华大学出版社,2003,12

[2]萨师煊,王珊.数据库系统概论[M].清华大学出版社,2002,2

[3]李光明.Delphi7程序设计与上机指导[M].冶金工业出版社,2003

[4]陈文宇.面向对象程序设计语言C++[M].机械工业出版社,2004

第4篇

参考文献:

[1]裘宗燕.C++程序设计语言(特别版).北京机械工业出版社,2002.7.

[2]StandleyB.lippman.C++Primer中文版.人民邮电出版社,20006.3.

[3]谭浩强.C程序设计(第二版).清华大学出版社出版,2005.6.

[4]钱能.C++程序设计教程.清华大学出版社,2005.5.

[5]沈美明.IBMPC汇编语言程序设计.清华大学出版社,1993.9.

[6]钱晓捷.汇编语言程序设计.电子工业出版社,2003.

【参考文献】

[1]翟乃强,隋树林,汇编语言与C语言及VisualC++混合编程[J].青岛科技大学学报,2003,24(B09):136~138.

[2]钱晓捷,汇编语言程序设计(第二版)[M],电子工业出版社,2003.6.

[3]钱春英,浅谈C语言与汇编语言混合编程的一些技术[J].南通航运职业技术学院学报,2005,4(1):50~52,55.

[4]郭晓梅,汇编语言与C语言的混合编程及应用[J].南京农专学报,2002,18(4):49~52,62.

[5]普拉塔.CPrimerPlus(第五版)中文版[M].人民邮电出版社,2005.

[6]斯马尔迪诺.教学技术与媒体[M].高等教育出版社,2008.

[7]教育部考试中心.全国计算机等级考试二级教程——C语言程序设计[M].2010年版.北京:高等教育出版社,2010.

参考文献:

[1]周以真.计算思维[J].中国计算机学会通讯,2007,(3):77-79.

[2]董荣胜.计算思维与计算机导论[J].计算机科学,2009,(36):50-52.

[3]林旺.孙洪涛[J].基于软件应用的计算思维能力培养教学设计.中国电化教育2014,(11):122-127.

第5篇

关键词:C语言;教学;计算机;原理;应用

引言:C语言程序设计作为当前大部分理工科系的学生的专修科,属于程序设计的入门学科。C 语言在计算机的应用程序设计里不但具备了高效率,并且也可以同时使用在多个计算机的操作系统当中,具备了应用广泛的特征。当前,我国许多老师在讲解C语言程序设计时都只是在讲解C语言,而极少谈论C语言里同计算机原理有关的部分。文章通过对C言教学中计算机原理知识的应用做出简单论述。

一、C语言的特点

1、具有语言紧凑、简洁、灵活、方便等特点。C语言仅有32个关键字,9类控制语句,程序书写方式较为自由,通常用小写字母表示,压缩掉所有无关紧要的部分。

2、运算符相对丰富。C的运算符包括的范围非常宽泛,一共有34中运算符,因此,使得C的运算方式非常丰富,表达形式也是多种多样。

3、数据结构较为丰富,具备了当代语言的各类数据结构。C语言的数据类型包含了实型、整型、数组类型、字符型、结构体类型、指针类型、共用体类型等。可以用来作为各类复杂的数据结构的运算。特别是指针类型的数据,更加灵活、多样。

4、具有结构化的控制语句的特点。用函数当做程序的模块单位,可以实现程序的模块化。C语言是非常好的结构化语言,顺应了当前的编程类型的要求。

5、语法限制不严,程序设计自由

6、C语言可以进行位操作,可以实现汇编语言的大多数功能,可以对硬件直接进行操作。C语言的双重性,使得其不仅属于成功的系统描述语言,还属于通用的程序设计语言。

二、C语言的应用

C语言虽然被称之为是高级语言中的低级语言,虽然C语言的截面过于简单,但是学习好C语言几乎可以实现一切,并且,C语言的高效率以及高移植性非常显著。在学习阶段的学生千万不要被外界的不实传言所误导,觉得C语言无关紧要,而放弃学习的机会。当前,很多学习编程的学生都过于急躁和赶时髦,例如C#、.net等新鲜潮流,渐渐增加,让你眼花缭乱不说,还会让你永远都“赶”不完。因此,只有掌握好一门基础方式,打好底子,才可以在这纷乱的程序中学好新的知识,才能学什么都比较容易。在单片机的嵌入式领域中,C语言基本是通用语言。由于C语言是低级语言,所以执行效率会更高,并且只有学习好了C语言,才可以学好C++的编程思想。

三、计算机数据与文字的表达方式以及简单类型的关联

想要熟练的把握和运用C语言的程序设计,就要对C语言和计算机的触及原理从了解开始入手。到目前为止,计算机的语言数据从表达方式来讲,也就是计算机的语言程序,并不是作为重要部分在计算机的相关应用基础里出现。所以,在掌握和理解C语言时,要抛弃掉之前构成的对于计算机数据以及语言的想法,从基本计算机的构成开始,渐渐走进C语言的数据类型里去,最终,也会自然而然的进入到同C语言有关的技术原理的讲解当中,此时的C语言,不但可以攻克之前二进制无法实现计算机语言数据表达欠缺问题,还具备了完善的功能及类型。

四、内存储器的构造以及指针的关联

很多人在学习C语言之前只了解程序同数据是存放于内存储器当中的,之后提供给CPU进行处理和运转,但对于内存储器的结构并不了解。

在C语言的教学中,指针以及复杂的数据类型,比如:结构体、共用体里都同内存的结构紧密相连。加入学生在没有掌握内存状况的前提下学习上述知识,一定会觉得无法理解,这也是C语言的其中一个难点。因此,一定要在课程讲述之前进行内存基本知识的讲授。

之所以对学生讲解内存知识,主要是为了告诉学生内存的概念,以便可以更好的服务于C语言教学。所以,没有必要进行详细的讲解,而是应当以基本概念为主进行授课。

进行编址讲解时,让学生了解多大容量的内存编址要运用多少位的二进制,才可以保障每个字节都具有唯一的编号。编号并不存在于字节里。一旦需要储存某一个字节的编号就一定要运用两个字节来进行储存,储存的编号就被称之为地址或指针。变量的地址指的是变量所拥有的多个字节里第一个字节的地址。一个指着变量的指针变量里所包含的变量第一个字节的地址。

垃圾数据同C语言数据类型以及内存特点也是紧密相连的知识点。学生再进行编程时通常会忘记在运用前为变量设定初值,而且对于由此获得的随机结果无法理解。此时,可以通过内存的方向来解答这个问题。

结束语:C语言程序的设计课程属于整个计算机教育当中异常关键的环节,不要只将其看作是一门独立的程序设计语言课程,而是要将其视为同其他课程紧密相连的计算机课程。C 语言在计算机程序里的推广应用,不但有效促进了对于传统计算机语言编程方法的改良,还提升了计算机的工作效率,确保了计算机先进性的操作。因此,在教学过程里,不可以单独孤立C语言教学,而是从C语言的理论研究、开发等方面,进一步提升教学质量,更好的掌握C语言的应用。

参考文献:

[1] 姬海宁,曾娟,胡永达,唐晓莉,杨舰,熊杰,王卓.新型教学法在计算机应用基础课程中的应用[J].教育教学论坛.2012(23).

第6篇

关键词:C语言;C++语言;程序设计

中图分类号:G642 文献标识码:B

文章编号:1672-5913(2007)14-0022-02

1引言

大学计算机科学专业的程序设计语言课程,一般分为必修和选修两种。C和C++都作为必修课;而VB和Java等一般作为选修课。现在大多数高校计算机科学专业开设程序设计语言课程的顺序都是,先开C语言,再开C++语言。然而,我们在教学实践中发现,学生学习C语言程序设计,接受了“自顶向下,逐步求精”的模块化程序设计思想,在学习C++语言时,对C++语言的特色:类和模板所提供和支持的“自底向上”的面向对象程序设计思想,很难适应、理解、接受和掌握。同时,由于课时的压缩,两门语言都要开设,学时更显不足,致使学生两门语言课程都没有充分的时间学通、学透;更有甚者,正常的教学内容不能完成,学生一知半解、似懂非懂,课程的难点知识没有时间讲和学。这种结果直接影响后续课程(比如,数据结构)的学习;同时学生动手开发软件的能力也将受到影响。

本文在分析比较C和C++程序设计语言异同的基础上,结合多年的教学实践经验,提出在大学计算机科学专业中,直接开设C++程序设计语言,不再开设C语言的观点。并根据作者的教学实践经验,给出直接开设C++时,教学内容、教材选择和开设时间的建议。

2程序设计语言C与C++的比较

2.1C与C++的共性

C++是C的增强版,是在C的基础上增加了数据抽象和面性对象的程序设计这些新特点,很自然C++拥有C语言的基本功能。它支持结构化的程序设计,任何用C写的程序都可以在C++环境下运行。

在C和C++语言中,标识符、变量、常量、基本数据类型、指针、表达式、运算符的优先级等的规定都相同。枚举类型和结构体类型的定义方法也相同。关系和逻辑运算、条件语句、循环语句这些控制流语句的定义和使用也都相同。C和C++中数组的定义和使用相同。函数的定义与调用基本相同,只是C++引入了引用参数。也正是由于引用参数的引入,使得C++的使用比C更方便。关于动、静态变量及其范围的规定在C和C++中相同。因此。可以说,C语言所拥有的功能,C++都有,而且也是C++的基本部分。但是,C++比C具有更强的功能,具有C所没有的特性――数据的抽象和支持面向对象的程序设计。同时,关于枚举变量,结构体变量的声明C++的语法约定更简洁方便。

2.2C与C++的不同

C与C++在程序设计的思想与规模、动态存储管理、文件使用、枚举和结构体类型、输入和输出,以及程序注释等方面存在差异。C++不仅具有C的所有功能,可以实现所有C语言所能实现的功能,而且C++的功能更强大,使用更简洁方便。因此,使用C语言设计程序所能解决的实际问题,使用C++语言设计程序也一定能够解决,而且实现起来更方便。

2.3C++的特色

C++最大的特色是提供了数据的抽象和实现数据抽象类型的机制――类,以及支持面向对象程序设计的封装、继承和多态等特性。由于类的出现,使得C++中的数据类型不再局限于系统所提供的固有类型,用户可以根据自己的实际需要设计创建新的数据类型。同时,由于类的使用,使得数据和操作被封装在具体的类中,实现了信息的隐藏。C++提供了两种构造新类的方法:继承和构成。这两种构造方法使得C++具有面向对象程序设计的特性。C++还提供了虚函数机制,这使得类的操作可以实现动态邦定。C++中的重载机制使得C++的使用更方便快捷和人性化。C++的模板使得C++具有多态特性。另外,C++的异常处理机制使得程序的调试变得容易和方便。还有C++的虚基类,使得它非常适合用来开发面向对象的程序。

C++中的引用类型,使得函数的参数可以采用引用参数,避免了C语言中函数参数的单向值传递所带来的弊端。而且使用起来非常方便。

C++还提供了作用域限定运算符(::),该运算符可用于解决名称冲突。还可用于指定标识符的有效范围,如名称空间中标识符的使用。

标准C++还支持名称空间[3~5],除了系统提供的标准名称空间std外,用户还可以定义自己的名称空间。名称空间的使用给程序设计带来了很大的方便。

C++的上述诸特色,显示了C++不仅能实现C程序设计语言所支持的结构化程序设计,而且还支持面向对象的程序设计。可以开发出更大更复杂的应用软件。

以上C与C++的比较可见,C++的基本部分与C语言基本相同,而且C++的语法相对于C语言的语法更简洁方便易使用。因此,C++完全可代替C来完成程序设计,完全可以在大学计算机科学专业的本科生中直接开设C++程序设计语言课程,而不用先开设C语言,再开C++。这样,可以将节省出一部分学时分给C++课程,使得C++的学时更充足些,学生也掌握地更好些。

3程序设计语言C与C++开设建议

通过以上的分析比较,可见在高校计算机科学专业程序设计语言课程的开设中,可以不用开设C程序设计语言,而直接开设C++语言程序设计。

C++的教学内容应该包括:基本知识部分:程序设计与问题解决概述;C++语法、语义以及程序开发过程;数值类型、表达式与输出;程序输入与软件设计过程;条件、逻辑表达式与选择控制;循环;函数;作用域和生命期;高级控制结构;固有数据类型和用户定义的简单数据类型。C++高级知识部分:结构体、数据抽象和类;数组;基于数组的表;面向对象的软件开发;指针、动态数据和引用类型;链结构;模板与异常;递归。

C++课程开设时间放在一年级第二学期比较适宜。因为学生在第一学期已经学习了一些关于计算机的入门知识,对计算机科学有了一定的了解,这时开设C++程序设计语言,学生接受起来比较自然。而且直接学习C++语言,没有别的计算机语言的影响,学习起来更易于接受。C++的课时建议为周学时4,以保证学生有足够的学习、吸收和消化知识的时间。另外,这个学期开设C++可为学生后续专业课程(如,数据结构)的学习做铺垫。更重要的是作为计算机科学专业的本科生,在当前的形势下掌握C++这一通用的编成语言,不仅为将来的发展奠定良好基础;也为今后参与社会竞争打下坚实基础。

以上观点的有效实施依赖于C++程序设计语言教材的选择。在选择教材时,必须选择适宜作为入门语言学习的C++教材。在此建议采用参考文献[3]中的教材――美国Jones and Bartlett Publishers出版的原版教材“Programming and Problem Solving with C++ (Third Edition/Fourth Edition)”。该教材知识讲述逻辑性强,内容安排循序渐进,讲解非常透彻清晰,是国内许多中文教材无法媲美的;而且没有任何先驱课程要求,学生学习起来很容易理解和接受,该教材是美国大学计算机及相关专业程序设计语言的入门教材,是美国最畅销的计算机科学教材,也是教育部推荐使用的计算机专业类影印版教材。作者在过去4年中使用该教材对计算机科学专业的学生讲授C++程序设计(双语教学)。4年以前作者曾多次讲授C语言程序设计。结合多年的教学实践,作者提出在大学计算机专业的程序设计语言课程设置中,直接开设C++程序设计语言的观点。关于教材的选择,也可选用其他一些翻译过来的国外优秀教材,如参参考文献[5]中的《C++大学教程》(第五版),该书是针对一学期的课程设置的,英文版在国外也是作为计算机专业的大学一年级教材;或者考文献[4]中的《C++核心思想》。作者的经验是最好选用国外原版教材,而且以参考文献[3]为最好。

参考文献:

[1] 谭浩强. C程序设计(第二版)[M]. 北京: 清华大学出版社, 1997.

[2] 龚杰民, 金益民, 殷勇. 标准C语言程序设计及应用[M]. 西安电子科技大学出版, 1995.

[3] Nell Dale, Chip Weems, Mark Heading. Programming and Problem Solving with C++(Third Edition)[M]. 美国: Jones and Bartlett Publishers, 2003.

[4] [美]Cay Horstmann著, 晏海华等译. C++核心思想(第三版)[M]. 北京: 电子工业出版社, 2004.

[5] [美]戴特尔等著, 张引等译. C++大学教程(第五版)[M]. 北京: 电子工业出版社. 2006.

作者简介:谢娟英(1971-),女,陕西西安人,副教授,主要从事智能信息处理方面的应用研究。

通信地址:陕西师范大学98# 邮编710062

Tel: 029-85307830(home),13088965815

第7篇

关键词:C语言教材建设;指针和函数;程序对比法;多媒体教学课件

中图分类号:G642 文献标识码:A

“C语言程序设计”是南京邮电大学新生入校第一学期学习的第一门计算机课程,是后续课程C++语言、数据结构、操作系统等课程的重要先修课,是学习其他高级语言和应用软件的核心基础。因此,这门课程对学生从中学到大学的学习方法和学习习惯的转变,对后续课程的学习兴趣和学习效果的保障,都起着非常重要的作用。如何提高C语言程序课程的教学质量呢?

1面临的问题

C语言程序设计课程目前所面临的问题是:

(1) 理论课时紧,教学任务重。C语言的理论课时为40学时,而C语言概念既庞杂又抽象,要在如此有限的课时内,给刚刚进入大学的学生讲明白是很困难的事。而作为C语言重点和难点的指针和函数部分,对我们以通讯计算机专业为主的学校,又只能加强,不能削弱。这给我们的理论教学提出了更大的挑战。

(2) 上机实验环节薄弱。一是实验学时少,仅16学时;二是实验辅导的师生比相对不足。一个教师一般辅导一个大班,有100多个学生,即使有助教,也不能保证能指点到所有的学生。对于初学者,很多学生得不到老师的及时指点,又羞于提问,因此,问题会越积越多,形成恶性循环,这是一部分学生最后编程能力相对低下的主要原因。

(3) 多媒体教学课件急需改进。由于历史原因,我们的课件还一直停留在基于PPT的电子教案的水平上。而用这种手段,在紧缩的课时内,面对扩招之后层次差距越来越大的学生,把C语言的概念的程序设计方法讲清楚,几乎是不可能的了,课上虽然也在编程环境正直运行程序看,但是初学者难以看到程序运行每一步的结果,不利于帮助学生掌握和理解。

(4) 授课老师年轻化,经验不足。我们课程组每年都有新毕业的博士加盟,他们虽然知识水平高,但需要好的平台提高他们的教学水平,更充分地展示他们的教师水平,更大限度的发挥他们的优势。

要解决上述问题,需要综合采取多种措施,包括教学管理上的改革、实验改革、平时作业方式的改革及考核方式的改革等方面,但是最基础的一件工作必须是有一本好的教材。

2兼收并蓄

那么,什么样的教材才是好教材呢?以怎样的思路来建设一本好教材呢?

我们认为,适应教学需要、适合老师讲解、适合学生学习的教材就是好教材。

目前市场上C语言的教材很多,要想在教材建设上有所突破和建树,吸收他人的先进理念和成功经验是非常重要的,“海纳百川,有容乃大”!同时,又要体现出自己的特色。

我校C语言课程的教学中,先后使用过谭浩强教授主编的《C程序设计》第一版和第二版、哈尔滨工业大学苏小红教授主编的《C语言大学实用教程》第一版和第二版、浙江大学何钦铭教授主编的《C语言程序设计》等多本优秀教材,每本教材都各有特色,为我校的C语言教材建设提供了宝贵的经验。

计算机教育杂志于2008年,以主编专访的形式,以《一项计算机基础课程改革的启示》。为题,连续12期报道了天津师范大学管理学院持续近十年的计算机基础课程改革,从思想方法、教材建设,到课件设计、实验教学组织等多方面都有创新点,始终坚持以辩证唯物主义为指南的原则,使我们受益匪浅,为我们的教材改革提供了开阔的思路。

天津师范大学王立柱教授在《计算机教育》杂志上撰写的“让风神的竖琴鸣响――读李未院士《数理逻辑》一书有感”这篇文章,从理论和实践两个层面帮我们解读了李未院士的三个语言环境的理论,该理论对C语言、C++语言、Java语言和数据结构之间的关系的认识,对解决C语言和教学改革的设计,都有很高的理论指导价值。认清了这个关系,有利于确定C语言作为计算机编程基础课程的具体内容,为后续课程服务就增加了自觉性,减少了盲目性。

我们结合多年的教学经验,决定从建设适合我们教学的C语言教材入手,全面推行课程的改革。这一想法得到了我校专家和领导的积极肯定和大力支持,也得到人民邮电出版社的热情合作。

3重点突破

我们的教材根据C语言的特点,结合专业的要求,重点从C语言最难的指针和函数两部分内容入手,树立教材的主干、精炼教材的内容、锻造教材的结构。注意把辩证法的相互依赖、相互联系的发展的观点运用到解决C语言的难点问题上去。例如对指针和地址的关系问题,我们提出了“指针是类型化的地址;地址是直接引用下的指针”的提纲挈领的深刻的概述。又如,以赋值语句为前提,具体描述了函数调用过程、调用一个有返回值的函数,其过程可以概括为3步赋值:

① 主调函数传递实参,以初始化的形式使被调函数的形参获得初值。

② 被调函数在执行return语句时,将return后的表达式的值赋给系统根据函数返回值类型创建的一个临时变量中。

③ 主调函数如果需要这个返回值,就从这个临时变量取值。

同时,教材对指针和函数的每一个概念都进行了需求分析和编程实验的检验,例如:“耗尽”动态空间资源的实验;一种“野”指针的实验;数组指针和指针变量的基类型不一样时的实验;一个函数两次被调用,其自变量空间可能不同的实验等。

这些精心设计的内容将会帮助学生理解和掌握C语言中最核心和精华的内容。C语言的内容很多,对于有些知识点,只要介绍常规的内容就可以,不必讲得过细过繁琐,会让学生产生畏难情绪,例如:printf中格式控制符的多种组合表示。还有些知识点,并不是编程时的常规用法,例如,y=++x+++x+++x运算结束后,x和y 的值是多少。事实上,这一结果跟编译器有关,不同的环境下结果可能会不一样。像这样的问题,只要告诉学生有这么一种现象存在就可以了,而不必在教材中连篇累牍地花太多笔墨。

4特色鲜明

我们的教材遵循的逻辑关联性还在于前后知识的连贯性上,以表格的形式、全书采用对比的方法,用设计过的程序和正在设计的程序作对比。这种方法不仅使学生通过前后对照的方式更容易接受新知识,而且使得教材有限的版面承载了最大的信息容量。例如,循环控制结构和非循环控制结构的程序对比,把主函数格式和自定义函数的格式对比,把标准输入输出和文件输入输出对比等。下面列出教材中的几张表作说明,如表1和表2所示。

我们的教材第一章就独具特色。为了引入高级程序设计语言,从最低级的机器语言开始,重点讲解操作码、操作数、子程序调用过程、断点地址、入口地址等概念,使学生了解程序最底层的调用和运行基于什么原理,从而很自然地引出为什么需要发展到高级程序设计语言。用计算机技术本身发展的规律和要求引出C语言的概念,符合本学科发展的规律,使学生在课程的一开始就对程序底层知识有所了解,从而慢慢进入C语言的美妙世界。

为了突出教材内容的连贯性,同时包括更多的知识点,教材增加了多达10个附录,把零散而实用性强的内容包含其中。从“常用字符与ASCII码对照表”和“C语言的关键字”,到“常用的ANSI C标准库函数”和“C程序设计常见错误及解决方案”,应有尽有。特别是“C程序设计常见错误及解决方案”,是作者结合多年的教学经验,对初学者易犯的错误分析原因,提供解决的办法。设计这样的附录有两个目的:一是方便学习时查找,二是避免琐碎的内容干扰教材的主线。

教材配备有两个版本,可以动态演示教材中每个程序的独具特色的多媒体教学课件。既提供PPT+单个程序动态演示的课件,又提供全书所有程序的动态演示整合在一起的课件。既方便教师在教学中发挥自己的特长和个性,又方便学生课后自学。动态演示整合版的课件三级菜单与教材三级目录一一对应;直观展示程序运行每一步骤和环节,既可助教又可助学,有助于解决学生能力参差不齐与课程内容多、课时不足,算法复杂抽象、难以理解的矛盾;模拟程序调试过程,弥补了实验课时的不足。既便于学生自学,也为教师搭建了可以充分展示自己的平台,多媒体课件如图1所示。

5结束语

我们学校每年有3000多学生学习C语言课程,有二十多位教师从事C语言课程的教学工作,教材的改革必将使学生和教师都体会到坚持辩证唯物主义方法的意义。如《计算机教育》刊物主编所言:“我们共同努力,来落实邓小平同志提出的‘熟悉马克思主义的基本理论,从而加强我们工作中的原则性、系统性、预见性和创造性’”。我们坚信,沿着这个方向走下去,一定能够在计算机教育领域里真正有所作为,我们的学生必定成为教育的最大受益者。

参考文献:

[1] 奚春雁. 一项计算机基础课程改革的启示[J]. 计算机教育,2008(1)-(12).

[2] 王立柱. 让风神的竖琴鸣响――读李未院士《数理逻辑》一书有感[J].计算机教育,2008(13):21-26.

[3] 李未. 数理逻辑[M].北京:科学出版社,2007.

[4] 谭浩强. C程序设计[M].1版.北京:清华大学出版社,1991.

[5] 谭浩强. C程序设计[M].2版.北京:清华大学出版社,1999.

[6] 苏小红. C语言大学实用教程[M].北京:电子工业出版社,2005.

[7] 苏小红. C语言大学实用教程[M].2版.北京:电子工业出版社,2007.

[8] 何钦铭. C语言程序设计[M].北京:高等教育出版社,2008.

[9] 王立柱. C/C++与数据结构(上册)[M].3版.北京:清华大学出版社,2008.

[10]朱立华. C语言程序设计[M].北京:人民邮电出版社,2009.

Study on C Language Teaching Material and Its Practice

ZHU Li-hua, YU Qiong

(College of Computer, Nanjing University of Posts and Telecomunications, Nanjing 210003, China)

第8篇

1目前,制造计算机所用的电子器件是D

A.大规模集成电路 B.晶体管 C.集成电路

D.大规模集成电路与超大规模集成电路

2多媒体计算机是指C

A.具有多种外部设备的计算机 B.能与多种电器连接的计算机

C.能处理多种媒体的计算机 D.借助多种媒体操作的计算机

3.电子数字计算机工作最重要的特征是C

A.高速度 B.高精度 C.存储程序自动控制 D.记忆力强

4.世界上第一台电子数字计算机研制成的时间是

A1946年 B.1947年 C.1951年 D.1952年

5.信息高速公路传送的是

A二进制数据 B.系统软件库 C.应用软件 D 多媒体信息

6.IMB等于

A.1000字节 B.1024字节 C.1000*1000字节

D.1024*1024字节

7.一个字节的二进制位数为

A.2 B.4 C.8 D.16

8.一个完整的计算机系统包括

A.计算机及其外部设备 B.主机、键盘、显示器

C.系统软件与应用软件 D 硬件系统与软件系统

9.下列存储设备中,断电后其中信息会丢失的是

A.ROM B.RAM C.硬盘 D.软盘

10.下列设备中,属于输入设备的是

A 鼠标 B.显示器致 C,打印机 D.绘图仪

11.计算机能直接识别的语言是

A.汇编语言 B.自然语言 C 机器语言 D.高级语言

12.下面既是输入设备又是输出设备的是

A磁盘驱 B.键盘 C.显示器 D.鼠标

13.计算机的软件系统包括

A.程序和数据 B 系统软件与应用软件

C.操作系统与语言处理程序 D.程序、数据与文档

14.下列存储器中,存储速度最快的是

A.软盘 B.硬盘 C。光盘 D 内存

15.CPU包括

A 内存和控制器 B.控制器和运算器

C.高速缓存和运算器 D.控制器、运算器和内存

16.系统软件中最重要的是

A.操作系统 B.语言处理程序

C.工具软件 D.数据库管理系统

17.如果按字长来划分,微型机可分为 8位机、16位机、32位机等。所谓 32位机是指该计算机所用的CPU

A.同时能处理32位二进制数 B.具有32位的寄存器

C.只能处理32位二进制定点数 D.有32个寄存器‘

18.下列关于操作系统的叙述中,正确的是

A 操作系统是软件和硬件之间的接口

B.操作系统是源程序和目标程序之间的接口

C.操作系统是用户和计算机之间的接口

D.操作系统是外设和主机之间的接口

19.下列说法中正确的是

A.计算机体积越大,其功能就越强

B.两个显示器屏幕尺寸相同,则它们的分辨率必定相同

C.点阵打印机的针数越多,则能打印的汉字字体就越多

D.通常在微机性能指标中,CPU的主频越高,其运算速度越快

20.如果一个存储单元能存放一个字节,则容量为32KB的存储器中的存储单元个数为

A.32000 B 32768 C.32767 D.65536

21.bit的意思是

A字 B.字长 C.字节 D.二进制位

22.内存容量的单位是

A.字节 B.字长 C.字 D.二进制位

23.某校的工资管理程序属于

A系统程序 B.应用程序 C.工具软件 D.文字处理软件

24.所谓媒体是指

A.表示和传播信延息的载体 B.各种信息的编码

C.计算机的输入和输出信息 D.计算机屏幕显示的信息

25.在计算机领域中,媒体分为以下四类。字符的ASCll码属于

A感觉媒体 B 表示媒体 C.表现媒体 D.传输媒体

26.国务院发布的《计算机软件保护条例》开始施行的日期是

A.1985年 B.1990年 C.1991年 D.1992年

27.能将源程序转换成目标程序的是

A.调试程序 B.解释程序 C.编译程序 D.编辑程序

28.100个32*32点阵的汉字字模信息所占的字节数为

A.12800 B.3200 C.32*3200 D.32*32

29.与十六进制数BB等值的十进制数是

A.187 B.188 C.185 D.186

31.二进制数lll0lll.11转换成十进制数是

All9.375 B.119.75 C.119.25 D.119.3

32.在计算机内部,一切信息的存取、处理和传送的形式是

A ASCll码 B.BCD码 C.二进制 D.十六进制

33.电 电子计算机技术在半个世纪中虽有很大进步,但至今其运行仍遵循着一位科学家提

出的基本原理。他就是

A.牛顿 B.爱因斯坦 C.爱迪生 D.冯·诺依曼

34.汉字国标码的代号是

A.GB2312-81 B.GB2312-80 C.GB23122-80. D.GB2212-80

3 5.下列数据中,有可能是八进制的是

A.238 B.764 C.396 D.789

36.下列各无符号十进制整数中,能用八位二进制表示的是

A296 B.333 C.256 D 99

37.计算机病毒是指

A.带细菌的磁盘 B.己损坏的磁盘

C.具有破坏性的特制程序 D.被破坏了的程序

38.某软盘上已染有病毒,为防止该病毒传染计算机系统,正确的措施是

A.删除软盘上所有程序即删除病毒B.在该软盘缺口处贴上写保护

C.将软盘放一段时间后再用D.将该软盘重新格式化

39.对计算机软件正确的认识应该是

A.计算机软件不需要维护

B.计算机软件只要能复制得到的就不必购买

C.受法律保护的计算机软件不能随便复制

D.计算机软件不必有备份

40,计算机发展的方向是巨型化、微型化、网络化、智能化。其中“巨型化”是指

A.体积大 B.重量重

C.功能更强、运算速度更高、存储容量更大 D.外部设备 主板 B.CPU C.内存储器 D.I/O设备

64.下列几种存储器中,存取周期最短的是 。

A.内存储器 B.光盘存储器 C.硬盘存储器 D.软盘存储器

65.微型计算机键盘上的Shift键称为 。

A 回车换行键 B.退格键 C.换档键 D.空格键

66.下列术语中,属于显示器性能指标的是一。

A.速度 B.可靠性 C.分辨率 D.精度

67.在计算机领域中通常用MIP睐描述一。

A.计算机的运算速度 B.计算机的可靠性

C.计算机的可运行性 D.计算机的可扩充性

68.配置高速缓冲存储器Cache是为了解决 。

A.内存与辅助存储器之间速度不匹配问题

B.CPU与辅助存储器之间速度不匹配问题

C.CPU与内存储器之间速度不匹配问题

D.主机与外设之间速度不匹配问题

69.在各类计算机操作系统中,分时系统是一种 。

A.单用户批处理操作系统

C.单用户交互式操作系统

B.多用户批处理操作系统

D.多用户交互式操作系统

70,微型计算机中,控制器的基本功能是 。

A.实现算术运算和逻辑运算 B.存储各种控制信息

C.保持各种控制状态 D 控制机器各个部件协调一致地工作

刀.下列设备中,既能向主机输入数据又能接收由主机输出的数据的是 。

A.CD-ROM B.显示器 C.软磁盘驱动器 D.光笔

72.在计算机领域中,通常用英文单词“Byte”来表示 。

A.字 B.字长. C.二进制位 D.字节

73.下面四条常用术语的叙述中,有错误的一条是 。

A.光标是显示屏上指示位置的标志

B.汇编语言是面向机器的低级程序设计语言,汇编语言编写的源程序计算机能直

接执行

C.总线是计算机系统中各部件之间传输信息的公共通路

D.读写磁头是既能从磁表面存储器读出信息又能把信息写入磁表面存储器的装置

74.下列字符中,其ASCll码值的是 。

A 9 B.D C.a D.y

75.在计算机应用中,“计算机辅助教育”的英文缩写为一。

A.CAD B.CAM C CAE D.CAT

76.计算机中数据的表示形式是 。

A.八进制 B.十进制 C.二进制 D.十六进制

77.硬盘工作时应特别注意避兔 。

A噪声 B.震动 C.潮湿 D.日光

78.具有多媒体功能的微型计算机系统中,常用的CD-ROM是

A.只读型大容量软盘 B.只读型光

C.只读型硬盘 D.半导体只读存储器

79.下面是关于解释程序和编译程序的论述,其中正确的一条是 。

A.编译程序和解释程序均能产生目标程序

B.编译程序和解释程序均不能产生目标程序

C.编译程序能产生目标程序而解释程序则

D.编译程序不能产生目标程序而解释程序能

80.微型计算机中运算器的主要功能是进行

A.算术运算 B.逻辑运算

C.算术和逻辑运算 D.初等函数运算

81.计算机的内存储器比外存储器

A.价格便宜 B.存储容量大 C.读写速度快 D.读写速度慢

82.使计算机病毒传播范围最广的媒介是

A.硬磁盘 B.软磁盘 C.内部存储器 D.互联网

83.下列叙述中正确的是

A.计算机病毒只能传染给可执行文件

B.计算机软件是指存储在软盘中的程序

C.计算机每次启动过程之所以相同,是因为RAM中的所有信息在关机后不会丢失

D.硬盘虽然装在主机箱内,但它属于外存

84.字长的二进制位数是

A.8 B.16 C.32 D.随计算机系统的不同而不同

85.微型计算机中使用的鼠标器连接在

A.打印机接口上 B.显示器接口上

C.并行接口上 D.串行接口或PS/2端

86.关于信息和数据的说法,下列 是不正确的。

A.数据是信息的具体物理表示

B.数据经过处理、组织并赋给一定意义后即可成为信息

C.数据是信息具体的物理形式抽象出来的逻辑意义

D.数据是信息的各种物理符号

87.下面各种对计算机的分类,不正确的是

A按原理分类,可分为数字计算机和模拟计算机

B.按用途分类,可分为专用机和通用机

C.按计算机的应用领域,可分为科学计算机和信息管理机

D.按规模和性能,可分为巨型、大型、中型、小型和微型计算机

88.ASCll码的英文全称是

A.American Standard Code for Information Interchange.

B.A Sta ndardCodeforInformatlonInterchange

C.All Standard Code for Information Interchange

D.Addached Standard Code for Information Interchange

89.建立信息高速公路最核心的内容是 。

A.要把信息作为商品和资源被全社会所 B.提高软件开发速度

C.提高通信速度 D.提高计算机的处理速度

90.关于计算机语言,下面叙述不正确的是 。

A.高级语言是独立于具体的机器系统的

B.对于不同类型的计算机来讲,汇编语言基本上不具备通用性和可移植性

C.高级语言是先于低级语言诞生

D.一般来讲,与高级语言相比,机器语言程序执行的速度较快

91.关于计算机病毒的传播途径,不正确的说法 。

A.通过文件的复制 B.通过共用软盘

C.通过共同存放 D.通过计算机网络

92.“金卡”工程实质是 。

A.电子货币工程 B.磁卡和智能卡

C.信息工程 D.信用卡网络授权中心

93.一台微机的型号中含有386、486、586、奔腾等信息,其含义是指 。

A.内存容量的大小 B.软盘容量的大小

C.显示器档次 D.CPU的档

94.对3英寸软裙移动滑块露出写保护孔,就 。

A.能长期存放而不能存取数据 B.能安全地存取数据

C.只能取数据而不能存入新数据 D.只能存入新数据而不能读取数据

95.计算机病毒对于操作计算机的人一。

A.只会感染,不会致病 B.会感染致病,但无严重危害

C.不会感染 D.产生的作用尚不清楚

96.两个字节表示 二进制位。

A.16位 B.32位

C.8位 D.4位

97.随着计算机的飞速发展和频繁更新,计算机应用范围不断扩大,其中学校学生学籍

的计算机管理属于 应用领域。

A.科学计算 B 数据处理

C.过程控制 D.计算机网络

98.当前使用的微型计算机主要采用的电子器件是 。

A.集成电路 B.晶体管

C.电于管 D 大规模集成电路

99.磁盘的盘面是由很多个半径不同 心圆构成的,这些同心圆叫做 。

A.扇区 B.磁道

C.磁柱 D.以上都不对

100.主频是计算机的重要指标之一,它的单位是 。

A.MHz B.MB

C.MIPS D.MTBF

第9篇

关键词:计算机;C语言;应用特点

中图分类号:TP312文献标识码:A文章编号:1007-9599 (2012) 06-0000-02

一、引言

C语言是相应的计算机的程序中的一种进行相关设计的语言,它包含了相关的高级语言的特点以及汇编语言的相应特点。1972年,美国贝尔研究所的D.M.Ritchie推出了C语言。在1978年之后,C语言相继被移植到大、中、小的微机之上。C语言有着较为丰富的一些功能。它首先可以进行对于相关工作系统进行一定程度上的设计,它还可以在一定程度上进行对于相关应用程序的编写。除此之外,它同样也可进行对于相关应用程序的设计。相应的C语言具有较为广泛的应用。具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画。具体应用比如单片机以及嵌入式系统开发。

二、C语言的相关特点

C语言被广泛地进行使用是因为它具有较多的优点以及特,主要如下:

(一)C语言进行相关操作的时候较为简易,且具有一定的灵活性。它拥有着32个关键字以9种控制语言。对其进行相关的程序书写的形式较为自由,并区分大小写。它可以把相应的高级语言的一些基本结构与相应的低级语言的实用性进行一定程度上的结合。

(二)对于C语言的相关运算符来说,它说涉及的范围较为广泛,它总共有着3运算符。而相应的C语言对于一些括号、赋值以及一定程度上的强制类型的转换等,C语言在进行对其的一定程度上的处理都将之视为运算符。这样所达到的效果就是:使得相应的C语言的运算类型较为丰富,不像一些语言那样比较单一。而且C语言的表达式类型也表现出一定程度上的多样化。

(三)在C语言中,除实现顺序、选择和循环三种基本结构等的9条控制语句外,输入操作均由标准库函数来实现。所以学习C语言,不仅要学习这9条控制语句和各种运算符,而且要学习并掌握常用标准库函数的使用。函数是C语言程序的基本单位。main()函数的作用,相当于其它高级语言中的主程序;其它函数的作用,相当于子程序。C语言程序总是从main()函数开始执行。一个C语言程序,总是从main()函数开始执行,而不论其在程序中的位置。当主函数执行完毕时,亦即程序执行完毕。

(四)生成的目标代码质量高,程序执行效率高。可移植性好(较之汇编语言);可以直接操纵硬件。

(五)函数的一般结构。任何函数(包括主函数main())都是由函数说明和函数体两部分组成,其一般结构如下:

[函数类型]函数名(函数参数表)

说明语句部分;

执行语句部分;

(六)C语言的函数体。在函数说明部分的下面、大括号(必须配对使用)内的部分函数体一般由说明语句和可执行语句两部分构成。

(七)C语言的源程序书写格式。所有语句都必须以分号“;”结束,函数的最后一个语句也不例外。程序行的书写格式自由,既允许1行内写几条语句,也允许1条语句分写在几行上。

(八)C语言允许使用的注释。C语言的注释格式为:/*......*/“/*”和“/*”必须成对使用,且“/*”和“*“、以及“*”和“/”之是不能有空格,否则都出错。注释的位置,可以单占1行,也可以跟在语句的后面。如果1行写不下,可另起1行继续写。注释中允许使用汉字,在非中文操作系统下,看到的是一串乱码,但不影响程序运行。

(九)C语言的语句。与其它高级语言一样,C语言也是利用函数体中的可执行语句,向计算机系统发出操作命令。按照语句功能或构成的不同,可将C语言的语句分为五类。

控制语句:控制语句完成一定的控制功能。C语言只有9条控制语句,又可细分为三种:

选择结构控制语句:if()~else~,switch()~

循环结构控制语句:do~while(),for()~,while()~,break,continue

其它控制语句:goto,return

函数调用语句:函数调用语句由一次函数调用加一个分号(语句结束标志)构成。表达式语句由表达工后加一个分号构成。最典型的表达式语句是,在赋值表达式后加一个分号构成的赋值语句。

三、C语言的语法

如果一个相应的变量名之后跟着一个包含一定数字的中括号,那么这个相应的声明就是数组声明。对于字符串来说,它也是一种数组,它们主要是以ASCII的NUL作为数组的退出。而值得我们进行充足的注意的是:对于方块内的相关的索引值主要是从0开始算起的。

(一)指针。如果一个相应的变量声明时在其前面使用的是*号,那么就表明这是个指针型变量。也就是说,这一变量进行对于一个地址的相应存储,而*(此处特指单目运算符*,下同。C语言中另有双目运算符*)则主要取的是内容操作符,其意思主要是取这个内存地址里相应的存储的内容。指针是C语言进行与其他同时代高级语言区别的主要特征之一。对于指针来说,它不仅可以是相关变量的地址,也可以是数组、数组元素以及相应的函数的地址。通过指针作为形式参数可以在函数的调用过程得到一个以上的返回值(不同于return(z)这样的仅能得到一个相应的返回值。然而,指针其实是一把双刃剑,一些相关的操作可以通过指针进行较为自然的表达,然而它也存在着一定程度上的弊端,因为如果不正确的或者过分的使用指针又会给程序带来大量潜在的错误。

(二)字符串。C语言的字符串其实就是一种char型的数组,所以进行对于字符串的使用并不需要引用库。然而C标准库确实包含了一些可以用于对相应的字符串进行一定程度上的操作的函数,使得它们看起来就像字符串而不是数组。使用这些函数需要引用相应的头文件。

1.文件输入/输出。在相应的C语言中,输入和输出是经由标准库中的一组函数来进行相应的实现的。在ANSI/ISOC中,这些函数主要被定义在头文件中。

2.标准输入输出。有三个标准输入/输出主要是通过相应的标准I/O库预先定义的:

stdin标准输入

stdout标准输出

stderr输入输出错误

四、C语言结构

(一)顺序结构。进行对于顺序结构的程序设计较为简单,只需要依据进行相关问题解决的顺序,然后写出与之相对应的语句就可以了,它相应的执行顺序主要是从上到下,依次进行过相关的执行的。我们对这一结构进行一定的举例:假设a=3,b=5,现在需要进行对于a,b的值的交换,我们对这一问题进行一定程度上的类比。它就好像进行对于两个杯子水的交换,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序应该就是:c=a;a=b;b=c;那么相应的执行结果也就是a=5,b=c=3如果改变其相应的顺序,写成:a=b;c=a;b=c;那么相应的执行结果也就变成a=b=c=5,就不能够取得我们之前所料想的结果,一般情况下,初学者最容易犯这种相关的错误。顺序结构能够进行丢构成一个简单的完整程序的相对独立的使用,我们所比较常见的输入、计算,输出三步曲的程序就是顺序结构。

(二)选择结构。相应的对于相关的选择结构的执行主要是依据一定的相关的条件进行对于相应的执行路径的选择。对于相应的选择结构的程序设计方法来说,进行对于适用性较强的分支条件以及与其相关的分析程序的相应流程是最为关键的。同时,在进行对其相关的语句选择时,需要根据不同的程序流程来进行。对于带有较强的逻辑关系以及需要一定程度上的关系比较的相应条件判断的计算,选择结构是十分适合的。进行对于这类程序的相关设计时,一般情况下都需要先进行对于相关程序流程图的绘制。当完成对于程序流程图的绘制后,依据其写出相应的源程序。这样做把程序设计分析与语言分开,使得问题简单化,易于理解。

(三)循环结构。循环结构可以进行对于相关源程序重复书写的工作量的减少,用来进行对于重复执行某段算法的问题的描述,这是在相应的程序设计中最能进行对于计算机特长进行一定程度上的表现以及发挥的程序结构,C语言中一共存在着四种循环,它们分别是goto循环、while循环、do while循环以及for循环。这四种循环能够进行对于相同问题的相关处理,而在一般情况下,这四种循环互相之间是可以进行一定程度上的替换的。

(四)模块化程序结构

判断语句(选择结构)

循环语句(循环结构)

跳转语句(循环结构:是否循环)

if语句:“如果”语句

while语句:“当…”语句

goto语句:“转舵”语句

if—else语句:“若(则)…否则…”语句

do—while语句:“做…当…(时候)”语句

break语句:“中断”(循环)语句

switch语句:“切换”语句

for语句:条件语句(即“(做)…为了…”语句)

continue语句:“继续”语句(结束本次循环,继续下一次循环)

switch—case:“切换情况”语句

return语句:“返回馈”语句

五、C语言的主要相关特色

C语言具有较为丰富的特,而相应的指针是其主要的特色之一。而这一特色广泛地被认为是相应的C语言的优越性的体现,也是它与其他语言相比较较为优秀的主要原因。因为相应的指针可以较为有效的进行对于硬件操作的直接进行。然而它也存在着一定程度上的弊端。因为相应的C语言的指针操作并不进行相应的保护,这样一来,它就有可能引起一定的安全问题。对于这一问题,C++进行了一定程度上的改进,它不仅对于相关指针操作进行了一定程度上的保留,又增加了其安全性。受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++/C。一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。

六、结论

随着经济的迅速发展以及科学技术水平的不断提高,计算机技术发展迅速,成为21世纪的热门技术,在很大程度上促进生产力水平的提高以及经济的发展。C语言的发展还在进行着,并且不断趋于完善,它具有较多的优点。然而,它也存在着一定程度上的弊端,相信随着时代的发展,相应的科学技术水平会不断的提高,会对C语言的一些弊端进行修改与完善。C语言的语法相对来说也比较丰富,如果一个相应的变量名之后跟着一个包含一定数字的中括号,那么这个相应的声明就是数组声明。对于字符串来说,它也是一种数组,它们主要是以ASCII的NUL作为数组的退出。而值得我们进行充足的注意的是:对于方块内的相关的索引值主要是从0开始算起的。它包含了指针。字符串等内容。C语言有着其自身的特色。而在计算机语言中,C语言是一种十分热门而实用的语言,它在很大程度上有效的便利的各个环节的操作。我们研究的课题是:计算机中C语言的应用特点分析。计算机语言的内容较为丰富,具有多种语言,如JAVA、VFP、C++等。而C语言与其他的一些高级计算机语言相比,有着诸多的特征与优点。主要有C语言的运算符具有一定的丰富性、C语言的相关语法表述具有一定的灵活性、C语言对于相关软硬件的操作具有很大程度上的兼容性、C语言的输入以及输出方式具有一定的新颖性。C语言具有3种基本的流程图结构,它们分别是顺序结构、选择结构以及循环结构。通过对于C语言的这些特征以及相应的结构进行较为深刻的研究,能够有效的加深对于C语言的认识。而正确的应用这些特征,对于一些实际问题,我们可以进行准确而有效的解决。

参考文献:

[1]陈斌.基于单片机的光电式叶片面积测量仪[D].西北农林科技大学,2010

第10篇

关键词:教育数学;计算机教育;教育计算机;程序设计

文章编号:1672-5913(2013)03-0042-04

中图分类号:G642

计算机教育和教育计算机是不同的概念。计算机教育是为了传授计算机知识而作教育,它不创造计算机知识,只改造教学法。而教育计算机是为教育而做计算机,它要对计算机知识进行再创造,使之更适合于计算机教育。

下面笔者用吃核桃的例子来阐述计算机教育和教育计算机之间的例子。有种核桃,核仁与外壳结合得很紧,成都人叫它们“加米子核桃”,若砸的方法不当,即使砸开了也很难吃到核仁。计算机教育研究的是一套砸核桃的方法,但它既改变不了“加米子核桃”存在的事实,更改变不了核桃的味道和营养成分;而教育计算机则研究如何改良核桃的品种,目的是让核桃容易被砸开、吃净,而且使桃仁更美味、更营养。

笔者只从编程教育层面上来谈计算机教育和教育计算机的关系,因为计算机文化是建立在程序基础上的,所以这种研究是有代表性的。

1 来自教育数学的启示

教育计算机和教育数学有类似之处,我们从后者可以得到一些启示。

以微积分为例。17世纪,由牛顿和莱布尼茨创建的微积分是第一代微积分,这是说不清楚原理的微积分。创建者说不清楚,使用微积分的数学家也说不清楚。微积分在说不清楚原理的情形下应用发展了130多年。

到19世纪,柯西对积累了两百年的微积分成果进行了再创造,写出了迈向严密的微积分王国的第一部教程——《分析教程》。这是一部教育数学的经典,形成了第二代微积分,但使用的极限ε-语言使概念和推理繁琐迂回,多数学生听不明白。第二代微积分在这种情况下发展了170多年。

直到今天,出现了正在创建的微积分——第三代微积分。人们希望微积分不但严谨,而且避开ε-语言关卡,直观易懂,简易明快,让更多非数学专业的学子听得明白。在我国,张景中和林群院士十几年来一直从事第三代微积分的创建工作,而且卓有成效。《直来直去微积分》一书是他们的代表作。

这三代微积分在具体计算方法上基本相同,不同的是对原理的说明:第一代微积分说不清楚;第二代微积分说清楚了,但是繁琐迂回;第三代微积分深入浅出。

再以几何为例。欧几里得的《几何原本》是第一个对数学知识进行再创造的教育数学范例。它影响数学家和科学家的思维方式长达两千年之久。直到今天,它仍然是中学数学教育的主要内容之一。但是,由于它没有借助代数和三角,孤立无支,使学生学得很难,教师教得很苦,

我们知道,几何与三角研究的都是图形。几何侧重定性研究,三角侧重定量研究。代数研究的是运算的规律和方法,它不仅是解决数学问题的基本工具,也是几何和三角的基本工具。几何、代数和三角应该相互支撑,携手共进。

然而,几何、代数和三角的知识是在不同历史时期和不同地域分别形成的,它们各有自己的体系、术语和记号。现在我们是根据它们在历史上形成的顺序分别讲授,而且基本上保持着它们各自的体系。张景中院士对此提出质疑:“学习数学的顺序必须和数学知识在历史上形成的先后一致吗?这些在不同年代、不同地方,由不同的人,为不同的目的创造出来,而且其中很多是为了应用而创造出来的知识,会自然而然地相互融合,相得益彰吗?当然不会。

几何在没有工具的情形下孤军奋战地作定性研究,不辛苦吗?三角建立了有力的定量工具但为时已晚,空怀绝技难以施展,不委屈吗?几何自顾自地推理,三角自顾自地计算,代数该用不用,不冷落吗?

为使几何、代数和三角携手共进,张景中院士重建三角,请三角早出茅庐,因为三角是解决几何问题的有力工具,是训练代数变换能力的天然平台,也是沟通初等数学和高等数学的一条通道。

微积分和几何,乃至整个数学,进入20世纪后迅速发展,其再创造工作越来越重要。以布尔巴基命名的一个数学家集体,已经出版了皇皇巨著《数学原理》的前40卷。他们的目标是对数学从头探讨,并给予完全证明。布尔巴基把数学归结为“研究抽象结构的理论”。他们认为,集合论是数学大厦的地基,大厦的骨架由三种母结构组成:序结构、代数结构和拓扑结构。比如,实数有大小,这是序结构;有四则运算,这是代数结构;有连续性,这是拓扑结构。母结构加进新的公理,产生子结构。不同的结构结合起来,产生复合结构。布尔巴基认为,研究今天已有的和未来可能产生的种种结构,就是纯数学的特征。有了结构观点,数学的核心部分就显得条理化、系统化了。

教育数学给我们的启示有两点:①逻辑在发展;②综合促创新。

2 第一代教育计算机

第一代教育计算机始于20世纪60年代末和70年代初。为此作出贡献的人很多,其中的3个人我们比较熟悉。

一是单源最短路径算法的发明者E·W·迪克斯特拉(Dijkstra),他最先察觉goto语句的有害性,首创结构化程序设计。他在《结构程序设计札记》一文中提出了把程序的可靠性建立在程序的“有效结构”基础之上的观点,揭开了程序设计革命的新篇章。

二是快速排序法和CASE语句的发明者霍尔,他的《计算机程序设计公理化基础》一文使得对程序设计的分析可以在数学推理的基础上进行。

三是N·沃思(Nicklaus Wirth),他在《算法+数据结构=程序》一书中,第一次揭示了程序的本质。“算法+数据结构=程序”这个公式对计算机科学的影响程度类似爱因斯坦的质能等价理论方程式“E=mc2”对物理学的影响。

第一代教育计算机确立的原则和方法对计算机教育产生了深远的影响,意义至今尚存。但是有些原则和方法在计算机教育中被打了折扣。N·沃思的思想是:“程序设计这一领域极为纷繁多变,常常包含复杂的脑力劳动。因此,以为能够把它压缩成一种纯粹‘开药方’式的训练是错误的。我们所能采用的教学方法只能是仔细地选择和描述标准的例子。N·沃思所说的标准例子都是依赖数据结构的算法。但是学习数据结构有两个难点:算法的性能分析和算法的实现。

算法的性能分析是以极限概念为基础的,非数学专业的学生很少能够掌握极限概念,因此在数据结构教学中进行算法的性能分析是让教师很为难、让学生很困惑的事情。

N·沃思非常强调算法实现的原则,他指出:“把程序表达为充分考虑细节的最终形式是很重要的,因为程序设计的错误正是隐藏在细节中。尽管对于学者来说,纯粹描述算法原则及其数学分析可能具有刺激性和挑战性,但对于实际工程人员来说,似乎是不切实际的。因此,我严格遵循这一原则:将程序的最终形式以某一语言表述出来,以便确实能在计算机上执行。但是那时候的程序语言还只是过程式语言,用这种语言描述数据结构需要很高的水平,实现一些比较大的数据结构算法是单个人难以做到的。

结果是,非计算机专业很少讲授数据结构,计算机专业讲授的数据结构让许多学生感觉抽象难懂。

3 正在形成的教育计算机

现在,学习数据结构的两个困难有了解决办法。第三代直观易懂的微积分便于更多的人掌握,进而使数据结构中的算法性能分析更普及。C++的出现使数据结构的实现变得简单。如本贾尼·斯特劳斯特卢普(Bjarne Stroustrup)所说:“C++的设计就是为了使较大的程序能够以一种合理的方式构造出来,并因此使单独一个人也可能对付相当大的一批代码。”特别是,C++最重要的发展就是STL——容器和算法的标准库。它不仅使数据结构和C++语言得到近乎完美的统一,而且促进了程序设计的发展。

但是新问题又出现了:程序语言多了,不知学习哪一种好;程序设计方法多了,不知道什么才是程序设计。

今天,流行的程序语言已经有C、C++、C#、Java、Visual Basic、Delphi等。这使很多人困惑,不知道学习哪一种语言才好。有没有最好的语言呢?对此,Alan Perlis的回答是:“如果某人说,‘我想要这样一种程序设计语言,我只需说出我希望做什么,它就能帮我完成’,那么就给他一个棒棒糖吧。”可见,要求一个万能的程序设计语言是很天真的。

其实,几乎每一种语言都是为特定的商业目的而设计,并不是为教育而设计。COBOL是为商业应用而设计;FORTRAN是为数学运算而设计;Basic是为了易学易用而设计;Ada是为美国国防部开发的,主要用于国防项目;Visual Basic和Delphi用于开发图形用户界面,可以进行快速应用开发。

现在很多人选择C、C++或Java,主要还是因为它们具有更大的商业用途。C语言不仅具有汇编语言的强大功能,而且如高级语言一样易学和易移植;C++适合开发系统软件,如编写编译程序和操作系统,Microsoft公司的Windows操作系统就是用C++编写的;Java用于开发Internet应用程序。

今天,程序设计除了以前的过程式设计,还有了数据抽象、面向对象设计、泛型设计等。那么什么才是程序设计呢?对此,Bjarne Stroustrup的回答是:“通常人们一提到程序设计风格,都是将它们看作是毫无关联的:你要么使用泛型程序设计,要么使用面向对象程序设计。但如果你的目标是尽可能好地表达解决方案,就需要组合多种风格了。这里的‘好’是指代码易读、易编写、易维护以及足够高效。”这种组合多种风格的程序设计是多范型程序设计。

面对新的问题,新的教育计算机正在形成,它要把用于商业目的的核心程序语言和程序设计方法再创造,使它们连贯起来,服务于计算机教育。

关于程序语言,Bjarne Stroustrup指出“在你已经掌握了C和C++的公共子集和某些C++直接支持的高级技术之后,你会更容易去学习C中那些更诡秘的部分”,实际上,这是“人体解剖法”的秘密:事物的本质只有在一个事物发展过程结束时才能最清晰地显露出来,借此我们可以对整个历史重新作出合乎逻辑的描述,展示出历史的内在规律性。Bruce Ecke1便利用这个方法,在《C++编程思想》一书中建立起一个从C结构到C++类的平滑过渡模型:先实现一个袖珍的C库,然后再将它转换为C++代码,通过比较分析而进入C++。这样一来,从C到C++的一条脉络就疏通了。Aninash C·Kak也是利用这个方法,在《面向对象编程C++和Java比较教程》一书中,给我们指出了一条从C++到Java的道路。

用李未院士的三个语言环境理论,可以对从C到C++再到Java的线索作出严谨的形式描述。“一般说来,一个语言在它作为对象语言时,它的符号和语法对象所取得的准确性和已被人们证明的结论,在它作为元语言时,就可以用来解释和说明相应对象语言的符号和语法对象,并用来证明该对象语言中不同语法对象之间的关系。这是人类从事科学研究的基本方法。”例如,C、C++和Java是程序语言发展中的版本序列。如果把C++视为对象语言,那么从C++程序集合到C程序集合的一个解释映射(记做IC++)和C程序集合就构成C++的一个模型,而C语言就构成了C++语言和它的模型的元语言;如果把Java视为对象语言,那么从Java程序集合到C++程序集合的一个解释映射(记做IJ)和C++程序集合就构成Java的一个模型,而C++语言就构成了Java语言和它的模型的元语言。

从C到C++再到Java,这是新一代教育计算机给予计算机教育的一个方向性选择。

关于程序设计,Stanley B·Lippman从发展的角度给予了定义:“纵观短暂的计算机发展史,算法和数据这两个主要方面一直保持不变。发展演化的只是它们之间的关系,就是所谓的程序设计。”这种观点启发我们对过程式设计、数据抽象、面向对象设计和泛型设计,不要仅仅把它们毫无关联地排列起来,平等地看待,而是要由此及彼地把它们推出来,使它们互相隶属,从低级形式发展出高级形式。把C和Java连接起来的C++,这个在计算机软件领域中覆盖面最为广阔的编程语言,不仅支持多种不同的程序设计风格,而且它记录着程序设计从低级形式到高级形式的发展。用Stroustrup的话讲:“它的特点是可以看作是更好的C;支持数据抽象;支持面向对象程序设计;支持泛型程序设计。”因为兼容了C,所以C++自然也支持过程式设计。

从过程式设计到数据抽象,从面向对象设计到泛型设计,这是新一代教育计算机为计算机教育指出的又一个方向性选择。而且这个过程,因为C++的特性,所以又和从C到C++再到Java的过程相互融合为一个过程。

这个过程不是从概念出发,而是从实际出发,如Stroustrup在总结C++的一些设计原则时所说:“C++的每一步演化和发展都是由于实际问题所引起的。”“C++支持一种逐步推进的学习方式。你学习一个新语言的方式依赖于你已经知道些什么,还依赖于你的学习目的。”所谓逐步推进,就是从C到C++再到Java,而目的就是认识发展规律。

正在形成的教育计算机将使计算机教育沿着严谨、流畅、丰富和启迪的方向发展。所谓严谨就是讲逻辑,而逻辑是随着事物发展而发展的,一个事物发展了,我们才可以观察它的变化,研究和发现事物的本质。所谓流畅就是不重复,把C、C++和Java贯串起来学习,就去除了不必要的重复。所谓丰富就是包含更多的典型程序设计实例,数据结构包含着丰富的典型程序设计实例,C++不仅是我们描述数据结构的有力工具,而且它的标准模板库(STL)把数据结构近乎完美的统一到C++语言中。所谓启迪就是引导人们注重规律,从事物的发展和变化中来观察事物。

第11篇

关键词: C语言; 程序设计; 职业技能; 课程改革

中图分类号:G424 文献标志码:A 文章编号:1006-8228(2015)05-54-02

Abstract: The traditional software development course, focus on programming skills and logical thinking ability, can not meet the needs from the human resource market. Based on the analysis of the existing problems of current software development course, combining with the teaching practice of C language program course, this paper propses a teaching reform scheme for occupation skill training, integrates the information system software mechanism into classroom teaching practice, and gives one example of teaching design. The practice proved that, the reformed teaching scheme improves the students' engineering ability to apply knowledge to solve practical problems.

Key words: C language; programming; occupation skill; course reform

0 引言

在国家“信息化带动工业化”战略指导下,企业信息化飞速发展,带动了区域经济转型和产业结构升级,相关行业和企业对信息技术人才的综合素质能力要求越来越高,对从事信息技术应用型工作的技能型创新人才需求非常迫切[1]。高级语言程序设计作为高职院校信息技术专业的必修课,主要是面向编程技能和逻辑思维能力培养,人才培养质量和规格已远不能满足人才市场需求[2]。职业能力是人们从事其职业多种能力的综合,也是高等职业教育的重点培养目标之一,主要指灵活运用知识解决实际问题的工程能力和动手能力。当前流行的C++、Java开发平台运用,一般信息系统,Android应用开发,以及一些工具的应用和配置等,都离不开C语言的基础知识。如果将职业能力培养注入到C语言程序设计的教学目标,从系统工程的角度,重新安排知识点的学习路径,结合信息系统的建设、管理、运行、维护工作需求,增强实际应用技能和解决问题能力培养,将有利于提高学生的学习积极性和第一任职技术能力培养。

1 面临问题分析

C语言基础知识普遍适用于当前流行的开发平台,成为很多高职院校信息技术专业的必修课。但是,现有的C语言程序设计教学往往过多的关注结构化程序设计方法,按照知识点的先后顺序和难易程度讲解程序的基本结构[3],注重语言的各种语句、语法和命令,即便是列举了一些典型例题,也仅仅是从编写程序的角度帮助学生理解所讲的内容,无法达到灵活应用的教学目的,课程学习价值得不到充分发挥。

1.1 与应用需求脱节

很多学生毕业后认为程序设计课程教学安排不合理,37%的学生认为对就业没有任何意义,20%的学生认为没有掌握所学知识[4]。究其原因,是因为随着计算机和互联网应用的普及,人才需求两极分化严重,大量的人才需求是信息系统管理、运行和维护人员,不需要开发系统而要懂得系统优化配置、故障排除和客户服务。对于高职教育而言,显然应要求学生从技术上理解信息化系统的构成和配置。

1.2 与技术发展不相适应

计算机技术已经从一个高端的技术行业演变成一个工具,云计算、物联网等新技术层出不穷,多数实际应用是利用第三方平台进行二次开发,只需调用相关的软件构件,通过图形化的界面配置几个参数就能实现简单的应用。企业更关注人才解决实际应用问题的技术能力。单纯的语句、语法教学模式已经不能满足技术发展需求。

1.3 与职业技术能力不匹配

对语法、命令掌握的技术壁垒很低,但是数据建模、抽象问题的解决能力需要系统的学习。学生通过程序设计课程学习,应该能够真正理解掌握计算机软件的内在运行逻辑机理,而不是了解简单的语言规范。现有授课模式下,学生只是被动的接受语法和语句,而不能真正掌握软件的运行机理,也就无法转化成自身的职业技术能力。

2 面向职业技能的教学改革方案

职业技能体现的是第一任职技术能力。要适应市场人才需求,转变以传授知识为主的理论教学为提升学生技术能力的应用教学。教学内容要围绕应用技能需求设计,提炼出共性的知识和应用范畴,提高学生对程序设计背后运行机理的掌握,培养学生提出问题、分析问题、解决问题的综合能力。其教学强调在应用情景的驱动下,最大限度地调动学生的主观能动性,探究完成任务或解决问题,增强创新实践能力。

2.1 C语言应用现状深度分析

根据来自CodeEval的编程语言统计数据分析,2013年开发者使用Object-C飙升了300%,C#增长了100%,JavaScript增长了33%,Java虽然降低了14%,仍保持在领先地位。国内一些教育网站,则大量推崇Java编程、C#和Android应用开发。虽然已经很少将标准C作为开发工具,但上述这些编程语言的基础知识都在C语言程序设计教学中有体现。

2.2 教学改革思路

以就业第一任职技术能力为导向,突出程序运行机理分析和解决实际问题方法等应用内容,提高施教的针对性。在教学计划上,要依托学生在计算机组成和操作系统等相关课程上学到的知识,把软件系统运行机理融入到程序设计,增强C语言程序设计授课的有效性。在教学目标上,在掌握C语言编程基本规则的基础上,适当增加软件系统管理、配置和优化。在教学重点上,围绕编写、调试和配置一个实用、规范、可读性的程序,灵活运用任务驱动和项目教学法,由简单到复杂,逐步涵盖C语言的基本语法、编程知识点,涵盖实际运行维护各项流程,设计并实施一系列完整的项目,充分发掘学生的创造潜能,提高学生解决实际问题的综合能力。

2.3 课程教学方案设计

改革后的C语言程序设计课程,以学习项目为知识载体,以项目导向活动作为课堂教学的主要形式,突出项目开发过程中的管理、运行、维护等能力培养。教师要充分利用自身的知识能力优势,分析就业市场需求,定位课程岗位能力培养目标,在教学设计时突出对学生的专业技能、项目经验、职业素质等方面的训练。课程设计通常包括:设计项目、分解任务、协作开发、应用评价、迭代升级五个环节。首先,要对项目开发的相关技术进行概况式介绍,包括开发环境搭建、项目背景、任务要求。设计项目要由简到繁,前后关联,递进完善,将C语言程序设计的知识点融入到一系列项目中;分解任务,要成立项目小组,对应项目开发中的项目管理、系统分析员、程序员、测试员和运行维护人员等角色,轮流完成指定任务;协作开发就是创建仿真工作任务,采用任务驱动调动学生的积极主动性,由项目小组独立完成任务;应用评价要组织对一次任务完成情况进行研讨,分析下一次项目迭代升级方案,继而开展项目的迭代升级。

3 课程教学设计方法案例

精心设计课堂实例是教学内容的关键。仿真项目的安排,应该遵循课程内容之间的内在逻辑关系,充分包含课程知识点,完成相关应用知识和技能的掌握。

3.1 项目设计

让学生充分了解当前常用的C语言开发平台,在此基础上搭建TC2.0开发环境,研讨应用软件的安装配置基本要求,培养学生的项目建设能力,将其作为学生从事信息技术应用的基本技能。例如每五人分为一个仿真任务工作组,完成一个“找出最大数”的应用程序编写。其中每个人轮流担任项目管理,负责沟通协调项目开发中出现的问题,汇总系统分析员、程序员、测试员和运行维护人员文档,撰写项目报告。要求学生在程序设计过程中,不只是完成某一功能,还要分析每一行语句的应用场景,通过查找资料,转化为应用技能。下面例子中,重点是注释中的应用说明,拓展学生的知识点。

#include //C语言调用的头文件,实现对已有函数的引用,

可根据需要选择。C#、Java也有类似作用的package。这是实现程序复用的主要途径。

int main(void) //主程序,必须存在,是系统调用软件进程的入口。

Windows、Linux操作系统管理进程的入口,也可实现程序之间的调用和通信。本程序涉及了int和void变量类型,int类型数据在实际应用中可以用来表示一些整数如职员序号等。

{ //C程序的分段标识,以C为基础发展起来的程序大多以此为标识。

int i,j,k,t; //定义变量,要放在函数的最前面。主要是要考虑具体应用的对象属性。

printf(“input 3 number(exp:12 32 34):”); //输出显示,一方面

是调用已有的程序模块,二是实现程序界面的交互,当前主要是图形化交互界面,但在工业控制上还有一些字符型交互界面,主要取决于具体的应用场景。

scanf(“%d %d %d”,&i,&j,&k); //函数调用,接受键盘输入。每个

应用程序都要通过与输入输出设备实现信息的收集,存到相应的内存变量,然后进行处理。

t=i; //临时存储,计算机的功能之一就是存储功能,很多实际应用

都需要将数据格式化后进行存储处理。

if(j>t) t=j; //比较逻辑处理,完成功能要求,并存储结果。

if(k>t) t=k;

printf(“\n The max number is :%d”,t); //函数调用,显示结果。

由采用的函数决定什么方式来显示结果。加格式符是为了显示的人性化。

renturn 0; //向上层操作系统或调用程序返回运行结果,可以实

现应用间的衔接。

} //完成顺序程序结构的处理。

根据这一示例,学生分别完成程序设计、文档编写,并通过查阅相关资料,开展应用拓展分析。通过这个简单的项目设计,能让学生在学习C语言编程基本规则的基础上,创建仿真工作任务,让学生带着任务学习,拥有学习的主动权,带动起学生的学习兴趣。这个过程可以有效地拓展学生的应用技能。

3.2 项目评估

组织小组讨论,引导学生分析项目存在的应用问题。该程序存在的主要问题,一是只能处理3个数;二是程序不能重用;三是程序结果无法存储。一个完整的用户报告应包括提交问题报告和新的需求报告。通过学生的研讨和书面报告,对学生的综合素质进行评价,并给出问题处理方法建议。

3.3 项目迭代

在项目评估问题的基础上,提出项目迭代任务,一是进行输入保护,采用循环的方式实现随机个数数据输入和比较,掌握循环结构知识点;二是利用函数实现程序代码级的重用,掌握函数知识点;三是实现数据文件写入,掌握文件操作方法。教师讲解示例,完成相关应用分析后,交予仿真任务工作组进行实践开发。这样就将枯燥的语法融入到了一个不断完善的项目应用过程中,培养学生思考问题、解决问题的职业能力。

4 结束语

本文提出的C语言程序设计课程改革方案,以一个完整项目的迭代升级贯穿教学过程的始终,将编程知识点融入每次任务设计中,在任务驱动下提高学生学习的积极性和主动性,以仿真任务工作组提高学生沟通交流和实际工作能力,以应用拓展分析带动职业技能提升。该方法通过近年来的课堂教学实践,取得了较好的效果,学生在毕业实习阶段就明显得到了企业用人单位的认可,是一种适合于程序设计课程的教学方法。

参考文献:

[1] 工业和信息化部中小企业司.中小企业信息化发展指南[M].机械工业出版社,2013.

[2] 朱殷勤,论高职计算机应用专业技能型创新人才培养[J].农业网络信息,2013.11:150-153

第12篇

关键词:职业技术学院;教学目标;开放性考核;教学方法

1 项目化教学的重要性

C语言是目前最为流行的一种程序设计语言,是程序设计的入门语言,也是C++、C#等程序设计语言的基础。其高效、灵活、功能强等优点使它不仅成为计算机专业的一门必修课,也是其他理工科专业的一门基础课。但是C语言极强的抽象思维要求、灵活的语法规则、繁多的基础知识给学生的学习带来了许多困难。因此,对C语言程序设计进行课程改革,实现项目化教学变得尤为重要。

2 项目化教学的优点

“项目化教学”是以教师提出一个问题(找出几个数中的最大值),学生在教师的指导下,通过对整个课程知识的学习和应用实例的理解,以小组为单位完成一个项目的教学方法。

“项目化教学”中,学生是主体,也是项目的实践者。学生通过所学知识分析解决实际问题,通过项目的实践更好地掌握知识。教师是“项目化教学”的间接参与者,在学生完成项目的过程中指导学生,帮助学生解决疑问,从传统的知识传播者转变为项目指导者。

“项目化教学”中学生通过实践的方式学习知识点,其优点可总结为以下几点:

(1)学生根据项目内容明确学习目标。

(2)学生通过项目实践提高知识的应用能力。

(3)“项目化教学”可促进学生学习的积极性。

(4)教师可通过项目针对性地向学生传授知识。

(5)教师可通过观察学生项目的完成情况了解学生对知识点的掌握程度。

3 教学现状

(1)教学目标设置过高

尽管C语言是众多理工科专业开设的一门基础课,然而其教学目标应以学生层次的不同而不同。高职教育主要培养学生的实操性,只需学生掌握基础知识足已。浙江安防学院是一所普通的高职院校,以培养安防类人才为主,但其C语言的教学目标设置与计算机专业相差无几,学生学习效果一般。

(2)学生缺乏学习兴趣,学习效果差

浙江安防学院作为全日制高职学校,在校学生的层次不高。C语言内容枯燥,知识点多,概念复杂又容易出错,学生初学时便有畏难情绪,给教学带来了不少困难。

(3)考核方式单一,不符合课程性质

传统C语言的考核方式是平时成绩加笔试的形式,这种考核方式单一,对学生知识掌握程度的把握不准。C语言作为一门实操性强的课程,应注重学生动手编程的能力,因此需采用多样化的考核方式。

4 教学改革

针对上面所提到的C语言教学中存在的不足之处,笔者对15级安全防范技术专业学生进行了教学改革,改革的内容主要为以下几点:

(1)结合专业实际,明确教学目标

安全防范技术专业学生作为普通的高职学生,对纯理论学习的积极性不高;相反,对动手实践的积极性却很高。本专业开设的C语言课程是作为单片机的前修课程,学生学习单片机时需要懂一些简单的编程知识,对于数组和指针等的要求却不高。此外,C语言中所涉及到的基础知识繁多,而高职学生普遍不喜欢多记多背,过多知识点的讲解只会消磨他们学习的积极性。结合以上情况,笔者在做教学改革时进行了如下改革:1)简要介绍了常量中的整型、实型和字符型。2)舍去了变量中的动态变量,静态变量等不常用的知识点。3)数据操作中只涉及到了算术运算和赋值类运算。4)输入输出语句的内容进行了大量的缩减。5)数组做了简要的介绍。6)指针和结构体进行了删除。

(2)上好第一堂课,激发学生兴趣

C语言作为学生在大学时遇到的第一个编程类课程,其内容枯燥、概念复杂、知识点繁多,往往会打击学生学习的积极性。此外,C语言中涉及到许多英文字母,很多学生会将其与英语等同起来,这对于本身就不擅长英语的学生来说无疑是一个沉重的打击。因此,教师应该认真对待第一堂课,将C语言这门课程的性质解释清楚,大致可以从以下三个方面来解释:

第一,什么是C语言。对C语言课程做简要介绍,撇清它与英语之间的关系,将学生带入到神奇的编程世界。笔者的做法是给学生展示了一些简单的编程例子:(1)显示自己的基本信息;笔者在第一堂课向学生介绍C语言时,教学生如何用C语言程序输出自己的基本信息,并让学生动手实践,大大提高了学生动手实践的积极性。(2)做一些简单的算法;笔者在第一堂课中还向学生展示了乘法口诀表以及一些简单的图形等,很好地阐述了C语言的功能。

第二,为什么要学C语言。结合专业特点,阐述开设课程的必要性。安全防范技术专业开设C语言是将它作为单片机的先修课程,使学生具备安防设备安装调试和维修的能力,同时也鼓励学生参加计算机等级考试。在第一堂课中,笔者向学生介绍了C语言程序设计这门课的课程性质,并阐述了课程与专业之间的关系,提升学生对课程的重视度。

第三,如何学好C语言。学好C语言的要点就是“多思考,勤实践”。因此,笔者将C语言的授课环境选在了机房,鼓励学生多上机练习,多参与项目实践。此外,笔者将学生以小组形式分组,方便学生相互讨论、共同进步。

(3)改革教学方法,项目化教学

传统的教学方法是老师在上面讲授,学生在下面听课,课后完成书面作业。本实验中,将课堂转移到了带多媒体设备的机房中,采用循序渐进、实例化教学以及项目化教学的方法。首先,C语言中基础知识是很关键的,但高职学生却并不喜欢记忆,因此,笔者采用循序渐进、放缓脚步的方法,花了大量的时间帮助学生学习和巩固基础知识。其次,笔者采用实例讲解的方法,将理论知识与实际问题结合起来,把抽象思维转变成具象的问题。最后,笔者找了一些相关的项目让学生练习,同时作为指导者指导学生完成项目。学生作业以实训报告的形式上交,便于教师了解学生对知识点的掌握程度。

(4)开放性考核方式,加大实践考核力度

传统的C语言考核方式是平时成绩加期末考试。但是C语言是一门实践性很强的课程,这种简单的考核方式并不能全面地评价学生的编程能力。因此,笔者将上机实践也纳入到了考核方式中,可同时考查学生动手编程的能力,也为学生参加计算机二级等级考试打下了坚实的基础。

5 教学改革取得的成果

上述的教学改革方法笔者已应用到了日常的教学中。实践证明,学生学习编程的积极性明显得到了提高,对知识点的掌握程度和应用能力也得到了显著提高,后续学习单片机也变得更轻松。通过本次教学改革,笔者将14级和15级学生的期末成绩进行了比较,结果如下:教学改革前学生的优秀率(90分以上)为12.5%,合格率(60分以上)为75%。而进行项目化教学改革后学生的优秀率为29%,合格率为90%。由此可以认为项目化教学取得了一定的成果。