实验教学大纲样本--C语言程序设计

2024-06-26

实验教学大纲样本--C语言程序设计(精选10篇)

篇1:实验教学大纲样本--C语言程序设计

《C语言程序设计》实验教学大纲

课程名称:C语言程序设计

课程属性:必修(限选)

实验属性:独立设课

适用专业:光伏发电技术及应用、光伏材料加工与应用技术、新能源应用专业 学时:(实验学时 34)

应开实验学期:第二学期

应开实验项目数:

实验类型:综合性、验证性

一、本门课程实验的目的与要求

通过实验,加深学生对C语言的理解,掌握数据类型、模块化程序设计、指针、数组、指针及结构体、共用体和枚举类型的定义及使用,会写选择型程序、循环型程序,要求学完本门课程后,可编写C语言小程序。

上机实验是学习C语言程序设计的重要环节。通过实验,学习C语言的特点和方法;理解计算机程序的执行过程;掌握用计算机解决问题的方法和基本的程序设计技术;学会程序的调试方法。

二、实践形式和实践环境要求

1、实践形式:课内实验。

2、实验环境要求:每人一台电脑,安装有(Turbo C 2.0,C++环境)的实验室环境条件。

三、实践总学时和实践资料

1、总学时:34学时。

2、资料:按自编实验指导书相关内容进行实践。

四、考核与成绩评定

本课程实验考核由各分阶段实验报告、期末实训两大部分组成。各分阶段实验报告占总成绩的60%,期末考核占总成绩的40%。

五、实践任务与学时分配

实验一C程序上机操作方法及运行环境

(一)实验目的与要求:

1、了解所用的计算机系统的基本操作方法,学会独立使用该系统。

2、了解在该系统上如何编辑、编译、连接和运行一个C程序。

3、通过运行简单的C程序,初步了解C程序的特点。

(二)参考学时:2

(三)实验环境::计算机机房(Turbo C 2.0,C++环境)。

实验二数据类型、运算符和表达式

(一)实验目的与要求:

1、掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。

2、掌握不同的数据类型之间赋值的规律。

3、学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加和自减运算符的使用。

4、进一步熟悉C程序的编辑、编译、连接和运行的过程。

(二)参考学时:2

(三)实验环境::计算机机房(Turbo C 2.0,C++环境)。

实验三顺序结构程序设计

(一)实验目的与要求:

1、掌握字符型数据与整型数据如何通用及赋值语句的使用方法。

2、掌握各种类型数据的输入输出函数的应用方法。

3、掌握顺序结构程序的编写过程。

(二)参考学时:2

(三)实验环境::计算机机房(Turbo C 2.0环境)。

实验四选择结构程序设计

(一)实验目的与要求:

1、掌握关系运算符和逻辑运算符的使用方法及其表达式的应用。

2、掌握分支语句的使用。

3、结合程序掌握一些简单的算法。

4、学习调试程序。

(二)参考学时:2

(三)实验环境::计算机机房(Turbo C 2.0,C++环境)。

实验五循环结构程序设计

(一)(一)实验目的与要求:

1、掌握循环次数不确定的循环程序设计方法。

2、掌握如何用break语句退出循环。

(二)参考学时:2

(三)实验环境::计算机机房(Turbo C 2.0,C++环境)。

实验六循环结构程序设计

(二)(一)实验目的与要求:

1、掌握循环次数确定的循环结构程序及双重循环结构程序的设计思路。

2、掌握循环控制变量的取值范围的确定。

(二)参考学时:2

(三)实验环境::计算机机房(Turbo C 2.0,C++环境)。

实验七数组的应用

(一)(一)实验目的与要求:

1、掌握一维数组的定义及应用,主要注意其下标从0开始及下标越界问题。

2、掌握数组在循环的控制下其下标的灵活变化。

(二)参考学时:2

(三)实验环境::计算机机房(Turbo C 2.0,C++环境)。

实验八数组的应用

(二)(一)实验目的与要求:

1、掌握数组的定义、数组元素的引用及数组的初始化。

2、掌握字符数组的定义、数组元素的引用及对字符数组的初始化。

3、在综合应用中的具体体现。

(二)参考学时:2

(三)实验环境::计算机机房(Turbo C 2.0,C++环境))。

实验九函数

(一)(一)实验目的与要求:

1、掌握函数的定义、说明和调用方法。

2、理解return语句的作用和使用方法。

3、掌握函数调用过程中“传值”和“传址”方法的特性、使用及区别。

(二)参考学时:2

(三)实验环境::计算机机房(Turbo C 2.0,C++环境)。

实验十函数

(二)(一)实验目的与要求:

1、掌握函数的定义、说明和调用方法。

2、理解return语句的作用和使用方法。

3、掌握函数的嵌套调用和递归调用的定义及编制方法。

(二)参考学时:2

(三)实验环境::计算机机房(Turbo C 2.0,C++环境)。

实验十一编译预处理

(一)实验目的与要求:

1、掌握简单的宏定义和带参数宏的定义及其应用,并理解宏展开实质。

2、掌握文件包含和条件编译的应用。

3、清楚带参的宏和函数的差异。

(二)参考学时:2

(三)实验环境::计算机机房(Turbo C 2.0,C++环境)。

实验十二指针

(一)实验目的与要求:

1、掌握指针的概念,指针变量的定义和使用。

2、会使用指向数组的指针。

3、会使用指向字符串的指针。

4、掌握指针型函数和指向函数的指针。

(二)参考学时:2

(三)实验环境::计算机机房(Turbo C 2.0,C++环境)。

实验十三结构体、共用体

(一)实验目的与要求:

1、掌握结构体类型的说明和结构体变量的定义。

2、掌握结构体变量成员的引用和对结构体变量的初始化。

3、掌握结构体数组的定义及使用。

(二)参考学时:2

(三)实验环境::计算机机房(Turbo C 2.0环境)。

实验十四文件

(一)实验目的与要求:

1、掌握文件以及缓冲文件系统、文件指针的概念。

2、学会使用文件打开、关闭、读、写等文件操作函数。

3、学会用缓冲文件系统对文件进行简单的操作。

(二)参考学时:2

(三)实验环境::计算机机房(Turbo C 2.0,C++环境)。

篇2:实验教学大纲样本--C语言程序设计

一、教材名称:<>

二、课程总学时:108学时 [理论: 72 学时;实验与上机:36学时]

三、适用专业和开课学期:软件技术专业,第2学期。

四、实验的目的与任务:

《C程序设计》是一门实践性很强的课程。通过实验使学生加深对课堂讲授的概念、语法、算法、编程技术的理解;熟悉C程序设计的开发环境;掌握程序设计和调试的基本技能。并通过实践激发学生进一步学习的积极性,培养学生的学习兴趣和创新思维。通过8个实验,使学生经过一定数量的上机训练,了解和掌握C程序设计的环境、程序的数据表示、程序的执行流程控制、程序的整体结构等C程序设计的基本概念和应用技术。

五、主要仪器设备及台(套)数

安装Windowsxp,TC2.0等软件的计算机,每生一台。

六、主要实验教材(指导书)及参考用书:

谭浩强主编,《C程序设计题解与上机指导》,清华大学出版社。

七、成绩考核方式及评分标准

实验占课程总课时1/3,每项实验按该实验说明要求规定的评分标准积分,学期末合计的实验成绩占课程总成绩的18%。

八、实验开出率:100%

九、实验项目与要求

实验一:C程序的运行环境和运行一个C程序的方法(2学时)

实验性质:验证性实验

一、实验目的

1.了解所用的计算机系统的基本操作方法,学会独立使用该系统。2.了解在该系统上如何编辑、编译、连接和运行一个C程序。3.通过运行简单的C程序,初步了解C源程序的特点。

二、实验内容

1.调用编辑程序,输入教材第一章例1.1程序,并进行编译和运行。应了解所用的系统是用什么命令进行编译和连接运行的。编译和连接后所得到的目标程序的后缀是什么形式的?

2.输入并运行教材第一章中例1.2。

3.输入并运行教材第一章中例1.3,了解如何在运行时向程序变量输入数据。

实验二 数据类型、运算符和表达式(2学时)

实验性质:验证性实验

一、实验目的

1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。

2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。

3.进一步熟悉C程序的编辑、编译、连接和运行的过程。

二、实验内容

1.输入并运行教材第三章例3.6.即: #include void main(){char c1,c2; c1=97; c2=98;

printf(“%c %cn”,c1,c2); printf(“%d %dn”,c1,c2); } 在此基础上 ①将第二行改为: int c1,c2;再使之运行,分析结果。②再将第三行、第四行改为: c1=300;c2=400;再使之运行,分析其运行结果。

2.输入并运行教材第三章习题3.6,在上机前先用人工分析程序写出应得结果,上机后将二者对照。

3.输入并运行习题3.10。即: #include void main(){int i,j,m,n;i=8;j=10;m=++i;n=j++;printf(“%d,%d,%d,%d”,i,j,m,n);} 分别作以下改动并运行: ①将第4行改为: m=i++;n=++j;②程序改为: #include void main(){int i,j;i=8;j=10;printf(“%d,%d”,i++,j++);} ③在②的基础上,将printf语句改为: printf(“%d,%d”,++i,++j);④再将printf语句改为:

printf(“%d,%d,%d,%d”,i,j, i++,j++);⑤程序改为: main(){int i,j,m=0,n=0;;i=8;j=10;m+=i++;n-=--j;printf(“i=%d,j=%d,m=%d,n=%d”,i,j,m,n);}

实验三 最简单的C程序设计(2学时)

实验性质:验证性实验

一、实验目的

1.掌握C语言中使用最多的一种语句—赋值语句的使用。2.掌握数据的输入输出的方法,能正确使用各种格式转换符。

二、实验内容

1.输入并运行以下程序:

#include

void main(){int a,b; float d,e; char c1,c2; double f,g; long m,n;

unsigned int p,q; a=61;b=62; c1=’a’;c2=’b’; d=3.56;e=-6.87;

f=3157.890121;g=0.123456789; m=50000;n=-60000; p=32768;q=40000;

printf(“a=%d,b=%dn c1=%c,c2=%cnd=%6.2f,e=%6.2fn”,a,b,c1,c2,d,e); printf(“f=%15.6f,g=%15.12fnm=%ld,n=%ldnp=%u,q=%un”,f,g,m,m,p,q); } 在此基础上,做以下改动: ① 将程序第8-13行改为: a=61;b=62; c1=a;c2=b;

f=3157.890121;g=0.123456789; d=f;e=g;

p=a=m=50000;q=b=n=-60000; 运行程序,分析结果。

② 在①的基础上将printf语句改为:

printf(“a=%d,b=%dn c1=%c,c2=%cnd=%15.6f,e=%15.12fn”,a,b,c1,c2,d,e);

printf(“f=%f,g=%fn m=%ld,n=%ldn p=%d,q=%dn”,f,g,m,n,p,q); 运行程序。

2.编写程序,用getchar函数读入两个字符c1、c2,然后分别用putchar函数和printf函数输出这两个字符。

上机运行程序,比较用printf和putchar函数输出字符的特点。

实验四 选择结构程序设计(2学时)

实验性质:设计性实验

一、实验目的

1.了解C语言表示逻辑量的方法(以0代表“假”,以1代表“真”); 2.学会正确使用逻辑运算符和逻辑表达式; 3.熟练掌握if语句和switch语句。

二、实验内容

先编程序,解决以下问题,然后上机调试运行程序。1.有一个函数 xy2x13x11x11x10 x10用scanf函数输入x的值(分别为x<1、1~

10、≥10三种情况),求y值。2.给出一个百分制成绩,要求输出成绩等级‘A’,‘B’,‘C’,‘D’,‘E’。90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。

实验五 循环控制(4学时)

实验性质:设计性实验

一、实验目的

1.熟悉用while语句,do-while语句和for语句实现循环的方法。2.掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。

二、实验内容

编程序并上机调试运行。

1.输入两个正整数,求其中最大公约数和最小公倍数。2.用牛顿迭代法求方程2x3-4x2+3x-6=0在1.5附近的根。

实验六 数组(4学时)

实验性质:设计性实验

一、实验目的

1.掌握一维数组和二维数组的定义、赋值和输入输出的方法; 2.掌握字符数组和字符串函数的使用。3.掌握与数组有关的算法(特别是排序算法)。

二、实验内容

编程序并上机调试运行。

1.用选择法对10个整数排序。10个整数用scanf函数输入。2.将两个字符串连接起来,不要用strcat函数。实验七 函数(4学时)

实验性质:设计性实验

一、实验目的

1.掌握定义函数的方法;

2.掌握函数实参与形参的对应关系,以及“值传递”的方式; 3.掌握函数的嵌套调用和递归调用的方法;

4.掌握全局变量和局部变量,动态变量和静态变量的概念和使用方法。

二、实验内容

编程序并上机调试运行。

1.写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的信息。2.求两个整数的最大公约数和最小公倍数,用一个函数求最大公约数。用另一函数根据求出的最大公约数求最小公倍数。

(1)用全局变量的方法。将两个整数的最大公约数、最小公倍数都设为全局变量。

(2)不用全局变量,两个整数在主函数中输入,并传送给函数1,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传递给函数2,以求出最小公倍数,返回到主函数输出最大公约数和最小公倍数。

实验八 预处理命令(2学时)

实验性质:设计性实验

一、实验目的

1.掌握宏定义的方法; 2.掌握文件包含处理方法; 3.掌握条件编译的方法。

二、实验内容

编程序并上机调试运行。

1.定义一个带参数的宏,使两个参数的值互换。在主函数中输入两个数作为使用宏的实参,输出已交换后的两个值。

说明:在程序主函数使用宏时只能用两个实参,如SWAP(a,b),不能用三个参数。2.用条件编译方法实现以下功能:

输入一行电报文字,可以任选两种输出,一为原文输出;一为将字母变成其下字母(如‘a’变成‘b’,„,‘z’变成‘a’。其它字符不变)。用#define命令来控制是否要译成密码。例如: #define CHANGE 1 则输出密码。若 #define CHANGE 0 则不译成密码,按原码输出。用条件编译方法来处理。

实验九 指针(4学时)

实验性质:设计性实验

一、实验目的

1.掌握指针的概念,会定义和使用指针变量; 2.学会使用数组的指针和指向数组的指针变量; 3.学会使用字符串的指针和指向字符串的指针变量; 4.学会使用指向函数的指针变量;

二、实验内容

编程序并上机调试运行程序(都要求用指针处理)。1.输入三个整数,按由小到大的顺序输出。

2.将一个3*3的矩阵转置,用一函数实现之。在主函数中用scanf函数输入以下矩阵元素:

1 7133915511 19将数组名作为函数实参。函数调用后在主函数中输出已转置的矩阵。3.用一个函数实现两个字符串的比较,即自己写一个strcmp函数: strcmp(s1,s2)如果s1=s2,则函数返回值为0;如果s1≠s2,返回它们二者第一个不同字符的ASCII码差值(如“BOY”与“BAD”,第二个字母不同,“O”与“A”之差为79-65=14);如果s1>s2,则输出正值;如s1

两个字符串s1,s2由main函数输入,strcmp函数的返回值也在main函数输出。

实验十 结构体和共用体(4学时)

实验性质:设计性实验

一、实验目的

1.掌握结构体类型变量的定义和使用; 2.掌握结构体类型数组的概念和应用; 3.掌握共用体的概念与使用。

二、实验内容

编程序,然后上机调试运行。

1.有5个学生,每个学生的数据包括学号、姓名、三门课的成绩,从键盘输入5个学生数据,要求打印出三门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、三门课的成绩、平均分数)。

要求用一个input函数输入5个学生数据;用一个average函数求总平均分;用max函数找出最高分学生数据;总平均分和最高分的学生的数据都在主函数中输出。

2.输入和运行以下程序:

#include

union data {int i[2]; float a; long b; char c[4]; };

void main(){union data u;

scanf(“%d,%d”,&u.i[0],&u.i[1]); printf(“i[0]=%d,i[1]=%dna=%fnb=%ldnc[0]=%c,c[1]=%c,c[2]=%c,c[3]=%cn”,u.i[0],u.i[1],u.a,u.b,u.c[0],u.c[1],u.c[2],u.c[3]);} 输入两个整数10000、20000给u.i[0]和u.i[1]。分析运行结果。

然后将scanf语句改为: scanf(“%ld”,&u.b);

输入60000给b。分析运行结果。

实验十一 位运算(1学时)

实验性质:设计性实验

一、实验目的

1.掌握位运算的概念和方法,学会使用位运算符; 2.学会通过位运算实现对某些位的操作。

二、实验内容

编写程序,上机调试并运行。

1.设计一个函数,使给出一个数的原码,能得到该数的补码,用八进制形式输入和输出。

实验十二 文件(1学时)

实验性质:设计性实验

一、实验目的

1.掌握文件以及缓冲文件系统、文件指针的概念; 2.学会使用文件打开、关闭、读、写等文件操作函数。3.学会用缓冲文件系统对文件进行简单的操作。

二、实验内容

1.从键盘输入一个字符,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符以“!”结束。实验十三 学生成绩管理(4学时)

实验性质:综合性设计性实验

一、实验目的

1.综合运用C程序设计知识,解决实际问题。

二、实验内容

1.有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号、姓名、三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。

2.将上题“stud”文件中的学生数据,按平均分进行排序处理,将已排序的学生数据存入一个新文件“stu-sort”中。

3.将上题已排序的学生成绩文件进行插入处理。插入一个学生的三门课成绩。程序先计算新插入学生的平均成绩,然后将它按成绩高低顺序插入,插入后建立一个新文件。

学生的原有数据为:

91101 Wang 89,98,67.5 91103 Li 60,80,90 91106 Fun 75.5,91.5,99 91110 Ling 100,50,62.5 91113 Yuan 58,68,71 要插入的学生数据为:

91108 Xin 90,95,60

制 订:程世辉 教研室:软件教研室 执笔人:程世辉 审定人:

篇3:C语言程序设计实验课程教学探索

C语言程序设计作为一门重要的程序设计语言入门语言, 在课程体系中的地位不言而喻。盐城师范学院将C语言程序设计作为计算机专业本科生程序设计课程的基础核心课程, 已有多年历史。该课程对培养学生计算思维、编程能力、自学能力和分析解决计算机问题的能力有着至关重要的作用, 并对后续课程, 譬如算法与数据结构、数据库原理、操作系统等核心课程的学习有非常大的支撑作用。但是, C语言中概念多、难点多、语法复杂、设计到的硬件知识多、使用灵活、不易调试等特点, 容易导致学生出现畏难情绪, 极大地遏制了学生的学习兴趣。本文针对以上问题就该课程对应的实验课程做几点思考, 从课程内容、教学方法、教学手段等几个方面进行大胆改革, 积极投身教学实践, 结果显示我们的改革能取得较好的效果。

2 传统教学模式存在的问题 (Defects of traditionalteaching model)

C语言程序设计实验课程是计算机专业进入大学后要学习的第一门程序设计实践课程, 它对提高学生编程兴趣和动手能力有着至关重要的作用。或者说, 该课程是热爱编程和害怕编程的两种学生的分水岭。传统教学模式在实际教学过程会存在以下问题[1]。

(1) 生源的计算机基础参差不齐, 有些学生进入大学前就已经通过计算一级考试, 有些学生还没有接触过计算机。进入大学后同一平台学习程序设计, 后者明显感觉到有压力, 自信心受打击从而出现厌学的情绪。

(2) 传统教学模式的过程以教师为主体, 学生被动的学, 对于实践性很强的课程, 学生逐渐丧失兴趣, 缺乏学习的动力。C语言程序设计实验课程上, 如果只是简单的做些验证性实验, 则不能培养学生独立编程解决问题的能力, 极大地扼杀了学生的创造力。

(3) 由于被动的学习, 造成只是照本宣科, 缺乏钻研精神, 导致学生在后续专业课程或参加设计性、综合性实验课程时, 往往力不从心, 达不到预期的教学效果。

(4) 教师对课程教学目标不明确, 认为将该课程的语法知识传授给学生就达到教学目的, 这样就背离了通过学习C语言应该培养学生能够用编程语言去分析和解决实际问题的能力的宗旨。

3 改革方案 (Project of innovation)

C语言程序设计是一门实践应用性较强的学科, 在日常的教学过程中需要不断强化实验环节, 让学生在操作实践过程中不断地发现、分析和解决新问题。为了实现上述目标, 教师在教学过程中必须要结合有效教学理论的要求, 努力改进教学方法。

3.1 精心设计好教学内容

案例教学教学法的理论依据是构建主义学习理论[2]。构建主义者认为, 教学设计要发挥学习者在学习过程中的主动性和构建, 教师的职责在于使学习者置身于探索知识之中, 为他们提供适当的“情境”[3]。在设计案例时, 要兼顾不同基础的学生, 不能让实验课变成少数人的实验课。因此, 我们将教学内容按层次组织。第一个层次为基本知识, 所有的学生都必须能够通过自身的努力顺利完成, 这样可以极大提高学生的学习积极性。第二个层次为对所学知识简单的应用, 这个层次对基本概念和方法加深理解, 需要学生通过自己的钻研、参考课外资料, 发挥自己的学习能力。通过这一层的学习, 所有的学生应该能够学会主动积极地查阅文献, 切实提高自己的钻研和自学能力, 同时也能鼓舞学生的斗志。第三个层次是用所学知识去解决实际问题, 真正做到培养学生的创造力。这个层次需要通过大量的思考和联系才能达到, 同时也能选拔出具有一定天分的学生。

3.2 激发学生的学习兴趣

兴趣是最好的老师, 同时兴趣也是学好程序设计的关键, 而培养学生对C语言程序设计课程的兴趣关键在于实验课。激发学生的学习兴趣的关键莫过于让学生有解决实验中碰到问题的能力, 不会因为C语言本身的问题丧失学习的信心。比如, 让学生掌握调试手段。首先我们使用一个有趣的现象引出为何要使用调试工具, 以及调试工具使用方法。例如, 我们给出如下所示代码, 请学生写出运行结果。绝大部分学生会给出从246到255的十个数。运行的结果告诉他们结果应该是一个死循环, 这样会激发学生的想知道原因的兴趣。

#include

int main ()

{

unsigned char a;

for (a=246;a<256;a++)

printf (“%dt”, a) ;return 0;

}

我们用VC++ 6.0的调试工具, 在循环体语句前设置一个断点, 执行debug, 并执行单步调试, 发现当a为255后for循环并没有能停止, a的值变成了0, 如图1和图2所示。这时学生会回忆起unsigned char类型的变量取值范围为0—255。当变量a值为255时再加1就回头变成了0。这样学生会对调试工具的使用有一个非常深刻的印象, 同时也会明白掌握调试工具的重要性。更重要的是, 极大地激发了学生的学习兴趣。

3.3 设计考核体系

目前许多高等院校C语言程序设计课程学习成绩的评定, 仅以期末一张考试卷的完成情况而定, 这使得很多学生不重视实验课, 认为实验课学得好与不好对成绩影响不大, 很多学生重理论、轻实验[4]。我们将考核贯穿整个学习过程中, 每学完一个知识点进行一次考核。考核的方式灵活多样, 可以通过诸如答辩、课后撰写小论文、完成实验报告等方式。考核过程中发现的问题决定教师教的过程, 可以通过集中讲授、设计思考题、提供参考资料等方式解决学习过程发现的问题。

4 结论 (Conclusion)

多年来, 我校在C语言程序设计实验课上进行了改革的尝试, 许多老师积极参与教学改革, 取得了辉煌的成果。我们一直在努力寻找提高学生对C语言程序设计实验课程的兴趣、最有效的教学手段, 为计算机专业学生提高动手能力、编程思维能力做出自己的努力。

参考文献

[1]王创伟, 汤克明, 蔡长安.“C语言程序设计”教学改革方案与实践[J].现代计算机, 2010 (10) :23-25.

[2]温彭年, 贾国英.建构主义理论与教学改革:建构主义学习理论综述[J].教育理论与实践, 2002, 23 (5) :17-22.

[3]储岳中, 秦锋, 刘哄申.“C语言程序设计”理论与实践一体化教学的几点实践[J].计算机教育, 2012 (12) :22-25.

篇4:C语言实验课教学设计

关键词: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.

篇5:C语言程序设计实验教学的探讨

C语言程序设计实验教学的探讨

本文在分析C语言程序设计实验中普遍存在的问题后,探讨了C语言程序设计实验教学的.改进,并提出了具体的改进方法.

作 者:曲庆红 作者单位:白城师范学院教育技术系,吉林,白城,137000刊 名:科技信息英文刊名:SCIENCE & TECHNOLOGY INFORMATION年,卷(期):“”(23)分类号:G71关键词:实验教学 程序设计 创新

篇6:C语言程序设计实验九

【实验题目1】

写几个函数:(1)输入10个职工的姓名和职工号;

(2)按职工号由小到大排序,姓名顺序也随之调整;

(3)要求输入一个职工号,找出该职工的姓名。

从主函数输入要查找的职工号,输出该职工姓名。

【实验题目2】有一行电文,已经按下面规律译成密码:

A → Za → z

B → Yb → y

C → Xc → x

篇7:C语言程序设计实验安排

实验一 顺序结构程序设计(2学时)

一、实验目的熟悉在VC运行环境下,编辑调试C语言程序的一般步骤。掌握顺序结构程序设计的基本思想和基本方法。

二、实验要求

1. 仔细阅读下列实验内容,并编写出相应的C语言源程序。2. 在VC运行环境下,编辑录入源程序。

3. 调试运行源程序,注意观察调试运行过程中发现的错误及改正方法。4. 掌握如何根据出错信息查找语法错误。

5.最后提交带有注释的源程序文件(扩展名为.c)。要求该文件必须能够正确地编译及运行,并不得与他人作品雷同。

6.源程序注释信息可以包括以下几方面内容:

⑴ 程序功能描述。

⑵ 程序版本号、创作日期。

⑶ 作者信息描述:班级、学号、姓名。

⑷ 问题分析描述。

⑸ 算法设计描述。

⑹ 关键语句注释说明。

⑺ 调试运行过程中出现的错误及改正方法。

⑻ 输入数据样例。

⑼ 输出数据样例。

三、实验内容

以下两题,任选其一解答。

你知道淄博到北京的地面距离是多少千米吗,淄博到纽约的地面距离又是多少千米呢?说不上来了吧。还是让我们编一个程序来计算一下吧。

1.已知地球的平均半径为6371千米,假设在地球的同一纬度上,有两个处于不同经度的城市A、B,编程序求出这两个城市之间的地面距离。

输入数据样例:例如,欲求北纬30度上东经10度到东经50度的距离,输入格式应为:30 10 50

参考测试数据:

输入:0 0 180 输出:20015.08

输入:30 0 90 输出:8397.7

2输入:60 0 45 输出:2453.20

2.地球的平均半径为6371千米,已知地球上两个城市A、B的经度和纬度,编程序求出这两个城市之间的地面距离。

提示:球面上两点之间的最短距离,等于过这两点以球心为圆心的圆上,这两点之间劣弧的长度。(即这两点与球心之间的连线构成的夹角所对球面劣弧的长度)。

建议你自己一步步推导出公式,而不要照搬网上的现成公式。

四、常见问题

疑问1:这分明是两道数学题啊,能否将数学公式提供给我们呢,我们的主要任务不是编写程序吗?

答:建立数学模型也是编程序的一部分。学会分析解决现实中遇到的问题,是我们学习的重要目标。

疑问2:这个问题好像属于球面几何的范畴,用平面几何可以求解吗?

答:这个问题的确涉及到球面几何,但是也的确可以利用投影以及平面几何方法来求解。

实验二 选择结构程序设计(2学时)

一、实验目的

掌握选择结构程序设计的一般方法及选择结构程序的调试方法。

二、实验要求

1. 仔细阅读下列实验内容,并编写出相应的C语言源程序。2. 在VC运行环境下,编辑录入源程序。

3. 调试运行源程序,注意观察调试运行过程中发现的错误及改正方法。4. 掌握如何根据出错信息查找语法错误。

5.最后提交带有充分注释的源程序文件(扩展名为.c)。要求该文件必须能够正确地编译及运行,并不得与他人作品雷同。

6.源程序注释信息可以包括以下几方面内容:

⑴程序功能描述。

⑵程序版本号、创作日期。

⑶作者信息描述:班级、学号、姓名。

⑷问题分析描述。

⑸算法设计描述。

⑹关键语句注释说明。

⑺调试运行过程中出现的错误及改正方法。

⑻输入数据样例。

⑼输出数据样例。

三、实验内容

你知道你生日那天是星期几吗,还有你知道你爸爸生日那天是星期几吗?你可能会说:可以查万年历啊。那么,不查万年历你能计算出来吗?

以下两题,任选其一解答。

1.编程序实现:输入一个年份y,求出从公元1年1月1日到y年1月1日,总共有多少天,并求出y年的1月1日是星期几。

2.编程序实现:输入任意一个日期的年、月、日的值,求出从公元1年1月1日到这一天总共有多少天,并求出这一天是星期几。

四、常见问题

疑问1:闰年的规律是不是四年一闰?

答:四年一闰是儒略历(儒略也就是凯撒大帝)的置闰规则。我们现在使用的是格里高利历,置闰规则是每400年97闰。

疑问2:公元1年1月1日是星期几呢?

答:星期一。

疑问3:据说从儒略历改为格里高利历时,将1582年10月4日的下一天定为格里高利历的10月15日,中间销去了10天,这会不会影响星期几的计算?

答:这个调整是对儒略历误差的纠正,并不会影响总天数和星期几的计算。

疑问4:这里计算总天数,好像要用到循环程序吧?

答:其实根据闰年的置闰规则,不使用循环也可以计算出来总天数。当然,你想使用循环编写该程序也是可以的。

实验三 循环结构程序设计(2学时)

一、实验目的掌握循环结构程序设计的一般方法及循环结构程序的调试方法。

二、实验要求

1. 仔细阅读下列实验内容,并编写出相应的C语言源程序。2. 在VC运行环境下,编辑录入源程序。

3. 调试运行源程序,注意观察调试运行过程中发现的错误及改正方法。4. 掌握如何根据出错信息查找语法错误。

5.最后提交带有充分注释的源程序文件(扩展名为.c)。要求该文件必须能够正确地编译及运行,并不得与他人作品雷同。

6.源程序注释信息可以包括以下几方面内容:

⑴程序功能描述。

⑵程序版本号、创作日期。

⑶作者信息描述:班级、学号、姓名。

⑷问题分析描述。

⑸算法设计描述。

⑹关键语句注释说明。

⑺调试运行过程中出现的错误及改正方法。

⑻输入数据样例。

⑼输出数据样例。

三、实验内容

以下两题,任选其一解答。

1. 海萍夫妇为了彻底告别“蜗居”生活,痛下决心贷款60万元购买了一套三居室。若贷款月利率为0.5%,还款期限为120个月,还款方式为等额本金还款法(即贷款期限内每期以相等的额度偿还贷款本金,贷款利息随本金逐期递减)。试求出每个月还款的本金、每个月的利息以及总利息分别是多少元。

2. 若还款方式采用等额本息还款法(即贷款期限内每期以相等的额度偿还贷款本息,贷款利息随本金逐期递减)。试求出每个月还款的本金、每个月的利息以及总利息分别是多少元。

四、常见问题

疑问1:等额本息还款法每个月的还款额怎么计算,应该有个公式吧,要不然怎么计算出来每个月应还的利息与本金?

答:的确有一个计算公式。当然你可以自己推导出来(这样你会很有成就感!),要不然就从网上搜索出来。

实验四 循环程序综合应用(4学时)

一、实验目的:

掌握循环结构程序设计的一般方法及循环结构程序的调试方法,能够综合运用顺序、选择和循环结构解决一般难度的实际应用问题。

二、实验要求

1. 仔细阅读下列实验内容,并编写出相应的C语言源程序。2. 在VC运行环境下,编辑录入源程序。

3. 调试运行源程序,注意观察调试运行过程中发现的错误及改正方法。4. 掌握如何根据出错信息查找语法错误。

5.最后提交带有充分注释的源程序文件(扩展名为.c)。要求该文件必须能够正确地编译及运行,并不得与他人作品雷同。

6.源程序注释信息可以包括以下几方面内容:

⑴程序功能描述。

⑵程序版本号、创作日期。

⑶作者信息描述:班级、学号、姓名。

⑷问题分析描述。

⑸算法设计描述。

⑹关键语句注释说明。

⑺调试运行过程中出现的错误及改正方法。

⑻输入数据样例。

⑼输出数据样例。

三、实验内容

以下两题,任选其一解答。

1.编程序实现如下功能:输入任意一个年份和月份,按以下格式输出该月份的公历日历。

要求由程序计算出来该月份的1日是星期几,并用循环控制打印。打印样例如下:

2012年日历

==========

9月

---------日 一 二 三 四 五 六2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30-------------------------

2.编程序实现如下功能:输入任意一个年份,按以下格式输出该年份全年的公历日历。要求由程序计算出来每个月份的1日是星期几,并用循环控制打印。

四、常见问题

疑问1:如何控制某个月1日的打印位置?

答:先由程序计算出来该月份的1日是星期几,然后控制在打印“1”之前打印相应个数的空格。

疑问2:如何控制每周和每月的打印换行?

答:可以根据当前这一天的打印位置控制每周的打印换行,并根据该月份的天数控制每月的打印换行。

实验五 字符串处理综合应用(4学时)

一、实验目的

掌握字符串处理的一般方法及字符串处理应用程序的调试方法,能够综合运用选择、循环结构和数组、指针解决一般难度的实际应用问题。

二、实验要求

1. 仔细阅读下列实验内容,并编写出相应的C语言源程序。2. 在VC运行环境下,编辑录入源程序。

3. 调试运行源程序,注意观察调试运行过程中发现的错误及改正方法。4. 掌握如何根据出错信息查找语法错误。

5.最后提交带有充分注释的源程序文件(扩展名为.c)。要求该文件必须能够正确地编译及运行,并不得与他人作品雷同。

6.源程序注释信息可以包括以下几方面内容: ⑴程序功能描述。

⑵程序版本号、创作日期。

⑶作者信息描述:班级、学号、姓名。

⑷问题分析描述。

⑸算法设计描述。

⑹关键语句注释说明。

⑺调试运行过程中出现的错误及改正方法。

⑻输入数据样例。

⑼输出数据样例。

三、实验内容

以下两题,任选其一解答。

1.编程实现,输入一个整数的小写金额值(即不考虑角和分),转化为大写金额值并输出。先实现基本功能,如输入1002300,可以输出“壹佰零拾零万贰仟叁佰零拾零元整”。

2.编程实现,输入一个小写金额值,转化为大写金额值输出。要求实现相对完善的功能,如输入1002300.90,应该输出“壹佰万贰仟叁佰元零玖角整”。

四、常见问题

疑问1:如何才能分离出整数中的每一位数字?

答:可以利用整数的求余数和除法运算实现数字的分离,同时将分离出的数字存入到一个事先定义好的数组中,每个数组元素只存储一位数字。

疑问2:若不能确定整数的实际位数,如何控制分离过程?

答:可以通过循环控制数字的分离过程,每循环一次分离出来当前的最末一位,然后去掉最末一位,直至分离出所有的位。

疑问3:如何控制给某位数字添加合适的数量单位,如万、仟、佰、拾、元?

答:可以根据该数字在原小写数值中的位置进行控制,如第0位单位为“元”,第1位单位为“拾”,依此类推。

实验六 文件应用程序设计(2学时)

一、实验目的掌握文件应用程序设计的一般方法及其调试方法。

二、实验要求

1. 仔细阅读下列实验内容,并编写出相应的C语言源程序。2. 在VC运行环境下,编辑录入源程序。

3. 调试运行源程序,注意观察调试运行过程中发现的错误及改正方法。4. 掌握如何根据出错信息查找语法错误。

5.最后提交带有充分注释的源程序文件(扩展名为.c)。要求该文件必须能够正确地编译及运行,并不得与他人作品雷同。

6.源程序注释信息可以包括以下几方面内容:

⑴程序功能描述。

⑵程序版本号、创作日期。

⑶作者信息描述:班级、学号、姓名。

⑷问题分析描述。

⑸算法设计描述。

⑹关键语句注释说明。

⑺调试运行过程中出现的错误及改正方法。

⑻输入数据样例。

⑼输出数据样例。

三、实验内容

以下两题,任选其一解答。

1. 海萍夫妇为了彻底告别“蜗居”生活,痛下决心贷款60万元购买了一套三居室。若贷款月利率为0.5%,还款期限为120个月,还款方式为等额本金还款法(即贷款期限内每期以相等的额度偿还贷款本金,贷款利息随本金逐期递减)。试求出每个月还款的本金、每个月的利息以及总利息分别是多少元。要求将输出结果写入到数据文件中。

篇8:实验教学大纲样本--C语言程序设计

1 高校C语言实践教学中存在的问题

1.1 实践教学内容有待优化

实践教学内容全部依附于理论教学课程, 实验项目陈旧, 只是配合每一章所学的内容在计算机上进行实践, 验证性实验项目较多, 缺少综合性、设计性实验。扩展内容太少, 不利于学生进行开拓性实验内容的设计, 不利于学生创新思维能力的培养。

1.2 实践教材形式单一

课程采用的实验教材与习题集合二为一的, 每一个实验题目都能在本书中找到答案, 学生只要把源程序输入计算机, 进行简单的调试就可以得到实验结果, 用不着去查资料、思考和创新, 编译出错时不是根据错误提示查找原因, 而是与书上的程序进行比对, 改正录入错误。这样不利于培养学生发现问题、分析问题、解决问题的能力。

1.3 实践教学方法有待创新

教师在教学过程中使用单纯的讲授法, 往往把实验过程、注意事项等讲得很详细, 学生实验时只是按照步骤被动的进行, 缺少独立思考、提问、尝试的机会, 主动性得不到发挥, 创新思维训练无从谈起。上课讲的内容在讲过之后, 无法反复学习研究, 学习者层次不一, 对知识的接受能力也存在较大差异, 造成学习者对教师所操作的步骤无法全部掌握。不利于激发学生对实验教学的兴趣和积极性, 不利于学生进行探究式学习。

2 C语言实践教学的实施内容

2.1 优化实验教学内容

为全面提高学生的实践能力, 使实验教学能够满足不同层次学生的自主学习需求, 我们对实验课程内容进行了规范和优化, 新的C语言程序设计实验内容系统地构建了实验项目模块, 确定开设16个实验。考虑到本课程为专业基础课, 实验项目以基础实验项目为主, 增加综合性实验项目, 使其具有从易到难、从基础到综合的系统性。

实验项目的精心选择。C语言有三种基本结构:顺序结构、选择结构和循环结构, 这三种结构是学生程序学习的入门结构, 所以我们进行了精心的选择, 例如我们在循环结时设计了两个题目, 1.编程计算5!, 要求输出结果为:1×2×3×4×5=120。2.输入10个数, 求其中的最大数和最小数。这两个程序难易适中, 不仅能够很好运用循环结构, 而且为后续的递归结构打下基础, 环环相扣, 由浅入深。

实验题型的多样化。在以往的实验课中, 大部分老师布置的实验题目题型单一, 内容不丰富, 为了全方位地训练学生程序设计能力, 在程序设计中设计多种类型的实验题目, 包括填空设计题, 程序修改题, 编程题等。

2.2 加强实验教材建设

实验教学的正常实施, 离不开相应教材的指导, 为给学生提供一定广度和深度的实验教材和辅助资料, 我们将编写实验指导手册;同时在新的教材中扩充一部分高级编程, 扩展学生的知识面;再加入常见错误代码, 以便学生能够更快的改正自己的程序, 也可预防一些错误的发生。

2.3 完善实验教学方法

将问题分析法, 项目实验法、任务驱动法等多种教学方法融合, 提高学生解决问题的能力, 增加学生的学习兴趣。鼓励学生参加学生社团, 开展趣味编程。组建编程竞赛和兴趣小组, 加入真实的实践项目, 增加学生参与项目的能力。

2.4 实验考核方法的改进

目前实验成绩主要是各个实验成绩的总合, 不能合理的评判出学生的水平和能力。我们将实验成绩分为三个部分, 实验考勤20%, 实验现场打分40%, 实验报告40%。这样给出的实验成绩不仅能够反映学生的真实能力, 而且量化科学。另外设定一部分加分项目, 当学生完成高难度项目时, 另设定加分内容。

3 C语言实践教学的具体实施

围绕理论教学, 设计出相关的例题, 习题、上机指导题以及工程化思想的项目指导题, 坚持实践和理论教学相结合, 以实践教学促进对理论教学的深入理解, 将理论教学置于实际应用的背景之下;以实践教学为手段, 培养学生的计算思维、工程化思想, 训练学生的分析问题、用程序的思维去解决问题的能力, 提高学生的编程能力及调试能力。主要从以下五种实践教学方面实施。

3.1 课内上机实践环节

上机实践课上要求学生在实验室按照理论课讲解的内容进行巩固相应的理论教学知识, 特别是相应的语法知识的熟悉, 然后根据教师布置的题目进行相关的程序分析与设计, 主要是分析该应用中主要用的相关语法知识, 解决思路、分析和处理实际问题。通过上机实践环节, 学生可以基本分析、处理、解决、调试程序的能力。

3.2 课外实验实践环节

要求学生按照本教材配套的C上机实验指导书完成相关的实验操作, 上面的题目设计是以理论教学和上机实践环节相对应的知识去设计的, 能够很多的满足学生对该门课的学习。

3.3 综合性实践环节

布置一个小型软件项目设计, 让学生以工程化的思想从需求分析到最后的实现、运行维护整个工程化阶段去完成课程的设计实践, 使学生在应用项目中学习理论和实践知识。进一步开发学生独立分析、独立思考、独立完成和解决实际应用问题的能力, 综合运用所学的理论知识, 做到融会贯通, 加深学生对编程基本理论的认识和理解。

3.4 学生学习社团趋动

学院有相应的学习社团, 每个社团为每个学生提供的专门的学习场所 (具有上机练习的环境) 及相应的指导教师、高年级的学生的指导, 定期的知识技术的讲座、培训、辅导, 另外还有本专业相关的应用项目支持, 从而达到了实践教学的更高的目的。

3.5 自主研发的云平台的环境支持

学生实验环境全部在学院自行研发的云平台的系统进行操作和实验的, 使学生能切实感受到在自己开发的平台下运行软件, 编写程序与调试程序的乐趣。

4 结语

C语言程序设计是对于初学者来说难以掌握, 很容易让初学者失去学习程序的兴趣, 而实验教学更是难于把握。本文针对C语言实验教学中存在的各种问题, 给出了具体的改革措施, 并在2013、2014级新生中进行实践, 通过这种教学方法的改革, 新生的C语言实践能力得到了明显的提升。通过调查, 学生对于学习编程语言的兴趣大大提升, 对于理论知识的理解也更加深入。

参考文献

[1]董永权.C语言程序设计实验教学中的问题及改革措施[J].科技视窗, 2011 (26) :61-62.

[2]郝慧馨, 李秀坤, 夏清泉.C语言程序设计实验教学探索[J].计算机教育, 2010 (17) :82-84.

篇9:实验教学大纲样本--C语言程序设计

许多院校的专业开设了C语言课程,将其作为学生学习程序设计技术的入门课程,这与C语言的特点是分不开的。C语言不但可以编写系统软件,而且可以根据用户的需要编写出满足用户要求的应用软件,尤其是C语言具有很好的对计算机的硬件编程能力。同时,C语言具有逻辑性强、处理问题周密、严谨的特点,是集知识和技能于一体,实践性很强的课程。学生通过学习C语言可掌握程序设计的一些基本方法和技巧。然而C语言的数据类型较多、表达式丰富、语法结构较复杂,使它成为一门教师难教、学生难学的课程。因此,在重视理论教学的同时,必须加强实验环节。只有上机实践才能正真学会如何编写程序和调试程序,体会到“优化”程序;也只有通过上机实践才能更好地掌握程序设计的理论知识。然而,在C语言实验课中,我这两年的教学观察中发现普遍存在以下几个问题:

第一,学生没有明确的实验目标,实验兴趣不大。上机时一些学生无所事事或玩游戏,不但害了自己,还影响其他同学。第二,现有教材中上机实验都立足于C语言本身的一些语言规则,和实际开发脱节,没有较容易理解和生动有趣的范例,比较死板、枯燥。第三、现有实验大多注重语句、语法等,没有把编程解题思路和程序测试等放在首位,对学生分析问题和解决问题的能力训练不够。

二、实验教学探讨

我在教学的过程中,职借鉴职业技术学院的职业性教学的经验,注重职业岗位能力与职业技能的训练,注重解决问题、分析问题和自学等能力的培养。在C语言实验上机课中,主要是引导学生突破传统的思维方式,培养学生读、写程序和调试程序的能力以及提高上机的学习兴趣和自主实验的方法技巧等。

1、简化入门实验,提高学生实验兴趣 学生大多已习惯于计算机的图形操作界面,且基础比较薄弱,动手能力相对也差,加上或多或少的惰性,而开始学习C语言后,突然进入的是一个纯英文的界面和纯键盘操作,这种反差很大。为减轻学生畏惧压力,让学生容易上手,可简化C语言的入门实验操作:(1)在桌面上创建TC的快捷方式,双击后可直接进入TC编辑环境。(2)在编辑、编译、连接及运行C语言程序时,教学生直接按F2键进行存盘操作,Ctrl+F9运行程序,Alt+F5看到运行结果。而没必要让学生先认识TC的菜单中每个英文单词的意义等,将TC环境的细节认识和程序的编译、连接等单步操作留到后面实验中逐步了解。学生一上机就能体会到成功,并利用发音和动画程序引起学生的兴趣。

2、设计针对性的实验 设计一些学生们比较感兴趣的编程题目,加强学生对程序错误的诊察和校正能力、测试关系和逻辑表达式的能力、程序代码优化能力等方面的培养。从输入输出语句上机开始,我有意设计了相应的上机实验。如在选择结构中,设计如下过程:

(1)实验内容和步骤:①例:有如下程序段(让学生填写成完整的程序):

if(a>b)scanf(“%d”,&x);

else scanf(“%d”,&x);

为了更容易看明白程序的逻辑结构,用流程图来加以描述。要求增加一些输入语句和输出语句,以便使上述程序段能在不同a,b和x值下运行,并且能观察程序流程经过(覆盖)了哪些语句、哪些分支及哪些路径。

②实验步骤:记下分别使用下列各组数据运行时的操作流程。

⑴a=1,b=1,x=1;

⑵a=1,b=1,x=2;

⑶a=3,b=0,x=1;

⑷a=2,b=0,x=4;

⑸a=2,b=1,x=1;

⑹a=1,b=0,x=2;

⑺a=2,b=1,x=1;

⑻a=3,b=0,x=2;

(2)分析讨论:①用哪一组数据就可以使程序段中的每个处理语句都执行一次?为了找出程序中2各条处理语句中的错误,应该使用什么样的数据对程序进行测试?请上机验证自己的结论。②用哪两组数据就可以使程序段中的每个分支都至少运行一次?这种情形与上面的讨论有何不同?如果为了找出程序中各分支中的错误,应该使用什么样的数据对程序进行测试?请上机验证自己的结论。③用哪两组数据就可以把判定框中的每个条件都运算一次?如果为了测试出判定条件中的错误,应使用哪些数据对程序进行测试?请上机验证自己的结论。④用哪四组数据才可以把各种条件的组合都检测一遍?如果为了测试各种条件组合的情形,应该使用什么样的测试数据?请上机验证自己的结论。⑤用哪四组数据才可以把从起始到终止的各条路径都覆盖一次?如果为了测试出程序在不同路径下的错误,应该使用什么样的测试数据?请上机验证自己的结论。

(3)进一步的实验:①从键盘输入三个数,代表三条线段的长度。请写一个判定这三条线段所组成的三角形属于什么类型(不等边、等腰、等边或不能构成三角形)的C程序。②请分别设计下列数据对自己的程序进行测试。

A.找出各条语句中的错误。

B.找出各分支中的错误。

C.找出各条件中的错误。

D.找出各种条件组合中的错误。

E.找出各条路径中的错误。

而在循环语句上机中,对学生进行代码优化训练,让学生学会删除多余运算、代码外提、强度削弱、变换循环控制条件等代码优化手段。通过这些上机实践,学生大致知道一些软件测试、程序优化知识,提高了学生上机的积极性,使学生从上机就是检验书本例题、习题中解脱出来。

3、设计综合性的实验 以往大多数学生在学完C语言后,普遍反映看得清程序的设计代码意义,但遇到实际问题就无从下手。这主要是教材上缺少实际意义的题目,为此,一定要设计短期上机实验任务与长期任务结合的上机内容。以一个大题目作为长期任务,再按不同功能模块分解开来,形成一个个短期任务。每一章学过之后要求完成一项或几项编程作业,而各章的编程作业不是孤立的,而是相互联系的,实际上它们都是一个较大型较复杂程序的组成部分。这样就可以使学生的任务形成一种连贯性,在整个学科的学习过程中始终都有一个总任务的驱动,而学生又在一个又一个短期任务的驱动下,体验着一次又一次迈向成功的喜悦。

例如,以“学生成绩管理系统”为课程设计的长期任务,从常用输入/输出语句printf和scanf开始,让学生编写主函数并在主函数中调用若干个空函数形成一个文本型菜单的雏形;学习常用数据类型后,再编写一个验证密码输入的函数;选择结构后,要求编写一个菜单选取函数;循环控制和数组后,要求建立班级课程的成绩输入输出函数;学完结构体类型后,要求使用结构体数组来存储和处理学生的信息;学习链表后,要求利用单链表动态管理学生的成绩;最后在“文件”这一章,要求利用文件操作完成学生成绩管理。当学完整个课程,完成了平时要求的各项编程作业之后,就会发现,原来自己完成的远不是一个一个零碎的程序段,而是在一块一块制作程序的各个部件,只要通过简单的程序拼装,就可以构成一个比较复杂的程序。这也在潜移默化中培养了学生采用各个击破的方法解决实际问题的意识。最后,学生从整体的角度来审视整个程序的设计,并通过上机进行综合调试,达到提高编程能力的目的。

4、采用协作方式的实验组织形式 协作学习由David W. 和Roger R. Jonson教授提出,是学生以小组形式参与、为达到共同的学习目标、在一定的激励机制下最大化个人和他人习得成果,而合作互助的一切相关行为。

采用这种形式在上机过程中,学生之间为了达到小组学习目标,个体之间可以采用对话、商讨、争论等形式对问题进行充分论证,以期获得达到学习目标的最佳途径。学生学习中的协作活动有利于发展学生个体的思维能力,增强学生个体之间的沟通能力以及对学生个体之间差异的包容能力。此外,协作学习对提高学生的学习业绩、形成学生的批判性思维与创新性思维、对待学习内容与学校的乐观态度、小组个体之间及其与社会成员的交流沟通能力、自尊心与个体间相互尊重关系的处理等都有明显的积极作用。

在尊重学生个体差异和一人一机基础上,利用局域网,将学生分成小组进行协作实验;将实验心得体会、结论等在网上共享。改变以前那种各自为阵,互不往来的实验组织方式。

三、结束语

篇10:实验教学大纲样本--C语言程序设计

实验六 函数 掌握函数实参与形参的对应关系以及“值传递”的方式; 3 掌握函数递归调用的方法;

二 实验内容 编写两个函数,分别求两个正整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个正整数由键盘输入。

【提示】设有两个正整数m和n ⑴ 实验四介绍了求最大公约数的算法,也可以用递归的方法求最大公约数。设hcf(int m,int n)是用来求m和n的最大公约数h函数,k=m%n,则:

hcf(n,k)hnk0k0⑵ 若最大公约数为h,则最小公倍数为:m*n/h。

实验时,完成以下两个函数的定义,使之和主程序构成完整的程序,实现题目的要求。#include int hcf(int m,int n)/* 求最大公约数的函数 */ { „„ } int lcd(int m,int n,int 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);} 程序调试通过后,用m=350、n=125和m=96、n=64两组数据运行程序,记录程序的输出。

完整程序如下: #include int hcf(int m,int n)/* 求最大公约数的函数 */ { int temp,r;if(m

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,然后调用函数求:

Cnmm!n!(m-n)!【注意】函数f的类型应用long或double。

程序如下:

#include long f(int n){ if(n)return n*jc(n-1);else return 1;}

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 void dstr(char str[],char ch){ } main(){ char str[80],ch;printf(“请输入字符串:”);gets(str);printf(“请输入欲删除的字符:”);scanf(“%c”,&ch);dstr(str,c);printf(“删除指定字符后的结果:%sn”,str);}

完整程序如下: #include void enter_string(char str[80]){ printf(“请输入字符串:”);gets(str);/* 从键盘输入字符串到数组str */ } void delete_string(char str[],char ch){ int i,j;for(i=j=0;str[i]!=';i++)if(str[i]!=ch)str[j++]=str[i];str[j]=';} void print_string(char str[]){ printf(“删除指定字符后的结果:%sn”,str);} void main(){ char c;char str[80];enter_string(str);printf(“请输入欲删除的字符:”);scanf(“%c”,&c);delete_string(str,c);print_string(str);}

上一篇:毕业班励志演讲稿全新集合下一篇:描述收获快乐高一作文