C语言程序设计课程实验教案.docx

上传人:b****0 文档编号:9197537 上传时间:2023-05-17 格式:DOCX 页数:21 大小:30.84KB
下载 相关 举报
C语言程序设计课程实验教案.docx_第1页
第1页 / 共21页
C语言程序设计课程实验教案.docx_第2页
第2页 / 共21页
C语言程序设计课程实验教案.docx_第3页
第3页 / 共21页
C语言程序设计课程实验教案.docx_第4页
第4页 / 共21页
C语言程序设计课程实验教案.docx_第5页
第5页 / 共21页
C语言程序设计课程实验教案.docx_第6页
第6页 / 共21页
C语言程序设计课程实验教案.docx_第7页
第7页 / 共21页
C语言程序设计课程实验教案.docx_第8页
第8页 / 共21页
C语言程序设计课程实验教案.docx_第9页
第9页 / 共21页
C语言程序设计课程实验教案.docx_第10页
第10页 / 共21页
C语言程序设计课程实验教案.docx_第11页
第11页 / 共21页
C语言程序设计课程实验教案.docx_第12页
第12页 / 共21页
C语言程序设计课程实验教案.docx_第13页
第13页 / 共21页
C语言程序设计课程实验教案.docx_第14页
第14页 / 共21页
C语言程序设计课程实验教案.docx_第15页
第15页 / 共21页
C语言程序设计课程实验教案.docx_第16页
第16页 / 共21页
C语言程序设计课程实验教案.docx_第17页
第17页 / 共21页
C语言程序设计课程实验教案.docx_第18页
第18页 / 共21页
C语言程序设计课程实验教案.docx_第19页
第19页 / 共21页
C语言程序设计课程实验教案.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言程序设计课程实验教案.docx

《C语言程序设计课程实验教案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计课程实验教案.docx(21页珍藏版)》请在冰点文库上搜索。

C语言程序设计课程实验教案.docx

C语言程序设计课程实验教案

教案

 

****学年第1学期

 

《高级语言程序设计》实验教案

 

教学院(部)计算机学院

教研室基础教研室 

授课班级10交通运输级、机械制造

授课教师***

职称职务讲师

教材名称《C程序设计》谭浩强主编

 

2012年2月8日

实验安排表

周次

日期

实验课题

学时

实验报告次数

6

9.19-9.23

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

2

7

9.26-9.30

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

2

1

8

10.10-10.14

实验二顺序结构程序设计

2

1

9

10.17-10.21

实验三选择结构程序设计

2

1

10

10.24-10.28

实验四循环与数组

2

11

11.7-11.11

实验四循环与数组

2

1

12

11.21-11.25

实验五函数

2

13

11.28-12.2

实验五函数

2

1

14

12.5-12.9

实验六指针

2

1

15

12.26-12.30

实验七结构体和共用体

2

1

检查日期

检查人

一式三份:

一份交教务处,一份存教学系部,一份由本人保存

 

实验一数据类型,运算符和表达式

一、实验目的及要求

1.了解TURBOC系统上如何编辑,编译,连接和运行一个C程序.

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

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

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

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

二、实验学时

4学时

三、实验任务

1、熟悉TrbuoC集成环境

了解和熟悉编辑(Edit)窗口和信息窗口(Message)作用.试一下能否向信息窗口输入程序,按功能键F5,观察它有什么作用,再按一次F6,再观察它有什么作用。

按功能键F10,并按回车键,观察File菜单,了解它们的作用和用法.用键盘上的键,分别选中Edit,Run,Compile,Project,Debug,Break/watch,观察它们的菜单,大致上了解它们的作用.

选择File菜单中的New并按回车键,在编辑窗口中随意输入几行字符,观察窗口顶端line和col后面数字的变化。

再选择File菜单中的New并按回键,使编辑窗口变成空白。

输入下面的程序

main()

{

printf(“ThisisaCprogram.\n”);

}

按功能键F9进行编译和连接,观察屏幕上显示的编译信息。

如果出现“出错信息”,则应找出原因并改正之,再进行编译。

如果编译无错误,按ctrl和F9键使程序运行,按Alt和F5键,切换到用户屏幕,观察分析运行结果。

2、输入并运行下面的程序

main()

{charc1,c2;

c1=’a’;

c2=’b’;

printf(“%c,%c\n”,c1,c2);

}

a.运行此程序。

b.在此基础上增加一个语句:

printf(“%d%d\n”);再运行,并观察结果。

c.将第二行改为C1=a;C2=b;再运行,分析其运行结果。

d.第3行和第4行改为:

c=“a“;c2=”b“;再便之运行,分析其结果。

e.再将第3、4行改为c=300;c2=400;再使之运行,分析其运行结果。

3、输入并运行教材第3章习题3.6给出的程序

main()

{charc1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;

printf(“a%cb%c\tc%ctabc\n”,c1,c2,c3);

printf(“\t\b%c%c”,c4,c5);

}

在上机前先用人工分析程序,写出应得结果,上机后将二者对照。

4、输入并运行下面的程序

main()

{inta,b;

unsignedc,d;

longe,f;

a=100;

b=-100;

e=50000;

f=62767;

c=a;

d=b;

printf(“%d,%d\n”,a,b);

printf(“%u,%u\n”,a,b);

printf(“%u,%u\n”,c,d);

c=a=e;

d=b=f;

printf(“%d,%d\n”,a,b);

printf(“%u,%u\n”,c,d);

}

请对照程序和运行结果分析:

一个负整数赋给一个无符号的变量,会得什么结果。

画出它们在内存中表示形式。

将一个大于32767的长整数赋给整型变量,会得到什么结果。

画出它们在内存中的表示形式。

将一个长整数赋给无符号变量,会得到什么结果。

画出它们在内存中的表示形式。

学生可以改变程序中各变量的值,经便比较。

例如:

a=65880,b=-40000,e=65535,f=65580。

5、输入习题3.10

main()

{inti,j,m,n

i=8;

j=10;

m=++i;

n=j++;

printf(“%d,%d,%d,%d”,i,j,m,n);

}

a.运行程序,注意i,j,m,n各变量的值,分别作出以下改动并运行。

第4、5行改为:

m=i++;

n=j++;

再运行。

b.将程序改为:

main()

{inti,j;

i=8;

j=10;

printf(“%d,%d”,i++,j++);

}

c.在a的基础上,将printf语句改为:

main()

{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);

}

四、实验重点、难点

1.整型、实型、字符型数据

2.运算符和表达式的运用

五、操作要点

按Alt+E可进入编辑菜单,若再回车,则光标出现在编辑窗口, 此时用户可以 进行文本编辑。

六、注意事项

C的几种基本数据类型及标识符的概念,注意变量和符号常量先定义后使用特点。

实验二顺序结构程序设计

一、实验目的及要求

1.掌握C语言中使用最多的一种语句——赋值语句的使用方法。

2.掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。

二、实验学时

2学时

三、实验任务

1、掌握各种格式转换符的正确使用方法

a.输入程序

main()

{inta,b;

floatd,e;

charc1,c2;

doublef,g;

longm,n;

unsignedintp,q;

a=61;b=62;

f=3157.8901121;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,c2d,e);

printf(“f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u,q=%u\n”,f,q,m,n,p,q);

}

b.运行此程序并分析结果。

c.在此基础上,修改程序的第8—13行:

a=61;b=62;c1=a;c2=b;

f=3157.890121;g=0.123456789;d=f;c2=b;p=a=m=50000;q=b=n=-60000;

运行程序,分析结果。

d.改用scanf函数输入数据而不用赋值语句,scanf函数如下:

scanf(“%d,%d,%c,%c,%f,%f,%lf,%lf,%ld,%ld,%u,%u”,&a,&b,&c1,&c2,&d,&f,&g,&m,&n,&p,&q);

输入的数据如下:

61,62,a,b,3.56,-6.87,3157,890121,0.123456789,50000,-60000,37678,40000

(说明:

lf和ld格式符分别用于输入double型和long型数据)分析运行结果。

e.在d的基础上将printf语句改为:

printf(“a=%d,b=%d\nc1=%c,c2=%c\nd=%15.6f,e=%15.12f\n”,ab.c1,c2,d,e);

printf(“f=%f,g=%f\nm=%d,n=%d\np=%d,q=%d\n”,f,g,m,n,p,q);

运行程序。

f..将p,q改用%o格式符输入。

g.将scanf函数中的%lf和%ld改为%f和%d,运行程序并观察分析结果。

2、按习题4.8要求编写程序

题目为:

设圆半为1.5,圆柱高为3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积。

用scanf输入数据,输出计算结果。

输出时要有文字说明,取小数点后两位数字。

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

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

四、实验重点、难点

1.符数据输入输出函数

2.格式输入输出函数

五、操作要点

按Alt+R可进入Run菜单,其中Run:

运行由Project/Projectname项指定的文件名或当前编辑区的文件。

如果对上次编译后的源代码未做过修改,则直接运行到下一个断点(没有断点则运行到结束)。

否则先进行编译、连接后才运行,其热键为Ctrl+F9。

Userscreen:

显示程序运行时在屏幕上显示的结果。

其热键为Alt+F5。

六、注意事项

1.输入输出的数据类型与所用格式说明符不一致

2.输入变量时忘记使用地址符号

实验三逻辑结构程序设计

一、实验目的及要求

1.了解C语言表示逻辑量的方法(以0代表“假”,以非代表“真”)。

2.学会正确使用逻辑运算符和逻辑表达。

3.熟练掌握if语句和switch语句.

4.学习调试程序。

二、实验学时

2学时

三、实验任务

1、本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。

有一函数:

x(x<1)

y=2x-1(1<=x<10)

3x-11(x.>=10)

用scanf函数输入x的值,求y的值。

(习题5.5)

运行程序,输入x的值(分别用上面三种情况),检查输出的y值是否正确。

2、给出一个百分成绩,要求输出成绩的等级A、B、C、D、E。

90分以上的为A,81—89分的为B,70—79的为C,60—69分的为D,60分以下的为E。

(习题6.6)

事先编好一个程序,要求分别用if语句和switch语句实现。

运行程序,并检查结果是否正确。

再运行一次程序,输入分数为负值,这显然是输入时出错,不应给出等级。

修改程序,使之能正确处理任何数据。

当输入数据大于100或小于0时通知用户“输入数据错”,程序结束。

3、一个不多于5位的整数,要求:

a.求出它是几位数;b.分别打印每一位数字;c.按逆序打印出各位数字,例如原数为321,应输出123.(习题5.7)

应准备以下测试数据:

要处理的数为1位正整数;

要处理的数为2位正整数;

要处理的数为3位正整数;

要处理的数为4位正整数;

要处理的数为5位正整数;

除此之外,程序还应当对不合法的输入作必要的处理.例如:

输入负数;

输入的数超过5位(如123456).

4、输入4个整数,要求按由小到大顺序输出.

得到正确结果后,修改程序使之按由大到小的顺序输出。

(习题5.5)

四、实验重点、难点

1.表达式

2.选择型程序设计语句

3.逻辑表达式

五、操作要点

按Alt+C可进入Compile菜单,Buildall:

重新编译项目里的所有文件,并进行装配生成.EXE文件。

该命令不作过时检查 。

六、注意事项

1.误把“=”作为关系运算符“等于”

2.没有注意大写字母和小写字母代表不同的标识符

3.当一个复合语句中使用多层括号时,常出现大括号不配对的现象。

实验四循环与数组

一、实验目的及要求

1.熟悉掌握用语句,语句和语句实现循环的方法。

2.掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。

3.掌握一维数组和二维数组的定义、赋值和输入输出的方法;

4.掌握字符数组和字符串函数的使用;

5.掌握与数组有关的算法(特别是排序算法)。

二、实验学时

4学时

三、实验任务

1、编程序并上机调试运行。

输入两个正整数m和n,求它们的最大公约数和最小公倍数。

(习题6.1)

在运行时,输入的值m>n,观察结果是否正确。

再输入时,使m

修改程序,不论m和n为何值(包括负整数),都能得到正确的结果。

2、输入一行字符,分别统计出其中的英文、空格、数字和其他字符的个数(习题6.2)。

在得到正确结果后,请修改程序使之能分别统计大小写字母、空格、数字和其他字符的个数。

3、用选择法对10个整数排序。

10个整数用scanf函数输入。

(习题7.2)

4、将两个字符串;连接起来,不要用strcat函数。

5、找出一个二维数组的鞍点,即该位置上的元素在该行上最大,在该列上最小(注:

也可能没有鞍点)。

(习题7.8)

应当至少准备两组测试数据:

请学生修改程序以实现之。

二维数组有鞍点

90-60961

98020540

210–310189

二维数组无鞍点

98020540

90-601961

210-310189

45541567

用scanf函数从键盘输入数组各元素的值,检查结果是否正确。

题目并未指

定二维数组的行数和列数,程序应能处理任意行数和列数的数组。

因此,从

理论上来说,应当准备许多种不同行数和列数的数组数据,但这样的工作量

太大,一般来说不需要这样做,只需准备典型的数据即可。

如果已指定了数

组的行数和列数,可以在程序中对数组元素赋初值,而不必用scanf函数。

四、实验重点、难点

1.循环语句

2.循环的嵌套

3.break和continue语句

4.一维数组

5.二维数组和多维数组

6.字符数组

五、操作要点

Run菜单中Gotocursor:

:

调试程序时使用,选择该项可使程序运行到光标所在行。

光标所在行必须为一条可执行语句,否则提示错误。

其热键为F4。

Traceinto:

在执行一条调用其它用户定义的子函数时,若用Traceinto项,则执行长条将跟踪到该子函数内部去执行,其热键为F7。

六、注意事项

1.对应该有花括号的复合语句,忘记加花括号

2.在不该加分号的地方加了分号

3.引用数组元素时误用圆括号

4.引用数组元素超界

5.对二维或多维数组定义和引用的方式不对

6.误以为数组名代表整个数组

7.混淆字符数组与字符指针的区别

实验五函数

一、实验目的及要求

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

2.掌握函数实参与形参的对应关系以及“值传递”的方式;

3.掌握函数的嵌调用和递归调用的方法;

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

5.学习对多文件程序的编译和运行。

二、实验学时

4学时

三、实验任务

编程序并上机调试运行。

1、一个判别素数的函数,在主函数输入一个整数,在主函数输入一个整数,输出是否素数主信息(习题7.2)。

本程序应当准备以下测试数据:

17、34、2、1、0。

分别输入数据,运行程序并检查结果是否正确。

2、用一个函数来实现将一行字符串中最长的单词输出。

此行字符串从主函数传给该函数。

把两个函数放在同一个程序文件中,作为一个文件进行编译和运行。

把两个函数分别放在两个程序文件中,作为两个文件进行编译,连接和运行。

3、用递归法将一个整数n转换成字符串。

例如,输入483,应输出字符串“483”,N的位数不确定,可以是任意的整数。

(习题8.17)

4、求两个整数的最大公约数和最小公倍数。

用一个函数求最大公约数,用另一函数根据求出的最大公约数求最小公倍数。

(习题8.1)

不用全局变量,分别用两个函数求最大公约数和最小公倍数。

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

用全局变量的方法,分别用两个函数求最大公约数和最公倍数,但其值不由函数返回。

将最大公约数和最小公倍数都设为全局变量,在主函数中输出它们的值,

5、写一个函数,输入一个十六进制数,输出相应的十进制数。

(习题8.16)

四、实验重点、难点

1.函数的定义

2.函数的参数及返回值

3.函数的调用

4.数组作为函数参数

5.局部变量和全局变量

6.变量的存储类别

五、操作要点

按Alt+D可选择Debug菜单,该菜单主要用于查错,它包括以下内容

1.Evaluate

1)Expression要计算结果的表达式。

2)Result显示表达式的计算结果。

3)Newvalue赋给新值。

2.Callstack:

该项不可接触。

而在TurboCdebuger时用于检查堆栈情况。

3.Findfunction在运行TurboCdebugger时用于显示规定的函数。

4.Refreshdisplay如果编辑窗口偶然被用户窗口重写了可用此恢复编辑窗口的内容

六、注意事项

1.所调用的函数在调用语句之后定义,但在调用之前没有说明

2.误认为形参值的改变会影响实参的值

3.函数的实参和形参类型不致。

实验六指针

一、实验目的及要求

1.通用实验进一步掌握指针的概念,会定义和使用指针变量;

2.能正确使用数组的指针和指向数组的指针变量;

3.能正确使用字符串的指针和指向字符串的指针变量;

4.能正确使用指向函数的指针变量;

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

二、实验学时

2学时

三、实验任务

编程序并上机调试运行程序(都要求用指针处理)。

1、输入三个整数,按由小到大的顺序输出,然后将程序改为:

输入三个字符串按由小到大顺序输出。

(习题10.1、10.2)

2、将一个3*3的矩阵转置,用一函数实现之。

(习题10.9)

在主函数中用scanf函数输入以下矩阵元素:

135

7911

131519

将数组名作为函数实数实参,在执行函数过程中实现矩阵转置,函数调用结束后在主函数中输出已转置的矩阵。

3、有n个人围成一圈,顺序排号。

从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

(习题10.5)

4、用一个函数实现两个字符串的比较的比较,即自已写一个strcmp函数,函数原型为:

intstrcmp(char*p1,char*p2);

设p1指向字符串s1,p2指向字符串s2,要求当s1=s2时,函数返回值为0;如果s1不等于s2则返回它们二者第一个不相同字符的ASC11码差值(如“BOY”与“BAD”的第二个字母不相同,“O”与“A”之差79-65=14);如果s1>s2,则输出正值;如果s1

(习题10.17)

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

5、用指向指针的指针的方法对n外整数排序并输出。

要求将排序单独写成一个函数。

N和各整数在主函数中输入,最后在主函数中输出。

(习题10.21)

四、实验重点、难点

1.指针的定义、引用

2.指针与变量

3.指针与数组

4.指针与函数

五、操作要点

按Alt+B可进入Break/watch菜单,该菜单有以下内容:

1.Addwatch:

 向监视窗口插入一监视表达式。

2.Deletewatch:

从监视窗口中删除当前的监视表达式。

3.Editwatch:

在监视窗口中编辑一个监视表达式。

4.Removeall:

watches从监视窗口中删除所有的监视表达式。

5.Togglebreakpoint:

对光标所在的行设置或清除断点。

6.Clearallbreakpoints:

清除所有断点。

7.Viewnextbreakpoint:

将光标移动到下一个断点处

六、注意事项

1.不同类型的指针混用

2.混淆数组与指针变量的区别

实验七结构体和共用体

一、实验目的及要求

1.掌握结构体类型变量的定义和使用;

2.掌握结构体类型数组的概念和使用;

3.掌握链表的概念,初步学会对链表进行操作;

4.掌握共用体的概念与使用。

二、实验学时

2学时

三、实验任务

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

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

(习题11.5)

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

2、13个人围成一圈,从第1个人开始顺序报号1、2、3。

凡报到“3”者退出圈子,找出最后留在圈子中的人原来的序号。

(习题11.9)

本题要求用链表实现。

3、建立一个链表,每个结点包括:

学号、姓名、性别、年龄。

输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删除。

(习题11.11)

4、输入和运行以下程序

uniondata

{intI[2];

floata;

longb;

charc[4];

}u;

main()

{scanf(“%d,%d”,&u.i[1]);

printf(I[0]=%d,I[1]=%da=%fb=%ldc[0]=%c,c[1]=%c,c[2]=%c,c[3]=%c,

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,分析运行结果。

四、实验重点、难点

结构体变量的定义和引用;结构体变量与指针

五、操作要点

TurboC2.0的配置文件,所谓配置文件是包含TurboC2.0有关信息的文件,其中存有编译、连接的选择和路径等信息。

可以用下述方法建立TurboC2.0的配置:

1.建立用户自命名的配置文件:

可以从Options菜单中选择Options/Saveoptions命令, 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2