《C程序设计》实验教案.docx
- 文档编号:9258836
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:12
- 大小:24.84KB
《C程序设计》实验教案.docx
《《C程序设计》实验教案.docx》由会员分享,可在线阅读,更多相关《《C程序设计》实验教案.docx(12页珍藏版)》请在冰豆网上搜索。
《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
voidmain()
{charc1,c2;
c1=97;
c2=98;
printf(“%c%c\n”,c1,c2);
printf(“%d%d\n”,c1,c2);
}
在此基础上
①将第二行改为:
intc1,c2;
再使之运行,分析结果。
②再将第三行、第四行改为:
c1=300;c2=400;
再使之运行,分析其运行结果。
2.输入并运行教材第三章习题3.6,在上机前先用人工分析程序写出应得结果,上机后将二者对照。
3.输入并运行习题3.10。
即:
#include
voidmain()
{inti,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
voidmain()
{inti,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()
{inti,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
voidmain()
{inta,b;
floatd,e;
charc1,c2;
doublef,g;
longm,n;
unsignedintp,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=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n”,a,b,c1,c2,d,e);
printf(“f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n”,f,g,m,m,p,q);
}
在此基础上,做以下改动:
1将程序第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;
运行程序,分析结果。
2在①的基础上将printf语句改为:
printf(“a=%d,b=%d\nc1=%c,c2=%c\nd=%15.6f,e=%15.12f\n”,a,b,c1,c2,d,e);
printf(“f=%f,g=%f\nm=%ld,n=%ld\np=%d,q=%d\n”,f,g,m,n,p,q);
运行程序。
2.编写程序,用getchar函数读入两个字符c1、c2,然后分别用putchar函数和printf函数输出这两个字符。
上机运行程序,比较用printf和putchar函数输出字符的特点。
实验四选择结构程序设计(2学时)
实验性质:
设计性实验
一、实验目的
1.了解C语言表示逻辑量的方法(以0代表“假”,以1代表“真”);
2.学会正确使用逻辑运算符和逻辑表达式;
3.熟练掌握if语句和switch语句。
二、实验内容
先编程序,解决以下问题,然后上机调试运行程序。
1.有一个函数
用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命令来控制是否要译成密码。
例如:
#defineCHANGE1
则输出密码。
若
#defineCHANGE0
则不译成密码,按原码输出。
用条件编译方法来处理。
实验九指针(4学时)
实验性质:
设计性实验
一、实验目的
1.掌握指针的概念,会定义和使用指针变量;
2.学会使用数组的指针和指向数组的指针变量;
3.学会使用字符串的指针和指向字符串的指针变量;
4.学会使用指向函数的指针变量;
二、实验内容
编程序并上机调试运行程序(都要求用指针处理)。
1.输入三个整数,按由小到大的顺序输出。
2.将一个3*3的矩阵转置,用一函数实现之。
在主函数中用scanf函数输入以下矩阵元素:
将数组名作为函数实参。
函数调用后在主函数中输出已转置的矩阵。
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 uniondata {inti[2]; floata; longb; charc[4]; }; voidmain() {uniondatau; scanf(“%d,%d”,&u.i[0],&u.i[1]); printf(“i[0]=%d,i[1]=%d\na=%f\nb=%ld\nc[0]=%c,c[1]=%c,c[2]=%c,c[3]=%c\n”,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.将上题已排序的学生成绩文件进行插入处理。 插入一个学生的三门课成绩。 程序先计算新插入学生的平均成绩,然后将它按成绩高低顺序插入,插入后建立一个新文件。 学生的原有数据为: 91101Wang89,98,67.5 91103Li60,80,90 91106Fun75.5,91.5,99 91110Ling100,50,62.5 91113Yuan58,68,71 要插入的学生数据为: 91108Xin90,95,60
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C程序设计 程序设计 实验 教案