《C语言》实验指导书.docx
《《C语言》实验指导书.docx》由会员分享,可在线阅读,更多相关《《C语言》实验指导书.docx(16页珍藏版)》请在冰豆网上搜索。
![《C语言》实验指导书.docx](https://file1.bdocx.com/fileroot1/2023-3/31/c8f904d2-45bf-4a8f-aa9c-1683ba5b1a16/c8f904d2-45bf-4a8f-aa9c-1683ba5b1a161.gif)
《C语言》实验指导书
《C/C++语言》
实验指导书
适用专业:
电气、信息、测控
课程代码:
8414330
总学时:
48总学分:
3
编写单位:
测控技术与仪器系
编写人:
郑海春、葛令志
审核人:
审批人:
批准时间:
年月日
目录
实验总体要求…………………………………………………………………………………………2
实验一C语言的运行环境和运行过程…………………………………………………………………3
实验二数据类型、运算符与表达式……………………………………………………………………4
实验三程序结构(顺序、选择和循环)…………………………………………………………………6
实验四数组………………………………………………………………………………………………8
实验五函数………………………………………………………………………………………………9
实验六指针………………………………………………………………………………………………10
实验七结构体……………………………………………………………………………………………12
实验八类和对象…………………………………………………………………………………………13
实验总体要求
C语言程序设计课程是一门实践性很强的课程,为了培养学生的计算机应用能力,除了课堂理论教学外,必须加强程序设计课程实验的教学环节。
1、课程实验教学目的
通过C语言程序设计的课程实验教学,学生应具有使用计算机解决相关问题的能力,同时为学生今后学习其他计算机应用课程打下良好的程序设计基础。
⑴分析问题和解决问题能力的训练
课程实验教学将课本上的理论知识和实际应用有机地结合起来,达到训练学生分析问题解决实际问题的能力,提高学生应用计算机知识开发应用系统的综合能力。
⑵逻辑思维能力的训练
通过课程实验教学,使学生正确地掌握C语言的基本知识,较好掌握基本的程序算法,以及描述方法。
培养学生在程序设计解题思路、算法的描述、编程构思等方面的计算机逻辑思维能力。
⑶程序设计技能的训练
通过C语言环境下的应用实例,训练学生编写程序的能力,掌握编程的思路和方法,掌握结构化程序设计的基本概念和基本技能。
通过课程实验教学,使学生掌握C程序设计语言的语法规则,数据结构的应用,掌握算法描述及相应代码描述,掌握结构化程序设计的基本方法,能熟练编写一般的应用程序。
2、课程实验教学要求
⑴要求通过解题、程序设计和上机实践,加深对所学概念的理解,提倡理论与实践相结合的学习方法。
⑵要求学生认真进行解题分析,掌握算法描述方法,掌握编程基本技能。
通过布置一定数量程序设计题目,帮助学生逐步熟悉编写程序的方法,提高程序设计能力。
⑶要求学生在课程实验中,努力培养发现程序错误、纠正程序错误的能力,独立完成每一次课程实验,提高编程的效率和成功率。
⑷要求学生在完成课程实验规定的任务外,利用课余的时间多编程,多上机实践。
反对抄袭或拷贝他人的源程序。
⑸要求学生培养科学、严谨的学习作风,认真写好实验报告。
学生在上机实践前,应事先编写好相应的源程序,准备好有关的调试数据,了解上机操作的步骤和过程,较好地完成每一次上机实验课。
为了使学生能真正做到每一次课程实验有收获,做完一个实验后,要求学生必须写成完整的实验报告。
实验报告格式请统一购买“西华大学实验报告(计算机类)”。
实验一C语言的运行环境和运行过程
一、实验目的
1、熟悉C语言运行环境VisualC++6.0集成开发环境。
2、掌握C语言程序的书写格式和C语言程序的结构。
3、掌握编辑、编译、连接和运行C程序的操作步骤。
二、内容与设计思想(上机实践内容、算法设计思想与算法实现步骤等)
1、有下面的C程序,目的是想计算由键盘输入的任意两个整数的积。
/*exl.c*/
#include(stdio.h);
main()
scanf(“%x,%y”,&x,%y)
p=prodct(x,y)
printf(“Theproductis:
”,p)
intprodct(inta,intb)
intc
c=a*b
returnc
请按下面的步骤对该程序进行调试。
(1)在编辑状态下照原样键入上述程序,编译并运行上述程序,根据系统提示的出错信息改正程序中的错误。
再编译执行纠错后的程序。
如还有错误,再编辑改正,直到不出现语法错误为止。
(2)将改好的程序用下面给出的6组测试用例进行测试,查看运行结果是否正确。
(1)0,0
(2)0,99
(3)20,50
(4)33000,20
(5)-5,-2
(6)-5,2
三、使用环境(本次上机实践所使用的平台和相关软件)
1、操作系统MicrosoftWindowsXP
2、C语言开发环境MicrosoftVisualC++6.0
四、核心代码及调试过程(详细记录核心代码以及程序在调式过程中出现的问题及解决方法;记录程序执行的结果)
说明:
对“二、内容与设计思想”部分的实验过程进行详细记录,如调试过程、源程序、测试结果等,尽量详细,条理清晰。
五、总结(对上机实践结果进行分析,上机的心得体会及改进意见)
六、附录
说明:
记录所参考的资料书籍。
如:
[1]谭浩强著.C程序设计(第二版).北京:
清华大学出版社.1999
…….
实验二数据类型、运算符与表达式
一、实验目的
1、熟悉和理解C语言中的基本数据类型。
2、了解基本数据类型的字节宽度和范围表示。
3、学会C语言的有关运算符,以及包含这些运算符的表达式,特别是++和--运算符的使用。
4、进一步熟悉C程序的编辑环境,能利用学习的数据类型,编制简单的C程序。
二、内容与设计思想(上机实践内容、算法设计思想与算法实现步骤等)
1、下面的程序试图计算由键盘输入的任意两个整数的平均值:
#include
main()
{
intx,y,a;
scanf("%x,%y,&x,&y);
a=(x+y)/2;
printf("Theaverageis:
"a);
}
调试无语法错误后,分别使用下列测试用例对上述程序进行测试:
(1)2,6
(1)1,3
(3)-2,-6
(4)-1,-3
(5)-2,6
(6)-1,3
(7)1,0
(8)1,6
(9)32800,33000
(10)-32800,33000
通过测试,你发现程序有什么错误了吗?
若有错误,请指出错误原因。
并修改程序。
2、运算符sizeof用以测试一个数据或类型所占用的存储空间的字节数。
请编写一个程序,测试输出各基本数据类型char,short,int,long,float,double所占用的存储空间大小。
3、输入以下程序
#include
voidmain()
{
intj,k,m,n;
k=8;
j=10;
m=k++;
n=++j;
printf("%d,%d,%d,%d",k,j,m,n);
}
(1)、运行程序,观察结果。
(2)、分析++在变量之前和在变量之后的不同点?
三、使用环境(本次上机实践所使用的平台和相关软件)
1、操作系统MicrosoftWindowsXP
2、C语言开发环境MicrosoftVisualC++6.0
四、核心代码及调试过程(详细记录核心代码以及程序在调式过程中出现的问题及解决方法;记录程序执行的结果)
说明:
对“二、内容与设计思想”部分的实验过程进行详细记录,如调试过程、源程序、测试结果等,尽量详细,条理清晰。
五、总结(对上机实践结果进行分析,上机的心得体会及改进意见)
六、附录
说明:
记录所参考的资料书籍。
如:
[1]谭浩强著.C程序设计(第二版).北京:
清华大学出版社.1999
…….
实验三程序结构(顺序、选择和循环)
一、实验目的
1、掌握C语言程序输入、输出的方法和格式。
2、理解并掌握程序的顺序结构设计
3、理解并掌握程序的分支结构(if语句、switch语句)设计
4、理解并掌握程序的循环结构(for语句、while语句、do-while语句)设计
二、内容与设计思想(上机实践内容、算法设计思想与算法实现步骤等)
1.输入并编辑下面的程序
#include
voidmain()
{
inta,b;
floatc,d;
longe,f;
unsignedintu,v;
charc1,c2;
scanf("%d,%d",&a,&b);
scanf("%f,%f",&c,&d);
scanf("%ld,%ld",&e,&f);
scanf("%u,%u",&u,&v);
scanf("%c,%c",&c1,&c2);
printf("\n");
printf("a=%7d,b=%7d\n",a,b);
printf("c=%10.2f,d=%10.2f\n",c,d);
printf("e=%10ld,f=%10ld\n",e,f);
printf("u=%u,v=%u\n",u,v);
printf("c1=%c,c2=%c\n",c1,c2);
}
(1)用下面的测试数据,对上面的程序进行测试:
a=123,b=456,c=17.6,d=71837.65,e=70000,f=2174506,u=62000,v=58765,c1=’a’,c2=’b’
分析运行结果。
特别注意输入c1,c2的值是什么?
什么原因?
(2)在scanf(“%c,%c”,&c1,&c2);语句之前加一个语句:
getchar();
查看运行结果,并分析为什么要加入这条语句?
2.编写程序任意输入一个三位整数,将其反向输出。
如输入数值123,输出数值321。
3.从键盘输入三个整数a,b,c,找出其中的最大值并输出。
(要求:
用if…else语句编写程序)
4.输入某学生的成绩,经处理后给出学生的成绩等级,等级分类如下:
90分以上(包括90):
A
80至90分(包括80):
B
70至80分(包括70):
C
60至70分(包括60):
D
60分以下:
E
要求:
1用switch语句编写程序
2输入测试数据,调试程序。
测试数据要覆盖所有路径,注意临界值,例如此题中的100分,60分,0分。
5.编写程序,求m=1!
+2!
+3!
+……+10!
的值。
要求用循环语句写出源程序,上机编辑、调试、运行程序,写出结果。
三、使用环境(本次上机实践所使用的平台和相关软件)
1、操作系统MicrosoftWindowsXP
2、C语言开发环境MicrosoftVisualC++6.0
四、核心代码及调试过程(详细记录核心代码以及程序在调式过程中出现的问题及解决方法;记录程序执行的结果)
说明:
对“二、内容与设计思想”部分的实验过程进行详细记录,如调试过程、源程序、测试结果等,尽量详细,条理清晰。
五、总结(对上机实践结果进行分析,上机的心得体会及改进意见)
六、附录
说明:
记录所参考的资料书籍。
如:
[1]谭浩强著.C程序设计(第二版).北京:
清华大学出版社.1999
…….
实验四数组
一、实验目的
1、掌握数组定义的规则;
2、掌握C语言数组的基本用法;
3、掌握一维数组的定义、赋值和输入输出的方法;
4、掌握字符数组的使用;
5、掌握与数组有关的算法(例如排序算法);
6、掌握二维数组的定义、赋值和输入输出的方法。
二、内容与设计思想(上机实践内容、算法设计思想与算法实现步骤等)
1.一个含10个整数元素的数组,试找出其中的最小元素及其数组下标,并输出最小元素值及其下标值。
要求:
①写出源程序,上机编辑、调试、运行程序
②给出测试数据,写出运行结果
2.定义一个二维数组存储三位学生的考试成绩,每位学生有两科考试的成绩,编写程序分别取出二维数组里的元素值,经过累加之后计算并输出每位学生的总成绩。
要求:
①写出源程序,上机编辑、调试、运行程序
②给出测试数据,写出运行结果
3.输入两个字符串,比较这两个字符串是否相同,并输出比较的结果。
(提示:
可以调用系统库函数strcmp进行比较)
要求:
①写出源程序,上机编辑、调试、运行程序
②给出测试数据,写出运行结果
三、使用环境(本次上机实践所使用的平台和相关软件)
1、操作系统MicrosoftWindowsXP
2、C语言开发环境MicrosoftVisualC++6.0
四、核心代码及调试过程(详细记录核心代码以及程序在调式过程中出现的问题及解决方法;记录程序执行的结果)
说明:
对“二、内容与设计思想”部分的实验过程进行详细记录,如调试过程、源程序、测试结果等,尽量详细,条理清晰。
五、总结(对上机实践结果进行分析,上机的心得体会及改进意见)
六、附录
说明:
记录所参考的资料书籍。
如:
[1]谭浩强著.C程序设计(第二版).北京:
清华大学出版社.1999
…….
实验五函数
一、实验目的
1、掌握C语言函数定义及调用的规则。
2、理解参数传递的过程。
二、内容与设计思想(上机实践内容、算法设计思想与算法实现步骤等)
1.编写一个将华氏温度转换为摄氏温度的程序,转换公式为C=(5/9)×(F-32)。
要求:
①写出源程序,上机编辑、调试、运行程序
②给出华氏温度的测试数据,写出相应的摄氏温度运行结果。
分析结果是否正确,并分析产生错误的原因是什么?
并对程序进行修改。
③要求将转换公式C=(5/9)×(F-32)的功能用一个子函数来实现,并在主函数中对其进行函数调用。
三、使用环境(本次上机实践所使用的平台和相关软件)
1、操作系统MicrosoftWindowsXP
2、C语言开发环境MicrosoftVisualC++6.0
四、核心代码及调试过程(详细记录核心代码以及程序在调式过程中出现的问题及解决方法;记录程序执行的结果)
说明:
对“二、内容与设计思想”部分的实验过程进行详细记录,如调试过程、源程序、测试结果等,尽量详细,条理清晰。
五、总结(对上机实践结果进行分析,上机的心得体会及改进意见)
六、附录
说明:
记录所参考的资料书籍。
如:
[1]谭浩强著.C程序设计(第二版).北京:
清华大学出版社.1999
…….
实验六指针
一、实验目的
1、熟悉指针的正确用法。
2、了解指针参数的特殊性。
二、内容与设计思想(上机实践内容、算法设计思想与算法实现步骤等)
1.定义两个子函数swap1和swap2,目的是实现两个整数的数值交换,其中swap1的两个形参采用值传递,swap2的两个形参采用地址传递,在主函数中分别调用这两个子函数,其输出结果如下所示:
初始值:
x=1,y=2
调用swap1后的结果:
x=1y=2
调用swap2后的结果:
x=2y=1
要求:
①写出源程序,上机编辑、调试、运行程序
②给出测试数据,写出运行结果
③根据运行结果分析值传递与地址传递的区别
2.下面的程序试图有如下运行结果:
whichstyleyouwantto:
Capital(c)oruncapital(a):
c↙
COMPUTER
Whichsytleyouwantto:
Capital(c)oruncapital(a):
u↙
computer
请调试下面的程序,修改错误,使其有如上执行结果。
#include
voidmain()
{
chars*;
charc;
printf(“whichstyleyouwantto:
ln”);
printf(“capital(c)oruncapital(a):
”);
c=getchar();
if(c=’c’)strcpy(s,”COMPUTER”);
elsestrcpy(s,”computer”);
put(s);
}
三、使用环境(本次上机实践所使用的平台和相关软件)
1、操作系统MicrosoftWindowsXP
2、C语言开发环境MicrosoftVisualC++6.0
四、核心代码及调试过程(详细记录核心代码以及程序在调式过程中出现的问题及解决方法;记录程序执行的结果)
说明:
对“二、内容与设计思想”部分的实验过程进行详细记录,如调试过程、源程序、测试结果等,尽量详细,条理清晰。
五、总结(对上机实践结果进行分析,上机的心得体会及改进意见)
六、附录
说明:
记录所参考的资料书籍。
如:
[1]谭浩强著.C程序设计(第二版).北京:
清华大学出版社.1999
…….
实验七结构体
一、实验目的
1、掌握结构体类型方法以及结构体变量的定义和引用。
2、掌握指向结构体变量的指针变量的应用。
3、掌握运算符”.”和”->”的应用。
二、内容与设计思想(上机实践内容、算法设计思想与算法实现步骤等)
1、有4名学生,每个学生的数据包括学号、姓名、成绩,要求找出成绩最高者的学号、姓名和成绩,并输出。
要求:
①写出源程序,上机编辑、调试、运行程序
②从键盘输入测试数据,写出运行结果
三、使用环境(本次上机实践所使用的平台和相关软件)
1、操作系统MicrosoftWindowsXP
2、C语言开发环境MicrosoftVisualC++6.0
四、核心代码及调试过程(详细记录核心代码以及程序在调式过程中出现的问题及解决方法;记录程序执行的结果)
说明:
对“二、内容与设计思想”部分的实验过程进行详细记录,如调试过程、源程序、测试结果等,尽量详细,条理清晰。
五、总结(对上机实践结果进行分析,上机的心得体会及改进意见)
六、附录
说明:
记录所参考的资料书籍。
如:
[1]谭浩强著.C程序设计(第二版).北京:
清华大学出版社.1999
…….
实验八类和对象
一、实验目的
1、掌握类的概念、类的定义格式、类的成员属性和类的封装性;
2、掌握类和对象的定义;
3、理解类的成员的访问控制的含义;
4、掌握构造函数和析构函数的含义,能够根据给定的要求定义类并实现类的成员函数。
二、内容与设计思想(上机实践内容、算法设计思想与算法实现步骤等)
1、定义一个圆类,要求用成员函数来求圆的面积和周长。
要求:
①编写类的定义。
②编写主函数使用这个类。
③上机编辑、调试、运行程序
三、使用环境(本次上机实践所使用的平台和相关软件)
1、操作系统MicrosoftWindowsXP
2、C语言开发环境MicrosoftVisualC++6.0
四、核心代码及调试过程(详细记录核心代码以及程序在调式过程中出现的问题及解决方法;记录程序执行的结果)
说明:
对“二、内容与设计思想”部分的实验过程进行详细记录,如调试过程、源程序、测试结果等,尽量详细,条理清晰。
五、总结(对上机实践结果进行分析,上机的心得体会及改进意见)
六、附录
说明:
记录所参考的资料书籍。
如:
[1]谭浩强著.C程序设计(第二版).北京:
清华大学出版社.1999
…….