《C语言实验指导书》.doc
《《C语言实验指导书》.doc》由会员分享,可在线阅读,更多相关《《C语言实验指导书》.doc(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言程序设计实验指导书(修订1)计算机科学系2007年3 月 1 日目 录实验1 运行简单的C程序2实验2 练习使用基本数据类型和算术运算符6实验3 使用输入、输出函数7实验4 选择结构程序设计10实验5 分支语句的使用-模拟ATM取款机界面13实验6 循环语句的使用猜数字游戏14实验7 一维数组的应用15实验8 二维数组的应用18实验9 建立和使用函数20实验10 函数参数的传递22实验11 嵌套与递归调用的实现24实验12 练习多文件程序的编译和运行25实验13 结构体和共用体27实验14 文件29实验1 运行简单的C程序一 实训目的:1. 熟悉TC运行环境2. 练习简单C程序的编写3.
2、 熟练掌握C程序的上机运行步骤二实训内容:1. 实验要求:编程求37+29的值,熟悉TC运行环境2. 分析与设计: 编写一个main()函数,将数据37和29分别用变量保存,然后用另一个变量存放两个变量的和,最后将和变量的值输出。 3. 源代码:有下面的程序,目的是想计算两个整数的和。:main()int a,b;sum;a=37;b=29;sum=a+bprintf(“sum=%d”,s);调试:、静态地检查上述程序,改正程序中的错误。、在编辑状态下照原样键入上述程序。、编译并运行上述程序,记下所给出的出错信息。、按照事先静态检查后所改正的情况,进行纠错。、再编译执行纠错后的程序。如还有错误
3、,再编辑改正,直到不出现语法错误为止。6、标识符和程序的逻辑错误。修改上面的程序,观察运行结果: 将程序中的表达式“a+b”的“a”改为“A”,然后运行程序。 将程序中的表达式“a+b”修改为“a-b”,然后运行程序。第一项内容用于验证C语言中标识符的特性,当用“A”取代“a”后,程序将不能运行,说明作为标识符“A”和“a”是不等价的。请读者自己进行类似的替换,然后察看程序的运行结果。如,将程序中的“printf”改为“PRINTF”,然后运行程序看结果。第二项实验内容说明了程序的逻辑错误情况。若把“a+b”误写为“a-b”,程序会顺利编译运行,但显然不是加法运算的结果。附Turbo C 2.
4、0集成环境的使用:在主教材的第1章,我们介绍了使用TC2.0上机实现一个C语言程序的一般步骤:编辑-编译-连接-运行。按照所述步骤,操作如下: 启动TC 2.0。 使用“FileNew”命令或直接使用“Edit”命令,使TC 2.0进入编辑状态,录入编辑上面的源程序。 源程序录入完毕后,使用“CompleCompile to OBJ”对源程序进行编译,如果源程序存在语法错误,这时编译系统会把程序中的错误指示出来。发现错误后,需要立即修改源程序,然后重新编译。编译 编译无误后,使用“CompleLink EXE file”连接目标代码,生成可执行文件,这个文件将由运行命令“Run”运行。上面的、
5、两个步骤,也可以使用“CompleBuild all”或“F9”功能键一步完成。连接目标代码 连接完成后,使用“Run”命令,或者使用“Ctrl+F9”组合键运行程序。运行最后程序运行过程瞬间结束,要察看程序运行结果,需要切换到运行屏幕,用组合健“Alt+F5”实现。按Alt+F5后将看到屏幕显示如下结果:按任意键,屏幕返回程序状态。小技巧:对一个未经编译和连接的源程序,TC2.0也可以直接运行它,因此,运行一个C语言程序时,编译和连接的操作步骤可以省略,即编辑好一个源程序后,直接使用Run命令运行它。此时,并非编译、连接过程不存在了,而是“Run”命令运行程序时,因找不到当前程序的可执行文件
6、,而自动启动编译命令和连接命令。只有当编译、连接正常进行后,程序才会被运行。因此,上面的过程可以简化为两个操作步骤: 启动TC2.0,录入编辑源程序。 按“Ctrl+F9”组合键运行程序。特别提示: 保存源程序是一个重要的操作环节。在编辑源程序的过程中或源程序编辑完成后,及时保存源程序是十分必要的,但初学者往往忽视这一环节。操作步骤如下: 按“F2”功能键,出现图1-1所示屏幕。白色背景窗口显示了系统为当前程序设定的默认存储位置(c:myc,该存储位置因系统而异,可以改变),将默认文件名NONAME.C改为自己命名的f1.c。实验2 练习使用基本数据类型和算术运算符一 实训目的:1练习使用基本
7、类型的变量进行编程2练习使用C的运算符二实训内容: 1实验要求 :熟练使用运算符 (%,+,-) 2分析与设计 : 求余运算符要求两个操作数都必须是整数;+和- 要看清是先使用还是先自增(减)3源代码:程序1:取出一个三位整数的各个位,并输出main()int x=123; int c1,c2,c3; c1=x%10;c2=x/10%10;c3=x/100;printf(“%d,%d,%dn”,c3,c2,c1);运行结果为:1,2,3调试:1) 若将最后一句改为printf(“%d%d%d”,c3,c2,c1);结果会是什么?与printf(“%d”,x);输出的结果有什么不同.程序2:练习
8、自增和自减运算符的使用main()int x=2,y,z;y=(+x)+(x+)+(+x);z=(x-)+(-x)+(x-);printf(“x=%d,y=%d,z=%dn”,x,y,z);运行结果:x=2,y=12,z=12调试: 如果再加一句printf(“%d,%d,%dn”,+z,z+,+z);运行结果是什么:这一句用于验证,printf函数输出表列中的求值顺序。不同的编译系统不一定相同,可以从左到右,也可从右到左。Turbo C是按从右到左进行的实验3 使用输入、输出函数一 实训目的:熟练使用格式输出函数printf()和格式输入函数scanf() 二实训内容:1. 实验要求: 格式
9、输入函数scanf()和格式输出函数printf()的使用2. 分析与设计: 输入函数中的普通字符需要原样输入,并注意分隔符的使用;输出函数中的格式控制符和输出项数要一一对应。3. 源代码:程序1:为使得a=1,b=2,c=A,d=5.5,在键盘上如何输入?#include main()int a,b;char c;float d;scanf(“a=%d b=%d”,&a,&b);scanf(“%c %e”,&c,&d);调试:1) 加上输出函数语句,以帮助核对输出结果,输出语句为:printf(“a=%d,b=%d,c=%c,d=%f”,a,b,c,d);2) 运行程序,输入:a=1 b=2
10、A 5.5 会产生什么结果,和要求值是否相同?3) 若输入 a=1 b=2A 5.5会产生什么结果,和要求值是否相同?程序2:编辑运行下面的程序,并根据执行结果分析程序中各个语句的作用#include main() int a, b; float d, e; char c1, c2; double f, g; long m, n; unsigned int p, q; a=61; b=62; /*第十行*/ c1=a; c2=b; d=5.67; e=-6.78; f=1234.56789; g=0.; m=50000; n=-60000; p=32768; q=40000; printf(a
11、=%d,b=%dnc1=%c,c2=%cn,a,b,c1,c2); printf(d=%6.2f,e=%6.2fn,d,e); printf(f=%15.6f,g=%15.10fn,f,g); printf(m=%ld,n=%ldnp=%u,q=%un,m,n,p,q);调试: 运行所给出的源程序,对照结果分析各语句的作用。 将程序中的第二、第三个printf语句修改为如下形式,然后运 行程序,察看结果。 printf(d=%-6.2f,e=%-6.2fn,d,e); printf(f=%-15.6f,g=%-15.10fn,f,g); 将上述两个printf语句进一步修改为如下形式,然后运行
12、程序, 察看结果。 printf(d=%-6.2fte=%-6.2fn,d,e); printf(f=%-15.6ftg=%-15.10fn,f,g); 将程序的第10-15行修改为如下语句:a=61;b=62;c1=a;c2=b;f=1234.56789;g=0.;d=f;e=g;p=a=m=50000;q=b=n=-60000;运行程序,并分析结果。 修改中的程序,不使用赋值语句,而用下面的scanf语句为a、 b、c1、c2、d、e输入数据:scanf(%d%d%c%c%f%f,&a,&b,&c1,&c2,&d,&e); 请按照程序原来中的数据,选用正确的数据输入格式,为上述 变量提供数
13、据。 使用如下数据输入格式,为什么得不到正确的结果? 输入数据:61 62 a b 5.67 -6.78 进一步修改中使用的程序,使f和g的值用scanf()函数输入。 进一步修改上面的程序,使其他所有变量的值都改用scanf() 函数输入。 参考程序#include void main() int a, b; float d, e; char c1, c2; double f, g; long m, n; unsigned int p, q; printf(Input(a,b,c1,c2,d):); scanf(%d%d%c%c%f%f,&a,&b,&c1,&c2,&d,&e); print
14、f(Input(f,g):); scanf(%lf%lf,&f,&g); printf(Input(m,n,p,q):); scanf(%ld%ld%u%u,&m,&n,&p,&q); printf(a=%d,b=%dnc1=%c,c2=%cn,a,b,c1,c2); printf(d=%-6.2f,e=%-6.2fn,d,e); printf(f=%-15.6f,g=%-15.10fn,f,g); printf(m=%ld,n=%ldnp=%u,q=%un,m,n,p,q); 数据输入格式Input(a,b,c1,c2,d):61 62ab5.67 -6.78 Input(f,g):1234
15、. 0. Input(m,n,p,q):50000 -60000 32678 40000 修改中的程序,使c1、c2的数据用getchar()函数输入,用 putchar()函数输出。 可按照如下方法修改程序:将程序中的“scanf(%d%d%c%c%f%f,&a,&b,&c1,&c2,&d,&e);”语 句用以下四个语句替换:scanf(%d%d% ,&a,&b);c1=getchar();c2=getchar();scanf(%f%f,&d,&e); 使用与相同的数据输入格式输入数据。 请分析:使用如下格式为a、b、c1、c2输入数据时会出现什么结果?运行程序验证所分析的结论。输入数据格式
16、:61 62 a b 程序3:判断下面程序的运行结果。 main()int x=3,y=2,z=1;printf(“%d,%dn”,(+x,y+),z+2);运行结果:2,3分析得到此结果的原因。实验4 选择结构程序设计一、实训目的1学会使用逻辑表达式表示条件的方法。2掌握if语句三种形式的用法。3掌握switch语句的用法。4学会设计有实际价值的分支结构程序。二、实训内容1 实验要求:A) 简单if语句的用法。编写调试程序:从键盘输入一个任意大小的实数x,如果x满足如下条件,则输出x及其绝对值。输出x的条件:-29.5x29.5 ;B) if-else语句的用法。修改上面的程序,使得x满足-
17、29.5x29.5时输出x及其绝对值,否则只输出x。C) switch语句的应用。要求从键盘任意输入两个数值,然后输入一个四则运算符,自动完成运算后输出结果。2分析与设计:A) 简单if语句的用法,正确表示条件,将数学不等式-29.5x29.5表示为如下逻辑表达式:x=-29.5&x=-29.5)&(x=29.5)也可以使用x的绝对值形式表示,如下:fabs(x)=-29.5&x=-29.5&x=-29.5&x=29.5) printf(x=%ft|x|=%fn,x,fabs(x); else printf(x=%fn,x);输入数据时,至少应考虑的几种情况 输入满足输出条件的数,包括正数、负
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言实验指导书 语言 实验 指导书
限制150内