计算机等级考试二级C语言中学生失分原因及其的对策.docVIP

计算机等级考试二级C语言中学生失分原因及其的对策.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机等级考试二级C语言中学生失分原因及其的对策

计算机等级考试二级C语言中学生失分原因及其的对策   摘要:计算机等级考试二级C语言中,编程部分考生普遍失分较多,主要原因在于考生对函数相关知识点掌握不够全面。在全面阐述计算机等级考试二级C语言中函数概念、参数分类及参数传递方式的基础上,进行实例剖析。   关键词:C语言;函数;参数传递方式   中图分类号:G433文献标识码:A文章编号:1672??7800(2014)007??0180??02      0引言   C语言是最流行的程序设计语言之一,具有简洁、紧凑、灵活、实用、可移植性等优点,深受广大用户欢迎。作为一门基础性的程序设计语言,各高校均开设了该课程。在计算机等级考试中,报考二级C语言的学生占有很大的比重。自2013年起,所有计算机二级科目考试均采取上机答题方式,由选择和程序调试两部分组成。选择题主要考查考生对理论知识的掌握情况,程序调试题则主要考查考生实际操作能力。根据笔者对所在学校考生的问卷调查,85%以上的学生都是因为程序调试没有完成而未能通过考试。该部分要求考生按照题目要求编写函数,多数考生觉得题目简单且易懂,但无从下手,其原因在于考生对函数的定义形式、参数传递方式和调用方法理解不透彻。   1C语言函数的三要素及其参数传递方式    在C语言中,函数是指完成某一特定功能的程序块。主要涉及两个要点:一是参数,即函数执行时待加工处理的数据;二是返回值,即函数执行之后需向主调函数提供的结果。因此,要正确完成编程部分试题,必须理解函数的功能、参数、有无返回结果3个要点。二级C语言等级考试中函数的功能由题目所给定,所以只需重点考虑参数和返回值。如考生不理解程序中参数的意义就无法读懂整个程序,程序编写更无从谈起。   C语言中函数的参数有实际参数(实参)和形式参数(形参)之分。形参出现在函数定义和函数说明中,说明该函数中所需数据的类型;实参出现在主调函数中,其作用是为被调函数提供数据(同时也可以作为返回大量数据的一种渠道)。函数调用过程中的参数传递是单向的,即从主调函数到被调函数,也就是从实参到形参赋值。形参只有在被调用时系统才为其分配内存单元,当调用结束后随即释放分配的内存单元[1]。C语言中函数间参数传递的方式有两种:值传递和地址传递。    函数调用过程中,通过值传递方式将实参数据拷贝给形参,也就是说形参存放的是实参的副本。这是一种较为简单的参数传递方式,在该方式中实参可以是变量名、常量或者表达式,而形参必须是与实参相同类型的变量。    地址传递方式传递的并非是数据本身,而是该数据内存单元的首地址。因此被调函数的形参必须是可以接收地址的指针变量,并且它的数据类型也必须与实参中的数据类型相同[2]。这种传递方式能够实现数据大量传递。例如以数组名(C语言中数组名表示数组存储区域的首地址)作为实参传递给被调函数,被调函数即可接收和使用整个数组。地址传递方式中形参存放的也是实参的副本,但这个副本是地址值,通过该地址可间接访问和处理实参所支配的存储单元。因此,当在函数体内修改形参时,也就相当于在修改实参。这种传递方式是二级C语言编程题中函数编写的基本形式,详细描述如下:    地址传递中实参可以是变量的地址、指针变量、数组元素地址或者数组名。当实参是变量地址与指针变量时,形参则是与其类型相同的指针变量,如下所示:    Fun1()    {   int a,*b;   int c[10];   Fun2(a);   Fun2(b);   Fun2(c[2]);   ……    }    在Fun1函数中存在对Fun2()带参数的函数调用,此时Fun2()的函数原型可用Fun2(int * x)来表示。    当数组名作为实参时,由于数组名是整个数组的首地址,对应的形参就应当是一个指针变量,并且该指针变量的基本类型必须与数组元素的类型一致。   (1)一维数组名作为实参。   Fun1()   {   int a[n];   Fun2(a);   ……   }    在上例中,函数调用为Fun2(a);对应的函数首部可以使用以下3种形式:Fun2(int *s ) 、Fun2(int s[])、Fun2(int s[n])。其中,后两种形式虽然与数组的定义方式相同,但C语言编译程序都将其解释为第一种指针形式。在以上3种定义的函数中,用户均可以通过指针或数组名加下标的方式访问实参a数组中的元素。例如对于数组元素a[3]的访问,s[3]或者*(s+3)与其等价。   (2)二维数组名作为实参。    Fun1()    {    int a[m][n];    Fun2(a);    ……    }    当二维数组名作为实参时,实参是一个指

文档评论(0)

151****1926 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档