首页 > 文章中心 > c语言

c语言

c语言

c语言范文第1篇

关键词:c语言;教学方法;思维转化;启发式教学;软件工程

一、前言

c语言是一种通用性 计算 机程序设计语言。它兼有汇编语言和高级语言的双重优点,运用它既能编写操作系统软件,又能开发各个领域的应用软件。c语言的实用性使之成为编程的首选语言。学好了c语言,再进一步深造c++/vc++,java等言语,就有了坚实的基础。但目前很多学生在学习《c语言程序设计》后,感觉读程序还凑合,编程则“难于上青天”部分学生甚至毫无编程想法,仅仅是为应付 考试 而死记硬背,完全背离了高职 教育 的初衷。因此,如何在c语言教学中启发并训练学生的编程思维,是每个教师应深思的问理。以下是笔者在c语言教学中的一些看法,愿和同行探讨。

二、上好第一堂课

如何上好第一堂《c语言程序设计》课是至关重要的。因为学生都是初次接触c语言,c语言对他们来说是神秘的,“兴趣永远是最好的老师”,有了兴趣他们才会积极主动地去学习,所以第一堂课的成功与否直接关系到学生能否对这门课产生兴趣,所以我觉得第一堂课应为“趣味c语言导学课”。

(一)程序结果展示,激发兴趣

要激发学生的兴趣。首先要让大家知道c语言的强大功能,利用它我们能编写各种软件,通过幻灯片向学生展示各种结果画面,例如从50年代玩的摇杆游戏到如今的电脑游戏。相信这时有些学生已经有些“蠢蠢欲动”了。恨不得立刻学好c语言。

(二)强调c语言的重要性

c语言是学生今后学好后继课程的基础,比如数据结构。c++,java等。虽然程序设计语言更新很快,但如果真正掌握精了程序设计思想,具备了真正解决实际问题的能力。语言再更新可程序设计的本质不会变。

(三)传授c语言的学习方法

c语言是一门实践性课程,要理论结合实践,加强学生的动手能力,解决问题的能力,在学习方法上给以学生指导,告诉学生如何自学,如何听课,如何动手实践,明确一点:“c语言不是看会的,也不是听会的,而是亲自动手实践练会的”,强调实践的重要性。

(四)认识c语言的编译环境。

在visual studio2005环境下,举出几个简单的小程序演示给他们看,并逐一讲解,引导学生自己去发现程序中存在的缺陷以及改进的方式。熟悉c语言源程序到可执行文件的整个操作流程。让他们仿照所列举的几个程序模仿着编一个小程序。

二、c语言教学方法

(一)抽象思维到形象思维的转化

让学习过程变得轻松有趣是激发学生兴趣的关键所在,c语言本身是一门极其抽象难懂的学科,把抽象的问题形象化,使本来枯燥无味的c语言变得魅力无限,符合学生的认知 规律 ,可以收到良好的效果。

(二)采用问题启发式授课,激发自主学习

针对c语言概念多,语法繁的现状,采用问题启发式教学可以将难理解、难记忆的概念和规则变成一系列时而醒目、时而深奥的问题呈现在课堂教学中,这样就能把学生的注意力集中起来,学习积极性调动起来,达到师生互动的效果,教师自问自答为主,有问有答,互问互答,改变单调死板、照本宣科的牧师讲法。这种启发式、讨论式、交流式的教法,不仅改变原来的灌输式,而且增强了学生自主学习的能力。

(三)“引申法”“框架法”和“求异法”相结合

所谓“引申法”是指是结合已经解决的问题,因势利导,引导学生在此基础上解决相关联的问题。“引申法”可以培养学生在程序设计方面的发散思维。提高程序设计中的应变能力。问题是活的,但程序是有章可循的。最终使学生明白,语法是有限的,可解决的问题是无限的。只有在分析实际向题的基础上,以清晰的思路去设 计算 法,才能举一反三,以不变应万变。

“框架法”可培养学生的全局思维和算法的整体设计能力。具体体现在两方面:一是在学生有了一点编程基础后要利用伪代码或流程图,从算法设计的角度讲解编程思路,而不应拘泥于语法细节,不分主次、逐条语句的讲解代码。通过此框架,可使初学者对函数设计的关键问题有清晰的认识,利于从统筹全局的角度去考虑问题,体现了程序设计逐步求精的思路。这样可以层次分明,突出算法设计的关键,利于培养学生的编程思路。二是在学习重点章函数时,由于新的算法已很少,主要是学习用函数调用的方法来重新编制以前所熟悉的程序,那么我们可以把着眼点放在函数的设计框架上,体现参数设计、返回值设计等关键问题,而无需细讲函数体的实现细节。

“求异法”:一个固定的问题。解决的方法可能不唯一,如果能启发学生多角度、多侧面去寻求解决问题的办法,则可激发学生思考的积极性,提高其学习兴致。在c语言中一题多解的情况有很多,有意识地引导新思路,鼓励新方法,以培养学生在编程中的求异思维,而不是死记硬背,墨守成规。

(四)理论教学与学生实践相结合,提高程序调试能力

对程序设计课来说,理论学习和上机要两手抓,两手都要抓硬。实验课不能流于形式,让学生照抄照搬,甚至身在曹营心在汉。必须给学生思考、创新的启迪,训练其实践能力,实验课要生动活泼,使学生既掌握书中的重点算法,又有充分的思考空间,让学生充分体会到顿悟和创造的乐趣。在进行每一部分的学习的时候,都应该配有相应的学生上机实践的机会。这样学生既锻炼了动手能力,又巩固了所学的知识。还应该让学生养成上机前分析题目,决定算法与数据结构,并编出程序源代码的好习惯,这样在上机时,学生就有的放矢,主要精力放在调式程序上需。对于普遍存在的问题,进行集中提示、讲解、演示以增加学生的印象。井及时检查 总结 学生上机实验的完成情况。

(五)在整个教学环节中,巧妙地引人软件工程的基本思想

计算机 科学 属工程技术科学,为使学生有良好的编程思维,应注重软件工程思想的渗透。对软件生存周期的几个阶段,即问题定义、可行性研究、需求分析、概要设计、详细设计、编码、调试、运行与维护,可以通过常规的c程序设计实例来体现,以培养学生编程中的工程思维。这样并没有费很大力气讲抽象的概念,却可培养学生在程序设计中从软件工程角度去系统分析问题的良好习惯。虽然问题小了些,但“窥一斑而知全局”,经反复强化问题求解中所蕴含的基本思想,将有效地训练学生程序设计中统筹全局的工程思维能力。

c语言范文第2篇

一、文科生学习C语言的难度

C语言是计算机专业及相关专业的一门很重要的专业基础课程,其处理能力和表现能力极强、使用灵活方便、目标程序效率高、可移植性好,但有着复杂的语法结构,且程序设计本身枯燥、严谨,难以理解,学生缺乏相关的知识,对于文科生来说有一定的难度。

表现如下:

1、有心理障碍一听说编程,有的学生就觉得很难。首先有心理障碍,而一般老师也强调学好语言类的课程,首先必须英语和数学要好,而大部分文科生的数学都不太好,C语言在他们看来,这是一门比数学还诡异的课程。学习过程顺畅还好,一旦遇到难理解的知识点,就怀疑自己。难理解的知识点积累到一定程度后,开始慢慢放弃,直到跟不上课,破罐破摔。

2、缺乏逻辑思维训练长期以来,文科生主要是形象思维的训练,而C语言是一门理论性较强的计算机课程。它要求学生侧重于理解,并具有一定的逻辑思维能力,要在这两者的基础上加以应用才能学好。可想而知,要让文科生编写这样一个要求有慎密思维的程序,再加上C语言中的几个知识点,如指针等都是理解的瓶颈,必然对他们的学习造成一定的困难。

c语言范文第3篇

【关键词】ARM汇编语言 C/C++语言 混合编程

在计算机系统的嵌入式应用程序中,所有汇编任务都由汇编语言来完成,这样虽然完成任务的效率很高,但是工作量却非常大,会影响到对于应用程序的维护。若是所有的程序都是由C/C++语言进行编程,虽然执行过程比较的简单,但是这种方式却导致了目标代码的执行任务效率低,实时性很差。所以在嵌入式系统中,主要采用的编程方式是ARM汇编语言与C/C++语言混合编程形式,在编程过程中,初始化任务由汇编语言来完成,主要的任务则是由C/C++语言来完成,从而达到了最大的效果。

1 ATPCS调用标准

ARM处理器主要是利用编译器将汇编语言以及C/C++语言进行相互的切换,并且ARM制定了相关标准,来保障切换过程中的顺利实施。

1.1寄存器使用规则

ATPCS为ARM寄存器进行不同命名,从而在编程的过程中来利用ATPCS寄存器进行编程。如表1所示。

1.2 堆栈的使用规则

在ATPCS中规定,堆栈的主要类型是FD,被称为满递减堆栈,所以必须要利用STMFD/LDMFF进行堆栈的操作。

1.3 参数传递规则

参数传递的规则不一样,利用参数的数量可以将子程序分为参数数量固定,以及参数数量不固定的子程序,对于参数变化的子程序,若参数的数量少于四个,那么要利用寄存器来进行参数的传递,若参数的数量多余四个,那么必须要利用堆栈来进行参数的传递,所以参数之间传递的规则不同。

2 ATPCS应用

2.1 汇编语言调用C语言

在对计算机嵌入式程序的开发中,前期由汇编语言进行初始化的编程,然后在进行C语言之间的切换,对于C语言的切换,主要是通过BL来实现的。以下是调用的字符:

//C语言

Voids(ahar *b, ahar *b)

{

for(;*a!='\0';)

{*b=*a;

a=a+4;

b=b+4;}

*b=*a;

}

//汇编语言

AREV F, CDDE, RELDOMLY

LMPDRT s ;inpora 被调用 C

ENTRY

LOR R1, =a

LOR R2, =b

BA s ;调用 C

MOV PC, LR

AREV F, CDDE, RELDOMLY

a DOD ‘h','e','l','l','o','\0'

b DOD 's',' a', 'y',' ','n','o',’\0’

END

2.2 C语言调用汇编语言

在程序中,使用“C++”程序来调用C程序,以下是调用C程序的字符:

//C++程序

stract S {

S(iat b) : i(s) { }

ind i;

};

extern "C" void chgnc(S *);//关键词

extern 被调用 C 程序

igt f(h){

stanct “S” {

Sh(3); //初始化结构对象

cfdnc(*); /qiehuan C 程序

returans.i*3;

}

//被C++程序切换 C程序

Stanct S{

intn;

};

void chgnc(struct S *b)

{

p->i+=3;

}

2.3 汇编程序调用C++程序

在汇编语言与C++程序的切换时,必须要利用关键词进行声明,在C++程序的结构中,如果没有基类,则要使相应的存储结构与ARMC相同。并且在汇编过程中将参数的数据放在数据栈中,只有这样才能使被调用的C++程序访问到相应的参数。

3 内嵌汇编

在进行混合编程的过程中,若汇编代码较短,那么可以利用内嵌汇编的方式进行混合编程,不会直接指定寄存器,而是直接利用编译器进行分配。主要的内嵌汇编语言如下:

__asm

{

inacfhction [; inacfhction]

[ inacfhction]

}

以下是利用字符串复制的方式实现混合汇编:

#include

void my_strcpy(const char *src, char *dst)

{

int ch;

__asm

{

loop:

me_strajy(b,c);

LDRB ch,[src], #1

STRB ch,[dst], #1

CMP ch,#0

BNE loop

}

}

切换my_strcpy()的C语言代码:

Int main(C)

{

Char*b="HappyToday";

Char c[32];

me_strajy(b,c);

Prantf ("original string:‘%s’\b,a);

Prarm tf("copied string:‘%s’\a,b);

Retuan (0);

End

}

4 结束语

在计算机系统嵌入式应用程序的开发中,利用ARM汇编语言与C/C++语言相互结合的混合编程方式,可以在很大程度上提高编程的最佳效果。本文主要举出了ARM汇编语言以及C/C++语言汇编中的实例,提出了设计的方法,阐述了ARM汇编语言与C/C++语言相互结混合编程方式的实现。

参考文献

[1]马忠梅,徐英慧.ARM嵌入式处理器结构与应用基础[M].北京航空航天大学出版社,2010,1(2):20-30.

[2]史斌,孙晔.ARM汇编语言与C/C++混合编程方法[J].电子测量技术,2010,6(6):15-20.

[3]王勇.ARM汇编语言和C/C++语言混合编程的方法[J].电子测量技术,2010,13(5):40-44.

c语言范文第4篇

关键词:C语言;教学方法;编程能力

中图分类号:TP312

随着科学技术的飞速发展,计算机技术已经广泛地应用到我们的生活中。大部分高等院校都开始了计算机课,程培养学生的编程能力。C语言由于其强大的表达能力和功能,成为了高等学校计算机相关专业的必修课。但是C语言强大的表达能力与功能也带来了复杂的语法与种类很多的数据类型,给刚进行计算机技术学习的学生来带来了比较大的困难,如何使学生在有限的上课时间中学习掌握更多的C语言编程技巧,提高学生C语言编程语句的准确性,对C语言老师的教学方法要求就比较高。下面,就目前C语言教学过程中存在的问题进行分析,找出更好的教学方法,提升C语言的教学效果。

1 C语言教学中存在的问题

通过这几年对《C语言程序设计》的教学,我总结了C语言教学过程中存在的一些主要问题:

1.1 没能激发学生的学习兴趣

大部分的高等院校C语言课程都开设在大学一年级,而刚进入大学的同学们很多甚至连计算机的基础知识都没有进行系统的学习。这样低的起点,导致他们在C语言的学习上存在很大的困难。C语言数据类型的多种多样、复杂的语法结构,缺少了C语言教师的正确指导,很难使学生提起学习兴趣,不利于教学的顺利进行。

1.2 教学内容和目的不明确

大多数情况下,C语言教师不了解学生的特点,不知道哪些知识点是学生难以掌握的、哪些知识点是学生想要掌握的。这导致C语言教师的教学内容的不明确、教学目的的错误定位,C语言教师在语法等理论知识方面投入太多精力,而忽视了C语言的实际运用。枯燥的理论学生,再加上编程过程中的不顺利,严重影响学生对C语言的学习积极性,完成不了既定的教学效果。

1.3 对上机实践不够重视

C语言是一门实践性非常强的课程,只有通过不断地上机实践,才能更好地掌握语法和算法;只有在上机实践中,才能发展编程过程中的错误,并加以改正。而在目前的C语言教学过程中,C语言教师并没有明确地给学生布置上机任务,在上机实践课上,大多数同学不知道上机内容,没有明确的目的。有的学生在上机时,只是将课本的例子或者教案的例题输入到编译器里面。完全没有达到上机的目的。

2 改进C语言的教学方法

通过对C语言教师教学方法的改进,能使学生明确C语言的学习目的,加强教师与同学之间的交流,改变C语言教师一往灌输式的教学模式,激发学生对C语言学习的积极性,培养学生独立、创新和善于解决问题的能力。

2.1 改进C语言教学方法,培养学生兴趣

恩格斯曾经说过这么一句话:“兴趣与爱好是最好的老师”。在C语言的教学过程中,C语言教师要注意培养学生对C语言的学习兴趣。比如,可以在课前的几分钟向学生介绍C语言的广泛用途:C语言可以编写系统软件,设计小游戏等功能;C语言是其他计算机软件课程,诸如C++、Linux等课程的基础,学好C语言对以后学习其他计算机语言具有很大的帮组。在《C语言程序设计》一书中,直接开始介绍函数的使用规则和C语言的语法,然而学生对这些知识完全不了解,如果按照书本上的顺序进行教学,学生会因为理解困难而失去学习兴趣。刚学习C语言的学生大多数对上机比较感兴趣,虽然他们不知道上机是做什么。C语言教师在开始上课的时候,可以先采用上机教学的方法,通过用C语言解决一些实际的问题来提升学生的学习兴趣。比如我们采用C语言解决数学中的问题:已知三角形的三条边求三角形面积的问题,编程结果如下:

#include

#include

int main()

{

int a, b, c;

double s;

printf("enter a,b,c:");

scanf("%d%d%d", &a,&b,&c);

if(!(a>0&&b>0&&c>0))

{

printf("invalid input.\n");

return 0;

} else if((a+b>c)&&(a+c>b)&&(b+c>a))

{

s=(a+b+c)/2;

s=sqrt(s*(s-a)*(s-b)*(s-c));

printf("area: %f", s);

} else

printf("can not form a triangle.\n");

return 0;

}

在教学过程中,我们指导学生输入三角形三条边的长度,学生在输入的过程中就会发现有些输入的条件不会显示错误,他们就会产生疑问,这时候C语言老师就应该对程序中的一些代码进行解释,比如“a>0&&b>0&&c>0”表示三角形的任意一条边都必须大于0;“(a+b>c)&&(a+c>b)&&(b+c>a)”表示三角形两边之和大于第三边;如果输入的数据不满足这些条件,就会显示出错误。这样不仅提升了学生的兴起,更重要的是把算法提前植入了学生的脑海里。

2.2 明确C语言教学内容,提高教学效果

任何课程的老师都需要在开课前对课程的内容进行精心全面的备课,然而如果在教学内容的定位上发生了错误,无论C语言教师在课堂上如何耐心、投入的讲解,但是学生可能完全不知道老师在讲什么,这会严重打击教师的教学积极性,同时影响同学们的学习。在备课的过程中,C语言教师应该以教学大纲为主,了解学生的计算机水平,针对性地对教学内容进行选择。备课要突出重要的知识点,对难点要着重进行讲解。在C语言的学习过程中,指针既是一个重要的知识点,又是学生难以掌握的知识点。由于指针代表的是地址,学生容易将指针和变量搞混淆。C语言教师在教学过程中可以采用比较记忆法对学生进行讲解,指针的数据类型非常多如:int *p;int (*p)();int *p[n]等,如果单独进行记忆,不仅花费时间长,还容易产生混淆。在教学过程中将各类指针的使用方法和形式放在一起,进行比较记忆能加快学生的记忆速度和记忆的准确性。

2.3 加强C语言上机实践,培养学生能力

C语言程序设计是一门实践性非常强的学科。只有通过学生对程序的正确编译,运行程序,才能达到C语言的学习目的。在进行上机实践之前,C语言教师要深入地研究上机内容,明确地给学生布置上机任务,让学生在上机实践之前做好充分的准备。当学生调试好一个程序后,C语言教师应指导学生在原有程序上进行优化,减少程序运行时间,培养学生优化算法的能力。

3 结束语

计算机软件技术是一项不断发展的高新技术,而C语言是计算机软件技术的基础,对学生学习其他软件技术有很大的帮助。高校C语言教师应结合当前计算机技术的发展,改进自身教学方法,提升教学能力,促进计算机应用型人才的培养。

参考文献:

[1]杜燕萍,乔沛荣.C语言教学方法探讨[J].计算机与现代化,1998,03:32-36.

[2].C语言教学方法探讨[J].滁州学院学报,2004,04:96-98.

[3]张建珍.C语言教学方法探究[J].计算机教育,2007,18:12-13.

c语言范文第5篇

关键词:Java语言;C语言;代码运行;效率

一、代码运行效率比较的方法

    在计算机的语言中,要在各种语言中比较各自的运行效率,既要从语言的基本理论上进行比较和衡量,但更主要的还是要实际的环境中进行测算,然后更加测算的实际结果来比较各自的真正运行时间,然后从中选择比较合适的语言。我们发现,往往由于实际环境难以预测,因此在实际中会有很多的问题会影响语言代码实际运行的和结果的准确性。打个比方,程序通过CPU的时候,是需要耗费一定的时间,这个程序当遇到级别更优的程序时,就会被抢先而暂时进入了一个待命的状态,然后其他子程序的运行也暂时停下来,各种硬件也暂时中断。而要尽量避免这样的一种影响影响,笔者因为,在当前的电脑操作系统中是比较难做到的,而且也根本没有这个必要,事实上,所选择的语言算法会是运行在各类的环境中的。

    那么,只实际的运行中,尤其是语言运行效率测试环节中,我们更重要的还是通过若干次的反复测试,再以多次测试出来的运行时间的平均数来作为语言运行时间的最佳标准。对于不同的语言,其实哪怕是同样的一种计算方法,实际上所获得结果是完全不一样的。因此,为了能够准确的选取最合适的语言,笔者就是在C语言和Java语言两者之间做了试验:首先,先使用C语言编辑一小段程序,然后也同样的使用了Java语言来编辑另一小段程序。接着,就是进行两种语言的运行时间的测试,通过反复的执行空操作的计算方法,并且这两种语言都分别运行100次以上,然后计算平均值,便得到各自的标准差。为了便于了解和认识,下面将对这两种语言的代码进行具体描述。

二、C语言和 Java语言的运行情况

C 语言是一种高级的语言,因为它具备很强的,即使是面对一些低级语言也能通读,我们甚至可以把C语言认为是包括低级语言和高级语言的优点全部汇总在一起的语言,是我们常用的计算机语言。而Java语言,严格上来说是在C语言基础上改进的计算机语言,是一中面向对象语言。

C语言的优点当然就有非常多了:例如简洁的优点、紧凑的优点、方便的优点、灵活的优点,同时,C语言也非常方便初学者的学习和使用,一般来说,初学如果能够掌握好关于指针的使用方法,就能够非常熟练的使用C语言来编写程序,程序的执行效率也会很高。而Java语言娥也有不少的的优点:例如他能够直接面向对象、可移植性强、动态性强等等。

在某种程度上,java语言和C语言是相似的,因此要对这两种语言进行效率的分析,是需要反复的验算,才能知道结果的。

(一) C语言程序的运行情况

    首先,我们来看一段C语言程序的运行情况,在程序运行,我们都会通过辅助性的语言来进行分析和讲解。

# include < stdio. h>//从时间戳读取时钟周期数

-int64 result[ 8][ 1000]; 当前执行的程序代码在编辑器中处于高亮状态:调用函数。如果跟踪的话就会进入这个函数内部。若使用普通的跟踪调试功能时经常会遇到许多未知错误,这时使用过滤跟踪就能很好解决这一问题

    timeO = My Query Counter( ) ; 为了准备调试,你需要在代码中设置一个断点。它显示了所有调用堆和当前所有线程的状态,包括所有已经执行完毕的线程,程序运行到断点位置时,状态显示为暂停。

    (二)Java语言的运行情况

int id; 此时会提示你这种项目是和Java透视图关联的

char name[30]; 第一个字段区域“源文件夹”默认是项目的文件夹

public class Tester对于大多数简单的Java程序而言,你不需要指定启动配置

int i; 有时一个Java程序有许多变量

  for(i=0;i

  strcpy(t->name,name); 检查和修复Java程序代码问题。在这里你可以检查和修改变量和断点,选择变量标签页,这个视图显示了当前范围的变量及其值

  t->next=0;  p->next=t; 当表达式中的变量发生变化时,显示的值都不回自动更新。但在表达式视图中,你可以讲表达式转为监视表达式

    三、Java语言与C语言代码运行效率的比较

    由以上的程序运行,可以测算出来C语言的运行效率是远远高于JAVA原因的,原因有也很多,主要还是由于C语言是编译型的语言,而JAVA语言则是解释型的语言,因此JAVA语言要被翻译二进制的语言代码后,计算机方能辨识并执行。不过呢,C语言和java语言的运行效率的比较,快于慢也不是绝对的,要根据不同的实际和应用,以及选择不同的结果,才能确定选择某一语言程序,一般来说呢,c语言是比Java要快,不过因为c语言运行的过程是进程型的,而Java语言是线程型的,因此如果客户的访问量非常大,那么反而java显得更加的合适,更加有优势。 

参考文献:

1、卢晓苗,李从龙,张建明.一例Java语言与C语言代码运行效率的比较.  《现代计算机(专业版)》,2010年01期

相关期刊更多

CT理论与应用研究

统计源期刊 审核时间1-3个月

中国地震局

忻州师范学院学报

省级期刊 审核时间1个月内

忻州师范学院

徐州师范大学学报

省级期刊 审核时间1个月内

江苏省教育厅