数学与统计学院C语言实验.docx
《数学与统计学院C语言实验.docx》由会员分享,可在线阅读,更多相关《数学与统计学院C语言实验.docx(76页珍藏版)》请在冰豆网上搜索。
数学与统计学院C语言实验
《C语言程序设计》实验指导与报告书
2012-2013学年第2学期
陆建明编写
姓名:
______________
学号:
______________
班级:
______________
指导教师:
______________
数学与统计学院
2012
目录
实验要求1
C程序上机的步骤2
实验1:
TurboC集成开发环境和C程序实现3
实验2:
基本数据类型的使用8
实验3:
运算符与表达式14
实验4:
顺序结构程序设计19
实验5:
选择结构程序设计22
实验6:
循环结构程序设计25
实验7:
多重循环结构程序设计28
实验8:
一维数组与二维数组31
实验9:
字符数组与字符串35
实验10:
函数的定义、声明和调用38
实验11:
指针41
实验12:
编译预处理、结构体数据类型45
实验13:
文本文件操作48
实验14:
小规模实用软件的设计50
附录1:
VisualC++集成开发环境的调试52
附录2:
全国计算机二级C语言上机模拟试卷61
附录3:
江苏省二级C语言上机模拟试卷66
实验要求
C语言程序设计实验是C语言程序设计课程的重要组成部分,属于学科基础实验范畴,是与相关教学内容配合的实践性教学环节。
学生通过实验,验证课堂学习的知识,掌握算法设计、编程实现和程序调试的方法,从而形成一定的编程能力。
在《C语言程序设计》的课程实验过程中,要求学生做到:
(1)预习实验指导书有关部分,认真做好实验内容的准备,就实验可能出现的情况提前作出思考和分析。
(2)仔细观察上机编程时出现的各种现象,记录主要情况,作出必要说明和分析。
(3)认真书写实验报告。
实验报告包括实验目的和要求,实验情况及其分析,写出程序设计说明,给出源程序框图和清单。
(4)遵守机房纪律,服从辅导教师指挥,爱护实验设备。
(5)实验课程不迟到,如有事不能出席,所缺实验一般不补。
本实验指导内容的编写,是根据本课程教学大纲的指导下,以提高学生的实践能力为目的而编写。
要求学生在上机实验前进行预习准备,实验过程认真调试,实验结束后完成实验报告。
本实验指导设计了十四个实验,学生务必独立完成。
C程序的上机步骤
在编好一个C源程序后,如何上机运行呢?
在纸上写好一个程序后,要经过以下几个步骤:
上机输入与编辑源程序→对源程序进行编译→库函数连接→运行可执行的目标程序。
过程如下图所示:
实验1:
TurboC集成开发环境和C程序实现
一、实验目的
1、掌握WindowsDOS环境的操作以及有效管理用户程序文件。
2、熟悉C程序的实现过程和方法。
(1)掌握编辑、编译、连接、运行程序的过程和方法。
(2)了解常见的两种语法错误(Error/Warning)。
3、了解TurboC集成开发环境强大的功能。
二、实验内容
1、WindowsDOS环境的操作以及有效管理用户程序文件,即:
掌握切换工作驱动器;创建、进入用户目录;目录列表(注意可以随时用图形界面比较)的命令。
2、了解TurboC集成开发环境的功能,熟悉菜单、热键基本操作
(1)启动、退出TurboC集成开发环境。
(2)了解F5/F6;F10,→、←、↑、↓功能键;Alt+高亮度键的效果和作用。
(3)激活文件菜单(File)、编译菜单(Compile)、运行菜单(Run)、监视菜单(Break/Watch),查看菜单选项。
3、在TurboC下完成“源程序清单”中规定的程序题。
三、实验要求
1、实验中仔细观察本实验创建的目录、文件,回答实验小结和思考中的问题。
2、在TurboC下完成“源程序清单”中规定的程序题。
编辑、编译、运行程序并获得程序结果;如果程序有错,记录编译、连接遇到的提示错误。
仔细思考出错原因,并更正之。
3、编制的程序必须保存在D:
\用户目录中。
注:
用户目录可以用学号或姓名拼音简写。
四、实验步骤、过程
1、启动操作系统,查找TurboC集成开发环境安装位置(路径)。
假如为:
C:
\TC,查看目录中是否有tc.exe,此程序就是TurboC集成开发环境的执行程序。
记录您的系统TurboC2.0的安装位置。
2、切换到D盘,创建、进入用户目录。
创建以学号为目录名的用户目录;
以后您的程序默认保存在此目录下!
3、启动、退出TurboC集成开发环境。
(1)启动TurboC集成开发环境。
如TurboC集成开发环境安装位置(路径)为:
C:
\TC,则:
C:
\>c:
\tc\tc<回车>启动TurboC集成开发环境。
(2)退出TurboC集成开发环境。
File-Quit退出TurboC集成开发环境
(3)再次启动TurboC环境。
C:
\>c:
\tc\tc<回车>
4、TurboC环境中,F5/F6;F10,→、←、↑、↓功能键;Alt+高亮度键的效果和作用。
(1)重复按F6键,仔细观察。
当前激活窗口在编辑窗口、消息窗口之间切换。
(2)重复按F5键,仔细观察。
当前激活窗口最大,正常状态之间切换。
(3)先按F10,可以看到主菜单被激活,按→、←,主菜单各个项被依次激活,试着按↑、↓可以打开相应菜单。
重点浏览File(文件管理)、Run(程序运行控制)、Compile菜单(程序编译、连接)菜单。
最后按ESC键光标回到编辑窗口。
(4)主菜单各个项,首字母为红色(高亮度)。
可以按Alt+高亮字母,直接激活相应菜单选项。
例如按Alt+F激活File菜单,比F10再按光标快捷多了!
按ESC键光标回到编辑窗口。
(5)观察当前源程序名NONAME.C表示当前的程序还没有取名字,以后保存程序时,系统会提示输入源程序名。
5、按照下面步骤完成第1个程序题。
(1)“File”-“New”创建一个新的源程序文件
(2)输入源程序,全屏幕编辑源程序。
(3)“File”-“Save”保存源程序(文件名应按题目要求)。
观察编辑窗口源程序名是否已经修改。
用Windows资源管理器查看用户目录中是否产生了源程序文件*.c。
(4)“Compile”-“Buildall”编译、连接源程序。
如果有语法错误,修改源程序后再次编译、连接程序,直到没有语法错误,系统提示成功。
编译连接成功后用Windows资源管理器查看用户目录中是否产生了目标文件*.obj,可执行文件*.exe,观察其命名规则。
(5)“Run”-“Run”运行程序,用Alt-F5切换到用户屏幕查看运行结果。
对比结果是否与预期相同。
如果发现逻辑错误-结果与预期不同,修改源程序,重复(3)-(5)保存、编译、运行程序,直到程序获得正确结果。
注意:
⏹必须顺序完成程序编辑、编译连接、运行的各个过程。
没有正确编译成功的程序是不可能运行的!
⏹程序开发中经常用“File”-“Save”保存源程序以免意外导致源程序丢失。
6、按步骤5完成第2个程序题。
注意:
Error-致命错的程序不能产生目标程序、执行程序,必须修改程序,并重新编译,直到成功。
7、按步骤5完成第3个程序题。
注意:
Warning-警告错的程序可以产生目标程序、执行程序,试着运行一下,结果是?
!
^_^,还是修改吧,警告错一般也意味着程序有毛病,尽管这种程序可以强行编译连接为可执行程序,但结果一般都有问题。
五、源程序清单、测试数据、结果。
1、最简单的C程序。
(要求文件名:
1_1.c)
#include
main()
{
printf(“Helloworld!
\n”);
}
2、一个具有致命语法错的程序。
(要求文件名:
1_2.c)
#include
main()
{
inti=9
printf(“i=%d\n”,i)
}
2、一个具有警告语法错的程序。
(要求文件名:
1_3.c)
main()
{
inti=9,j,s;
s=i+j;
printf("s=%d\n",s);
}
六、实验出现的问题、实验结果分析(语法错英语提示,中文翻译,原因,您的理解?
)
1、
2、
3、
七、实验小结和思考
1、您自己的系统上TurboC安装目录在哪里?
TurboC集成开发环境程序名是什么?
答:
2、F5/F6;F10,→、←、↑、↓功能键;Alt+高亮度键的效果和作用?
答:
3、与C语言程序直接相关的几种文件及扩展名分别是什么?
答:
4、C语言程序主要的实现过程?
答:
5、C语言程序主要的错误?
答:
八、实验评分
实验预习30%
实验过程40%
实验报告30%
成绩
实验日期:
年 月 日
实验2:
基本数据类型的使用
一、实验目的
1、掌握C语言基本数据类型(整型,实型,字符型)数据的常量表示、变量的定义和使用。
2、掌握常见格式控制字符对输出结果的控制作用。
3、了解数据溢出错误和舍入误差(以整型、实型数据为例)。
4、进一步熟悉C程序的实现过程。
二、实验内容
在TURBOC下完成“源程序清单”中规定的程序题(4个)。
三、实验要求
1、实验前认真预习,自行分析4个程序题的结果,体会本次实验的目的并了解实验要求。
实验时仔细对比程序实际运行结果,认真思考并回答实验小结和思考中的问题。
2、在TURBOC下完成“源程序清单”中规定的程序题。
编辑、编译、运行程序并获得程序结果;如果程序有错,记录编译、连接遇到的提示错误。
仔细思考出错原因,并更正之。
3、编制的程序必须保存在E:
\用户目录中。
注:
用户目录可以用学号或姓名拼音简写。
4、学生可以对实验程序进行修改、补充,以便上机完成自己需要的程序验证和测试。
在完成实验要求的工作外,要学会创造性的工作。
四、实验步骤、过程
1、启动操作系统,进入DOS窗口;切换到用户磁盘,创建、进入用户目录。
(方法、命令与实验1相同)
2、启动TURBOC集成开发环境。
(方法与实验1相同)
3、完成4个程序题。
(编辑、编译连接、运行程序,步骤与实验1相同)
注:
(1)仔细观察2_3,2_4两个程序的编译、连接、运行过程,系统提示错误吗?
程序运行结果有问题吗?
(2)经常用“File”-“Save”(热键F2)保存源程序以免意外导致源程序丢失。
4、退出TURBOC集成开发环境,关机。
五、源程序清单、测试数据、结果。
(注释供阅读、理解程序,上机时不必输入)
1、写出一个程序测试整型、字符型数据表示,并输出以验证是否正确。
(要求文件名:
2_1.c)
#include
main()
{
intx=010,y=10,z=0x10;/*整型数据表示*/
charc1='M',c2='\x4d',c3='\115',c4=77,c;/*字符型数据表示*/
/*整型数据的输出*/
printf("x=%o,y=%d,z=%x\n",x,y,z);
/*数据以原进制输出,注意是否有前导0或0x*/
printf("x=%d,y=%d,z=%d\n",x,y,z);
/*数据以10进制输出,换算到10进制,结果对吗?
*/
/*字符型数据的输出*/
printf("c1=%c,c2=%x,c3=%o,c4=%d\n",c1,c2,c3,c4);
/*数据以原进制输出,注意是否有前导0或0x*/
printf("c1=%c,c2=%c,c3=%c,c4=%c\n",c1,c2,c3,c4);
/*结果都是什么字符?
,也就是说字符可以自由的表示成几种形式?
*/
printf("c1=%d,c2=%d,c3=%d,c4=%d\n",c1,c2,c3,c4);
/*看看这些字符的10进制ASCII码,哦,ASCII码一样,同一种字符*/
/*字符型数据参与算术运算*/
c=c1+32;/*字符怎么参加了数学运算,哦,是字符对应的ASCII码-整数
/*参与数学运算;结果还是一个整数-另外一个字符的ASCII码*/
printf("c=%c,c=%d\n",c,c);
/*看看这个字符是什么?
哇,'M'+32='m'了,看看ASCII码表,原来如此!
*/
}
结果:
2、常见预定义的转义字符对输出的控制作用。
(要求文件名:
2_2.c)
#include
main()
{
inta,b,c;
a=5,b=6,c=7;
printf("12345678123456781234567812345678\n");/*打印一个标尺以便检查输出结果*/
printf("%d\n\t%d%d\n%d%d\t\b%d\n",a,b,c,a,b,c);/*打印1个字符串*/
printf("c:
\\a.txt");/*打印一个文件名*/
printf("\n");
}
结果:
3、整型数据的溢出错误。
(要求文件名:
2-3.c)
整型(int型)数据的表达范围是-32768~32767,如果最大允许值32767+1,最小允许值-32768-1,会出现什么情况?
#include
main()
{
inta,b;
a=32767;
b=a+1;
printf("a=%d,a+1=%d\n",a,b);
a=-32768;
b=a-1;
printf("a=%d,a-1=%d\n",a,b);
getch();//获得键盘击键,起到暂停程序运行作用,目的是保留用户屏幕,便于查看结果。
}
结果:
4、实型数据的舍入误差。
(要求文件名:
2_4.c)
实型变量只能保证7位有效数字,后面的数字无意义
#include
main()
{
floata,b;
a=123456.789e5;
b=a+20;
printf("a=%f,b=%f\n",a,b);
printf("a=%e,b=%e\n",a,b);
}
结果:
六、实验出现的问题、实验结果分析(语法错英语提示,中文翻译,原因,您的理解?
)
1、
2、
3、
七、实验小结和思考
(1)C语言中整型数据、一般的字符型数据分别可以以什么形式表示?
答:
补码两个字节的二进制
一个字节八位二进制表示
(2)程序2_1.c中c4=77,c=c4+32说明什么问题?
答:
说明大写字母M的ASCII码加32变成小写字母m
(3)程序2_1.c中c=77是否还可以写成c=0x4d,c=0115?
答:
(4)简述转义字符:
‘\n’,‘\t’,‘\b’的功能?
答:
(5)可以用一个字符串表示文件的路径,请问路径的连接符‘\’在C语言中如何表示?
若要表示D:
\wubin\stu.dat这个文件,C语言如何表示?
答:
一个、写成双、、
(6)观察2_3,2_4两个程序的编译、连接、运行过程,系统提示错误吗?
程序运行结果有问题吗?
思考如何解决?
答:
(7)使用计算机处理数据可能出现溢出错误和舍入误差,这对我们编制程序有什么要求?
答:
(8)写出一个演示字符型数据溢出的程序。
(提示:
参考2_3.c)
#include
main()
{
chara,b;
a=127;
b=a+1;
printf("a=%d,a+1=%d\n",a,b);
a=-128;
b=a-1;
printf("a=%d,a-1=%d\n",a,b);
getch();
}
结果:
八、实验评分
实验预习30%
实验过程40%
实验报告30%
成绩
实验日期:
年 月 日
实验3:
运算符与表达式
一、实验目的
1、掌握C语言算术、赋值、自增、自减运算符及相应表达式
2、掌握不同类型数据之间的赋值规律
3、了解强制数据类型转换以及运算符的优先级、结合性。
4、学会根据表达式,编写相应程序,验证表达式结果的方法。
二、实验内容
1、已知:
a=2,b=3,x=3.9,y=2.3(a,b整型,x,y浮点),计算算术表达式(float)(a+b)/2+(int)x%(int)y的值。
试编程上机验证。
提示编程要点:
(1)先判断结果值类型,可设置一个此类型的变量用于记录表达式结果,本例用r存放结果;
(2)程序先给几个条件变量赋初值,然后将表达式赋值给变量r;
(3)最后打印变量r的值就是表达式的值。
您分析的表达式结果:
。
2、已知:
a=7,x=2.5,y=4.7(a整型,x,y浮点),计算算术表达式x+a%3*(int)(x+y)%2/4的值。
试编程上机验证。
您分析的表达式结果:
。
3、已知:
a=12,n=5(a,n整型),计算下面表达式运算后a的值。
试编程上机验证。
(1)a+=a
(2)a-=2(3)a*=2+3(4)a/=a+a(5)a%=(n%=2)(6)a+=a-=a*=a
您分析的表达式结果:
(1)
(2)(3)(4)(5)(6)。
4、分析下面程序结果,并上机验证。
#include
main()
{
inti,j,m,n;
i=8;j=10;
m=++i;
n=j++;
printf("i=%d,j=%d,m=%d,i=%d\n",i,j,m,n);
}
您分析的表达式结果:
。
5、将k分别设置为127,-128,128,-129,分析下面程序结果,并上机验证。
#include
main()
{
floata=3.7,b;
inti,j=5;
intk=127;/*用127,-128,128,-129测试*/
unsignedU;
longL;
charC;
i=a;printf("%d\n",i);/*浮点赋值给整型*/
b=j;printf("%f\n",b);/*整型赋值给浮点*/
U=k;printf("%d,%u\n",U,U);/*相同长度类型之间赋值*/
L=k;printf("%ld\n",L);/*整型赋值给长整型,短的类型赋值给长的类型*/
C=k;printf("%d\n",C);/*整型赋值给字符型,长的类型赋值给短的类型*/
}
您分析的表达式结果:
结果行
k=127
k=128
k=-128
k=-129
1
2
3
4
5
三、实验要求
1、1-3题要求实验前手工计算,并编制好上机测试用源程序,以便上机实验。
2、4、5题要求实验前分析程序结果,以便上机时对比结果。
3、实验中仔细观察、记录、比较实验结果,如果不一致应找出原因。
4、编制的程序必须保存在D:
\用户目录中。
注:
用户目录可以用学号或姓名拼音简写。
四、实验步骤、过程
1、启动操作系统,进入DOS窗口;切换到用户磁盘,创建、进入用户目录。
(方法、命令与实验1相同)
2、启动TURBOC集成开发环境。
(方法与实验1相同)
3、完成5个程序题。
(编辑、编译连接、运行程序,步骤与实验1相同)
注:
经常用“File”-“Save”(热键F2)保存源程序以免意外导致源程序丢失。
4、退出TURBOC集成开发环境,关机。
五、源程序清单、测试数据、结果。
1、(要求文件名:
3_1.c)
结果:
2、(要求文件名:
3_2.c)
结果:
3、文件名:
3_3.c
结果:
4、文件名:
3_4.c
结果:
5、文件名:
3_5.c
结果:
六、实验出现的问题、实验结果分析(语法错英语提示,中文翻译,原因,您的理解?
)
1、
2、
3、
七、实验小结和思考
(1)C语言取整是4舍5入?
还是截断取整?
答:
阶段取整
(2)总结赋值转换原则。
答:
先计算表达式的值,然后转换再赋值
(3)通过本次实验你学会编写程序来验证表达式结果,这对我们学习C语言有什么启发?
八、实验评分
实验预习30%
实验过程40%
实验报告30%
成绩
实验日期:
年 月 日
实验4:
顺序结构程序设计
一、实验目的
1、掌握:
使用标准输入/输出函数进行常见数据类型的数据的输入/输出方法。
2、初步培养编制程序框图和源程序、准备测试数据以及实际调试程序的独立编程能力。
二、实验内容
在TURBOC下完成程序题:
(1)设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积.用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。
编写程序实现。
(2)输入三角形的三边长,求三角形的面积。
输出时要有格式说明,取2位小数。
注:
为简单起见,设输入的三边长a,b,c(如a=3,b=4,c=5)能构成三角形。
求三角形的面积公式为:
area=
其中s=(a+b+c)/2;
(3)编程序求一元二次方程
+bx+c=0的解。
用a=3,b=-12,c=-15来验证结果。
输出时要求有文字说明,格式要直观。
注:
变量名可以自由选择,以易于理解为原则;数据由键盘输入。
三、实验要求
1、实验前编制程序框图、编写源程序、准备测试数据。
2、实验测试数据要求从键盘输入。
应尽力追求程序的完美。
比如要求输入数据,应当显示提示字符串,提示用户输入;输出时要求有文字说明。
3、在TURBOC下完成程序的编辑、编译、运行,获得程序结果。
如果结果有误,应找出原因,并设法更正之。
4、编制的程序必须保存在D:
\用户目录中。
注:
用户目录可以用学号或姓名拼音简写。
四、实验步骤、过程
1、启动操作系统,进入DOS窗口;切换到用户磁盘,创建、进入用户目录。
(方法、命令与实验1相同)
2、启动TURBOC集成开发环境。
(方法与实验1相同)
3、完成2个程序题。
(编辑、保存、编译连接、运行程序,步骤与实验1相同)
4、退出TURBOC集成开发环境,关机。
五、源程序清单、测试数据、结果。
1.根据圆柱体的半径和高,计算圆周长、圆面积、圆柱体表面积、圆柱体体积
程序
运行:
2.输入三角形的三边长,求三角形的面积。
输出时要有格式说明,取2位小数。
3.编程序求一元二次方程
+bx+c=0的解。
用a=3,b=-12,c=-15来验证结果。
输出时要求有文字说明,格式要直观。
六、实验出现的问题、实验结果分析
1、
2、
七、实验小结和思考
1、若scanf("%f,%f",&price,&discount);如何输入两个数据?
2、仔细观察两个程序变量采用什么类型,思考为什么不用整型?
八、实验评分
实验预习30%
实验过程40%
实验报告30%
成绩
实验日期:
年 月 日