C语言实验指导.docx
- 文档编号:16720051
- 上传时间:2023-07-16
- 格式:DOCX
- 页数:62
- 大小:41.59KB
C语言实验指导.docx
《C语言实验指导.docx》由会员分享,可在线阅读,更多相关《C语言实验指导.docx(62页珍藏版)》请在冰点文库上搜索。
C语言实验指导
孝感学院物电学院实验中心
C语言实验指导
2010年9月
编辑整理易青松
目录
实验一C语言的运行环境和运行过程
实验二C语言的基础知识
实验三简单的C程序设计
实验四选择结构程序设计
实验五循环结构程序设计
实验六一维数组
实验七二维数组
实验八函数
实验九文件
实验十综合练习
C语言实验指导
实验一C语言的运行环境和运行过程
【目的与要求】
1.了解Dos、Windows环境下C语言的运行环境,了解所用的计算机系统的基本操作方法,学会独立使用该系统。
2.了解在该系统上如何编辑、编译、连接和运行一个C程序。
3.通过运行简单的C程序,初步了解C源程序的特点。
【上机内容】
【基础知识】
通过课堂上学习,我们对C语言已有了初步了解,对C语言源程序结构有了总体的认识,那么如何在机器上运行C语言源程序呢?
任何高级语言源程序都要“翻译”成机器语言,才能在机器上运行。
“翻译”的方式有两种,一种是解释方式,即对源程序解释一句执行一句;另一种是编译方式,即先把源程序“翻译”成目标程序(用机器代码组成的程序),再经过连接装配后生成可执行文件,最后执行可执行文件而得到结果。
C语言是一种编译型的程序设计语言,它采用编译的方式将源程序翻译成目的程序(机器代码)。
运行一个C程序,从输入源程序开始,要经过编辑源程序文件(·C)、编译生成目标文件(·obj)、连接生成可执行文件(·exe)和执行四个步骤。
下面主要介绍TurboC下运行C语言源程序。
TurboC是美国Borland公司推出的IBMPC系列机的C语言编译程序。
它具有方便、直观、易用的界面和丰富的库函数。
它向用户提供了集成环境,把程序的编辑、编译、连接和运行等操作全部集中在一个界面上进行,使用十分方便。
1、TurboC工作环境介绍
一个C语言程序的实施是从进入TurboC的集成环境开始的,而进入C语言的环境,一般有两种途径:
从DOS环境进入和从Windows环境进入。
(1)从DOS环境进入:
在DOS命令行上键入:
C>CD\TC↙(指定当前目录为TC子目录)
C>TC↙(进入TurboC环境)
这时进入TurboC集成环境的主菜单窗口,屏幕显示如下图所示。
(2)从Windows环境进入:
在Windows95/98环境中,如果本机中已安装了TurboC,可以在桌面上建立一个快捷方式,双击该快捷图标即可进入C语言环境。
或者从开始菜单中找到“运行”,在运行对话框中键入“C:
\TC\TC”,“确定”即可。
需要说明的是,以上两种方式有一个共同的前提,即TurboC的安装路径为C:
\TC,如果你的计算机中TurboC的安装路径不同的话,在上述方式中改变相应路径即可。
刚进入TC环境时,光带覆盖在“File”上,整个屏幕由四部分组成,依次为:
主菜单、编辑窗
口、信息窗口和功能提示行(或称快速参考行)。
①主菜单
显示屏的顶部是主菜单条,它提供了8个选择项:
File处理文件(装入、存盘、选择、建立、换名存盘、写盘),目录操作(列表、改变工作目录)退出TurboC,返回DOS状态。
Edit建立、编辑源文件。
Run自动编辑、连接并运行程序。
Compile编辑、生成目标文件组合成工作文件。
Project将多个源文件和目标文件组合成工作文件。
Option提供集成环境下的多种选择和设置(如设置存储模式、选择编参数、诊断及连接任选项
以及定义宏;也可记录Include、Output及Library文件目录,保存编译任选项和从配置文件
加载任选项。
Debug检查、改变变量的值、查找函数,程序运行时查看调用栈。
选择程序编译时是否在执行代
码中插入调试信息。
Break/Watch增加、删除、编辑监视表达式,及设置、清除、执行至断点。
在主菜单中,Edit选项仅仅是一条进入编辑器的命令。
其他选项均为下拉式菜单,包含许多命令选项,使用方向键移动光带来选择某个选项时,按回车键,表示执行该命令,若屏幕上弹出一个
下拉菜单,以提供进一步选择。
②编辑窗口
编辑窗口是在主菜单下,信息窗口之上的区域,其顶行中间有“Edit”标志。
在此窗口中可以建立、
编辑一个源文件。
功能键F5可以扩大编辑窗口到整个屏幕,或恢复分屏式环境。
进入编辑窗口的方式有两种:
(A)按F10功能键,激活主菜单,然后用光标移动键将光带移到“Edit”上,按回车键,或者
在激活主菜单后直接按字母键E,均可进入编辑窗口;
(B)按Alt+E无条件的进入编辑窗口。
进入编辑窗口后,编辑窗口的名字是高亮度的,表示它是活动窗口。
窗口的顶部第一行是
状态行,给出有关正在被编辑文件的信息,如当前光标所在的行、列;编辑模式(插入/改写);正在编辑文件的文件名等等,当需要编辑修改时,在编辑窗口中灵活地使用光标移动键以及编辑命
令即可达到预期的效果。
常用的编辑命令见下表:
命令功能
Home光标移到行首
End将光标移到行尾
Ins插入/改写两种状态的切换
Del删除光标所在的字符
PgUp向上翻页正文
PgDn向下翻页正文
←→光标左右移动
↑↓删除光标所在的行
Ctrl+Y删除光标所指的一个单词
Ctrl+T放弃操作
Ctrl+U删除光标左边字符
Backspac设置(开始)块头标志
Ctrl+KB设置(结尾)块尾标志
Ctrl+KK块搬动到光标处
Ctrl+KV块拷贝到光标处
Ctrl+KC块拷贝
Ctrl+KY块删除
Ctrl+KH取消块定义
在插入模式下(用Ins键转换)向编辑窗口内输入代码,按回车键结束一行(TC编辑器不能自动换行)。
一行最多为248个字符,窗口宽77列,当一行内字符多于77列时,窗口随着字符的输入而左右移动,若发现有错误,可移动光标到出错处更正之;再按一次Ins键,屏幕转换成为替换模式,输入的字符将替换光标所在位置的字符。
③信息窗口
编译和调试源程序时,信息窗口显示诊断信息、警告、出错信息、错误在源程序中的位置。
功能键F5可以扩大和恢复信息窗口,按F6或Alt+E,光标从信息窗口跳到编辑窗口。
④功能键提示行
屏幕低行是功能键提示行,显示当前状态下功能键(俗称TurboC热键)的作用,见下表。
应当注意,在不同状态下功能键的作用是不同的。
正确使用功能键可以简化操作。
热键简单说明
F1Help,以分页的形式显示帮助信息
F2保存当前正在编辑窗口中的文件
F3装入一个文件。
按F3,屏幕上弹出一个输入框,输入要装入的文件名
F5Zoom,缩放活动窗口
F6Switch,活动窗口开关,按F6键,光标从编辑窗口跳到信息窗口,或从信息窗口跳到编辑窗口
F7Trace,跟踪到函数中
F8Step,单步跟踪,但不进入函数内部
F9Make,对当前文档进行编辑、连接
F10Menu,激活主菜单,光标跳到主菜单
2TurboC环境中运行C语言源程序的步骤
(1)编辑源文件
在主菜单下,直接按Alt+F键,或按F10后将光带移到“File”选项上,按回车键,在“File”下面出现一个下拉菜单,菜单中有以下选项:
LoadF3表示加载或装入一个文件
PickAlt+F3从指定的文件列表中选择文件装入编辑器。
New表示新文件,缺省文件名为NONAME.C。
SaveF2将正在编辑的文件存盘。
Writeto将正在编辑的文件写入指定的文件中,若文件名已存在,则重写。
Directory表示文件目录。
ChangeDir改变驱动器及目录
Osshell进入TurboC命令行模式,命令EXIT可返回集成环境
QuitAlt+x退出TurboC,返回DOS状态。
建立一个新文件,可用光标移动键将“File”菜单中的光带移到“New”处,按回车键,即可打开编辑窗口。
此时,编辑窗口是空白的,光标位于编辑窗口的左上角,屏幕自动处于插入模式,可以输入源程序。
屏幕右上角显示缺省文件名为NONAME.C,编辑完成之后,可用F2或选择“Save”或“Writeto”进行存盘操作,此时系统将提示用户将文件名修改成为所需要的文件名。
(2)源程序的编译、连接
直接按F9键,或将菜单“Compile”中的光带移到“MakeEXEfile”项上,按回车键,就可实现对源程序的编译、连接。
若有错误,则在信息窗口显示出相应的信息或警告,按任意键返回编辑窗口,光标停在出错位置上,可立即进行编辑修改。
修改后,再按F9键进行编辑、连接。
如此反复,直到没有错误为止,即可生成可执行文件。
注意:
C程序的连接是在编译后自动完成的。
(3)执行程序
直接按Ctrl+F9键,即可执行.EXE文件;或在主菜单中(按F10进入主菜单)将光带移到“Run”选项,按回车键,弹出一个菜单,选择“Run”选项,回车。
这时并不能直接看到输出结果。
输出结果是显示在用户屏幕上,在TC屏幕上看不到,直接按复合键Alt+F5,或选择“Run”菜单中的“UserScreen”选项,即可出现用户屏幕,查看输出结果。
按任意键返回TC集成环境。
另外,选择“Run”菜单下的“Run”项,或直接按Ctrl+F9键,可将C程序的编译、连接、运行一次性完成,即第3步中包含有第2步的工作。
如果程序需要输入数据,则在运行程序后,光标停留在用户屏幕上,要求在用户输入数据,数据输入完成后程序继续运行,直至输出结果。
如果运行结果不正确或其他原因需要重新修改源程序,则需重新进入编辑状态。
修改源程序,重复以上步骤,直到结果正确为止。
(4)退出TurboC集成环境
退出TurboC环境,返回操作系统状态。
可在主菜单选择“File”菜单的“Quit”选项,或者直接按Alt+x。
在执行退出TurboC环境时,系统将检查一下当前编辑窗口的程序是否已经存盘,若未存盘,系统将弹出一个提示窗口,提示是否将文件存盘,若按“Y”则将当前窗口内的文件存盘后退出;若按“N”则不存盘退出。
【一般示例】
【例1】编程实现在屏幕上显示如下三行文字
Hello,world!
WelcometotheClanguageworld!
Everyonehasbeenwaitingfor.
在TurboC的集成环境下,键入如下源文件。
敲Alt+F组合键打开File菜单,File菜单中Writeto选项可将默认noname.c文件名改为任意文件名。
程序example.c如下:
#include
voidmain()
{
printf("Hello,World!
\n");
printf("WelcometotheClanguageworld!
\n");
printf("Everyonehasbeenwaitingfor.\n");
}
然后用Ctrl+F9编辑执行example.c,用Alt+F5查看结果,即在屏幕上显示题目要求的三行文字。
按回车键重新返回TurboC的编辑环境。
注意,在运行程序之前最好先存盘。
【例2】输入并运行程序,写出运行结果。
#include
voidmain()
{
inta,b,sum;
a=123;b=456;
sum=a+b;
printf(“sumis%d\n”,sum);
}
运行方法同上,最后结果为:
sumis579。
【例3】
输入并运行程序,写出运行结果。
#include
voidmain()
{
inta,b,c;
scanf(“%d,%d”,&a,&b);
c=max(a,b);
printf(“max=%d”,c);
}
intmax(intx,inty)
{
intz;
if(x>y)z=x;
elsez=y;
return(z);
}
这个程序的功能是对于任意输入的两个整数,输出较大的那个数。
所以程序运行之后,光标将停留在用户屏幕上,等待用户输入两个整数,比如输入“3,5”,回车,在用户屏幕上就会输出“max=5”。
【作业】
1.输入并运行例题中程序,熟悉调试C程序的的方法与步骤。
2.写出一个C程序的构成。
3.参照例题,编写一个C程序,输出以下信息:
Hello,World!
4.编写一个C程序,输入a、b、c三个数,输出其中最大者。
试想,如果求四个数中的最大者,则程序该如何编写。
实验二C语言的基础知识
【目的与要求】
1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。
2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。
3.进一步熟悉C程序的编辑、编译、连接和运行的过程。
【上机内容】
【例1】输入并运行下程序,写出运行结果。
mian()
{
charc1,c2;
c1=97;c2=98;
printf(“%c%c”,c1,c2);
}
在此基础上:
1)加一个printf语句,并运行之。
printf(“%d,%d”,c1,c2);
2)再将第二行改为:
intc1,c2;
再使之运行。
3)再将第三行改为:
c1=300;c2=400;再使之运行,分析其运行结果。
在该程序中,说明了字符型数据在特定情况下可作为整型数据处理,整型数据有时也可以作为字符型数据处理。
【例2】分析下程序,写出运行结果,再输入计算机运行,将得到的结果与你分析得到的结果比较对照。
main()
{
charc1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;
printf(“a%cb%c\tabc\n”,c1,c2,c3);
printf(“\t\b%c%c”,c4,c5);
}
在该程序中,主要考查对转义字符的掌握情况。
【例3】分析下程序,写出运行结果,再输入计算机运行,与你分析得到的结果比较对照。
main()
{
inti,j,m,n;
i=8;j=10;
m=++i;n=j++;
printf(“%d,%d,%d,%d”,i,j,m,n);
}
分别作以下改动之后,先分析再运行:
1)将第四行改为:
m=i++;n=++j;
2)程序改为:
main()
{
inti,j;
i=8;j=10;
printf(“%d,%d”,i++,j++);
}
3)在2)的基础上,将printf语句改为:
printf(“%d,%d”,++i,++j);
4)再将printf语句改为:
printf(“%d,%d,%d,%d”,i,j,i++,j++);
5)程序改为:
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.要讲“China”译成密码,密码规律是:
用原来的字母后面第5个字母代替原来的字母。
例如,字母“A”后面第5个是“F”,用“F”代替“A”。
因此,“China”应译为“Hmnsf”。
请编一程序,用赋初值的方法使c1、c2、c3、c4、c5五个变量的值分别为’C’、’h’、’i’、’n’、’a’,经过运算,使其分别变为’H’、’m’、’n’、’s’、’f’,并输出。
2.求下面算术表达式的值。
(1)x+a%3*(x+y)%2/4
设x=2.5,a=7,y=4.7
(2)(float)(a+b)/2+(int)x%(int)y
设a=2,b=3,x=3.5,y=2.5
先自己分析,再试着用程序求解,看得到的结果是否一致。
3.写出下面表达式运算后a的值,设原来a=10。
设a和n已定义成整型变量。
(1)a+=a
(2)a-=2
(3)a*=2+3(4)a/=a+a
(5)a%=(n%=2),n的值等于5(6)a+=a-=a*=a
先自己分析,再试着用程序求解,看得到的结果是否一致。
实验三简单的C程序设计
【目的与要求】
1.理解C语言程序的顺序结构
2.掌握常用的C语言语句,熟练应用赋值、输入、输出语句。
【上机内容】
【例1】按格式要求输入/输出数据
#include"stdio.h"
main()
{
inta,b;
floatx,y;
charc1,c2;
scanf(“a=%d,b=%d”,&a,&b);
scanf(“%f,%e”,&x,&y);
scanf(“%c%c”,&c1,&c2);
printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n”,a,b,x,y,c1,c2);}
运行该程序,必须按如下方式在键盘上输入数据
a=3,b=7↙
8.5,71.82↙
aA↙
请同学们写出输出结果
【例2】输入三角形三边长,求三角形面积。
#include“math.h”
main()
{
floata,b,c,s,area;
scanf(“%f,%f,%f”,&a,&b,&c);
s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf(“area=%f”,area);
}
【例3】已知圆半径,圆柱高,求圆周长,圆柱体积。
main()
{
floatr,h,l,v,pi;
pi=3.1415926;
scanf(“%f,%f”,&r,&h);
l=2*pi*r;
v=pi*r*r*h;
printf(“圆周长为:
%6.2f\n”,l);
printf(“圆柱体积为:
%6.2f”,v);
}
【例4】输入一个摄氏温度,要求输出华氏温度。
公式为f=5/9*c+32.
main()
{
floatc,f;
scanf(“%f”,&c);
f=5.0/9*c+32;
printf(“%5.2f\n”,c);
}
【作业】
1.已知圆半径r=1.5,圆柱高h=3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积。
2.输入一个华氏温度,要求输出摄氏温度。
公式为c=5/9*(f-32).
实验四选择结构程序设计
【目的与要求】
1.了解C语句表示逻辑量的方法(以0代表“假”,以1代表“真”);
2.学会正确使用逻辑运算符和逻辑表达式;
3.熟练掌握if语句和switch语句。
【上机内容】
【例1】已知三个数a,b,c,找出最大值放于max中。
分析:
由已知可得在变量定义时定义四个变量a,b,c和max,a,b,c是任意输入的三个数,max是用来存放结果最大值的。
第一次比较a和b,把大数存入max中,因a,b都可能是大值,所以用if语句中if——else形式。
第二次比较max和c,把最大数存入max中,用if语句的第一种形式if形式。
Max即为a,b,c中的最大值。
#include"stdio.h"
main()
{
inta,b,c,max;/*定义四个整型变量*/
scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);
if(a>=b)
max=a;/*a>=b*/
else
max=b;/*a
if(c>max)
max=c;/*c是最大值*/
printf("max=%d",max);
}
若输入下列数据,分析程序的执行顺序并写出运行结果
(1)a=1,b=2,c=3
(2)a=2,b=1,c=3
(3)a=3,b=2,c=1
(4)a=3,b=1,c=2
(5)a=3,b=3,c=2(6)a=2,b=1,c=2
【例2】输入某学生的成绩,经处理后给出学生的等级,等级分类如下:
90分以上(包括90):
A
80至90分(包括80):
B
70至80分(包括70):
C
60至70分(包括60):
D
60分以下:
E
方法一:
(用if嵌套`)
分析:
由题意知如果某学生成绩在90分以上,等级为A;否则,如果成绩大于80分,等级为B;否则,如果成绩大于70分,等级为C;否则,如果成绩大于60分为D;否则,如果成绩小于60分,等级为E;但当我们输入成绩时也可能输错,出现小于0或大于100,这时也要做处理,输出出错信息。
因此,再用if嵌套前,应先判断输入的成绩是否在0~100之间。
#include"stdio.h"
main()
{
intscore;
chargrade;
printf("\npleaseinputastudentscore:
");
scanf("%f",&score);
f(score>100||score<0)
printf("\ninputerror!
");
else
{
if(score>=90)
grade='A';
else
{
if(score>=80)
grade='B';
else
{if(score>=70)
grade='C';
else
{if(score>=60)
grade='D';
elsegrade='E';
}
}
}
printf("\nthestudentgrade:
%c",grade);
}
}
输入测试数据,调试程序。
测试数据要覆盖所有路径,注意临界值,例如此题中得100分,60分,0分以及小于0和大于100的数据。
方法二:
用switch语句
分析:
switch语句是用于处理多分支的语句。
注意,case后的表达式必须是一个常量表达式,所以在以用switch语句之前,必须把0~100之间的成绩分别化成相关的常量。
所有A(除100以外),B,C,D类的成绩的共同特点是十位数相同,此外都是E类。
则由此可得把score除十取整,化为相应的常数。
#include"stdio.h"
main()
{
intg,s;
charch;
printf("\ninputastudentgrade:
");
scanf("%d",&g);
s=g/10;
if(s<0||s>10)
printf("\ninputerror!
");
else
{
switch(s)
{case10:
case9:
ch='A';break;
case8:
ch='B';break;
case7:
ch='C';break;
case6:
ch='D';break;
default:
ch='E';
}
printf("\nthestudentscort:
%c",ch);
}
}
输入测试数据,同方法一一样调试程序并写出结果。
【例3】有一分段函数:
y=xx<1
y=2x-11= y=3x-11x>=10 用scanf函数输入x的值(分别为x<1,1~10,>=10三种情况),求y值。 分析: y是一个分段表达式。 要根据x的不同区间来计算y的值。 所以应使用If语句。 main() { intx,y; printf(“pleaseinputx: ”); scanf(“%d”,&x); if(x<1) { y=x; printf(“y=%d\n”,y); } elseif(x<10) { y=2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 实验 指导