C语言程序设计实验指导书.docx
- 文档编号:5504641
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:38
- 大小:133.68KB
C语言程序设计实验指导书.docx
《C语言程序设计实验指导书.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实验指导书.docx(38页珍藏版)》请在冰点文库上搜索。
C语言程序设计实验指导书
C语言程序设计实验指导书
实验一:
C语言的运行环境及运行C程序的方法(2学时)
一、实验目的和要求:
(1)了解所用的计算机系统的基本操作方法,学会使用该系统。
(2)了解在该系统上如何编辑、编译、连接和运行一个C程序。
(3)通过运行简单的C程序,初步了解C程序的特点。
二、实验内容:
(1)检查所用的计算机系统。
(2)进入TurboC的工作环境。
(3)熟悉TurboC集成环境。
(4)输入并运行几个简单的C程序。
三、实验步骤、过程:
1、启动操作系统,查找TurboC集成开发环境的安装位置(路径)。
例如:
D:
\TC2,查看目录中是否有tc.exe文件,此程序就是TurboC集成开发环境的执行程序。
请记录您的系统TurboC2.0的安装位置。
2、创建、进入用户目录。
(1)创建以学号为目录名的用户目录,并记录该目录,比如:
您的学号是20055021,那么就创建D:
\20055021这个目录;
(2)查看目录是否创建好;
(3)进入您的用户目录;
注意:
以后您的C程序请保存在此目录下!
3、启动、退出TurboC集成开发环境。
(1)启动TurboC集成开发环境。
比如:
TurboC集成开发环境安装位置(路径)为:
D:
\TC2,则到D:
\TC2目录下,找到启动文件tc.exe,用鼠标双击tc.exe文件,启动TurboC集成开发环境。
注意:
(全屏/窗口)切换快捷键为:
(Alt+Enter)
(2)退出TurboC集成开发环境。
File菜单下的Quit退出TurboC集成开发环境;
(3)再次启动TurboC环境。
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表示当前的程序还没有取名字,以后保存程序时,系统会提示输入源程序名。
详细开发环境使用方法见附录文件:
使用TC开发环境使用说明.pdf
5、按照下面步骤完成第1个程序题(1_1.c)。
(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个程序题(1_2.c)。
注意:
Error--致命错的程序不能产生目标程序、执行程序,必须修改程序,并重新编译,直到成功。
7、按步骤5完成第3个程序题(1_3.c)。
注意:
Warning--警告错的程序可以产生目标程序、可执行程序。
^_^,还是修改吧,警告错一般也意味着程序有毛病,尽管这种程序可以强行编译连接为可执行程序,但结果一般都有问题。
四、源程序清单、测试数据、结果:
1、最简单的C程序。
(要求文件名:
1_1.c)
#include
main()
{printf(“Helloworld!
\n”);
}
2、一个具有致命语法错的程序,请修改。
(要求文件名:
1_2.c)
#include
main()
{inti=9
printf(“i=%d\n”,i)
}
3、一个具有警告语法错的程序。
(要求文件名:
1_3.c)
#include
main()
{
inti=9,j,s;
s=i+j;
printf("s=%d\n",s);
}
五、实验小结和思考
1、您自己的系统上TurboC安装目录在哪里?
TurboC集成开发环境程序名是什么?
答:
TurboC安装目录是:
c:
\tc;TurboC集成开发环境程序名为:
tc.exe。
2、F5/F6;F10,→、←、↑、↓功能键;Alt+高亮度键的效果和作用?
答:
F10,→、←、↑、↓:
F10激活TurboC主菜单,光标键选择菜单之间;回车确认。
F5:
编辑窗口或消息窗口最大/恢复;
F6:
切换编辑窗口/消息窗口。
Alt+高亮度键,直接激活主菜单项。
3、与C语言程序直接相关的几种文件及扩展名分别是什么?
答:
C语言源程序、目标程序、可执行程序,其后缀分别为*.c,*.obj,*.exe。
4、C语言程序主要的实现过程?
答:
分为编辑、编译、连接、运行四个阶段。
其中,开发环境中,编辑完成后,可以直接启动运行,但分解的阶段仍然是四个,前面阶段未完成,程序仍然不能运行。
5、C语言程序主要的错误?
答:
程序错误分为:
●语法错误:
编译系统可以协助查找出来的语法上的错误。
语法错还包括:
致命错Error/和警告错Warning。
致命错必须修改!
,警告错可以不修改,但常常暗示程序存在问题。
逻辑错误:
运行结果与预期不符,与程序算法逻辑相关的错误。
实验二:
数据类型、运算符和表达式(2学时)
一、实验目的和要求:
(1)掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。
(2)掌握不同的类型数据之间赋值的规律。
(3)学会使用C的算术运算符,以及包含这些运算符的表达式,特别是自增(++)和自减(——)运算符的使用。
(4)进一步熟悉C程序的编辑、编译、连接和运行的过程。
二、实验内容:
(1)进一步熟悉TurboC集成环境。
(2)输入并运行几个C程序,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。
(3)输入并运行几个C程序,掌握不同的类型数据之间赋值的规律。
(4)输入并运行一个C程序,熟悉自加和自减运算符的使用方法。
三、实验步骤、过程:
1、启动TurboC集成开发环境。
(方法与实验1相同)
2、完成或选做以下5个程序题。
(编辑、编译连接、运行程序,步骤与实验1相同)
注意:
经常用“File”-“Save”(热键F2)保存源程序以免意外导致源程序丢失。
3、退出TurboC集成开发环境,关机。
四、源程序清单、测试数据、结果。
(注释供阅读、理解程序,上机时不必输入)
1、写出一个程序测试整型、字符型数据表示,并输出以验证是否正确。
(要求文件名:
2_1.c)
#include
main()
{intx=10,y=10,z=10;/*整型数据表示*/
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);
/*结果都是什么字符?
,也就是说字符可以自由的表示成几种形式?
*/
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码表,原来如此!
*/
}
参考结果:
x=10,y=10,z=10
x=8,y=10,z=16
c1=M,c2=4d,c3=115,c4=77
c1=M,c2=M,c3=M,c4=M
c1=77,c2=77,c3=77,c4=77
c=m,c=109
2、整型数据的溢出错误。
(要求文件名:
2_2.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();//获得键盘击键,起到暂停程序运行作用,目的是保留用户屏幕,便于查看结果。
}
参考结果:
a=32767,a+1=-32768
a=-32768,a-1=32767
3、实型数据的舍入误差。
(要求文件名:
2_3.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);
}
参考结果:
a=12345678848.000000,b=12345678848.000000
a=1.23457e+10,b=1.23457e+10
4、已知:
a=2,b=3,x=3.9,y=2.3(a,b整型,x,y浮点),计算算术表达式(float)(a+b)/2+(int)x%(int)y的值。
试编程上机验证。
(要求文件名:
2_4.c)
提示编程要点:
(1)先判断结果值类型,可设置一个此类型的变量用于记录表达式结果,本例用r存放结果;
(2)程序先给几个条件变量赋初值,然后将表达式赋值给变量r;
(3)最后打印变量r的值就是表达式的值。
参考程序:
#include
main()
{inta=2,b=3;
floatx=3.9,y=2.3;
floatr;
r=(float)(a+b)/2+(int)x%(int)y;
printf("%f\n",r);
}
参考结果:
3.500000
思考:
为什么是这个结果?
5、分析下面程序结果,并上机验证。
(要求文件名:
2_5.c)
#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);
}
参考结果:
i=9,j=11,m=9,i=10
实验三:
简单的程序设计及逻辑结构程序设计(2学时)
一、实验目的和要求:
(1)掌握C语言中使用最多的一种语句——赋值语句的使用方法。
(2)掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。
(3)了解C语言表示逻辑量的方法。
(4)学会正确使用逻辑运算符和逻辑表达式。
(5)熟练掌握if语句和switch语句。
二、实验内容:
可选做以下题目:
(1)掌握各种格式转换符的正确使用方法。
(2)编程序,用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和printf函数输出这两个字符。
(3)编程序:
给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。
90分以上为A,81~89分为B,70~79分为C,60~69分为D,60分以下为E。
(4)编程序:
输入一个不多于5位的正整数,要求:
①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字。
三、实验步骤、过程:
(1)启动TurboC集成开发环境。
(方法与实验1相同)
(2)完成或选做上面4个程序题。
(编辑、编译连接、运行程序,步骤与实验1相同)
注意:
经常用“File”-“Save”(热键F2)保存源程序以免意外导致源程序丢失。
(3)退出TurboC集成开发环境,关机。
四、源程序清单、测试数据、结果。
(1)掌握各种格式转换符的正确使用方法。
请调试课本第4章习题4.5、4.6题,并给出结果。
参考结果:
(习题4.5)
main()
{inta=5,b=7;
floatx=67.8564,y=-789.124;
charc='A';
longn=1234567;
unsignedu=65535;
printf("%d%d\n",a,b);
printf("%3d%3d\n",a,b);
printf("%f,%f\n",x,y);
printf("%-10f,%-10f\n",x,y);
printf("%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n",x,y,x,y,x,y);
printf("%e,%10.2e\n",x,y);
printf("%c,%d,%o,%x\n",c,c,c,c);
printf("%ld,%lo,%x\n",n,n,n);
printf("%u,%o,%x,%d\n",u,u,u,u);
printf("%s,%5.3s\n","COMPUTER","COMPUTER");
}
参考结果:
(习题4.6)
main()
{inta,b;
floatx,y;
charc1,c2;
scanf("a=%db=%d",&a,&b);
scanf("%f%e",&x,&y);
scanf("%c%c",&c1,&c2);
}
(2)编程序,用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和printf函数输出这两个字符。
(要求文件名:
3_2.c)
参考程序:
#include
main()
{charc1,c2;
c1=getchar();c2=getchar();
putchar(c1);putchar(c2);
printf("\n%c,%c",c1,c2);
}
(3)编程序:
给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。
90分以上为A,81~89分为B,70~79分为C,60~69分为D,60分以下为E。
(要求文件名:
3_3.c)
参考程序:
#include"stdio.h"
main()
{intscore,s;
chargrade;
printf("pleaseinputscore:
");
scanf("%d",&score);
s=score/10;
switch(s)
{case10:
case9:
grade='A';break;
case8:
grade='B';break;
case7:
grade='C';break;
case6:
grade='D';break;
case5:
case4:
case3:
case2:
case1:
case0:
grade='E';break;
}
printf("score=%d,grade=%c\n",score,grade);
}
(4)编程序:
输入一个不多于5位的正整数,要求:
①求出它是几位数,并输出;②分别输出每一位数字;③按逆序输出各位数字。
(要求文件名:
3_4.c)
参考程序:
main()
{longa,b,c,d,e,num;
scanf("%ld",&num);
if(num>=0&&num<=99999)
{a=num/10000;
b=num%10000/1000;
c=num%10000%1000/100;
d=num%10000%1000%100/10;
e=num%10000%1000%100%10;
if(a!
=0)
printf("5=%ld,%ld,%ld,%ld,%ld",a,b,c,d,e);
elseif(b!
=0)
printf("4=%ld,%ld,%ld,%ld",b,c,d,e);
elseif(c!
=0)
printf("3=%ld,%ld,%ld",c,d,e);
elseif(d!
=0)
printf("2=%ld,%ld",d,e);
elseif(e!
=0)
printf("1=%ld",e);
else
printf("0=0");
}
}
实验四:
循环控制程序设计(2学时)
一、实验目的和要求:
(1)结合程序掌握一些简单的循环语句的算法。
(2)熟悉掌握用while语句,do-while语句和for语句实现循环的方法。
(3)掌握在程序设计中用循环的方法实现一些常用算法。
二、实验内容:
(可选做以下题目)
(1)输入两个正整数m和n,求它们的最大公约数和最小公倍数。
(2)从键盘输入一个int类型的正整数,输出它的所有因子。
如输入6,输出1,2,3;输入20,输出1,2,4,5,10。
(3)输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。
(4)输出100到1000之间的所有水仙花数。
(5)猴子吃桃问题。
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩一个桃子了。
求第一天共摘了多少桃子。
三、实验步骤、过程:
(1)启动TurboC集成开发环境。
(方法与实验1相同)
(2)完成或选做上面5个程序题。
(编辑、编译连接、运行程序,步骤与实验1相同)
注意:
经常用“File”-“Save”(热键F2)保存源程序以免意外导致源程序丢失。
(3)退出TurboC集成开发环境,关机。
四、源程序清单、测试数据、结果。
(1)输入两个正整数m和n,求它们的最大公约数和最小公倍数。
(要求文件名:
4_1.c)
参考程序:
#include
main()
{intx,y,i,m,max;
scanf("%d,%d",&x,&y);
if(x>y)
m=x;
else
m=y;
for(i=1;i<=m;i++)
{if((x%i==0)&&(y%i==0))
max=i;
}
printf("%d\n",max);
printf("%d\n",x*y/max);
}
(2)从键盘输入一个int类型的正整数,输出它的所有因子。
如输入6,输出1,2,3;输入20,输出1,2,4,5,10。
(要求文件名:
4_2.c)
参考程序:
#include
main()
{intx,i;
scanf("%d",&x);
for(i=1;i {if(x%i==0) printf("%d\n",i);} } (3)输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。 (要求文件名: 4_3.c) 参考程序: #include #include main() {charc; intletter=0,digit=0,space=0,other=0; printf("pleaseinputstring: "); while((c=getchar())! ='\n') {if(c>='a'&&c<='z'||c>='A'&&c<='Z') letter++; elseif(c>='0'&&c<='9') digit++; elseif(c=='') space++; elseother++; } printf("%d,%d,%d,%d\n",letter,digit,space,other); } (4)输出所有的“水仙花数”。 所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。 (要求文件名: 4_4.c) 参考程序: #include main() {intge,shi,bai,number; for(number=100;number<1000;number++) {bai=number/100; shi=(number%100)/10; ge=number%10; if(number==bai*bai*bai+shi*shi*shi+ge*ge*ge) printf("\nnumber=%d\n",number); } } (5)猴子吃桃问题。 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。 以后每天早上都吃了前一天剩下的一半零一个。 到第10天早上想再吃时,见只剩一个桃子了。 编程序求第一天猴子共摘了多少桃子。 (要求文件名: 4_5.c) 参考程序: #include main() {intday,qian,hou=1; for(day=9;day>=1;day--) {qian=(hou+1)*2; hou=qian; } printf("%d\n",qian); } 实验五: 数组(2学时) 一、实验目的和要求: (1)掌握一维数组和二维数组的定义、赋值和输入输出的方法。 (2)掌握字符数组和字符串的使用方法。 (3)掌握与数组有关的算法(特别是排序算法)。 二、实验内容: 可选做以下题目: (1)用选择法(或冒泡法)对10个整
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 实验 指导书