C语言实验指导书全教程Word格式.docx
- 文档编号:20233458
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:36
- 大小:109.95KB
C语言实验指导书全教程Word格式.docx
《C语言实验指导书全教程Word格式.docx》由会员分享,可在线阅读,更多相关《C语言实验指导书全教程Word格式.docx(36页珍藏版)》请在冰豆网上搜索。
结构体的定义及其应用
结构体类型及其变量、结构体数组
8
指针的定义及其应用
指针变量的定义及多方面的应用
9
文件的应用
磁盘文件的操作
10
综合性实验
软件系统小程序
综合性
四、每组人数与实验学时数
每组1人,实验共40学时
五、考核方式与评分办法
实验总成绩=出勤情况*10%+实验报告*20%+平时*30%+实验内容*40%
六、本实验课配套教材或实验指导书
教材:
苏小红主编.C语言大学实用教程,电子工业出版社,十一五国家级规划教材,2008.7
参考书:
[1]何钦铭,颜晖主编.C语言程序设计,高等教育出版社,十一五规划教材,2008.1
[2]颜晖主编.C语言程序设计实验指导,高等教育出版社,2008.1
[3]张引,何钦铭等.C程序设计基础课程设计,浙江大学出版社,2007.9
[4]谭浩强.C程序设计题解与上机指导.北京:
清华大学出版社.2006年3月第3版
[5]谭浩强.C程序设计试题汇编.北京:
清华大学出版社.2006年3月第2版
[6]夏宽理.C语言程序设计.北京:
中国铁道出版社.2006年2月第1版
[7]夏宽理.C语言程序设计上机指导与习题解答.北京:
中国铁道出版社.2006.2
[8]王士元.C高级实用程序设计.北京:
清华大学出版社.1996年1月第1版
[9]谭浩强.C程序设计.北京:
七、实验报告要求
上机实验目的在于:
①通过验证课本中的内容及自己编写的程序,加深对课本中词法、语法的掌握;
②熟悉所用的C语言开发环境;
③上机调试自己的程序,学会编程,重要是能上机调试通过,调试经验是通过自己的直接实践来累积。
上机实验的要求:
①课前准备好上机所要的程序源代码;
②上机输入和调试自己的程序,努力独立完成调试过程,自行解决编译错误;
③实验结束,认真编写实验报告
在机器上运行程序代码,每次实验成绩分为优、良、及格、不及格,未参加的为0分。
要求认真编写实验报告。
报告内容应包含以下内容:
1.实验题目
2.实验目的和要求
3.解题思路
4.调试过程(实验过程出现的问题及解决的方法或尚未解决的问题)
5.程序代码及运行结果
6.实验结果分析
7.教师评语
第二部分:
C语言程序设计的运行环境VC++6.0
------VC++6.0集成开发环境的使用
在众多的面向对象程序设计语言中,Microsoft公司的VC++6.0独树一帜,是一个集程序编辑、编译、连接和调试于一体的C语言程序开发环境。
在Windows环境下,操作方便。
VC环境中运行C语言源程序的步骤
1、启动VisualC++6.0开发环境
2、创建一个项目
(1)在VisualC++6.0开发环境主窗口,单击File菜单中的New选项,显示一个New对话框,如下:
(2)单击Projects,选择Win32ConsoleApplocation,并在右侧相应的文本框中填入项目的路径和名称
(3)在弹出的Win32ConsoleApplocation-Step1of1对话框中选择Anemptyproject单选项,然后单击Finish.
(4)最后在NewProjectInformation对话框中单击OK。
3、建立C源程序文件
(1)选择菜单命令Project|AddtoProject|New,弹出New对话框。
(2)在New对话框的Files中选择C++SourceFile,并写入文件名,单击OK
4、编辑C语言源程序
(1)在文件编辑窗口中输入源代码
(2)选择File|Save,保存程序
5、建立并运行可执行程序
(1)选择菜单命令Build|BuildFilename.ext建立可执行文件
(2)选择菜单命令Build|ExecuteFilename.exe运行程序,观察显示的内容
6、关闭工作空间
选择菜单命令File|CloseWorkspace关闭工作空间。
例:
从键盘上输入两个整数,输出两者中的较大数。
1、新建一CPP文件后,在编辑窗口输入源代码如下:
2、编译、连接后,从键盘上输入12,34<
回车>
则可查看程序运行结果:
第三部分:
实验内容
实验一:
熟悉VC++6.0运行环境
【目的与要求】
1、了解VC环境下C语言的运行环境,熟悉编译系统的操作环境。
2、了解在该系统上如何编辑和运行一个C程序。
3、通过运行简单的C程序,初步了解运行C语言程序的操作过程。
【实验内容】
1、题目:
由键盘输入两个整数,计算并输出两个数之和。
2、程序代码:
#include“stdio.h”
voidmain()
{inta,b,sum;
printf(“Pleaseinputtwointegernumbers:
\n”);
scanf(“%d%d”,&
a,&
b);
sum=a+b;
printf(“%d+%d=%d”,a,b,sum);
}
3、具体操作:
(1)输入程序,按Ctrl+F9。
若在运行后有词法或语法错误,则根据提示进行修改,再进行调试,直到没有语法错误。
(2)运行后,依下列不同的方式输入数据,查看程序执行结果。
①12<
Spacebar>
34↙
②12↙
34↙
③12<
Tab>
【实验分析与讨论】
1、总结C程序的基本结构和书写规则。
2、分析调试过程中常见的错误提示和解决策略。
3、掌握调试过程中问题解决的方法和思路
【DIY】
一、改错:
实现求三个数的平均值。
#include<
stdio.h>
voidmain()
{floata,b,c,sum;
floataverage;
a=10;
b=20;
c=35;
average==sum/3;
printf(“theaverageis%4d”,average);
二、填空:
实现从键盘中读取两个浮点型数据,相乘之后输出结果,要求结果须保留4位小数。
#include“stdio.h”
{___1___a,b,c;
printf(“pleaseentertwonumbers”);
scanf(“%f%f”,&
c=___2___;
printf(“c=___3___”,c);
三、编程
1、编写程序,实现对两个整数进行求和。
2、编写程序,在屏幕上显示如下图案。
*
***
****
3、菜单制作。
请在屏幕上显示下列菜单信息。
=======MainMenu=======
1---Input
2---Calculate
3---DisplayResult
实验二:
1、掌握三种基本数据类型(int、float、char)变量的定义。
2、掌握算术运算符、赋值运算符及其表达式的应用。
3、掌握C语言中的语句及顺序结构程序设计
一、求出含有两个实根(b2-4ac>
=0)的一元二次方程ax2+bx+c=0的解。
1、程序分析:
(1)定义变量:
a,b,c,x1,x2,delta
(2)输入a,b,c
(3)计算delta=b2-4ac(设delta>
=0)
x1=(-b+sqrt(delta))/(2*a)
x2=(-b-sqrt(delta))/(2*a)
#include“stdio.h”
#include“math.h”
{floata,b,c,x1,x2;
floatdelta;
printf(“Pleaseinputthethreecoef.:
\n”);
scanf(“%f%f%f”,&
b,&
c);
delta=b*b-4*a*c;
x1=(-b+sqrt(delta))/(2*a);
x2=(-b-sqrt(delta))/(2*a);
printf(“Therootsare:
\nx1=%4.2f,x2=%4.2f”,x1,x2);
3、具体操作:
(2)运行后,根据提示输入方程的三个系数值,键入回车,查看程序执行结果。
注:
输入浮点型系数方法同实验一。
二、输出特殊图案,请在c环境中运行,看一看,VeryBeautiful!
字符共有256个。
不同字符,图形不一样。
#include"
stdio.h"
voidmain()
{chara=176,b=219;
printf("
%c%c%c%c%c\n"
b,a,a,a,b);
a,b,a,b,a);
a,a,b,a,a);
}/*运行程序,观察结果*/
1、总结C程序的顺序结构程序的编写及调试方法。
一、改错
voidmain()
{inta,b,ab,ac,c;
printf(“pleasseenter3numbers:
”)
scanf(“%d,%d,%f”;
&
ab=a+b;
ac=a*c;
printf(“a+b+c=%d\n”,&
ab+c);
printf(“a*b*c=%d\n”,&
ac*b);
二、请写出下面程序的运行结果
{inta=10;
longintb=10;
floatc=10.0;
doubled=10.0;
%d\n%ld\n%f\n%lf\n"
a,b,c,d);
b,a,d,c);
%d\n%f\n%lf"
c,c,c);
三、编程
1、定义两个float类型数据,求和并将结果分别以“sum=?
”和”?
+?
=?
”形式输出。
如:
floata=3.4,b=9.0;
结果显示:
(1)sum=12.40
(2)3.4+9.0=12.40
2、输入两个数num1和num2,计算并输出它们的和、差、积、商与余数。
3、计算银行存款的本息。
输入存款金额money、存期year和年利率rate,根据公式计算存款到期时的本息合计sum(税前),输出时保留2位小数。
公式:
sum=money(1+rate)year
提示:
幂函数ax用库函数pow(a,x)来计算。
实验三:
1、了解分支结构的两条语句if和switch语法。
2、掌握关系运算符和逻辑运算符的运用
3、熟练掌握if语句和switch语句的应用
一、给出下列分段函数的计算程序代码。
根据输入的x的值,计算出y的值,并输出。
(x+5)2+3x(x>
0)
y=0(x=0)
(x-5)2-3x(x<
1、程序分析:
对于分段函数,运用if-else语句,即可解决。
2、程序代码:
{floatx,y;
printf(“EnterX:
scanf(“%f”,&
x);
if(x>
0)y=(x+5)*(x+5)+3*x;
elseif(x==0)y=0;
elsey=(x-5)*(x-5)-3*x;
printf(“x=%.2fy=%.2f\n”,x,y);
二、判断方程ax2+bx+c=0有几个解,若有,则输出其解。
1、程序分析:
对于方程ax2+bx+c=0的解,存在以下情况:
①a=0,不是一元二次方程;
②b2-4ac=0,有两个相等的实根;
③b2-4ac>
0,有两个不等的实根;
④b2-4ac<
0,有两个共轭复根。
(3)如果(a==0)则,不是一元二次方程
否则,计算delta=b2-4ac
根据delta的取值,输出方程根的情况:
if(b2-4ac==0)
x1=x2=-b/(2*a);
else
if(b2-4ac>
0)
{x1=(-b+sqrt(delta))/(2*a);
else{x1=(-b+sqrt(-delta)i)/(2*a);
x2=(-b-sqrt(-delta)i)/(2*a);
{floata,b,c,x1,x2,d;
floatq,p;
if(a==0)printf(“Error!
{delta=b*b-4*a*c;
if(delta==0)
printf(“Thetwoequalrootsare:
x1,x2=%4.2f”,-b/(2*a));
elseif(delta>
{x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf(“Thetwo
actualrootsare:
x1=%4.2f,x2=%4.2f”,x1,x2);
else/*sqr(b)-4*a*c<
0*/
{p=-b/(2*a);
q=sqrt(-d)/(2*a);
printf(“Thetwovirtualrootsare:
x1=%4.2f+%4.2fi,x2=%4.2f-%4.2fi”,p,q,p,q);
}
三、求解简单表达式。
输入一个形式如“操作数运算符操作数”的四则运算表达式,
输出运算结果。
如:
输入:
2+45
显示:
2+45=47
程序代码:
{charoperator
floatoperand1,operand2;
printf(“Typeinanexpression:
\n”);
scanf(“%f%c%f”,&
operand1,&
operator,&
operand2);
switch(operator)
{case‘+’:
printf(“%.2f+%.2f=%.2f\n”,operand1,operand2,operand1+operand2);
break;
case‘-’:
printf(“%.2f-%.2f=%.2f\n”,operand1,operand2,operand1-operand2);
case‘*’:
printf(“%.2f*%.2f=%.2f\n”,operand1,operand2,operand1*operand2);
case‘/’:
printf(“%.2f/%.2f=%.2f\n”,operand1,operand2,operand1/operand2);
1、总结分支选择结构的设计方法与技巧。
2、掌握运用switch语句进行简单菜单的设计。
一、改错:
调试以下程序使之能求出三个数中的最小数。
{inta,b,c;
scanf(“%d%d%d”,a,b,c);
if((a>
b)&
(a>
c))
if(b<
c)printf(“min=%d\n”,b);
elseprintf(“min=%d\n”,c);
if((a<
(a<
c))printf(“min=%d\n”,a);
二、程序填空
#include<
{intyear,month,days;
printf(“enteryearandmonth:
”);
year,&
month);
switch(___1___)
{case1:
case3:
case5:
case7:
case8:
case10:
case12:
days=31;
case4:
case6:
case9:
case11:
days=30;
case2:
if(_____________2____________)
days=29;
elsedays=____3_____;
_____4______;
default:
printf(“inputerror!
!
days=0;
if(___5___)
printf(“%d,%dis%ddays\n”,year,month,days);
1、
(1)输入一个数,判断其是否为5的倍数。
(2)输入一个数,判断它的奇偶性。
(3)输入一个数,显示它的绝对值。
2、输入2个数(3个数),按从小到大的顺序显示到显示器。
3、输入5个数,找出其中最大的数,并输出到显示器。
4、出租车收费。
某城市普通出租车收费标准如下:
起步里程3公里,起步费用10元;
超起步里程后10公里内,每公里租费2元;
超过10公里以上的部分加50%的回空补贴费,即每公里租费3元。
营运过程中,因路阻及乘客要求临时停车的,每5分钟按1公里租费计收。
运价计费尾数四舍五入,保留到元。
编写程序,输入行驶里程(公里)与等待时间(分钟),计算并输出乘客应支付的车费(元)。
5、输入学生的百分制成绩score,按下列定义输出等级。
等级划分:
A(90~100)、B(70~89)、C(60~69)、D(0~59)
实验四:
1、掌握三种循环语句在编程中的使用。
2、理解break语句和continue语句在循环结构中的不同作用。
3、了解循环的嵌套调用过程。
4、掌握分支、循环嵌套在程序设计中的应用。
一、求下列表达式的值。
1/3+3/5+5/7+……+n/(n+2)//n为任意一个奇数
从上述表达式的形式看,当n确定下来之后,我们就从1/3开始,按照式子中给出的规律,一直累加到n/(n+2)
{floati,n,sum=0.0;
printf(“Pleaseinputanodd:
n);
for(i=1;
i<
=n;
i=i+2)
sum=sum+i/(i+2);
printf(“%.2f”,sum);
二、输入两个正整数,求出它们的最大公约数与最小公倍数。
1、算法分析:
[辗转相除法]对于两个数m和n,用n去除m,若余数为0,则n为最大公约数,否则将n作为m,余数作为n,再用n去除m,直到余数为0,则n为最大公约数。
{intm,n,t,max,min;
printf(“Pleaseinputtwointegernumbers:
m,&
min=m*n;
while(n!
{t=m%n;
m=n;
n=t;
printf(“最大公约数为:
%d\n”,m);
printf(“最小公倍数为:
%d\n”,min/m);
三、将一张100元钱,换成10元,20元,50元零钱,问有多少种不同的换法(假设三种零钱每种都可不出现)。
1、算法分析
运用穷举算法实现:
考虑到三种零钱各种可以不出现,则各自的张数范围如下:
10元--------0张到10张
20元--------0张到5张
50元--------0张到2张
并且要考虑到共数只有一张100元票子。
#include"
voidma
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 实验 指导书 教程