C语言程序设计—函数—实验报告
C语言程序设计—函数—实验报告(精选18篇)
C语言程序设计—函数—实验报告 第1篇
一 实验目的 掌握定义函数的方法;
实验六 函数 掌握函数实参与形参的对应关系以及“值传递”的方式; 3 掌握函数递归调用的方法;
二 实验内容 编写两个函数,分别求两个正整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个正整数由键盘输入。
【提示】设有两个正整数m和n ⑴ 实验四介绍了求最大公约数的算法,也可以用递归的方法求最大公约数。设hcf(int m,int n)是用来求m和n的最大公约数h函数,k=m%n,则:
hcf(n,k)hnk0k0⑵ 若最大公约数为h,则最小公倍数为:m*n/h。
实验时,完成以下两个函数的定义,使之和主程序构成完整的程序,实现题目的要求。#include
完整程序如下: #include int lcd(int m,int n,int h)/* 求最小公倍数的函数 */ { return(m*n/h);} main(){ int m,n,h,l;printf(“请输入两个正整数m、n:”);scanf(“%d,%d”,&m,&n);h=hcf(m,n);printf(“%d和%d的最大公约数是:%dn”,m,n,h);l=lcd(m,n,h);printf(“%d和%d的最小公倍数是:%dn”,m,n,l);} 运行结果如下图: 编写求n!的函数f(int n),在主函数中输入两个整数m、n,然后调用函数求: Cnmm!n!(m-n)!【注意】函数f的类型应用long或double。 程序如下: #include void main(){ long m,n,c;printf(“请输入两个整数”); scanf(“%d,%d”,&m,&n);c=f(c);m=m*(m-1)n=n*(n-1)c=m/(n*c)printf(“组合为%dn”,c); } 有一个字符串,输入一个字符,编写函数dstr将输入的指定字符从字符串中删去。#include 完整程序如下: #include 实验总结:本次实验主要掌握定义函数的方法,掌握函数实参与形参的对应关系以及“值传递”的方式;掌握函数的嵌套调用和递归调用的方法;通过本次实验对函数和函数的调用有了更深的了解,加深对函数的认识。 1、程序运行后,用户任意输入一个字符串,求出字符串长度,然后输出字符串内容及个 数。不能使用strlen函数。 求字符串长度函数的函数原型必须如下: int MyStrLenPt(char *str) 若输入:nihao123! 则输出:nihao123!:9 chars2、编写一个对一维数组进行排序的程序。 要求: 写两个函数,一个主函数,一个sort函数。在主函数中完成数组的输入和输出,通过调 用sort函数对数组进行排序。 sort函数的原型为:voidsort(int*p, intn); 说明: (1)请大家按学号来坐,便于考勤和管理。 (2)请珍惜宝贵的实验时间!不要做与实验无关的事情,比如聊QQ、上网或打游戏。 (3)直接把C语言代码粘贴到相应的实验题目下方,上交实验报告时只交word文档。 C语言函数参数的求值顺序及可变参数函数的设计方法在一般的教课书上很少提及,但此方法在实际应用中却经常碰到。设计参数数目可变的C语言函数方法,将有助于初学C语言的人及C语言业余爱好者掌握和应用。 2 C语言函数参数的求值顺序 C语言函数在调用时实参的求值顺序为自右向左而非想当然的自左向右顺序,这在一般情况下不会引起误会,但在某些情况下就会引起误解,看下面实例: 实际的输出结果是:2,3,3而非1,2,3 3 设计变参数函数所需模式说明 4 原理介绍 在模式说明第一步的va_list是一个自定义变量类型,是一个指向字符的指针。第二至第四步用到的va_start(ap,ara2);va_arg(ap,type);va_end(ap);实则为宏定义。在VC++6.0的STDARG.H中的完整定义是: 其执行的过程是:先执行va_start(ap,v),按定义的宏运算,&v得到v所在的地址,然后这个地址加上v的大小,则使ap指向第一个可变参数。然后,再执行va_arg(ap,t)取得类型t的可变参数值,先是让ap指向下一个参数:ap+=_INTSIZEOF(t),然后在减去_INTSIZEOF(t),使得表达式结果为ap之前的值,即当前需要得到的参数地址,强制转换成指向此参数的类型指针,然后用觹取值。最后执行va_end(ap),给ap初始化,保持健壮性。 5 实例演示 6 结束语 C语言函数在调用时实参的求值顺序为自右向左。这是由编译程序确定的。而由STDARG.H头文件定义的宏,有效的解决了函数参数数目可变的设计方法。 参考文献 [1]谭浩强.C程序设计[J].北京:清华大学出版社,1999-12. 【关键词】C语言 程序设计 实验 考核体系 【中图分类号】G64【文献标识码】A 【文章编号】2095-3089(2016)37-0234-01 1.引言 C语言程序设计(实验)通过上机实践,可以帮助学生巩固课堂教学的理论知识,真正体现学生将知识“内化”的过程[1],意在培养学生分析问题、解决问题的实际动手能力和创新能力。传统的实验课程考核方式单一,不能公正的评价学生的实际综合能力。为了全面培养学生的学习兴趣、全面考查学生的综合知识点,全面注重学生的创新能力和实践能力的提高,以达到培养创新人才的目的,切实推进课程考核改革及考核体系已经刻不容缓[2]。 2.课程简介 程序设计基础是一门专业基础课,这门课通过全面、深入、系统地介绍程序设计方法和程序设计语言,使学生初步建立起程序设计的基本概念,通过学习一种典型的程序设计语言(C语言),初步掌握程序设计方法,具有一定的程序设计能力。我院的程序设计基础(C语言)分上下两个学期,程序设计基础(一)和(二),程序设计实验是单独的一门课程,有程序设计基础(一)实验和(二)实验,实验内容主要是辅助,强化理论各个章节的知识点,提高学生的动手能力为目的进行设计的。 本考核体系是基于程序设计基础(一)实验设计的。我院程序设计基础(一)主要的内容有:数据的表示、组织和处理、程序的基本结构控制(顺序、选择和循环)。 3.現行的考核方式 现行的考核方式比较单一,是从三个方面进行成绩给定:(1)考勤;(2)实验报告;(3)创新设计。这里的(2)和(3)都是以实验报告来给定成绩,其中一部分以实验报告的书面结果给定成绩,另一部分以答辩实验报告的方式给定成绩。现行的考核方式不能公正的评定学生的实际综合能力,也没有促进学生进行创新设计。 4.全程考核体系的构建 全程考核体系意在促进学生核心能力的提升,在学习过程和学习结果两个维度上设置考核指标:过程考核可以提高课程的教学质量,培养学生的学习能力以及提高学生的协作能力、表达能力、沟通能力等综合素质;结果考核目标是使学生掌握基本理论、基本知识的基础上增强职业素养与专业技能,提高分析问题及解决问题的能力。 全程考核体系: (1)考勤 考勤是学生学习的基础和保证,能促使学生养成遵章守纪的习惯,以培养学生进行自我管理。每次实验使用E-learning系统进行签到记录。 (2)实验报告 实验课中,教师观察、了解学生学习的过程,学生参与课堂活动的广度和深度,学生学习过程中表现出来的解决问题的能力。而实验报告是实验过程中唯一存档的资料,是值得重视的环节。教师根据学生的实验报告的完成步骤、完成程度以及答辩等对每次实验进行综合评价。 (3)综合大作业 为培养学生的创新能力及实践工程能力,让学生以三人一组,综合运用所学知识,共同自主学习、相互启发、收集资料、团队协作开发一个趣味性、实用性的小系统。 大作业从三个方面给定成绩:一是系统的整体评价;二是团队分工;三是团队成员各自答辩情况。 成绩给定之一:系统的整体评价包括科学正确性、趣味性/适用性、界面的清晰性。成绩给定之二:根据团队的分工,评价团队各成员的工作量。成绩给定之三:团队成员各自的答辩情况加入各自的成绩。 (4)期末无纸化考试 为对学习结果进行公正的考核,且激发学生对C语言的热爱,我们用C语言编写了一个无纸化考试系统,并让学生观摩编制考试系统中的主要算法。考试系统的中的试题均为编程题目,按照实验教学大纲的知识模块将试题划分成几个组,每个组中的题目难度相当,考试系统从每个组中抽取一道编程题目,随机组成程序设计试卷。 考试过程中,为保证公正,避免学生考试上网查阅资料,使用E-learning系统控制学生,禁止其使用电脑的浏览器、U盘。 考试成绩从三个方面给定:一是程序结果,单纯地考核程序运行的正确性;二是程序设计思路;三是理论基础知识。 5.结束语 本考核体系应用于本学院15级数字媒体专业,将考核贯穿于整个学习过程中,调动了学生学习的兴趣,学生的实践能力和创新能力得到了一定的提升,能更公正地评价学生的综合能力,学生也表现出了对该门课程的热情和自信,本考核体系得到了学生的一致认可。 参考文献: [1]王丽娜,吕红,张杰,任颖.《计算机程序设计实验》课程的教学改革与实践.计算机工程与科学.2014年.第A1期. 实验目的 1、熟练掌握if、ifelse、ifelse if语句和witch语句格式及使用方法,掌握if语句中的嵌套关系和匹配原则,利用if语句和switch语句实现分支选择结构。 2、熟练掌握while语句、dowhile语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。 3、掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。 实验内容 计算并输出1000以内的10个素数以及它们的和。 要求: 在程序内部加必要的注释。 由于偶数不是素数,可以不考虑对偶数的处理。 虽然在1000以内的素数超过10个,但是要对1000以内不够10个素数的情况进行处理。 输出形式为:素数1+素数2+素数3++素数10=总和值。 算法描述流程图 Main函数: 判断素数: 源程序 #include #include int sushu(int n)/* 判断素数的函数 */ { int t,i; t=sqrt(n); for(i=2;i1;i-=2)/* x为奇数时,做函数计算 */ { n=sushu(i); /* 做判断素数的函数调用 */ ( 励志天下 ) if(n!=0)/* 对素数的处理 */ { a[j]=n;/* 把素数由大至小存入数组a[ ]中 */ j++; if(j<11) m+=n;/* 统计前10个素数之和 */ } } if(j<10)/* 当素数个数小于10个时,结果输出 */ { for(i=0;i { n=a[i]; printf(“%d”,n); printf(“+”); } printf(“2=”); printf(“%d ”,m+2); } else for(i=0;i<10;i++)/* 当素数个数大于等于10个时,结果输出 */ { n=a[i]; printf(“%d”,n); if(i<9) printf(“+”); else { printf(“=”); printf(“%d ”,m); } } } } 测试数据 分别输入1000、100、10测试。 运行结果 出现问题及解决方法 当素数个数小于10时的处理不够完善,考虑不够周全。把“+2”的处理做的太勉强。 程序过大,不够精简,无用文字太多。 学习耐心与细心不足,如scanf(“%d”,&n);中的“&”经常忘记。 编程思想不够发散,例如如何判断素数,只能想出2种方式(其中1种为参考教科书上内容);在今后学习中应更多的动脑,综合运用所学。 基本功不够,如清屏clrscr等函数用的不好,有时同样的问题多次犯,给实验课老师带来很大的麻烦。这说明我的知识不够广,有很多有用但不做考试要求的书中内容没有学好,认识程度不够深刻。就算以后C语言这门课程结束后,也应多看相关东西,多上机练习,才能真正从本质上提高自己。 物理实验报告 化学实验报告 生物实验报告 实验报告格式 实验报告模板 一、实验目的1、掌握一维数组的定义和引用 2、掌握一维数组的初始化方法 3、了解与一维数组有关的应用编程方法 二、实验意义 数组的定义,元素引用特征和数组的编程特色,同时可接触到更多的经典算法,的,有了这些基础后,数组的实验能让 三、实验重点2 四、实验难点 1.从键盘输入10个整数存放在一维数组里,用冒泡法进行排序输出。 2.从键盘输入10个整数,找出最大的数并输出该数及其下标。 1.实验环境: 软件系统:使用的软件环境 硬件系统:机型说明 2.实验目的:掌握如何编辑、编译、链接调试运行c程序 3.实验内容: (1)掌握顺序结构程序设计.P26 ,p49,p62 3.2~3.7 (2)掌握选择结构程序设计(if 和switch语句的用法)p4.2~ (3)循环结构程序设计(while, dowhile,for语句的用法)。 (4)掌握数组的定义、输入和输出的方法,字符数组、字符串函数的使用。 (5)了解函数的定义,熟悉函数实参与形参的“值传递”方式,掌握函数的嵌套调用和递归调用方法。 (6)熟悉指针含义及其使用。 (7)熟悉结构体和共用体的使用。 (8)熟悉文件的使用。 4.实验要求: (1)输入编写的源程序,检查程序有无错误(语法和逻辑错误),有则改 之。 (2)编译和连接,仔细分析编译信息,如有错误应找出原因并改正。 (3)运行程序,输入数据,分析结果。 5.实验结果: 输出程序清单和运行结果。(要求把原题内容,调试好的程序和其结果一并打 印),6.实验体会 在飞机、船体等的数学放样中,通常要建立一种三次样条函数,在解决三次样条函数时,最后都要归结为要求解下列形式的方程 此方程组的系数矩阵为 这种系数矩阵为三对角矩阵。它的特点是,所有非零元素都集中在主对角线及其相邻的两条对角线上,除此以外,其余元素全为0。以三角对角矩阵为系数的方程组,称之为三对角型方程组。 由于这种方程组的系数矩阵除了三条对角线外,其余元素均为0,所以在计算机求解中可以使用一种既简单而又有效的计算方法———追赶法来处理。追赶法分消元和回代两个过程。在消元进程中可以将这些零元素全部撇开,即不进行计算,也不在计算机中加以保存,而只对三条对角线上的元素在计算机内存中加以保存并进行计算,可大大地节省计算机的计算工作量和存贮单元。下面给出其在计算机中的消元过程和回代过程的求解方法。 1 追赶法的消元过程 首先将方程组(1)中的第一个方程中x1的系数化为1,即可用b1除方程中的各项,得到 其次从方程(2)中分离出变元x1=y1-r1x2代入方程组(1)的第二个方程中,消去该方程中的变元x1,即得到 上述方程即变为: 同理,按上述方法一步一步按顺序加式方程组(1)中的每一个方程,设第K-1个方程经过变换而成为 从方程(4)中分离出变元xk-1=yk-1-rk-1xk代入方程组(1)的第K个方程中,消去该方程中xk-1的变元,即得到 如此进行到第n-1步后,即得到 从方程(6)中分离出变元xn-1=yn-1-rn-1xn代入方程组(1)的第n个方程中,即得到 将上述式(2)~(7)归纳起来,就得到一个更为简单的方程组 这种方程组叫做二对角方程组,其系数矩阵中的非零元素分布在两条对角线上,形成 2 追赶法的回代求解 其回代过程十分简便。对于加工得到的方程组(8),自下而上逐步回代,即可依次求出xn,xn-1,…x2,x1。 其计算公式为xn=yn 3 求解三次样条函数的C语言程序 摘要:在解三次样条函数时,最后都要归结为求解三对角型方程组。根据此类方程组的特点,该文介绍了一种追赶法,推导了使用这种方法的消元过程和回代过程,并给出了求解此类方程组的通用C语言程序,大大地节省了计算机工作量和计算机存贮单元。 关键词:样条函数,计算方法,追赶法,消元,三对角型方程 参考文献 [1]华中工学院数学教研室.算法语言.计算方法,人民教育出版社,1979. [2]周煦.王德民等编著.数值计算方法及程序设计.机械工业出版社,1989. [3]沈剑华编著,计算数学基础.同济大学出版社,1989. [4]李岳生.刘东旭著,样条函数方法.科学出版社,1979. 关键词:C语言实验教学;教学改革;教学设计;教学流程 中图分类号:G642.0 文献标识码:A 一、引言 C程序编写能力是要靠大量的练习学会的,只有让学生多多动手,他们才会对程序设计语言感兴趣。因此在C语言课程教学中应该重视实验课。但是,目前C语言实验课的教学存在着以下弊端:第一,在教学理念上重视理论教学,轻视实验课的练习。第二,在实验课教学过程中教师往往放任学生自由上机,学生只能被动地编写教师提供的程序清单对编程知识缺少深入思考。第三,在实验课的教学过程中,学生之间缺少交流。而在实际的程序开发行业中所有开发人员是需要相互合作的。基于以上因素需要对C语言实验课的教学过程进行改进。 二、C语言实验课教学目标的确定 教学目标就是教学的一个标准,教学目标规定了教学要达到的程度,它是教师教学和学生学习的依据,教学目标的制定可以克服教学的盲目性,在教学过程中占有重要的地位。因此,C语言实验课教学首先要确定教学目标。 C语言实验课教学目标的制订要从认知领域、动作技能领域和情感领域这三个方面来确定。例如对于C语言课程中的“控制结构”这部分的实验内容其实验目标确定如下:在认知领域方面,学生要理解基本的解决问题的技巧,理解计数控制循环和标记控制循环;在动作技能领域方面,学生能够熟练掌握自顶向下逐步求精算法设计,能够熟练应用if语句,if/else语句和switch语句来实现选择结构,能够应用while语句,do/while语句和for语句实现程序循环结构,学生可以使用++、--、赋值和逻辑运算操作符,在循环语句中能够应用break语句和continue语句来控制程序的结构;在情感領域方面,要培养学生认真学习、严谨求实、实事求是和勇于探索的科学精神和态度。 三、确定C语言实验课的操作流程 为了上好C语言实验课,并且能够完成制订好的教学目标,需要根据C语言实验课的具体题目可以将实验课教学过程分为三大部分进行:课前部分、课中部分和课后部分。其具体的操作流程如下图所示: C语言实验课操作流程图 在上图中,课前教学部分、课中教学部分和课后教学部分都要按照实验教学目标来制定。课前教学部分是在课堂讲授课程完毕之后并且在实验课进行之前进行的,在这部分中主要是要对所讲授课程的知识点进行巩固,并对实验课涉及的知识进行预习。教师在设计实验题目时要设计好学习环境,利用良好的环境调动学生学习的积极性。在实验课学生现场自主编程中,可以发现C语言的语法错误和逻辑错误,提高学生自己分析和解决问题的能力。在这个过程中,教师要给予学生必要的指导和帮助。在协助学习实验题目过程中,教师要确定协作小组让学生共同完成学习目标并将个人习得成果转化为大家习得成果,并且教师要对不同的学习任务进行选择,要设计好实验课程的协作环境,保证实验课程的顺利实施,最后要对实验教学效果进行评价,以此来刺激教学的进行。 四、结论 在C语言实验课的教学中,要充分尊重学生学习活动的主体性地位。所以在大学C语言程序设计这门课程的实验教学中采用了以学为主的教学设计方案,这样可以促进学生独立分析问题的能力,充分调动学生学习的兴趣和主动参与意识。 参考文献: [1]吴文虎.计算机程序设计基础课程改革[J].中国大学教学,2004(02). [2]乌美娜.教学设计[M].北京:高等教育出版社,1994. [3]孙可平.现代教学设计纲要[M].西安:陕西人民教育出版社,1998. 《C语言程序设计》实验报告 年级:2009级(必修) 学号:姓名:专业: 实验题目: 输入一个班N个学生(N为符号常量,自定人数)的学号和每个学生考试三门功课(数学、英语、计算机基础)的成绩。编程计算出每个学生的总分和平均分,并按学生成绩优劣排序,最后打印一张按高分到低分名次排序的成绩单。要求: 1)排序用一个函数实现。 2)打印的成绩单表项包括:序号,学号、数学、英语、计算机、总分、平均分。 3)按实验报告电子模板格式填写实验内容。 可用多个函数或多个源文件实现 可以用数组法、指针法、结构体法编写程序。 源程序清单: 主要标识符说明:(说明变量、函数、指针、结构体等) 实验结果贴图: 实验环境: intel Pentium 4 计算机,windowsXP操作系统,Microsoft Visual C++ 6编译环境。 教师评语: 每章作业题目内容 第1章(15页) 第1.5题、第1.6题、第1.7题 第2章(36页) 用传统流程图、N-S图、伪码来描述4.(1)、(2)和(3) 第3章(82页) 第3.3题、第3.4题、第3.6题、第3.7题 第4章(111页) 第4.3题、第4.6题、第4.8题、第4.9题、第4.10题 第5章(140页) 第5.3题、第5.5题、第5.6题、第5.8题、第5.10题、第5.12题、第5.16题 第6章(168页) 第6.1题、第6.3题、第6.4题、第6.6题、第6.8题、第6.13题 第7章(218页) 第7.1题、第7.3题、第7.6题、第7.10题、第7.14题、第7.18题 第8章(291页) 第8.3题、第8.4题、第8.5题、第8.6题、第8.7题、第8.15题、第8.16题、第8.17题 第9章(330页)(不做) 第9.1题、第9.2题、第9.3题 第十章 指针(278页)(不做) 第10.3题、第10.4题、第10.5题、第10.7题、第10.15题、第10.16题、第10.17题 备注:作业讲评穿插在讲课中进行。不再最后讲评,请同学保留好自己的每一次作业。对于每次作业,除了写在作业纸上外,还需要进行上机编程调试得出结果(无法上机实现的题目如题目3.3等除外),并与自己做的相对比,检查自己的错误。对作业成绩和批改有异议的同学,请及时找老师反映,根据实际情况进行修改。4 对于作业迟交者,一律以降一档记成绩。如作业应该给优,但因迟交,成绩给良。 5.作业采用抽查制度,每章讲完后指定某一班级交作业检查。 作业等级划分 优:书写干净,整洁。完成所布置的所有题目。所编写程序正确,书写格式正确,程序对象命名正确,有恰当合理的注释。对于作业题目,使用多种算法完成且思路正确。 良:书写干净,整洁。 2完成所布置的题目,对于不会写的作业题目,允许空着,但不赞成抄袭。所编写程序思路正确,书写格式上有欠缺,程序对象命名正确,有注释。 4对于作业题目,能够尝试使用多种算法,且思路可行。 中: 1书写欠干净、整洁。疑似抄袭他人作业者 3对于作业题目,仅仅是完成,缺乏深度思考。 未交:以0分记。 《C程序设计》实验报告内容和要求 需提交实验报告的章节 实验五 实验六 实验七 (具体实验内容见附件《C语言程序设计》实验指导书.doc) 备注:如果某章实验课次数超过一次,也只写一个实验报告。如受篇幅所限,实验报告里精选一些自己做过和验证过的程序实例,写明实验结果分析,写出自己对该部分实验内容的理解和在编程及调试过程的经验教训和体会。对于报告迟交者,一律以降一档记成绩。如实验报告应该给优,但因迟交,成绩给良。4 实验报告提交的时间均在该次实验结束后一周,即本周做完第三章实验,下周实验课时提交上周的实验报告。 5请学委辛苦,按所在班级学生的学号排好实验报告的顺序,提交给任课教师或助课教师。6 每次上机课结束前15分钟检查学生实验情况,请做好准备。 实验报告等级划分 优:严格按实验报告要求,写明姓名,学号,实验日期,实验题目,实验要求,实验内容。2 对于实验,写清程序代码(篇幅不够可以另附作业纸),给出实验测试或验证用例(数据),对所编写的程序经上机测试,得出结果正确,对于结果不正确或部分测试结果正确的现象给予深刻的讨论和分析,且有理有据。书面干净、整洁。对于本次试验,有深刻的经验教训和体会,并在实验报告中列出。 良:未能严格按实验报告要求,写明姓名,学号,实验日期,实验题目,实验内容,实验要求。2对于实验,写清程序代码(篇幅不够可以另附作业纸),给出实验测试或验证用例(数据),对所编写的程序经上机测试,得出结果正确,对于结果不正确或部分测试结果正确的现象给予讨论和分析。书面干净、整洁对于本次试验,有深刻的经验教训和体会,并在实验报告中列出。 中:书写不够干净、整洁疑似抄袭他人报告仅仅写出程序代码,未对其进行调试,未列出实验用的测试或验证数据,得出正确结论,或对于所得出的结论未能做出深刻的分析,举一反三。 未交:以0分记。 《C程序设计》大实验作业(选作) 根据自己的能力和水平,选择实际应用实验题目(如下所示),完成设计与实现。期末需要提交总的书面报告,要求详细说明自己所开发的应用系统的基本功能、操作界面、操作指南、实现技术、源代码及参考资料。参见计算机科学与技术专业课程设计(如下所示) 实验目的: 1.综合掌握C语言的知识、程序设计方法。 2.学会开发设计的基本方法。 实验内容: 3.文件型数据库 4.词法分析器 5.模拟 dos 命令 dir 6.桌面计算器 7.汉字的显示 8.通用排序算法 9.文本编辑器 10.校友通讯录 实验方法: 1.查阅资料,分析课题所具功能,做初步设计 2.编写相应代码,调试,运行 3.生成可执行程序 1.C语言提供了丰富的库函数,包括常用数学函数、对字符和字符串处理函数、输入输出处理函数等。在调用库函数时要注意以下几点: (1)调用C语言标准库函数时必须在源程序中用include命令,include命令的格式是: #include″头文件名″ include命令必须以#号开头,系统提供的头文件名都以.h作为后缀,头文件名用一对双引号″″或一对尖括号〈〉括起来。 (2)标准库函数的调用形式: 函数名(参数表) 2.在C语言中库函数的调用可以以两种形式出现:出现在表达式中;作为独立的语句完成某种操作。 2函数的定义方法 1.C语言函数的一般形式为: 函数返回值的类型名函数名(类型名形参1,类型名形参2,) { 说明部分 语句部分 } 定义的第一行是函数的首部,{}中的是函数体。 2.在老的C语言版本中,函数的首部用以下形式: 函数返回值的类型名函数名(形参1,形参2) 形参类型说明; 新的ANSI标准C兼容这种形式的函数首部说明。 3.函数名和形参名是由用户命名的标识符。在同一程序中,函数名必须唯一。形式参数名只要在同一函数中唯一即可,可以与函数中的变量同名。 4.C语言规定不能在一个函数内部再定义函数。 5.若在函数的首部省略了函数返回值的类型名,把函数的首部写成: 函数名(类型名形参1,类型名形参2,) 则C默认函数返回值的类型为int类型。 6.当没有形参时,函数名后面的一对圆括号不能省略。 3函数的类型和返回值 1.函数的类型由函数定义中的函数返回值的类型名确定,函数的类型可以是任何简单类型,如整型、字符型、指针型、双精度型等,它指出了函数返回值的具体类型。当函数返回的是整型值时,可以省略函数类型名。当函数只完成特定的操作而没有或不需要返回值时,可用类型名void(空类型)。 2.函数返回值就是return语句中表达式的值。当程序执行到return语句时,程序的流程就返回到调用该函数的地方(通常称为退出调用函数),并带回函数值。 4形式参数与实际参数,参数值的传递 1.在函数定义中,出现的参数名称为形参(形式参数),在调用函数时,使用的参数值称为实参(实际参数)。 2.调用函数和被调用函数之间的参数值的传递是″按值″进行的,即数据只能从实参单向传递给形参。也就是说,当简单变量作为实参时,用户不能在函数中改变对应实参的值。 5函数的正确调用(嵌套调用,递归调用) 1.调用函数时,函数名必须与被调用的函数名字完全一样。实参的个数与类型和形参的个数与类型一致。 2.C语言规定:函数必须先定义,后调用,也就是被调用函数必须在调用之前加以说明,或被调用函数整个放在调用函数之前。但对返回值类型为int或char类型的函数可以放在调用函数的后面。 3.C语言中函数定义都是互相平行、独立的,C语言不允许嵌套定义函数,但允许嵌套调用函数,也就是说,在调用一个函数的过程中,又调用另一个函数。 4.在C程序中,调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。 5.递归调用函数是C语言的特点之一,有时递归调用会使求解的问题变得更简单明了。 1.计算机二级C语言考点:字符型数据 2.计算机二级的excel函数 3.计算机二级c语言试题 4.计算机考试二级C++语言程序设计考试大纲 5.全国计算机二级考试C++语言程序设计大纲 6.计算机等级考试二级C语言程序设计考试大纲 7.2017计算机考试二级C语言程序设计考试大纲 8.计算机二级office考点 9.计算机二级MS office常用函数 C语言程序设计课程是高等院校计算机专业大学生接触的第一门专业基础课, 也是非计算机专业大学生的一门公共基础课, 是高等院校的重点课程之一, 很多课程, 如计算机软件技术基础、数据结构、操作系统等都以该课程为先修课。这门课程的教学目标是使学生比较全面系统地理解和掌握程序设计的基本概念和方法, 具备熟练地运用C语言进行结构化程序设计的能力。学生一旦掌握了C语言, 就可以较为轻松地学习其他任何一种程序设计语言。通过本课程的学习, 培养学生的逻辑思维、计算思维以及利用计算机解决问题的能力[1,2], 引导学生主动将所学计算机知识应用到其他基础课和专业课中。很多大学生带着极大的兴趣学习这门课程, 希望通过本课程的学习提高自己的计算机编程水平。 2 实验教学存在的问题 C语言程序设计是一门实践性很强的课程, 实验教学是该课程不可或缺并极其重要的组成部分, 是理论联系实际的桥梁与纽带。通过实验教学, 可以增加学生的感性认识, 增强认知能力, 训练动手实践能力, 培养科学态度, 加深和巩固对理论知识的理解, 从而达到提高学生观察问题、分析问题和解决问题能力的目的。但是, 多年来在C语言程序设计课程的教学中存在以下问题: 2.1 轻视实验教学环节 在高校中, 本课程教学学时总数一般为48学时。在学时分配上, 一些教师将理论授课安排为32学时, 上机实验课只安排16学时。这样的学时安排体现出教师对本课程实验教学环节的轻视。教师对实验教学的态度, 必然会影响到学生对实验教学的重视程度, 造成学生普遍存在重理论、轻实践的错误认识, 最终培养出很多考试分数很高, 但动手编程能力却很差的高分低能学生。 2.2 轻视实验教学内容与方法 由于C语言程序设计课程涉及许多概念, 规则也繁多, 一些教师在32学时的理论授课中, 多注重和强调对理论知识和琐碎语法规则及书写格式的讲解, 举例也多停留在对各种语法规则及书写格式的验证上, 教学内容没有明确的主线, 不分主次, 不管难易, 眉毛胡子一把抓;在教学方法上, 一味灌输学生大量琐碎而又枯燥无味的C语言条条框框, 没有以学生为中心, 理论脱离实践。这样的教学内容和教学方式只能打击学生对本课程的学习兴趣, 学生对所学知识掌握不深不透且容易遗忘。而在16学时的实验课上, 一些教师没有明确的实验教学目标及内容, 不做备课准备或准备不充分, 不研究改进实验教学方法, 只是让学生自己完成实验作业, 教师只是简单地帮助学生解决在完成实验作业中遇到的各种具体问题, 教师的引导作用没有很好地发挥。一些任课教师只让助教在实验课上做辅导, 自己却不参与实验教学, 这样就更谈不上实验教学内容的更新和教学方法的改进了。 2.3 轻视实验作业设计与批改 一些教师对所布置的实验作业的选题重视不够, 没有精心挑选和设计实验题目。在给学生留实验作业时, 不能做到难易搭配, 由易到难, 题量多少也不统一。实验作业留的偏易, 没有挑战性, 学生很快完成, 激不起学生进一步学习和探索的兴趣, 容易轻视所学知识, 不能加深对所学知识的理解和记忆;实验作业留的偏难, 挑战性太大, 学生无法完成, 没有成就感, 会打击学生的学习积极性, 容易出现抄袭作业现象, 也无法达到实验教学目的。实验作业题量太少, 知识点涵盖不全, 学生训练强度不够, 知识掌握得不牢靠不全面;实验作业题量太多, 学生负担过重, 无法按时完成, 抄袭或不交作业现象增加, 也达不到应有的教学效果。另外, 一些任课教师让助教批改学生的作业, 无法及时了解学生的作业情况及对所学知识的掌握程度, 无法很好地在课堂上有的放矢地为学生答疑解惑。 2.4 轻视实验教学安排与管理 一些教师轻视实验教学安排与管理的设计, 在上实验课时才把本次课的实验作业布置给学生, 或是虽然课前布置了实验作业, 但并不关心学生上实验课前是否完成。很多学生有惰性, 到上实验课时才现看题目、现翻教材、现编程序[3]。由于课前没有准备或准备不充分, 实验课结束时, 学生只能完成本次实验作业的一部分, 未完成的部分只能由学生在课余时间完成。如果遇到无法解决的问题, 学生可能走“捷径”, 抄袭别人的作业, 或干脆将“带病”的作业一交了之。另外, 上实验课时, 一些教师管理松散, 对学生放任自流、不闻不问, 经常出现学生迟到、早退、旷课、玩游戏等现象。 2.5 轻视实验考核与评价 一些教师在本课程结课时采用闭卷笔试考试的方式[4,5], 考试题型包含选择、填空、读程序写结果、编程等, 使学生的学习停留在“纸上谈兵”阶段, 并且卷面考试分数占期末总评成绩的80%, 平时上课、上机、交实验作业等多方表现只占到期末总评成绩的20%。这样的课程考核评价体系忽视了对学生上机实践动手编程能力的考核, 缺少对学生上机编程及调试重要环节的检查, 给学生造成本课程实验环节不重要的误导, 学生最终的期末总评成绩没有很好地反映学生的真正编程能力和调试水平, 学生对期末总评成绩有一种不公平、不公正的感觉。 3 实验教学改革 多年来, C语言程序设计课程建设中存在的这些问题, 使得学生在学习过程中“只见树木, 不见森林”, 只知其一, 不知其二, 只为完成实验作业而完成实验作业, 达不到灵活运用所学知识并将其融会贯通的学习效果, 往往遇到问题不知所措、无从下手, 不会通过调试程序发现和解决问题, 学习初期本来高涨的学习兴趣在学习过程中减退或消失。在学完本课程后, 只能编一些解决简单问题并偏重验证性的小程序, 无法跨越通过编程解决复杂实际问题的鸿沟, 更达不到将本课程所学知识与自己所学专业知识有机结合的目标, 所以必须对症下药, 对当前的C语言程序设计课程进行实验教学改革。 3.1 精简优化理论授课内容, 扩大实验教学学 时, 提高学生的动手实践能力 在总学时不变的情况下, 采用将理论授课压缩到24学时, 实验教学增加到24学时的分配方案。压缩理论授课学时后, 在理论授课中, 不再采用面面俱到的讲授方式, 而是分清主次、精细挑选章节的重点和难点, 通过精心设计的案例教学方式进行突出讲解[6], 章节中容易理解的知识让学生在课余时间自学。教师不再把精力集中到C语言的语法特点和规则限制讲解上, 而是放到如何用C语言编程解决实际问题的思路引导和重点知识运用上。通过增加实验教学学时, 让学生有更多的时间走入实验室, 在编程实战中完成感性认识与理性认识的结合, 进一步理解和应用教师所讲的重点和难点以及自学的知识, 在实践磨炼中使学生加深对所学知识的认识和掌握并逐渐成长壮大。 3.2 精心设计实验题目, 适时布置实验作业, 亲 自批改学生作业 教师根据教学进度中理论授课的重点及难点, 同时考虑培养学生创新能力的目标, 开展与其配套的实验作业设计, 每次实验作业类型应多种多样, 有易有难, 先易后难。有经典型实验作业, 如华氏温度与摄氏温度的转换、判断素数、求和及阶乘、求最大公约数、求最小公倍数、冒泡排序与选择排序、字符串逆序输出、判断回文等题目[7,8];也有趣味实验作业, 如兔子产子、猴子吃桃、谁在说谎、人机猜数、百钱百鸡、换分币等题目[9], 以此激发学生的学习兴趣, 并加强学生创新思维和计算思维能力的训练和培养[10]。每次实验作业题量要适中, 一般三四个题目, 另外再留一两个附加题, 附加题供完成作业后还有余力的学生练习。另外, 在本课程第一次上课时, 也要给学生留一个设计型综合实验作业, 如学生信息管理系统、图书信息管理系统、职工信息管理系统等, 学生可以任选其一, 本实验作业要求学生在学完本课程所有教学内容后完成, 但在学习期间可分阶段、分步骤去做, 鼓励学生在完成综合实验作业过程中进行交流和创新设计, 以此重点培养学生解决问题的综合能力, 让学生在沟通中学习, 在协作中进步, 在自主中创新。 为便于学生对本课程所学知识的消化吸收, 教学一般采用理论授课和上机实验循环交叉的方式进行, 上一次理论课, 随后安排一次上机实验课。在上理论课前, 教师通过本课程的教学网站布置与本次理论课对应的实验作业, 让学生在课余时间根据教师上课时所讲内容和课余自学内容做教师布置的实验作业, 程序源代码和调试所需的必要数据要求学生输入到计算机中并通过教学网站提交。教师在上实验课前, 可通过教学网站检查, 学生提交作业的情况。一方面, 通过检查, 教师基本了解学生的作业进度、做作业中存在的主要问题等情况, 可有针对性地开展实验教学; 另一方面, 督促学生在上实验课前做作业, 避免上机时出现学生现看题目、现编程的现象, 使学生对每次实验作业的题目做到心中有数, 也便于学生在上实验课时有所侧重地去听教师讲解, 解决自己在做作业中遇到的问题。每次实验课结束后, 学生再次通过教学网站提交完成的实验作业。学生的实验作业以教师亲自批改为主, 助教批改为辅, 并由教师对绝大多数学生在做实验作业中出现的共性错误、遇到的共同问题在课堂上进行点评和讲解, 以利于学生及时走出误区、改正错误。教师应严把实验作业批改关, 可采用教学网站所提供的程序相似性检测功能对学生提交的作业进行检查, 发现雷同作业绝不姑息, 相关学生本次作业的成绩记为0分, 以此杜绝学生抄袭实验作业的现象。 3.3 精炼实验教学内容, 改进实验教学方法, 加 强实验教学管理 上实验课前, 教师根据学生提交实验作业的情况, 对实验教学内容精心提炼, 认真备课, 每次实验课开始, 用10~15分钟简明扼要地讲解本次实验课作业的实验要求、实验内容、实验难点和重点以及解题思路, 尽量留出较多的时间让学生上机实践。在指导实验过程中, 教师要以引导为主, 传授为辅, 主要通过启发等方式引导学生自己解决遇到的问题, 让学生自己多动手、多调试。在实验过程中, 学生不可避免地会犯各种错误, 甚至会面对失败, 但失败的教训也是学生积累经验的过程, 这样可以让学生充分地感受到自己发现问题、独立解决问题的乐趣, 体验一次又一次迈向成功的喜悦, 激发他们的学习兴趣, 提高他们分析和解决问题的综合能力, 培养学生的创新素质。每次实验课结束前, 教师要用10~15分钟对本次实验课中学生遇到的共性问题进行总结、分析和讲解。另外, 为加强实验教学管理, 采用由助教负责上实验课前的学生签到工作, 对学生上课出勤情况进行严格监督, 并且教师和助教在实验课辅导过程中注意学生的行为表现, 从严管理, 监督学生按时上下课, 课上集中精力去完成教师布置的实验作业, 尽量保证绝大多数学生能在实验课上完成教师布置的作业。对少数不能按时完成作业的学生, 由教师或助教另行安排时间课外辅导或答疑。 3.4 大力改革考试方式, 注重实践动手能力考 核, 综合测评学生素质 实行开卷机试考核方式, 以程序填空、程序改错、编程题等题型为主, 试题灵活, 减少仅涉及单一基本知识的简单题目, 增加综合运用所学基础知识的题目, 全面考核学生的综合素质和动手编程及调试能力。在重视上机考试的同时, 也不能忽视对学生学习过程的评价。上机考试成绩占期末总评成绩的60%, 实验作业、理论及实验课出勤及设计型综合实验作业等占期末总评成绩的40%, 使期末总评成绩能更全面地体现每个学生的真正水平和创新能力。 4 结束语 传统的教学方法只注重知识的传授, 忽视了实验教学环节及学生创新能力培养和潜能的开发。科学理论、创新思维来自于实践, 又服务于实践。只有打破传统教学方式的束缚, 不断开展教学改革与实践的探索, 才能激发学生的学习兴趣, 培养学生的创新意识, 调动学生的学习积极性, 提高学生分析问题、解决问题的能力, 不断提高教学质量。 摘要:针对在C语言程序设计课程教学过程中存在轻视实验教学环节, 轻视实验教学内容与方法, 轻视实验作业设计与批改, 轻视实验教学安排与管理, 轻视实验考核与评价等问题, 提出了对本课程开展实验教学改革的新思路, 以此提高学生对本课程的学习兴趣, 调动其学习的积极性、主动性, 使学生在夯实本课程基本理论知识的同时, 不断提高其自身的动手实践能力。 关键词:实验教学,实验作业,实验考核 参考文献 [1]黄婷.浅谈《C语言程序设计》实践教学[J].北京电力高等专科学校学报:社会科学版, 2010, 27 (10) :434-435. [2]卢玲, 刘恒洋.以计算思维为导引的程序设计实验教学模式研究[J].福建电脑, 2012, 28 (5) :164-166. [3]沈建英.计算机程序设计实验教学改革探索[J].实验技术与管理, 2003, 20 (4) :105-107. [4]袁志民, 赵宝琴.程序设计实验教学模式改革初探[J].实验室科学, 2005, 2:49-50. [5]郝惠馨, 李秀坤, 夏清泉.C语言程序设计实验教学探索[J].计算机教育, 2010, 17:82-84. [6]陈婷.C语言程序设计实验教学改革探究[J].实验技术与管理, 2010, 27 (10) :182-184. [7]何钦铭, 颜晖.C语言程序设计[M].北京:高等教育出版社, 2008. [8]颜晖, 张泳, 吴明晖.C语言程序设计实验指导[M].北京:高等教育出版社, 2008. [9]陈朔鹰, 陈英.C语言趣味程序百例精解[M].北京:北京理工大学出版社, 1994. 关键词:C语言;函数说明;返回值 函数的一般形式是:type-specifier function_name(parameter list)parameter declarations{body of the function}类型说明符定义了函数中return语句返回值的类型,该返回值可以是任何有效类型。如果没有类型说明符出现,函数返回一个整型值。参数表是一个用逗号分隔的变量表,当函数被调用时这些变量接收调用参数的值。一个函数可以没有参数,这时函数表是空的。但即使没有参数,括号仍然是必须要有的。参数说明段定义了其中参数的类型。当一个函数没有明确说明类型时,C语言的编译程序自动将整型(int)作为这个函数的缺省类型,缺省类型适用于很大一部分函数。当有必要返回其它类型数据时,需要分两步处理:首先,必须给函数以明确的类型说明符;其次,函数类型的说明必须处于对它的首次调用之前。只有这样,C编译程序才能为返回非整型的值的函数生成正确代码。 一、函数的类型说明可将函数说明为返回任何一种合法的C语言数据类型 类型说明符告诉编译程序它返回什么类型的数据。这个信息对于程序能否正确运行关系极大,因为不同的数据有不同的长度和内部表示。返回非整型数据的函数被使用之前,必须把它的类型向程序的其余部分说明。若不这样做,C语言的编译程序就认为函数是返回整型数据的函数,调用点又在函数类型说明之前,编译程序就会对调用生成错误代码。为了防止上述问题的出现,必须使用一个特别的说明语句,通知编译程序这个函数返回什么值。下例示出了这种方法。 第一个函数的类型说明sum()函数返回浮点类型的数据。这个说明使编译程序能够对sum()的调用产生正确代码。函数类型说明语句的一般形式是:type_specifier function_name(;)即使函数使用形参,也不要将其写入说明句。若未使用类型说明语句,函数返回的数据类型可能与调用者所要求的不一致,其結果是难以预料的。如果两者同处于一个文件中,编译程序可以发现该错误并停止编译。如果不在同一个文件中,编译程序无法发现这种错误。类型检查仅在编译中进行,链接和运行时均不检查。因此,必须十分细心以确保绝不发生上述错误。当被说明为整型的函数返回字符时,这个字符值被转换为整数。因为C语言以不加说明的方式进行字符型与整型之间的数据转换,因而多数情况下,返回字符值的函数并不是说明为返回字符值,而是由函数的这种字符型向整型的缺省类型转换隐含实现的。 二、返回语句 返回语句return有两个重要用途。第一,它使得内含它的那个函数立即退出,也就是使程序返回到调用语句处继续进行。第二,它可以用来回送一个数值。本章将说明这两个用途。 (一)从函数返回函数可以用两种方法停止运行并返回到调用程序 第一种是在执行完函数的最后一个语句之后,从概念上讲,是遇到了函数的结束符“}”(当然这个花括号实际上并不会出现在目标码中,但我们可以这样理解)。例如,下面的函数在屏幕上显示一个字符串。 一旦字串显示完毕,函数就没事可做了,这时它返回到被调用处。在实际情况中,没有多少函数是以这种缺省方式终止运行的。因为有时必须送回一个值,大多数函数用return语句终止运行,有时在函数中设立了多个终止点以简化函数、提高效率。切记,一个函数可以有多个返回语句。如下所示,函数在s1、s2相等时返回1,不相等时返回-1。 (二)返回值所有的函数 除了空值类型外,都返回一个数值。该数值由返回语句确定。无返回语句时,返回值是0。这就意味着,只要函数没有被说明为空值,它就可以用在任何有效的C语言表达式中作为操作数。这样下面的表达式都是合法的C语言表达式。x=power(y);if(max(x,y)>100)printf(“greater;”)for(ch=getchar();isdigit(ch);)...;可是,函数不能作为赋值对象,下列语句是错误的:swap(x,y)=100;C编译程序将认为这个语句是错误的,而且对含有这种错误语句的程序不予编译。所有非空值的函数都会返回一个值。我们编写的程序中大部分函数属于三种类型。第一种类型是简单计算型-函数设计成对变量进行运算,并且返回计算值。计算型函数实际上是一个“纯”函数,例如sqr()和sin()。第二类函数处理信息,并且返回一个值,仅以此表示处理的成功或失败。例如write(),用于向磁盘文件写信息。如果写操作成功了,write()返回写入的字节数,当函数返回-1时,标志写操作失败。最后一类函数没有明确的返回值。实际上这类函数是严格的过程型函数,不产生值。如果读者用的是符合ANSI建议标准的C编译程序,那么所有这一类函数应当被说明为空值类型。奇怪的是,那些并不产生令人感兴趣的结果的函数却无论如何也要返回某些东西。例如printf( )返回被写字符的个数。然而,很难找出一个真正检查这个返回值的程序。因此,虽然除了空值函数以外的所有函数都返回一个值,我们却不必非得去使用这个返回值。有关函数返回值的一个常见问题是:既然这个值是被返回的,我是不是必须把它赋给某个变量?回答是:不必。如果没有用它赋值,那它就被丢弃了。请看下面的程序,它使用了mul( )函数。mul( )函数定义为:int mul(int x, int y){......} 函数部分的学习被安排在三大程序控制结构之后,有利于学生对函数知识点的系统学习,也能够使学生深刻理解结构化程序设计的全局思想,在大学期间开设《C语言程序设计》课程的主要目的是培养学生充分利用信息时代的优势,通过编程解决实际问题的能力。实际上C程序的基本组成单位是函数,课程所有知识点的学习最终都将落实到编写各种函数来进行验证和实现。因此,学生只有灵活掌握函数的运用,才能为后续学习奠定坚实基础。 二、传统函数教学存在的问题 传统函数教学流程如下: 其一,函数定义及其形式; 其二,函数形参,return语句,函数返回值; 其三,函数声明,格式,位置; 其四,函数调用,函数实参等。这种传统的教学流程过于强调函数语法知识,概念和规则的讲解,这样导致学生似懂非懂,与教学理念相违背,为了适应教学要求,突出以学生为主,教员为辅的教学理念,主要探讨函数的教学设计及实践[1]。 三、新的函数教学设计及方法 函数教学主要以发现问题、分析问题、解决问题为思路开展教学,以启发、引导、对比和总结为辅帮助学生分析问题解决提出的问题。不仅可以让学生带着兴趣学习,也会加深学生对知识点的深刻理解及灵活应用。本堂课的教学流程是:交代任务;提出问题、发现问题、解决问题;巩固练习[2]。 第一,提出问题、分析问题、解决问题。学生只学过在main函数中编写简单程序,于是向学生抛出问题:复杂程序应如何进行组织和设计?在此,给学生一些时间利用main函数来解决给定任务,解决完毕和同学生一起验证结果,然后引导学生分析这种解决方式在实际中存在的问题,并启发学生思考解决此问题的最佳方法,从而引出学习的内容——函数法。接着再次引导学生用函数法重新解决给定的任务,最后将解决该任务的两种方法进行对比,让学生讨论、体会并总结出复杂程序的设计方法。 第二,巩固练习。在这个环节,笔者设计了带有陷阱的小例子:通过编写swap函数来实现主函数中两个整数的交换,给学生一些时间讨论、验证结果,引导学生分析其中的问题,同时引出函数调用流程这一知识点,并通过动画演示的方式帮助学生分析函数调用流程。 四、函数教学实践 第一,利用结构化程序设计原则设计复杂程序。在main函数中编程解决问题的基础上引导学生独立解决给定任务,发现大部分学生都能很好地编写出程序,让学生观察上述代码,联系实际启发引导学生讨论并总结出如下问题: 其一,代码冗余; 其二,不易维护; 其三,可靠性差; 其四,可读性差。 在此基础上启发学生剖析问题并让学生给出解决方案,即main函数没有能力独自解决整个任务,这样很自然引出复杂C程序组织和设计的原则:自顶向下,逐步细化,模块化设计,结构化编码。在这一原则的指导下,人们可以将任意复杂任务分解若干子任务。程序设计时每个子任务看成独立模块,每个程序设计人员分别完成一个或多个模块。人们称这样的程序设计方法为“模块法”,在编写代码时每个模块对应编写一个函数。最后选择一种结构化语言对各个函数进行编码,然后在机器上反复调试修改验证。函数定义形式函数首部函数体含义作用及功能功能具体实现对应知识点函数名,函数形参,返回值如:longfact(intm)声明语句,执行语句第二,函数定义及调用。 其一,函数定义形式; 其二,函数调用。通过知识迁移将以前学过的使用库函数的语句引导学生总结出函数调用的形式:①无返回值;②带返回值。在此,详细讲解实参与形参的区别及联系,接着给学生一些时间利用函数调用的方法改写程序并将两种解决问题的方法进行对比,让学生观察总结出程序模块化的优点。 第三,进阶练习。布置小任务:编写swap函数来实现main函数中两个整数交换。在学生编写时,教员应根据每位学生的情况进行适当指导提示,并及时纠正学生们共性的错误。提示学生思考计算机本身是如何执行程序中的main和swap函数的,引导学生回答并指正。通过画图这种直观的方式,让学生理解函数调用的执行流程,同时也加深了学生对函数模块独立性的深刻理解,将抽象的知识变得通俗易懂。 五、结束语 综上所述,C语言中函数涉及的知识杂而多样,在教学中采用启发、引导、对比等多种教学方法,不拘泥于知识点的讲解,而是从程序设计全局角度出发,以分工合作思想为切入点,探讨了现实中复杂程序编写多个函数来实现的必要性,发现问题,解决问题,让学生主动学习的思路展开,实践证明该思路符合学生接受知识的思维习惯,这不仅很好地调动学生学习的积极性,从而培养了学生独立思考解决问题的能力。 参考文献: 组函数类型 组函数语法 AVG(平均值)和 SUM(合计)函数 MIN(最小值)和 MAX(最大值)函数 COUNT(计数)函数 DISTINCT(distinct)关键字 组函数与空值 1、掌握C语言中的变量、数组、函数、指针、结构体等主要知识点。 2、掌握C程序的结构化程序设计方法,能使用C语言开发简单的应用程序。 二、实验内容 编写一个学生信息排序程序。要求: 1、程序运行时可输入n个学生的信息和成绩(n预先定义)。 2、学生信息包括:学号、英文姓名、年龄;学生成绩包括:语文、数学、计算机。 3、给出一个排序选择列表,能够按照上述所列信息(学号、姓名、年龄、语文、数学、计算机)中的至少一个字段进行排序,并显示其结果。 1、使用函数方法定义各个模块。 三、步骤与过程 1 C 语言程序设计实验课程存在的问题 C语言程序设计是学生接触到的第一门计算机语言,该门课程概念语法繁多,语句使用比较多样化,对于很多初学者而言,学到课程相对比较难的内容时,学习就会感到吃力,导致学生的学习兴趣慢慢减弱,遇到的问题主要有以下几个原因 :1) 实验课时间相对较少。在C语言的教学中,理论课的时间占整个课程的大部分,实验的时间相对较少,很多学生在实验课堂上无法按时完成当次的任务,长期以往,学生的自信心就逐渐下降,从而削减了对该课程学习积极性,甚至有小部分学生完全放弃学习该门课程。2) 考核方式有弊端。以往采用闭卷笔试的方式进行考核,这样的考核方式会造成学生部不重视上机实践环节,导致学生动手实践能力方面欠缺,同时学生分析问题能力和编程实现解决问题的能力也没有真正得到培养。3) 实验教学方式老套。传统的实验教学方法只是要求学生按照实验教材上把源程序输入到计算机,进行简单的调试,然后得到结果,或者让学生读程序改错调试正确的结果,这种教学方式缺乏自主思考分析问题的能力,更不要说创新能力,因些当布置一些实验指导书以外的问题,或者在原来的问题上扩展后,很多学生就完全编不出程序,不知该如何下手。 2 实验教学改革与实践 鉴于以上实验教学存在的问题,我们对其教学方法方式提出几点改进的方案,具体体现有以下几个方面 : 1) 加大实践教学环节 :将理论课和实验课学时的分配比例定为1 :1,学生可以有比较充分的时间进行大量的编程训练与练习,这样不但能促进学生在实践中对理论知识的理解和掌握,同时学生逐步理解和掌握程序设计的思想和方法,分析问题和动手实践能力逐渐得到培养,从而增加学生学习的自信心,激发学生学习该课程的浓厚兴趣。 2) 改变考核方式 :采取形成性考核方式进行,由形成性考核的各项过程成绩组成,分数比例为 :总评成绩 = 平时学习表现(10%)+ 作业(10%)+ 实训项目及课程设计(30%)+ 期末考试成绩(50% )。期末考试采用机上考试的方式,机考系统是我们学院自己研制开发的考试系统,允许学生借助于C编译系统调试程序。将实验课程设计和上机考试有机地结合在一起,更加强调对学生实际编程能力和程序调试能力的测试,同时也增加了学生对实践教学环节的重视。 3) 教学方法、方式改革 :1. 分阶段教学,第一阶段,学生刚接触C语言程序设计这门课程,该阶段只安排基础性实验教学,读简单程序和基本调试程序方法,并纠正程序中的错误,这些错误是初学者常犯易犯的错误,通过改错,让学生不仅掌握理解C语言的概念和语法,而且避免学生在以后编写程序时犯同样的错误 ;第二阶段模仿改写程序,给学生分析理解程序,然后对问题进行扩展,要求学生在此基础上对程序进行改写,使得学生能够完成部分编程,独立编写程序打下基础 ;第三阶段编程能力,培养学生独立分析问题能力和程序设计的基本能力,以达到解决实际问题的能力。经过“模仿改写编写”的实教学过程,逐步引导学生理解和掌握程序设计的思想和方法。2. 案例教学法,贯彻从实践中来到实践中去的原则,以问题和实例引入内容,循序渐进地引导学生,让学生带着问题去听课,在教学中重点讲解程序设计的思想和方法,培养学生分析问题和算法设计的能力。3. 设计综合性实验项目,学生具有初步的独立编写程序能力了,可以通过布置一些综合设计实验项目,加深学生对语言编程的理解,进一步提高他们的编程能力。比如 :学生成绩管理系统,个人理财管理系统等类型的综合性实训项目,以分组的形式参与到项目中,以5个学生为一组,在学期末,对每一小组以答辩的形式进行考核,让每个小组的成员对自己在项目中所做的模块进行陈述,这样使得每个成员都参与到项目中,真正动手独立完成项目,学生的创造性思维,独立分析问题和解决问题的能力进一步得到提升,同时学生的团队合作精神也得到培养。4. 搭建网络教学平台,给在课外自主学习的学生提供一个学习平台,学生可以利用平台上的教学资源进行自主学习,这些资源包括教学资源、实验题目、综合实训项目、经典编程、网络答疑,教学录像、在线测试等,也可以通过平台上的留言板与老师和同学进行交流,拓宽了课程的教学空间。 3 结束语 实践教学是提高学生实践动手能力和培养学生是研究能力创新能力的重要教学环节,在实践中表明,对实践教学的方法,内容,考核方式等进行改进有助于提高学生学习的积极性和主动性,同时学生的编程能力和综合实践能力得到了很大的提高,在实际教学过程中得到较好的教学效果。 摘要:针对《C语言程序设计》实验教学环节中存在的一些问题,从激发学生的学习积极性,培养学生的编程能力和分析解决问题能力为出发点,提出几点改进C语言程序设计实验教学方式和方法的建议,包括采用更科学和完善的考核方式,多样化的设计、综合性实训项目的实验法等。实践表明,这些方法的改进在教学中能够取得较好的效果。C语言程序设计—函数—实验报告 第2篇
C语言程序设计—函数—实验报告 第3篇
C语言程序设计—函数—实验报告 第4篇
C语言程序设计实验报告 第5篇
C语言程序设计II实验报告 第6篇
C语言程序设计—函数—实验报告 第7篇
C语言程序设计—函数—实验报告 第8篇
C语言实验课教学设计 第9篇
C语言程序设计—函数—实验报告 第10篇
C语言程序设计—函数—实验报告 第11篇
C语言程序设计—函数—实验报告 第12篇
C语言程序设计实验教学方法研究 第13篇
C语言函数说明与返回值 第14篇
C语言函数教学设计与实践论文 第15篇
C语言程序设计—函数—实验报告 第16篇
C语言实验报告《综合实验》 第17篇
C语言程序设计—函数—实验报告 第18篇
C语言程序设计—函数—实验报告
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。