欢迎来到易发表网!

关于我们 期刊咨询 科普杂志

c语言论文优选九篇

时间:2022-11-19 08:47:21

引言:易发表网凭借丰富的文秘实践,为您精心挑选了九篇c语言论文范例。如需获取更多原创内容,可随时联系我们的客服老师。

c语言论文

第1篇

参考文献:

[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.

第2篇

关键词FranklinC51编译器汇编语言结构化设计模块中断

--------------------------------------------------------------------------------

在研制单片机应用系统时,汇编语言是一种常用的软件工具。它能直接操作硬件,指令的执行速度快。但其指令系统的固有格式受硬件结构的限制很大,且难于编写与调试,可移植性也差。随着单片机硬件性能的提高,其工作速度越来越快,因此在编写单片机应用系统程序时,更着重于程序本身的编写效率。而FranklinC51交叉编译器是专为80C51系列单片机设计的一种高效的C语言编译器,使用它可以缩短开发周期,降低开发成本,而且开发出的系统易于维护,可靠性高,可移植性好,即使在代码的使用效率上,也完全可以和汇编语言相比,因此目前它已成为开发80C51系列单片机的流行工具。

1C51语言程序设计的基本技巧

C语言是一种高级程序设计语言,它提供了十分完备的规范化流程控制结构。因此采用C51语言设计单片机应用系统程序时,首先要尽可能地采用结构化的程序设计方法,这样可使整个应用系统程序结构清晰,易于调试和维护。对于一个较大的程序,可将整个程序按功能分成若干个模块,不同的模块完成不同的功能。对于不同的功能模块,分别指定相应的入口参数和出口参数,而经常使用的一些程序最好编成函数,这样既不会引起整个程序管理的混乱,还可增强可读性,移植性也好。

在程序设计过程中,要充分利用C51语言的预处理命令。对于一些常用的常数,如TRUE,FALSE,PI以及各种特殊功能寄存器,或程序中一些重要的依据外界条件可变的常量,可采用宏定义"#define"或集中起来放在一个头文件中进行定义,再采用文件包含命令"#include"将其加入到程序中去。这样当需要修改某个参量时,只须修改相应的包含文件或宏定义,而不必对使用它们的每个程序文件都作修改,从而有利于文件的维护和更新。现举例说明如下:

例1对于不同的单片机晶振,程序取不同的延时时间,而且可根据外界条件的变化修改延时时间的长短。对于这样的程序,可利用宏定义和条件编译来实现。程序如下:

#defineflag1

#ifdefflag==1

#definefosc6M

delay=10;

#elifflag==0

#definefosc8M

delay=12;

#else

#definefosc12M

delay=20;

#endif

main()

{

for(I=0;I<delay;I++);

}

这样源程序不作任何修改就可适用于不同时钟频率的单片机系统,并可根据情况的不同取不同的delay值,完成不同的目的。

2C51语言与汇编语言程序的混合编程

C51编译器能对C语言源程序进行高效率的编译,生成高效简洁的代码,在绝大多数场合采用C语言编程即可完成预期的目的。但有时为了编程直观或某些特殊地址的处理,还须采用一定的汇编语言编程。而在另一些场合,出于某种目的,汇编语言也可调用C语言。在这种混合编程中,关键是参数的传递和函数的返回值。它们必须有完整的约定,否则数据的交换就可能出错。下面就以力源公司的10位串行A/D转换器TLC1549为例说明C语言程序与汇编语言程序的调用。

图1TLC1549管脚图

1549的管脚图和时序图分别如图1和图2所示,假定DATAOUT接P1.0,接P1.1,CLOCK接P1.2。

1549的具体特性请查阅有关资料。

例2C语言程序与汇编语言程序的调用,其子程序如下:

PUBLICAD;入口地址

SEG_ADSEGMENTCODE;程序段

RSEGSEG_AD

USING0

AD:MOVR6,#00

MOVR7,#00

SETBP1.1

ACALLDELAY

CLRP1.1

ACALLDELAY

MOVR0,#10

RR0:SETBP1.2

NOP

CLRP1.2

DJNZR0,RR0

ACALLDELAY

MOV30H,R6;A/D转换的高

;两位保存在R6中

ACALLCIR

MOVR6,30H

SETBP1.2

NOP

CLRP1.2

MOV30H,R6

ACALLCIR

MOVR6,30H

MOVR0,#8;A/D转换的低

;8位保存在R7中

RR2:SETBP1.2

NOP

CLRP1.2

MOV30H,R7

ACALLCIR

MOVR7,30H

DJNZR0,RR2

RET

CIR:CLRC

MOVC,P1.0

MOVA,30H

RLCA

MOV30H,A

RET

END

在以上程序中,函数的返回值为一无符号整型数,根据调用规则,返回值的高位必须在R6中,低位在R7中,这样才可保证数据的传递不出错。另外,在调用过程中,必须注意寄存器的入栈。这样在以后用到A/D转换时,在C语言中调用汇编语言子程序AD()即可。

3C51中断处理过程

C51编译器支持在C源程序中直接开发中断过程,因此减轻了使用汇编语言的繁琐工作,提高了开发效率。中断服务函数的完整语法如下:

void函数名(void)[模式]

[再入]interruptn[usingr]

其中n(0~31)代表中断号。C51编译器允许32个中断,具体使用哪个中断由80C51系列的芯片决定。r(0~3)代表第r组寄存器。在调用中断函数时,要求中断过程调用的函数所使用的寄存器组必须与其相同。"再入"用于说明中断处理函数有无"再入"能力。C51编译器及其对C语言的扩充允许编程者对中断所有方面的控制和寄存器组的使用。这种支持能使编程者创建高效的中断服务程序,用户只须在C语言下关心中断和必要的寄存器组切换操作。

例3设单片机的fosc=12MHz,要求用T0的方式1编程,在P1.0脚输出周期为2ms的方波。

用C语言编写的中断服务程序如下:

#include<reg51.h>

sbitP1_0=P1^0;

voidtimer0(void)interrupt1using1{

/*T0中断服务程序入口*/

P1_0=!P1_0;

TH0=-(1000/256);/*计数初值重装*/

TL0=-(1000%256);

}

voidmain(void)

{

TMOD=0x01;/*T0工作在定时器方式1*/

P1_0=0;

TH0=-(1000/256);/*预置计数初值*/

TL0=-(1000%256);

EA=1;/*CPU开中断*/

ET0=1;/*T0开中断*/

TR0=1;/*启动T0*/

do{}while(1);

}

在编写中断服务程序时必须注意不能进行参数传递,不能有返回值。

第3篇

为了激发学生的兴趣,可以采用Funcode平台进行课程设计。Funcode平台是一款基于游戏设计和动画界面的C\C++\Java综合实验教学平台,该平台以游戏设计为“噱头”,吸引学生的学习兴趣,虽然如此,该平台通过精选大量的游戏案例,还是很好地将程序设计知识点和游戏设计紧密地结合起来,始终紧扣C语言知识点,为C语言课程设计教学提供了一个很好的工具。

1.1图形方式的游戏界面编辑Funcode平台采用图形界面方式的游戏编辑环境,直观、美观、简洁易用。图1所示为正在设计中的游戏,左侧矩形框中为最终运行时可见的游戏界面,可以从右侧中的“鱼”(Funcode中称为“精灵”,任何类似的图片都是精灵,不同的精灵以精灵名区分)中任意拖拽一条“鱼”到左侧矩形框中,即可在游戏界面中增加一条鱼。

1.2提供功能函数,屏蔽对图形的复杂处理Funcode平台提供了大量功能函数,屏蔽对图形对象的复杂处理,使学生能够专注于程序设计和游戏逻辑功能的实现。例如:功能函数voiddSetSpriteLinearVelocityX(constchar*szName,constfloatfVelX)可以使精灵以某一速度水平运动。让图1左侧中的鱼(假设该鱼命名为fish0)游动起来,学生只需用一条函数调用语句dSetSpriteLinearVeloctyX(“fish0”,30)即可实现;亦可通过调用功能函数dSetSpriteLinearVelocity(“fish0”,30,30)使鱼水平方向和垂直方向分速度均为30,即在屏幕上“斜向”游动;功能函数dSetSpriteFlipX(“fish0”,true)调用可以使鱼水平翻转,即实现“掉头”功能。

1.3整体逻辑框架简洁,功能强大Funcode平台整体逻辑框架由7个主要函数模块组成,分别是主函数模块、鼠标移动事件模块、鼠标单击事件模块、按键事件模块、按键弹起事件模块、对象碰撞事件模块、对象与边界碰撞事件模块。其主函数模块如以下程序代码所示,通过主函数模块控制整个游戏的运行和界面刷新。其他的6个函数模块几乎包含了游戏设计中需要处理的所有事件,并且向学生屏蔽了事件激发所需要的复杂判断过程,所有的鼠标事件、键盘事件、碰撞事件均为自动激发,这很大程度上降低了设计难度,使学生可以专注于游戏逻辑功能的实现。例如:要实现图1中的“鱼”游到右侧边界时掉头向左游逻辑功能,在Funcode平台下,当图1中的“鱼”游到右侧边界时,“对象与边界碰撞”模块将会自动激发,该模块的初始程序代码如下所示。此时,学生无需判断和处理“鱼”是否游到边界(这对大学一年级学生而言比较困难),只需要知道“鱼”游到边界后会自动调用“对象与边界碰撞”模块对应的dOnSpriteColWorldLimit函数即可。因此,学生只要能够根据游戏功能在该函数中正确地编写相应的代码就可以了,具体实现“掉头向左游”逻辑功能的完整程序代码如下所示。显然,这样就极大地简化了对图形对象和事件的处理,学生就可以把更多的精力投入到游戏逻辑功能的实现和代码的编写和调试中。

1.4开放式环境,极大地激发学生创新能力Funcode提供了开放式的开发环境,除了完成Funcode提供的课程设计案例以外,学生也可以按照自己的思路,添加素材,大胆创新,设计和开发真正属于自己的游戏,这样能极大地激发学生的程序设计热情。例如:一组学生开发的“大鱼吃小鱼”游戏,当大鱼吃小鱼得分达到一定的分值时,可以生出“鱼宝宝”,尾随大鱼游动,生动有趣。

2教学内容和方法的改革

基于Funcode平台,在教学内容和方法的改革上,以激发学生兴趣,调动学生学习主动性为主要目标,在此基础上,贯穿整个课程设计的各个阶段,采用多种教学方式和方法培养学生各方面的综合素质。

2.1选题阶段在选题内容上,典型游戏设计和自主创新相结合。改变原有的设计内容变为基于Funcode平台游戏设计。设计内容分为两类:一类是典型的可在Funcode平台上实现的游戏,比如坦克大战、打地鼠等;另一类是学生自选题目,要学生根据Funcode平台功能,发挥自己的想象力,创造自己的游戏。教师要通过讨论、引导等方式,鼓励学生自己设计游戏,培养其创新意识和创新能力。题目选定之后,要求学生将游戏整体功能用功能模块和流程图的方式清楚地表示出来,并且要能够准确地描述各模块之间的关系,锻炼学生的抽象思维和逻辑思维能力。在选题方式上,要坚持组内讨论和师生互动相结合。组内讨论有利于游戏功能的完善,有利于发挥所有同学的创新潜力,有利于调动学生参与的积极性。通过教师和学生的讨论交流,教师要控制游戏功能的实现复杂度,既要保证设计的工作量,又要保证控制在可实现的范围内。

2.2设计阶段在课程设计过程中,要避免“学生问,教师答”的教学模式,教师要积极地参与到所有学生的设计中,主动和学生交流讨论,掌握他们的设计情况;善于通过引导启发,培养学生各方面的综合素质。在设计中,要及时发现并指出存在的问题;对于学生提出的问题,要善于引导他们积极独立思考,尽量让其自主分析,找到原因,进而找到解决问题的方法,这一方面可以培养学生独立思考,分析问题和解决问题的能力,另一方面可以增强学生的成就感和自信心,有利于调动学生参与实践的热情。对于游戏功能的实现,要让学生画出流程图或实现步骤,体会程序设计中的抽象思维和逻辑思维。比如对于“打飞虫”游戏,当“拍子”拍中“飞虫”时,对应Funcode抽象概念为“拍子”对象和“飞虫”对象发生碰撞事件,由于碰撞事件自动激发,所以拍中“飞虫”后对应的游戏功能实现逻辑应该在碰撞事件中表达。对于该碰撞事件的处理,要求学生首先画出拍中“飞虫”后的处理逻辑,体会程序设计中的逻辑思维。比如:使“飞虫”图像从界面消失在“飞虫”链表中删除该飞虫显示拍效根据拍中的“飞虫”类型计分刷新游戏界面上显示的实时得分值。课程设计要求按组进行,设计中要求分工合理,任务明确,紧密协作,严格按照日程安排,完成设计任务。要求每2天一次,将每人独立设计的模块进行整合并测试,同时要求学生定期开展讨论,鼓励他们对设计中存在的问题,积极和同组同学交流沟通,要善于发挥集体的力量,解决问题。在协作设计中,培养学生的团队合作意识。此外,在游戏的设计过程中,必然会存在一些较难实现或者知识点超出课本内容的功能,从经验来看,大多数学生都会无奈地选择放弃该功能。此时,教师一定要向学生强调自主学习的重要意义,让他们认识到课堂教学中讲的内容大多是最基础的核心知识点,而实际的应用中要涉及的知识却远非如此,并积极鼓励和指导学生学习和掌握相关知识点。

2.3考评阶段为了进一步培养学生兴趣,调动其积极性,考核采用每组分别进行讲解和演示,交流心得体会,其他组同学和教师进行打分的形式。打分项分为游戏功能、工作量、流畅性、创新性、美观性等5个方面。演示中鼓励其他组的同学提问和试玩游戏,尽量找出游戏设计的缺陷,通过多种方式培养学生的展示能力和竞争意识。最后,教师再进行总结性点评,指出设计的优缺点。

3教学效果

从调动学生学习积极性方面来看,在整个课程设计过程中,学生始终保持着极高的热情。教师为课程设计建立了QQ群,提供全天答疑服务,从QQ群讨论情况来看,学生提问很多,讨论热烈,而且绝大多数在课外时间。此外,课程设计结束后,很多学生指出,Funcode平台美中不足的是:自己创造出的游戏最终生成的可执行程序离开Funcode平台不能运行,非常令人遗憾。这也可以从一个侧面反映了学生的热情和对自己劳动成果的珍惜。从课程设计内容来看,学生大多是按照自己的想法设计的,游戏功能可谓五花八门,创新能力得到了很好的培养和锻炼。更重要的一点是达到了课程设计的教学目的,学生对程序设计的理解更加深刻,巩固了C语言学习成果,能够将游戏功能的实现逻辑用计算机语言准确地表达出来。在程序设计中遇到的具体问题,学生能够提出自己的解决思路,并通过编写程序表达自己的思路,很好地将课堂上学到的理论知识应用于实际问题的解决,抽象思维和逻辑思维能力、程序设计实践动手能力均得到了很好的锻炼。例如:图2所示为学生设计的游戏初始界面。该游戏实现的功能有:游戏实时倒计时;游戏实时显示得分;通过键盘控制游戏的开始、暂停和游戏场景的切换;用鼠标控制“拍子”进行移动和拍打;打到大蚊子、小蚊子积分不同,打到坚果则减分,且打中目标有图片特效产生;蚊子的产生地点、时间、数量和产生时的飞行速度都是随机的,且飞行速度随着积分级别越来越快;游戏结束时显示得分最高的三条历史记录等。此游戏中,学生自己编写代码(不包括自动生成的代码)行数在800行以上,使用的C语言知识点涵盖了数组、链表、函数、变量作用域、多分支结构、循环结构等。

4结语

第4篇

关键词:CDMA;AAA服务器;Internet;Intranet

CharacteristicsandFunctionsforCDMATechnology

Abstract:Thisissuemainlysetsforththecharacterandstrongpowerofthe3thgenerationmobiletelecommunicationtechnology-CDMA.Telecommunicationaltermshavetranseredfromnarrowservices,suchastelephone,sendingorreceivingmessages,tomultimediumofbroadband.PDSNisentrygateway,whitchlinkingwirelessnetandpackagenettogether.PDSNalsoservingforusers`enteringpackagedatenet.AAAservercanprovideusers`identificationbyprobingpre-registedlogininformation,thendecidewhetherpermittingmobileusersusingsomenetworkresourse,atthesametimeitcalculatingfee,audittin,allottingofcostoranalysisingoftrend.CDMAprovidingpowerfulguaranteefordevelopmentofmobilecommunication.

Keywords:CDMA;AAAserver;Internet;Intranet

1引言

CDMA(CodeDivisionMultipleAccess码分多址)是近年来被应用于商业的一种数字接口技术。他拥有频率利用率高、手机功耗低等优点。CDMA手机是指基于CDMA网络的移动通信终端。目前,19家企业被批准有资格生产CDMA终端产品。

CDMA手机除了能够提供GSM手机的通话功能和信息服务外,还具有高速无线数据传输和多媒体功能。能提供的服务主要有:

(1)基本增值服务,如呼叫转移、信息提示等。

(2)语音邮件服务,如邮件、传真、新闻等语音信息。

(3)短信息服务,如天气、交通、证券、广告等。

(4)无线智能网服务,如虚拟网络、个人号码识别等。

(5)无线互联网服务,如网络浏览、电子商务、电子邮箱、网络游戏等。

2CDMA所具有的优点

与GSM手机相比,CDMA手机具有以下优点:

(1)CDMA手机发射功率小(2mw)。

(2)CDMA手机采用先进的切换技术——软切换技术(即切换是先接续好后再中断),使得CDMA手机的通话可与固定电话媲美,而且不会有GSM手机的掉线现象。

(3)使用CDMA网络,运营商的投资相对减少,这就为CDMA手机资费的下调预留了空间。

(4)因采用以拓频通信为基础的一种调制和多址通信方式,其容量比模拟技术高10倍,超过GSM网络约4倍。

(5)基于宽带技术的CDMA使得移动通信中视频应用成为可能,从而使手机从只能打电话和发送短信息等狭窄的服务中走向宽带多媒体应用。

在第三代移动通信的无线接口国际提案中,WCDMA和CDMA2000都是极为重要的技术。这两种宽带CDMA方案,除了码片速率、同步方式、导频方式等有所不同外,其他如功率、软切换等基本技术并无大的区别。

CDMAOne是基于IS-95标准的各种CDMA产品的总称,即所有基于CDMAOne技术的产品,其核心技术均以IS-95作为标准。CDMA2000是美国向ITU提出的第三代移动通信空中接口标准的建议,是IS-95标准向第三代演进的技术体制方案,这是一种宽带CDMA技术。CDMA2000室内最高数据速率为2Mb/s以上,步行环境时为384kb/s,车载环境时为144kb/s以上。

CDMA2000-1X原意是指CDMA2000的第一阶段(速率高于IS-95,低于2Mb/s),可支持308kb/s的数据传输,网络部分引入分组交换,可支持移动IP业务。

CDMA2000-1XEV是在CDMA2000-1X基础上进一步提高速率的增强体制,采用高速率数据(HDR)技术,能在1.25MHz(同CDMA2000-1X带宽)内提供2M/s以上的数据业务,是CDMA2000-1X的边缘技术。3GPP已开始制订CDMA2000-1XEV的技术标准,其中用高通公司技术的称为HDR。

与CDMAOne相比,CDMA2000有下列技术特点:多种信道带宽,前向链路上支持多载波和直扩两种方式;反向链路仅支持直扩方式;可以更加有效地使用无线资源;可实现系统平滑过渡;核心网协议可使用IS-41,GSM-MAP以及IP骨干网标准;前向发送分集;快速前向功率控制;使用Turbo码;辅助导频信道;灵活帧长;反向链路相干解调;可选择较长的交织器。CDMA2000-1X采用扩频速率为SR1,即指前向信道和反向信道均用码片速率1.2288Mb/s的单载波直接序列扩频方式。因此他可以方便地与IS-95(A/B)后向兼容,实现平滑过渡。运营商可在某些需求高速数据业务而导致容量不够的蜂窝上,用相同载波部署CDMA2000-1X系统,从而减少了用户和运营商的投资。由于CDMA2000-1X采用了反向相干解调、快速前向功控、发送分集、Turbo编码等新技术,其容量比IS-95大为提高。在相同条件下,对普通话音业务而言,容量大致为IS-95系统的两倍。

3CDMA关键技术所在

CDMA2000-1X关键技术包括以下几个方面。

(1)前向快速功率控制技术CDMA2000采用快速功率控制方法。即移动台测量收到业务信道的Eb/Nt,并与门限值比较,根据比较结果,向基站发出调整基站发射功率的指令,功率控制速率可以达到800b/s。由于使用快速功率控制,可以达到减少基站发射功率、减少总干扰电平,从而降低移动台信噪比要求,最终可以增大系统容量。

(2)前向快速寻呼信道技术此技术有2个用途。一是寻呼或睡眠状态的选择。因基站使用快速寻呼信道向移动台发出指令,决定移动台是处于监听寻呼信道还是处于低功耗的睡眠状态,这样移动台便不必长时间连续监听前向寻呼信道,可减少移动台激活时间和节省移动台功耗。二是配置改变。通过前向快速寻呼信道,基地台向移动台发出最近几分钟内的系统参数消息,使移动台根据此新消息作相应设置处理。

(3)前向链路发射分集技术CDMA2000-1X采用直接扩频发射分集技术,有2种方式:一种是正交发射分集方式,方法是先分离数据流再用不同的正交Walsh码对2个数据流进行扩频,并通过2个发射天线发射。另一种是空时扩展分集方式,使用空间两根分离天线发射已交织的数据,使用相同原始Walsh码信道。使用前向链路发射分集技术可以减少发射功率,抗瑞利衰落,增大系统容量。

(4)反向相干解调基站利用反向导频信道发出扩频信号捕获移动台的发射信号,再用梳状(Rake)接收机实现相干解调,与IS-95采用非相干解调相比,提高了反向链路性能,降低了移动台发射功率,提高了系统容量。

(5)连续的反向空中接口波形在反向链路中,数据采用连续导频,使信道上数据波形连续,此措施可减少外界电磁干扰,改善搜索性能,支持前向功率快速控制以及反向功率控制连续监控。

(6)Turbo码使用Turbo码具有优异的纠错性能,适于高速率对译码时延要求不高的数据传输业务,并可降低对发射功率的要求、增加系统容量,在CDMA2000-1X中Turbo码仅用于前向补充信道和反向补充信道。Turbo编码器由2个RSC编码器(卷积码的一种)、交织器和删除器组成。每个RSC编码器有两路校验位输出,2个输出经删除复用后形成Turbo码。Turbo译码器由2个软输入、软输出的译码器、交织器、去交织器构成,经对输入信号交替译码、软输出多轮译码、过零判决后得到译码输出。转(7)灵活的帧长与IS-95不同,CDMA2000-1X支持5ms,10ms,20ms,40ms,80ms和160ms多种帧长,不同类型信道分别支持不同帧长。前向基本信道、前向专用控制信道、反向基本信道、反向专用控制信道采用5ms或20ms帧,前向补充信道、反向补充信道采用20ms,40ms或80ms帧,话音信道采用20ms帧。较短帧可以减少时延,但解调性能较低;较长帧可降低对发射功率的要求。

(8)增强的媒体接入控制功能媒体接入控制子层控制多种业务接入物理层,保证多媒体业务的实现。他实现话音、分组数据和电路数据业务同时处理,提供发送、复用和Qos控制,提供接入程序。与IS-95相比,他可以满足更高宽带和更多业务的要求。CDMA1X网络的关键设备,分组数据服务节点(PDSN)、鉴权、授权、计费服务器(AAA)、本地(HA)是CDMA1X系统支持分组数据业务的关键设备,为此对他们进行专门的介绍。PDSN是连接无线网络和分组数据网的接入网关,为移动Internet/Intranet用户提供分组数据接入服务。除了使点到点协议(PPP)封装的IP包能在无线网络和IP网络间正确传输外,PDSN还与其他各种接入服务商的IP分组网络连接,从而为终端用户提供诸如互联网接入、电子商务、WAP应用等多种业务。PDSN同时还完成AAA服务器所需的合并的分组会话计费数据和无线会话计费数据搜集功能,并且支持移动IP的外部(FA)和用户设备的85认证功能,同时还能提供移动IP业务,满足终端用户丰富多彩的移动互联网业务需求。

AAA服务器完成的功能有:用户注册信息的认证,即通过验证一些预先登记的信息来提供用户身份认证;数据业务的授权,即决定是否授权移动用户访问特定的网络资源;计费信息的处理,即搜集资源使用信息,用于进行计费、审计、成本分配或趋势分析等。此外,他还须实现与PDSN,HA及其他AAA服务器的交互功能,向移动用户提供分组数据业务。AAA服务器具有下列特征:使用RADIUS协议,支持大规模的外部和漫游业务,RADIUS能向外部的RADIUS服务器提供可靠的AAA功能;通过目录支持功能和程序化的配置接口,完成配置、计费和其他业务管理部件的集成,从而降低运营成本和加快业务推出速度;通过支持集中化的IP地址分配和对跨多地理区域接入设备会话的限制,高效使用管理资源。

只有使用“移动IP”时才需要HA。作为一个独立的网络单元,HA用来完成对移动IP和移动IP用户的移动性管理功能。HA通过移动终端登记来定位移动用户,同时把分组数据转发到用户当前所登记的FA(位于PDSN内)。HA同时支持动态的IP地址分配和反向隧道。HA具有冗余备份功能,可由一个HA替代另一个HA。这样,新的HA可以用原有IP地址和转换地址维护关联表,保证移动关联表处于同步状态。此外,这种方式还能保证解决方案的可用性和可扩展性。

近一段时间以来,联通开始大举推广CDMA1X网络,并明确宣称将把重心放在无线互联的移动数据业务上。而目前,无线局域网成熟的标准可达到11Mb/s的速率,新的标准最高达54Mb/s的速率,这对移动用户具有非常大的吸引力。

早在2003年4月的博鳌亚洲论坛首届年会上,海南联通在当地建了3个CDMA1X的基站,并向前来采访年会的记者分发了近300张的无线上网卡,CDMA1X+WLAN方案的数据业务更是引起了广泛关注。按照设想,海南联通甚至要为沿海渔民以及钻井平台上的工作人员提供包括天气预报等在内的移动数据服务。

WLAN这种早已被电信网通普遍采纳的无线接入技术,一经与CDMA1X融合,就显示出其独特的魅力。一般说来,虽然WLAN可以提供高速的数据业务,但WLAN却缺少对用户进行鉴权与计费的成熟机制,而且无线局域网的覆盖范围较小,一般都在热点地区,用户使用时受到地点的限制。而CDMA1X网络经过了几十年的研究与实验,不仅有成熟鉴权与计费机制,并且具有覆盖广的特点。CDMA1X网络可以利用WLAN高速数据传输的特点以弥补自己数据传输速率受限的不足,而无线局域网不仅充分利用了CDMA1X网络完善的鉴权与计费机制,而且可结合CDMA1X网络覆盖广的特点,进行多接入切换功能。这样就可实现WLAN用户与CDMA1X用户统一的管理。

为了获得无线局域网提供的数据业务,终端必须处于无线局域网的信号覆盖范围内,即首先要连接到AP。当终端发起数据业务的呼叫时,先在APGW和PDSN之间建立RP连接,然后到PDSN进行分组网络的注册,才可进行数据业务,其具体连接过程如下:

(1)终端在WLAN网络系统中检测WLAN的信号,并连接到AP。

(2)当终端有数据业务的需求时,发起连接请求,在AP/APGW收到连接消息后,APGW向PDSN发送Au注册请求消息。若注册请求消息有效,则PDSN通过返回带接收指示的Au注册应答消息接收该连接,PDSN和APGW均产生关于A10连接的绑定记录。

(3)终端和PDSN建立PPP的连接,在建立PPP连接的过程中,如果是SimpleIP用户,PDSN会分配给终端一个IP地址(对MobileIp用户,还需进行MIP的注册)。

(4)PPP连接建立成功,终端可以通过GRE帧在A10连接上发送或接收数据。

(5)在Au注册生存期超过前,APGW发送Au注册请求消息以更新A10连接的注册。Au注册请求消息也用于向PDSN传送与计费相关的信息以及其他信息,这些信息在系统定义的触发点上传送。

(6)对于有效的注册请求,PDSN返回带接受指示和生存期值的A11注册应答消息。PDSN和APGW均更新A10连接的绑定记录。PDSN在返回注册应答消息之前保存与计费相关的信息(如果收到的话)用于进一步处理。

(7)如果用户或PDSN终止数据业务,则PDSN将终止和用户PPP连接,并拆除与APGW的RP连接。

WLAN网络,其中无线接入点(AccessPoint,AP)是无线终端接入固定电信网的连接设备,为用户提供无线接入功能,可提供话音和数据的接入服务。AP完成简单的对无线用户的管理和对无线信道的动态分配,并完成802.11与802.3协议的转换,经过AP转换后的数据包是以太网包。

接入点网关(AccessPointGateway,APGW)是将AP转换出的以太网数据包封装成IP包,并发送到PDSN的设备。一般PDSN设备放置的位置与无线网络侧设备AP、APGW离得比较远,要实现PDSN接入网关的作用经常需要将AP转换的二层数据包穿越三层网络以到达PDSN。因此,APGW功能实体就是为了完成此功能的转换设备。

参考文献

[1]TeroOjanpera.宽带CDMA:第三代移动通信技术[M].北京:人民邮电出版社,2001.

[2]杨大成.CDMA2000技术[M].北京:北京邮电大学出版社,2001.

[3]杨大成.CDMA20001x移动通信系统[M].北京:机械工业出版社,2003.

第5篇

1.1计算机软件C语言的编程技巧

计算机软件C语言的编程中,最主要的依据是指针应用,C语言指针能够根据软件程序的编写需求,构建可行的函数,而程序员在设计函数编程的过程中,即可通过函数参数的具体分配,设置C语言的指令控制。程序员利用C语言编写软件程序时,不仅要准确地控制指令,更重要的是编制C语言的算法。C语言的算法内,体现出诸多应用技巧,利用流程表示的方法规划操作位置,以此来提高C语言的流程算法。程序员编程软件C语言时,需要注意语言设置,首先确定C语言在软件编写中的对象,如程序运算,保障C语言在编程实验中的对象;然后分类计算机软件编程所需的文件,完善文件之间的关联性,设定C语言编程文件的相关步骤;最后全面检查软件C语言编程中涉及的数据,方便编程中的数据查找。

1.2计算机软件C语言的程序应用

计算机软件C语言编程实验中的程序应用,分为函数、算法和运算三个部分。分析如:

(1)C语言在软件编程中的函数,软件编程的函数,负责不同的软件功能,程序员通过C语言定义编程中的函数,由于C语言可以实现编译,因此软件编程所需要的函数,可以在系统内直接调用,程序员操作“#include指令”,关联所有的应用文件,如程序员使用C语言中的sqrt函数,还需引入头文件#include“string.h”;

(2)算法是计算机软件编程的核心,C语言在基础算法的作用下,实现程序表达,程序员需要掌握程序算法,才能保障C语言在计算机软件中合理性,程序员还要在算法的过程中,添加流程图,利用流程符号协助算法运行,提高C语言编程的效率;

(3)运算是C语言编程实验的特色,其对象是二进制,按照计算机软件的C语言编程,设计程序运算,软件的C语言编程中包括诸多基础文件,此类文件是软件编程的重要部分,程序员将编写程序存储到相关的语言内,有利于运算过程中的语言查询。

2计算机软件C语言编程的案例

计算机软件C语言的程序设计比较复杂,以混合软件编程为例,分析C语言的编程。首先程序员应该根据计算机软件的运行目的,将运行语句编写到C语言中,形成源代码,程序员需要连接C语言中的汇编语句,如:Main(){asm{Movah,2Movbh,5Int10h}}整个编程实验案例中,C语言的语句汇编存在格式要求,而且格式较为固定,因此,程序员应遵循一定要求,如:检查语句中是否具备asm,如果缺少asm需重新设定在语句前;确定汇编语句能够正常嵌入C语言内;注意C语言的分隔符,分隔符必须正确。然后设置编译代码,此项模块需要具备单独编程,待C语言编程完成后,利用链接的方式联合代码和编程。混合软件编程中的C语言,函数部分能够被汇编使用,多个编程共同组成一项语言任务,而且C语言倾向于独立编程,基本是以函数的状态实现软件的编程实验。编译代码的应用,提高C语言在计算机软件中的编程能力,保障C语言编程的准确度,强化计算机软件的实践性。最后程序员在混合软件C语言编程实验中,需注重已经出现的编程问题,尤其是参数、存储等问题,排除C语言编程的因素干扰。例如C语言编程实验中出现的参数问题,实际汇编中无法实现正常的参数传递,导致参数堆栈传输时出现问题,不能正常汇编到C语言的程序内,因此还需在汇编中增加两类指令,如:sp、pushbppopbp。混合软件C语言中添加汇编方式,可以提升计算机软件程序的运行速度,完善软件编程。

3结语

第6篇

关键词:BEC;存在问题;措施

一、BEC商务英语的概念

剑桥商务英语证书(BEC)考试是教育部考试中心和英国剑桥大学考试委员会合作举办的权威性考试。目前分为(BEC1)、中(BEC2)、高(BEC3)三个级别。这三个考试是针对英语为非母语国家的需求而设计的主要在经济迅速发展、国际交流日益增多的国家和地区实施,具有更广泛的适用性,因而在国际上受到普遍欢迎。目前已有28个亚洲和欧洲国家或地区,包括一些经济发达国家已开始举办BEC考试。该系列考试是一项水平考试,它根据商务工作的实际需要,从听、说、读、写四个方面对考生在商务和一般生活环境下使用英语的能力进行全面考查,对成绩及格者提供由英国剑桥大学考试委员会颁发的标准统一证书。由于该证书的权威性,已成为在所有举办该考试的一百多个国家和地区求职的“通行证”。

二、我国考生通过率情况

在各种英语类通行证中,中国考生向来以高通过率而著称。与此相比,中国的BEC考试通过率却显得有些尴尬。

剑桥大学ESOL考试委员会的BEC成绩报告显示:中国考生的通过率明显低于其他非英语国家考生通过率。2006年5月全球BEC平均通过率是43%,中国考区只有37%,而除中国以外的全球通过率为57—58%。

近几年来,中国BEC考试报名率以每年300%的速度疯狂飙升,中国考区的通过率却一直处于低迷徘徊阶段,严重拖累了世界的BEC通过率。为什么中国BEC的通过率低于世界水平?BEC考试由写作、听力、阅读、口试四个部分组成,只有A、B、C三类为有效成绩。如果有两个部分为D,那么总体成绩就是D,即为无效成绩。剑桥大学考试部授权的中国培训官陈雪翎指出:中国学生写作、听力、阅读、口试的成绩往往不在同一个标准上。

三、目前听力口语教学存在问题

1.缺乏相关商务知识。中国学生之所以在听力方面常常“败北”,原因就在于这两部分对于专业的商务知识要求较高。首先,口话话题往往都是商务方面的,在表述中需运用专业术语、专业语境,如果这方面欠缺,成绩自然大受影响。

2.非标准化的英语表达法。由于《新编剑桥商务英语》(中级)为原版引进,没有中文说明和解释,所以对于文化背景不同、英语能力有限、商务知识欠缺的广大中国考生来说,难免感到困难,特别在听力部分融合了大量口语化的表示法、俚语以及行业术语,与学生平时听到的标准化的发音迥然不同,加之口音问题,更增加了一定的难度。

3.缺乏相关跨文化背景知识。各民族语言含有大量的文化因素,这是构成民族文化的要素之一。不同的文化之间自然会呈现不同的文化形态,这种文化形态差异反映到语言层面上,则表现为语言差异。传统商务英语教材以语法操练为主,教学内容单一、陈旧、跟不上现代英语的发展。四、BEC商务英语口语听力教学的几项措施

1.针对教材听力资料。熟悉听力材料,弄懂段落中所涉及的商务词汇概念及其Mainidea。在足够熟悉此段落中的内容后,脱离文字材料先听一遍磁带,此时绝对不允许照着文字材料听,看看自己究竟能听懂多少,然后把听不懂或容易出问题的部分特别列出,再听一遍,此次应特别留心其词义的语音及商业内涵。尤其是俚语以及行业术语。然后再反复使用录音机上的重复键,尽最大努力听懂全文内容。

2.朗读听力部分的内容。实际上,如果留意,我们不难发现,本教材的听力材料实际上就是商务化的口语,无论从语音的标准化程度、语法的准确度以及大量语气词的运用,都可以说明这一点。所以,这就为我们将听力与口语结合学习训练提供了较好的机会和可能。

3.具体到课堂

(1)商务背景知识介绍。由于文化的差异及学生知识结构的问题,加之中外企业管理模式和操作流程的不同,致使学生不了解每个单元所涉及主题的详细内容。(2)口语的练习。在我国,对于大部分大学生而言,对英语的学习普遍存在比较突出的问题是:语法及词汇量不是问题,关键是听力及口语。针对这一现象,并结合BEC考试对口语的要求,笔者除每单元中涉及到的Speaking部分需要学生在课堂上用英语探讨以外,另外在每学期的期末考试中加入口语测试部分,要求学生在本学期学习的商务知识中,任选一个topic,在全班同学面前做一个Presentation.。

五、考前准备

一般说来,应对BEC中级听力特别是短文听力,其备考训练必须抓住竖听和横听两点结合来进行。所谓竖听,是指一套题目从头听到尾,从第一题听到最后一题。所谓横听,是指把相同题材和体裁的文章放在一块对照比较着听,从而迅速抓住同类型文章的规律,真正做到以不变应万变。通过这样反复对比听,可以使我们很快掌握各种题材文章的模式和考题思路,在短时间内抓住考点,做到举一反三。

在考前一个月,笔者在此提供一套具体的短文听力训练办法,考生可以从BEC中级历年考题中选取10篇以上不同题材的文章,横竖结合起来,进行精听训练,以便在考试中赢得时间,确保其准确性。

考前对于口语的训练,应注意从商务的不同角度,最少选择10个以上的topic,与同学结对训练,在注意专业词汇量积累运用的同时,尽量做到熟练,要言之有物,观点突出。

总之,BEC中级短文听力及口语并不可怕,如果我们能够宏观把握,平时坚持“用心去听”,认真练,我们肯定能够从不同角度、不同层次提高自己的商务英语语言能力,顺利通过BEC考试。

参考文献:

第7篇

行动导向教学模式是引用德国职业教育的一种先进的教学理念,这种教学模式从根本上改变了传统的教学方法,它是一种职业化的教育模式,是目前高等职业教育主要采用的一种教学模式。行动导向教学模式在教学具体实施过程中,不是单一的教学方法,也不是简单的几种教学方法的结合,而是由一系列具体的教学方法有效的结合在一起,相辅相成,扬长避短。项目教学法,是行动导向教学模式中的一种教学方法,是指老师和学生共同完成一个项目,在项目的实现过程中,需要学生独立完成资料查询、项目的研究和学习,项目教学法使学生在学习过程中更具有针对性和实用性,为今后就业所必须的实践能力、综合能力、信息交流能力、团队合作能力、分析问题以及解决问题的能力奠定了基础。

二、基于行动导向的项目教学法在C语言课程教学中的具体应用

C语言程序设计课程采用项目教学法进行教学改革,其主要目的是培养学生自动学习、解决问题的能力。培养学生具有团队意识和服务意识,具有良好的职业道德和职业素养的技术技能型人才。按照行动导向项目教学法的实施步骤,C语言课程的整个教学过程中大体分为收集资料阶段、制定项目教学计划阶段、项目教学的实施阶段、项目教学的检查评估阶段。具体步骤如下:

1.收集资料阶段。

老师带领学生通过问卷调查、资料查阅、需求分析等手段广泛深入地进行项目调研,将调研数据加工整理,筛选出适合高职院校学生特点的项目形成项目库。主要包括学生管理系统、档案管理系统、图书管理系统等10个项目,这些项目的主要特点是贴近学生的生活,学生比较好理解而且参考资料丰富。

2.制定项目教学计划阶段。

先由任课教师讨论,制定项目教学课程标准和教学计划,确定项目教学的步骤和教学使用的项目程序。项目的教学计划主要包括以下两方面内容:

2.1C语言程序设计课程项目教学的课程标准。

制定C语言程序设计这门课程项目教学法的课程标准要依据该课程的性质、目标以及内容等特点,结合高职院校的实际情况,针对不同层次的学生在知识与技能的掌握、过程与方法的运用等方面提出教学和评价建议。通过课程标准的制定,使学生在经过一段时间C语言的学习后,应该知道什么是C语言和C语言能做什么。该课程的课程标准主要包括C语言的课程性质、课程目标、学习内容、实施建议、考核方式等方面的内容。

2.2C语言程序设计课程项目教学授课计划。

通过授课计划的编写,对C语言程序设计这门课程进行整体规划,按照项目教学的要求,要有针对性、目的性、可行性的将教学内容总的方向、总的结构、课时分配等作出全面安排。授课计划的编写要在科学的教育理论指导下,深入研究教材和《课程标准》,灵活安排教学内容,实现教学目标。

3.项目教学的实施阶段。

3.1项目教学法的课前准备。

根据项目教学计划和学生本身的特点,任课教师在上课前应做好充分的准备,按照教学计划准备教学课件、教案、教学材料,按照项目教学法对学生进行分组设计,分组时,根据学生的学习水平的差异,好坏混合搭配,势力均衡,目的是好同学带动坏同学。

3.2项目教学法的任务分配。

教师根据项目中的情景,布置任务。首先由教师引导学生分析任务,提出完成任务的相关知识点、设想或探索的路径供学生参考,然后根据学生实际情况分组讨论,根据教师提供的信息,查阅资料或寻求教师的指导,最终完成任务。

3.3项目教学法的任务实现。

该阶段的任务是任务教学法最主要的一部分。教师在下达任务阶段引导学生掌握完成任务的思路和方法后。在任务完成过程中,以学生为主,每个小组成员根据教师的指导,学习相关的理论知识,通过查阅相关资料、交流讨论等方法将理论知识向实践转化,即项目的代码编写、调试和运行,完成分配的任务。

3.4项目教学法的项目成果展示。

在各小组完成学习任务以后,每组选派一名本组成员进行成果展示与交流。其他小组成员可根据任务相关的知识点提问疑问或请教交流,丰富彼此的学习体验。最后,教师对学生完成的项目情况归纳总结并引导学生对项目完成过程中遇到的问题进行反思以便对下一次的学习设计进行优化、改进。

4.项目教学的检查评估。

C语言程序设计这门课程项目教学的考核应根据课程标准中的目标和要求,结合项目教学的过程和成果,进行综合打分。考核评价过程主要分为平时考核和期末考核,其中,平时考核包括平时上课学生完成每个学习情境的情况和出勤情况,先由学生对自己完成的情景任务进行答辩,再由教师检查评分,其成绩占总成绩的50%;期末考核为上机操作考试,其成绩占总成绩的50%,考试题目通过抽签选取,题目的内容为学习情境中的同类型任务。最终成绩是平时考核成绩和期末考核成绩的总和。使对学习过程和对学习结果的评价达到和谐统一的目标。

三、基于行动导向的项目教学法在c语言课程教学实施过程中面临的困难与对策

第8篇

C语言是一种计算机程序设计语言,是计算机汇编语言的重要组成部分。其实质就是通过对语言进行编写和翻译,使其产生一种与社会相衔接的语言,让人和计算之间通过这种语言能够进行简单的交流。C语言是在1972年由美国贝尔研究所提出,1978年先后被运用到各种机型中。C语言具有双重性,具备高级语言的特点和汇编语言的优越性,不仅能对系统应用程序进行编写,而且能对不依靠计算机硬件的应用程序进行编写。同时C语言也具有广泛的应用性,能在多个计算机的操作系统中运用,大大提高了计算机软件编程的效率。随着计算机的日益普及,C语言的应用领域越来越宽,成为目前较为流行的高级程序设计语言之一,在许多大型的软件编程中被广泛的应用。C语言具有如下的特点:

1.1模块化思想模块化的基本思想就是运用C语言在进行计算机软件编程设计时,按功能作用的不同将一个较大的程序分割成为许多小的子模块,使每个小的子模块成为一个功能单一、理解简单和结构合理的小程序。

1.2简洁性强C语言具有语言简洁、结构紧凑、使用方便、灵活的优势。C语言包含了32个关键字和9条控制语句,源程序书写方式较自由灵活,因此在计算机软件编程中要选择使用小写字母,压缩掉所有不重要的部分。

1.3运算范围广C语言总共具有34种运算符,其运算符号十分丰富且对运输结果能采用各种各样的表达形式,因此C语言的数据处理能力强,可以为各类数据结构进行复杂的运算,进行一些高级语言较难实现的运算功能。

1.4移植泛用性C语言在进行软件编程中基本上不需要做任何的修改,就能运用于各种不同型号的计算机和操作系统环境上,从而形成很多不同版本的C语言。

1.5应用效率高C语言的应用结构简单清晰,能够对内存中的相应地址进行直接的访问,操作十分方便,被称为高级语言中的低级语言。同时能够直接调用系统功能,直接操作硬件,具备许多高级语言所不具备的高效率。

2.C语言在计算机软件编程中的技巧

C语言具有模块化的特点,因此在计算机软件程序编程中,充分发挥C语言的灵活性和方便性,提高软件编程的技巧性,能够优化软件程序编辑和提高软件开发的效率和质量。

2.1变量数据和运算模式的合理设置设置变量数据时,要在最大限度满足计算机软件编程需要的前提下,尽可能合理的设置变量数据,使用无符号的最小数据类型,这样能减少程序代码,从而促进计算机软件编程的有效运行。同时在设置运算模式时,要尽量运用定点运算,避免运用浮点运算。

2.2变量存贮器类型的合理定义在计算机软件编程中,采用和操作不同类型的变量存贮器时,会造成编译后的代码执行效率各不相同,只有合理定义变量存贮器类型,才能不断提高程序的执行效率。因此在定义变量存贮器类型时,应在满足条件的情况下尽量选用内部直接寻址存贮器。

2.3变量存贮类型的灵活设置在计算机软件编程中,C语言具有模块化思想,正确函数变量的传递在编程中十分重要,因此子程序模块使用的变量常采用局部变量,而整个程序模块使用的变量要采用全局变量。另外在C语言中灵活使用指针、结构和联合,也便于数据的传递,提高软件编程的效率。

2.4设计软件编程与C语言的接口C语言具有程序执行速度快和直接操作硬件的优势,在进行数据采集、中断服务器处理和实时控制时,可以将C语言程序运用到计算机软件编程中,自行控制数据的传递,从而能够精确控制任务,加快实时响应。

2.5编译控制指令的正确选择C语言能为计算机的软件编程提供了20多条控制指令,总体可分为首要控制指令和一般控制指令,首要控制指令的选择只能用一次,要放在源程序的开始处,以防止重复而导致停止编译,而一般控制指令的选择可以多次。因此选择正确的控制指令,能加速程序调试过程。

3.C语言在计算机软件编程中的应用

C语言具有很强的优越性,可以适用于计算机软件编程实验研究,这就需要对C语言在计算机软件编程中的应用有一个全面的认识,避免在以后的程序设计过程中出现基础不足的情况。

3.1指针的应用C语言中的指针代表相关变量、相应函数的地址和地址相对应的存储内容。在进行软件编程时,如果一个相应的变量声明前面,出现“*”号,那就表示这个内存地址相对应的存储内容。通常情况下C语言的一个指针代表着一个相应函数的地址,是一个常量。此外,C语言的指针可以在调用函数时得到几个不同于return(z)的返回值。

3.2字符串在C语言中,字符串是一种以ASCII的UNL作为数组退出的一种chair型的数组,在计算机软件编程中,字符串的使用一般不需要引用库。但在C标准库中包含着一些函数可以操作相应的字符串,在使用这些函数时,需要运用相对应的头文件进行引用。

3.3C语言结构C语言主要包括三种结构模式即顺序结构、选择结构和循环结构。顺序结构在C语言中是按照先后次序进行操作,通过构建一个相对简单和完整的程序,进行相对独立的运用。循环结构是在进行各种数据运算和处理时,需要对其中的一些语句进行反复的执行,这在一定程度上简化了程序的长度,使程序变得简洁。选择结构是根据相关的分支条件选择相应的执行路径,在计算机软件编程中要选择具有较强适应性执行路径。

第9篇

论文关键词:函数,指针

 

0 引言

随着计算机技术的飞速发展及应用领域的扩大,熟练掌握一门语言已变的尤为关键。C语言这门课程在计算机的基础教学中一直占有比较重要的地位,然而要想突破C语言的学习,对函数和指针的掌握是非常重要的,本文将具体针对函数和指针的关系做详尽的介绍。

1 函数的有关概念

为了使程序的编写更加清晰、直观且易于修改,C语言中引用了函数。所谓函数,就是一个程序模块,该模块用来完成一个特定的程序功能。引用一个函数时,需要包括对函数的定义、声明,继而调用。此外,函数主要包括库函数和用户定义函数,调用库函数时,要用#include命令将相关的头文件包含进来。在掌握函数相关概念的同时,有以下几点需要注意:

(1) 函数的定义是平行的,不能在一个函数的内部再定义函数,而只能在一个函数中调用另外一个函数,例如:

int A(int a,…)

{

声明部分;

int B(int b,…)

{

声明部分; 执行部分;

}

执行部分;

}

(例1-1)

显然毕业论文ppt,这种定义函数的方法是错误的,在函数A中不能包括对函数B的定义。正确的定义方法如下:

int A(int a,…)int B(int b,…)

{{

声明部分; B(a,…); 执行部分;声明部分; 执行部分;

}}

(例1-2)

其中,函数A中是可以调用函数B的。

(2) 调用函数和被调用函数

由上例1-2可以看出,函数A在执行的过程中包括了对函数B的调用,则函数A称为调用函数(调用函数B),而函数B被函数A调用,称为被调用函数论文开题报告。

(3) 实参和形参

调用函数中定义的变量是实参,被调用函数中定义的变量是形参。如例1-2,函数A中的变量a是实参,函数B中的变量b是形参。

(4) 实参变量和形参变量之间的独立性

实参变量和形参变量之间只存在值的传递过程,实参变量的存储空间在调用函数中分配,而形参变量的存储空间在被调用函数中分配,被调用函数执行完毕后,其所分配的存储空间被释放,即形参变量的存储空间被释放,它不会返回值给实参变量,也不会参与调用函数的继续执行。例如(实现两个数的交换):

main( ) voidswap(int a, int b)

{{

int a, b; intc;

swap(a,b); c=a;a=b; b=c;

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

}}

(例1-3)

显然,函数main是调用函数(调用函数swap),函数swap是被调用函数。main函数中的a,b由main函数分配存储空间,而swap函数中的a,b由swap函数分配存储空间。main函数执行到swap函数时,调用swap函数,swap函数为其变量分配存储空间,然后实现了swap函数中变量a,b的值交换,执行完毕后即释放其分配变量的存储空间。继而,main函数继续执行,但其变量a,b没有做任何改变,即main函数不能实现a,b的交换。由上例可以看出,若单纯的使用变量,则被调用函数无法改变调用函数中的变量值,即swap函数无法实现main函数中变量a,b的交换。

2 指针的有关概念

指针是C语言中功能最强大,使用最广泛的一种数据类型,主要用于描述存储单元的地址。通过使用指针,可以在函数中进行传址调用;规范的使用指针,可以使程序简洁、紧凑、高效。

(1) 指针变量的定义

定义指针变量的一般形式:类型标识符 *变量名;其中毕业论文ppt,变量名前的符号“*”表示将要定义的变量,类型说明符表示该指针变量所指向数据的类型。例如:

int *p1; char *p2;float *p3;

分别定义了整形指针变量p1,字符形指针变量p2,以及浮点形指针变量p3。

(2) 指针变量的引用

&为取地址运算符,该运算符是一个单目运算符,运算结合性为自右至左,它返回其右边变量在内存中的地址。其一般形式为:&变量名,例如:

int x=3,*p; p=&x;指针变量p指向变量x。

在使用x的值时,可以直接使用x,也可以用*p来代替使用x。此外,指针变量一定是和它所对应的变量相互引用,即指针变量在使用时一定要有明确的指向,必须赋予具体的值,否则将可能导致错误。

3 指针与函数的关系

在函数的编写过程中,若单纯的只用变量参数,则无法实现被调用函数改变调用函数中变量值的目的。而为了实现这一目的,就需要函数和指针之间的结合使用论文开题报告。

(1) 引用指针,可以实现调用函数和被调用函数中的指针变量共同指向调用函数中的存储单元,从而实现被调用函数改变调用函数中变量值的目的。例如:

main()void change(int *p2)

{{

int a,*p1;*p2=3;

a=2; p1=&a;}

change(p1);

printf(“the value of a is:%d”,a);

}

由上例可以看出,在调用函数(main函数)中定义了变量a和指针变量p1,被调用函数(change函数)中定义了指针变量p2。程序首先从main函数开始执行,分配变量a和指针变量p1的存储单元,此时指针变量p1指向变量a(p1=&a)。当程序执行到change函数时,程序跳转到change函数执行其函数体,change函数为其指针变量p2分配存储单元,同时p2也得到了p1传过来的值(变量a的地址),此时p2也指向了调用函数中的变量a,即实现了p1和p2共同指向了调用函数中的存储单元(变量a的存储单元),change函数执行其函数体(*p2=3),即使a的值变为3。change函数执行完毕后,释放其变量的存储空间,转而继续执行main函数,此时a的值已经发生改变(由2变为3),实现了被调用函数改变调用函数中变量值的目的。

(2) 调用函数和被调用函数中实参和形参之间的关系图

被调用函数执行完毕后毕业论文ppt,释放它所分配的存储单元,而调用函数分配的存储单元仍继续使用。此外,只有当调用函数中传指针值(即实参是指针值),而被调用函数中引用变量(即形参收到指针值后,在函数体内引用变量值),才能达到改变的目的。

例如,实现变量a和b的交换,程序如下:

main()

{

inta,b,*x,*y;

a=2; b=5;

x=&a;y=&b;

swap(x,y);

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

}

void swap(int *x, int *y)void swap(int *x, int *y)

{ {

int *t; int*t;

t=x; x=y; y=t;*t=*x; *x=*y; *y=*t;

} }

(例1) (例2)

例1虽然传的是指针值,但在函数体的执行过程中引用的仍然是指针值(引用x和y),所以不能实现a和b的交换;例2程序传指针值后,引用变量(*x和*y,即a和b),所以能实现a和b的交换。

4 结束语

在以后的编程过程中,若遇到想通过被调用函数改变调用函数中变量值的目的,则可以把该变量的地址值传给被调用函数,从而达到改变的目的。鉴于文章篇幅及个人能力有限,本文肯定还存在许多不足之处,仅供大家学习和参考。

参考文献

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

[2]杜友福.C语言程序设计(第二版).科学出版社,2007.

[3]陈志泊,王春玲.面向对象的程序设计语言――C++.人民邮电出版社,2002.

相关文章
相关期刊