盐城纺织职业技术学院
《C语言》
实验指导书适用班级:机电1011、1012
机电工程系计算机教研室
殷士勇
2012年2月
实验一Turbo C 2.0集成开发环境
一、实验目的及要求:
1.了解TURBO C软件的窗口界面,熟练掌握TC的菜单命令及相应的键命令,并在TC环境下掌握如何编辑、编译、连接、运行一个C程序并如何保存和修改C语言的源程序。
2.通过运行一个简单的C程序过程,逐步了解C程序的基本结构及特点。
二、实验内容及步骤
1.熟悉并掌握TC环境下的菜单功能及命令键的使用。
如上图是用户进入TC后的主菜单界面,下面是常用的命令及功能键:
①File菜单
File的下拉菜单中有9个子命令,其功能是完成文件的创建、存、取、退出等。
Load :该命令为装载命令,其功能是将已存盘的文件调入到当前所编辑的屏幕中。
Pick :选择最近已编辑过的源程序文件。
New :用于创建一个新的文件。
Save :用于保存当前所编辑的文件。
Write to :可以将当前的文件以另外一个文件名存盘。
OS shell :从Turbo C切换到DOS提示符下,可用EXIT命令返回。
Quit :退出Turbo C,回到DOS提示符下。
②常用的编辑键(在Edit状态下):
:删除光标所在的字符。
:插入、改写转换键。
③常用热键的使用
用
●
●
●
●F3:装入一个文件(对应File菜单中的“load”命令)
●F1:显示当前位置的帮助信息。
●F4:程序运行到光标所在行。(对应RUN菜单中的“Go to cursor”命令)
2.进入TC环境后,编缉一个简单源程序
程序如下:
main()
{
printf(“Hello!How are you?”);
}
完成如下功能:
a.利用TC的编辑菜单,输入该源程序,且进行保存(注意保存的路径)。
b.对输入的源程序进行编译和运行,得到输出结果。一、实验目的:
掌握在集成环境中编辑、编译、连接和运行C程序的方法
实验二分支结构
一、实验目的
1、了解C 语言表示逻辑量的方法(以0代表“假”,以非0代表“真” )
2、 学会正确使用逻辑运算符和逻辑表达式
3、 熟练掌握if 语句和switch 语句
4、 结合程序掌握一些简单的算法
5、 学习调试程序 二、实验内容及步骤
本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。 (1).有一函数:
用scanf 函数输入x 的值,求y 值。 参考程序如下: main()
{float x,y;
scanf(“%f”,&x); if(x<1) y=x;
if(x>=1 &&x<10) y=2*x-1; if(x>=10) y=3*x-11; printf(“y=%f ”,y); }
(2). 给出一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E 。90分以上为A ,81-89分为B ,70-79分为C ,60-69分为D ,60分以下为E 。(
参考程序如下:
main( )
{int g; scanf(“%d”,&g); switch(g/10) {case 10:
case 9: printf(“A \n”); break; case 8: printf(“B \n”); br eak; case 7: printf(“C \n”); break; case 6: printf(“D \n”); break; default : printf(“E \n”); }}
??
?
??≥-<≤-<=)10(113)
101(12)
1(x x x x x x y
三、实验要求:
1、考虑各种可能的情况。
2、写出完整程序,进行调试,记录运行结果。
实验三循环结构程序设计
一、实验目的
熟悉掌握用while语句,do-while语句、for语句实现循环的方法。掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。进一步学习调试程序。
二、实验内容及步骤
1.程序填空
以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请把该程序补充完整,并上机调试运行。
main()
{float x,amin,amax;
_______(1)_________
amax=x;
amin=x;
while( ______(2)______ )
{if(x>amax)______(3)______
if(_____(4)______)amin=x;
scanf(“%f”,&x);
}
printf(“amax=%f,amin=%f”,____(5)_____);
}
结果:
(1)scanf(“%f”,&x); (2)x>=0(3)amax=x (4)x 2.程序改错 请指出下列程序中的错误,改正后上机调试、运行。 # include stdio.h main {int a,b; for(a=1,b=1;a≤100;a++) {if (b>=20) break; if(b%3=1) {b+=3; continue; } b-=5; } 结果: # include stdio.h stdio.h改为”stdio.h” main main改为main( ) {int a,b; for(a=1,b=1;a≤100;a++) a≤100改为a<=100 {if (b>=20) break; if(b%3=1) b%3=1改为b%3==1 {b+=3; continue; } b-=5; } 最后添加一个} 3.编程 编程判断一个正整数是否是回文数。所谓回文数是指左右数字完全对称的自然数。例如,121、12321、484等都是回文数。 程序代码如下: main( ) {int m,n,x,z,i,a,b,c,d,e; z=1; scanf(“%d”,&m); for(i=0; ;i++) {b=(int)(m/z); z=z*10; if(b>0 && b<10) {a=i+1; break; } } c=a-1; for(z=1;c!=0;c--) z=z*10; e=m; for(a=a-1,d=1,n=0;a>=0;a--) {x=(int)(e/z); e=e-(int)(x*z); n=d*x+n; d=d*10; z=z/10; } if(m==n) printf(“shi”; else printf(“fou”); } 三、实验要求: 1、理解for,while,do-while的具体用法。 2、写出完整程序并进行调试。 实验四函数 一、实验目的 1.掌握函数定义(返回、函数名、参数、函数体),调用。 2.掌握函数的声明 二、实验内容及步骤 1.函数声明的使用 (1)输入下面程序,编译、连接,如果没有输错,应该提示成功。运行获得正确结果100。float fun(float f) { return f*f; } void main() { float k; k=fun(10.0); printf("%f\n",k); } (2)把fun函数移到main()函数之后,再次编译,提示错误: (3)在main()函数前增加函数声明float fun(float f);,再次编译,提示成功并能正确运行获得结果。 思考:在什么情况需要函数声明? 2.编制函数fun,其功能是:删除一个字符串中指定的字符。 源程序清单如下: #include void fun(char [],char); void main() { char s[100],c; gets(s); c=getchar(); fun(s,c); puts(s); } void fun(char s[],char c) { int i,j; for(i=0; s[i]!='\0'; i++) { if(s[i]==c) { for(j=i; s[j]!='\0'; j++) s[j]=s[j+1]; } } } 测试运行: I am a teacher,you are a student e I am a tachr,you ar a studnt 三、实验要求 1、掌握函数声明的使用。 2、要求:原始字符串在主函数中输入,处理后的字符串在主函数中输出。 例如:输入“I am a teacher,you are a student”和‘e’输出“I am a tachr,you ar a studnt”。 实验五数组 一、实验目的 1、理解一维数组和二维数组的概念 2、掌握一维数组和二维数组的定义、初始、数组元素引用。 3、掌握一维数组和二维数组的输入/输出。 4、掌握与数组有关的算法。 二、实验内容及步骤 1、编制程序,求Fibonachi数列的前10项。 提示:Fibonachi的第1,2项分别为1,1。其后任何一项满足ai=ai-2+ai-1。 main() { int f[11]={0,1,1},n; for(n=3; n<=10; n++) f[n]=f[n-1]+f[n-2]; for(n=1; n<=10; n++) printf("%d ",f[n]); printf("\n"); } 程序结果: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2、编写找出1-100之间能被7或11整除的所有整数,存放在数组a中,并统计其个数。要求以每行排列5个数据的形式输出a数组中的数据。 main() { int n=0,a[100],i; for(i=1; i<=100; i++) { if(i%7==0||i%11==0) { a[n]=i; n++; } } printf("n=%d\n",n);