《C程序设计》实验教案[共五篇]

时间:2019-05-15 01:45:45下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《《C程序设计》实验教案》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《《C程序设计》实验教案》。

第一篇:《C程序设计》实验教案

《C程序设计》实验教案

一、实验的目的与任务:

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

二、实验项目与要求

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

实验性质:验证性实验

一、实验目的

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

二、实验内容

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

2.输入并运行教材第一章中习题1.4。

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

实验二 数据类型、运算符和表达式(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);} 2 分别作以下改动并运行: ①将第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.用牛顿迭代法求方程2x-4x+3x-6=0在1.5附近的根。

32实验六 数组(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函数输入以下矩阵元素:

17 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 8 个学生数据,要求打印出三门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、三门课的成绩、平均分数)。

要求用一个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。分析运行结果。

实验十一 文件(2学时)

实验性质:设计性实验

一、实验目的 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 10

第二篇:C语言程序设计实验

第一次试验

1.编写一个程序,求出给定半径r的圆的面积和周长,并且输出计算结果。其中: r的值由用户输入,用浮点型数据处理。

2.给一百分制成绩,要求输出成绩等级’A’、’B’、’C’、’D’、’E’。90分以上

为’A’,80~89分为’B’,70~79分为’C’,60~69分为’D’,60分以下为’E’。

3.输入两个正整数m和n,求其最大公约数和最小公倍数。

4.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

5.求sn=a+aa+aaa+…+aa...a(n个a)之值,其中a是一个数字。例如:2+22+222+2222+22222

(此时n=5),n由键盘输入。

第二次试验

1.有一分数序列:,,23581321,...求出这个数列的前20项之和。1235813

2.求一个33矩阵对角线元素之和。

3.将一个数组中的值按逆序重新存放,例如原来的顺序为:8,6,5,4,1。要求改

为:1,4,5,6,8。

4.有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格、以及其他字符的个数。

第三次实验

1.将字符串computer赋给一个字符数组,然后从第一个字母开始输出该串。请用指针实

现。

2.将无符号八进制数字字符串转换为十进制整数。例如,输入的字符串为556,则输出十

进制整数366。用指针实现。

3.编程输入一行文字,找出其中的大写字母,小写字母,空格,数字,及其他字符的个数,用指针实现。

第四次实验

1.写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的信息。

2.写一函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。

3.写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个

数,在主函数中输入字符串及输出上述的结果。

4.写一函数,使给定的一个二维数组(3×3)转置,即行列互换。

第三篇:C程序设计教案(第5章 实验6)

实验 6 字符数组和字符串函数一、二、实验学时:2课时 实验目标

1.熟悉掌握字符数组的使用。2.掌握与数组有关的算法。

三、实验要求:

1.在上实验课之前,每一个同学必须将实验的题目、程序编写完毕,做好充分的准备。

2.所有实验环节均由每位同学独立完成,严禁抄袭他人实验结果,若发现有结果雷同者,按实验课考核办法处理。

四、实验步骤和内容

【启动Visual C++】  【新建工程】

 选中【C++ Source File】项,【新建源程序文件】  编辑程序  执行程序

【例5.7】gets读取字符串与puts输出字符串。/* 源文件名:Li5_7.c 功能:gets读取字符串与puts输出字符串。*/ #include void main(){ char s[18];

/*定义s字符数组的初值*/ printf(“输入字符串”);gets(s);

/*读取字符串*/ puts(s);

/*输出字符串*/ printf(“读取的字符串是”%s“n”,s);

/*输出s字符数组的值*/ }

1)观查执行结果,是否与教材相同。

2)思考gets()和scanf()、puts()和printf()函数在输出字符串的异同点

【例5.8】输入一组字符串,以输入空串结束输入,找出最大的字符串(设串长不超过80字符)。

/* 源文件名:Li5_8.c 功能:输入一组字符串,找出最大的字符串。*/ 可以用gets函数读取字符串,设置一个最大字符串数组smax,第一次设置smax为空串,每读一个字符串s就把它与保存在smax中的字符串比较,如s>smax则用s替换smax,不然smax保持不变,这样当所有的字符串输入完毕后,smax中存储的就是最大字符串。

#include #include void main(){ char smax[80],s[80];

/*定义s数组和smax数组*/ strcpy(smax, “ ”);

/*设置smax数组为空,也可以设置smax[0]=‘‘*/ do

{ printf(“输入字符串:”);gets(s);

/*读取字符串*/ if(strcmp(s,smax)>0)

strcpy(smax,s);

/*s数组比smax数组大的话,把s数组赋值个smax数组*/

}while(s[0]!=‘‘

puts(“最大的字符串是”);puts(smax);}

1)观查执行结果,是否与教材相同。2)重新输入不同的字符串,再查看结果

五、思考题

1)【例5.7】思考gets()和scanf()、puts()和printf()函数在输出字符串的异同点。2)【例5.5】若要找出最小字符串,该如何实现?

六、实验小结:

第四篇:C程序设计教案(第9章 实验 12次)

实验 12 位运算一、二、实验学时:2课时 实验目标

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

三、实验要求:

1.在上实验课之前,每一个同学必须将实验的题目、程序编写完毕,做好充分的准备。

2.所有实验环节均由每位同学独立完成,严禁抄袭他人实验结果,若发现有结果雷同者,按实验课考核办法处理。

四、实验步骤和内容

【启动Visual C++】  【新建工程】

 选中【C++ Source File】项,【新建源程序文件】  编辑程序  执行程序

1、编写一程序,检查所用的计算机系统的C编译在执行右移时是按照逻辑右移的原则,还是按照算术右移的原则进行操作。如果是逻辑右移,请编一个函数实现算术右移;如果是算术右移,请编一个函数实现逻辑右移。输入如下代码:

#include “stdio.h”

short ljyy(short x)//逻辑右移 {

x=x>>1;x=x&(0x7fff);//最高位补零,其余保持不变

return x;}

void main(){ short y;short x=-4;y=x;x=x>>1;if(x<0){

printf(“x=%dn”,x);

printf(“该编译系统为算术右移!n”);} else {

printf(“x=%dn”,x);

printf(“该编译系统为逻辑右移!n”);} printf(“逻辑右移的结果为:”);y=ljyy(y);printf(“y=%dn”,y);}

1)编译、连接、和运行程序。程序运行后,观查屏幕显示结果。

2、编一个函数getbits,从一个16位的单元中取出某几位(即该几位保留原值,其余位为0)。函数调用形式为:

getbits(value,n1,n2)value为该16位数的值,nl为欲取出的起始位,n2为欲取出的结束位。如:

getbits(0101675,5,8)

表示对八进制数101675,取出其从左面起的第5位到第8位。要求把这几位数用八进制数打印出来。注意,应当将这几位数右移到最右端,然后用八进制形式输出。

【启动Visual C++】|【新建工程】|【新建源程序文件】:选中【C++ Source File】项 输入如下代码: #include “stdio.h”

short getbits(short value,int n1,int n2){ short result;short temp;int k;int i;k=16-n2;result=(0x0000);value=value>>k;for(i=0;i<=(n2-n1);i++){

temp=value&(0x0001);

temp=temp<

result=result|temp;

value=value>>1;

} return result;} void main(){ short x;short y;x=0101675;y=getbits(x,5,8);printf(“y=0%on”,y);}

1)编译、连接、和运行程序。程序运行后,观查屏幕显示结果。

3、设计一个函数,使给出一个数的原码,能得到该数的补码。

要求用八进制形式输入和输出。

【启动Visual C++】|【新建工程】|【新建源程序文件】:选中【C++ Source File】项 输入如下代码: #include “stdio.h”

short buma(short x){ if(x>0)

return x;else {

x=-x;

x=~x+(0x0001);

x=x|(0x8000);} return x;}

void main(){ short x;printf(“请用八进制的形式输入变量x的值:”);scanf(“%o”,&x);printf(“补码为:%on”,buma(x));} 1)编译、连接、和运行程序。程序运行后,观查屏幕显示结果。

五、思考题

1)用程序实现原码,反码和补码的相互转化

六、实验小结:

第五篇:C程序设计教案(第7章 实验10)

实验10 字符串的指针和函数的指针一、二、实验学时:2课时 实验目标

1.学会使用字符串的指针和指向字符串的指针变量; 2.学会使用指向函数的指针变量;

3.了解指向指针的指针的概念及其使用方法。

三、实验要求:

1.在实验课前,每位同学必须将预习有关数组与函数的内容,了解他们的关系; 2.在上实验课之前,每一个同学必须将实验的题目、程序编写完毕,做好充分的准备。

3.所有实验环节均由每位同学独立完成,严禁抄袭他人实验结果,若发现有结果雷同者,按实验课考核办法处理。

四、实验步骤和内容

1.分析下列程序的运行结果,并上机验证。1)int ff(char *x){ char *p=x, *q;int i, k=1;q = p+strlen(x)-1;for(i=1;i<=strlen(x)/2;i++)if(*p==*q){ p++;q--;} else { k=0;break;} return k;} 若从键盘输入asdfghgfdsa则输出结果为:______________________ 若从键盘输入aweftfew 则输出结果为:______________________ void main(){ char a[80];gets(a);if(ff(a)==1)printf(“*****n”);else printf(“%%%n”);} 用户自定义函数的功能是:___________ 2.以下是求三个数中的最大数的程序,试完成程序。void cut(int *p, int *q){ int t;t=*p;___________;*q=t;} void main(){ int a, b, c;scanf(“%d%d%d”, &a, &b, &c);if(a

五、思考题

1)字符串的指针和指向字符串的指针变量的区别;

2)分析指向函数的指针变量的用法和指向指针的指针变量的用法;

六、实验小结:

下载《C程序设计》实验教案[共五篇]word格式文档
下载《C程序设计》实验教案[共五篇].doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    C语言程序设计实验教案[推荐阅读]

    C语言程序设计实验教案 目 录 实验一visual c++编译环境的使用 .............................................................................. 2 实验二 顺序程序设计......

    《C语言程序设计》实验四

    电子科技大学 计算机 学院 标 准 实 验 报 告 (实验)课程名称C语言程序设计 电子科技大学教务处制表电 子 科 技 大 学 实 验 报 告四 学生姓名:学 号:指导教师:刘 勇 实验地点:......

    《C语言程序设计》实验四

    电子科技大学 计算机 学院 标 准 实 验 报 告 (实验)课程名称C语言程序设计 电子科技大学教务处制表电 子 科 技 大 学 实 验 报 告四 学生姓名:学 号:指导教师:王瑞锦 实验地点......

    C语言程序设计实验安排

    C语言实验指导 实验一 顺序结构程序设计(2学时) 一、实验目的熟悉在VC运行环境下,编辑调试C语言程序的一般步骤。掌握顺序结构程序设计的基本思想和基本方法。二、实验要求1. 仔......

    C语言程序设计实验二

    C语言程序设计实验(二)[实验1] 1.实验题目 下列各题的算法用传统流程图及N-S流程图两种方式表示: (1)输出图形(顺序结构) ★★★★★★★★ ★★★★★★★★ ★★★★★★★★ ★★......

    C语言程序设计实验九

    C语言程序设计实验九——字符数组 【实验题目1】 写几个函数:(1)输入10个职工的姓名和职工号; (2)按职工号由小到大排序,姓名顺序也随之调整; (3)要求输入一个职工号,找出该职工的姓名......

    C程序设计教案解析

    C程序设计教案 讲课提要 3.例:任意输入三个数,利用前例中的swap函数排序后输出。 4.分析下面程序中的swap函数能否成功交换两个变量的值。 void main( { int a,b; int *pa,*......

    C语言程序设计教案

    C语言程序设计教案 C语言程序设计教案 C 语言程序设计教案 C 语言概述 【教学目的】 1)了解 C 的发展 教学目的】 2)熟悉 C 的特点 教学重点】 【教学重点】 C 语言的特点......