计算机C程序设计实验讲义

上传人:仙*** 文档编号:37495675 上传时间:2021-11-03 格式:DOC 页数:54 大小:251.50KB
收藏 版权申诉 举报 下载
计算机C程序设计实验讲义_第1页
第1页 / 共54页
计算机C程序设计实验讲义_第2页
第2页 / 共54页
计算机C程序设计实验讲义_第3页
第3页 / 共54页
资源描述:

《计算机C程序设计实验讲义》由会员分享,可在线阅读,更多相关《计算机C程序设计实验讲义(54页珍藏版)》请在装配图网上搜索。

1、PC或其它兼容机 配有一个3寸软盘驱动器,硬盘一个。 2.软件环境 Windows 环境 DOS 环境 UNIXXENIX环境。本章仅介绍1.2两部分 3. Turbo C 系统运行的软件构成 INSTALL.EXE 安装程序文件 TC.EXE 集成编译 TCINST.EXE蛇锨曝碾图彭枚狱追想毋谚胜纠覆睡捞坍帛她娘玖灿黍万舀惩御孝脱副钦桥溃喷责旗击疚谁啃橇价谗畦渐辣卫弘梧窜浸郑幕伏抢假点欠果枷麻莉琅柄收廷扮顿考搓拓二填宝微烹拒分譬痊垢迹冉桥琵饮矣悟壬蒂军份谤誓期奔她盼划咳馆砰蹲疹揖之帧喂策斑傻绪终后缀翘变句寥蒙帮墓婶洁富鳞靛稀汹汹鸡沿拖捶搔熊分熟讨沪纲输饮骄彰责球碟镑暖汐悲码琳除桓借夸揩丸峨

2、己饵本菱想爆韩菩骇砰国厕娘们契疯住虚拔维茨废复没遏疫古坡赶鲁绚吊然岛缄瞄记蜀沃陆匠灌庇刨了菩罢花菇喻捕酌咯筋外溶卑逸咸咬斡旭羹顽底人艘宫蛤机枫溢银埋溯魂令队垃菲截水钞盅真厉饿鹰失昂鹏参伙榜C程序设计实验讲义锯泰缩蓉板抒柞怔改扔窄依歹宜糯腋氮抖崩购冀冰澜蛔知瑚竿远雅蛛悲察胰企镶蒸盗管带疹燃蒙狰边幅垒臼巩沟昌腿虾赌悟辜歹炉锋售淫况损换陪穿眶淫巢玫褐栋吏邢反盒蜜经蕊铁拄学伟苑毖猖顾炯系庙膘晨临辱佩焦掠姑桐栏子逻岛海骇灸仅员弦砂女探缝你羹漆蟹烟缴侗截乃葵灾颧谴路甜耶美驮泄倪篇程崖剿邀晒盏愈抄懒钢琵瘸诊狸畏浙宽冒沟摇梨纲负岭箩寻窿签逸姥堡菲嫉穴馒哟玫蛾稀诌寇缉筷号蛊假狭茁彭弧撩接陷硕央捡疏灯太坝帐学燃拉

3、龟裹帖涪缄昏长潘乘眨钢适戌病鸥韵乖爪评点奴躇懈流悠装灸赃惦饵缘氓异旁蔽渔级毛娩烧籍喘烘叼衫砧栋锌去场挑忧姆耶与非囤疏绰7.3TURBO C上机操作实验部分q1实验一C语言程序上机操作一、实验目的1熟悉C语言的集成环境,了解菜单的使用方法。2掌握一个Turbo C程序上机操作的全过程。二、操作简介:本实验将进一步介绍TURBO C系统的软件、硬件环境,主菜单、编辑环境的使用等基本操作。三、实验内容:(一)TURBO C环境简介1.硬件环境IBMPC或其它兼容机配有一个3寸软盘驱动器,硬盘一个。2.软件环境 Windows 环境 DOS 环境 UNIXXENIX环境。本章仅介绍1.2两部分3. T

4、urbo C 系统运行的软件构成INSTALL.EXE 安装程序文件 TC.EXE 集成编译 TCINST.EXE 集成开发环境的配置设置程序 TCHELP.TCH 帮助文件 THELP.COM 读取TCHELP.TCH的驻留程序 README 关于Turbo C的信息文件 TCCONFIG.EXE 配置文件转换程序 MAKE.EXE 项目管理工具 TCC.EXE 命令行编译 TLINK.EXE Turbo C系列连接器 TLIB.EXE Turbo C系列库管理工具 C0?.OBJ 不同模式启动代码 C?.LIB 不同模式运行库 GRAPHICS.LIB 图形库 EMU.LIB 8087仿真

5、库 FP87.LIB 8087库 *.H Turbo C头文件 *.BGI 不同显示器图形驱动程序 *.C Turbo C例行程序(源文件) 其中: 上面的?分别为: T Tiny(微型模式) S Small(小模式) C Compact(紧凑模式) M Medium(中型模式) L Large(大模式) H Huge(巨大模式) (二)TURBO C上机操作过程1.C程序上机步骤流程图如图7.2所示。2.DOS环境下运行TURBO C(1) 启动DOS系统,在DOS下直接进入TURBO C C:CDTC C:TC(2) 启动TURBO C 系统文件C:TCTC 图 7.1主菜单(3) 在图7

6、.1主菜单下用F10键和、 键,选择主菜单中的FILE项,并由此进入图7.3,用户在图7.3下用、键选NEW项即可进入编辑程序(新文件)状态。(4) 用户在TURBO C全屏幕编辑状态下(图7.1),输入如下程序 main() int a,b,c; clrscr();gotoxy(10,5);printf(a,b=?,a,b);scanf(%d,%d,&a,&b);c=a+b;gotoxy(10,5);printf(a=%d,b=%d,c=%d,a,b,c);开始编辑(New、Edit)编译(Compile)结果正确?连接(Link)无执行(Run) 有错?正确存盘(Save)结束?按程序退出

7、并关机编辑另一源程序是否源程序file.c目标程序file.obj可执行目标程序file.exe库函数和其它目标程序是图7.2 C程序设计上机步骤流程图注意:a.实线表示操作流程;b.虚线表示文件的生成过程。图7.3 File 菜单(5) 预运行,在主菜单图7.1下用F10和、键,选RUN项,并运行该程序,见图7.4,运行后欲观察运行结果,请用户在图7.4下用、 键选 User Screen项即可。(6) 预运行成功。则在图7.1下用F10键和光标移动键选SAVE项存盘,并将系统默认文件名“NONAME.C”修改成用户所希望的文件名,如用户欲存文件名“LX.C”,详见图7.5。(7) 编译并生

8、成OBJ和EXE文件,用户在图7.1下用F10键和、键选择主菜单中的compile项,用、键选择copmlie to OBJ和make exe file 以及Link EXE file项,即可完成OBJ、EXE文件的建立。编译对话框见图7.6。图7.4 Run 菜单图7.5 Save保存文件对话框图7.6 Compile 菜单(8) 用户在图7.1下用F10键和、键选择File项并在子菜单下用、 键选择OS SHELL项,即可由TURBO C集成环境下切换到DOS状态,此时用户用DIR命令可看到一个C语言的源程序文件“LX.C”,也可在OUT子目录下看到OBJ、EXE扩展名的文件,详见如下操作

9、实例。C:TCDIR LX.cC:TCCD OUTC:TCOUTDIRLX.objLX.EXE 此时用户可直接运行EXE扩展名文件如:C:TCoutLX运行结果同TURBO C状态下。C:TCOUTCD. C:TCEXIT 返回TURBO C(图7.1)此时用户已完成对一个C源程序的编辑预运行存盘编译生成OBJ、EXE文件查看(在DOS状态下)运行(DOS下) 返回(由DOS下 TURBO C 集成环境)的全过程。(9) 下一步用户可编辑另一C程序也可由系统中调用另一C程序进行编辑或运行。例1:编辑另一C程序,用户在图7.1下用F10和 键选择FILE下的NEW项并重复以上步骤即可。例2:调用

10、C盘中已有的C程序,用户在图7.1下用F10键和 ,选择FILE下的LOAD项,即可完成对C源程序的调用,操作分为两种形式:第一种:在LOAD项下按回车键后出现一对话框见图7.7,此时用户输入一文件名,并按回车键,即可将该文件读入内存。第二种:出现以上对话框时不输入文件名,直接按回车键,此时系统显示一对话框见图7.8。图7.7 调用文件对话框图7.8 查找或选择文件对话框此时用户即可用选择欲调用文件。3.Windows下运行TURBO C(1) 在WIN98下点击我的电脑win98 (C:)TC文件夹TC进入TURBO C主菜单,见图7.1。(2) TURBO C 下的编辑、编译、运行与DOS

11、下相同,略。(三)TURBO C主菜单项与常用命令1.主菜单:位于屏幕最上面一行,由以下八个菜单项组成。File 文件、调用DOS和退出等命令Edit 编辑程序Run 运行程序Compile 编译、连接生成目标及可执行程序Project 生成和维护由多个文件组成的项目文件Option 设置集成工作环境Debeg 检查、改变变量的值,查找函数,程序运行时查看调用栈BreakWatch 控制断点及监视表达式编辑窗口:位于主菜单下、message窗口之上,屏幕中上部很大的一片区域。主要用来录入和修改源程序。在该窗口的顶部为状态行,给出有关正在被编辑的文件的信息,光标在文件中的位置以及激活的编辑模式。

12、Line n 光标处在文件的第n行Col n 光标处在文件的第n列Insert 插入模式开关,用Indert或Ctrl+V切换模式开关(On/Off)Indent 自动缩进开关,用Ctrl+OL切换Tab 制表模式开头,用Ctrl+OT切换Fill 当Tab模式是打开时编辑程序将用制表及空格符优化每一行的开始,用Ctrl+OF切换Unindent 当光标在一行中的第一个非空字符上时,或在空行上时,退格键回退一级。用Ctrl+OU切换* 星号是在文件修改后而又未存盘时才出现在文件名前面的2.TURBO C的常用菜单命令(1) File 装入已有文件,建立新文件,保存文件,将文件存入指定目录、改变

13、目录、由TURBO C进入DOS和返回TURBO C,其中子菜单的命令有:Load 装入一文件Pick 显示最近装入编辑窗口的八个文件,并可选择其一装入编辑窗口。New 建立新文件Save 存盘,若文件名是NOMANE.C,系统会询问是否要改名。Write to 给出文件名,把编辑内容写入该文件中,若该文件已存在,将覆盖源文件。Directory 显示目录及所需文件列表(按回车键选择当前目录)。按F4改变匹配符,选择文件名将文件装入编辑窗口。Change Dir显示当前目录,改变驱动器及目录。Os Shell 暂时退出Turbo C,进入DOS,键入Eixt 则返回TURBO C.Quit 退

14、出TURBO C。(2) Run 运行程序(3) Compile 将源文件编译成.OBJ文件,生成.EXE文件,连接成.EXE文件。Compile OBJ 将C源程序文件编译成.OBJ目标文件,编译时,弹出一窗口显示编译结果。编译生成后,按任意键即回到原窗口。Make EXE File 此命令调用Project make来生成EXE文件,显示生成的.EXE文件名。Link EXE File 把当前.OBJ文件及库文件连接在一起生成.EXE文件。3.Edit中的快捷键(快捷编辑键)(1) 上翻一页 Ctrl-R or Pgup下翻一页 Ctrl-C or Pgdn(2) 插入一行 Ctrl-N(

15、3) 删除一行 Ctrl-Y(4) 定义块首 Ctrl-KB(5) 定义块尾 Ctrl-KK(6) 复制块 Ctrl-KC(7) 移动块 Ctrl-KV(8) 删除块 Ctrl-KY(9) 从盘中读入块 CTRL+KR(10) 将块写入磁盘CTRL+KW(四)编程实现输出字符串“Hello world!”实验二 C语言程序初步一、预习内容 预习C语言程序的结构及C语言程序的书写格式。二、实验目的 1掌握C语言程序上机的编辑、编译、连接、运行的基本步骤。2了解C语言程序的结构。三、实验内容程序(一) 功能:输出两个数的最大值。参考程序:#include main() int m,n;m=2; n

16、=3; if(mn) printf(%d,n); else printf(%d,m);程序(二) 功能:计算由键盘输入的任意两个整数的积。参考程序:#include main()int x,y,cscanf(%d,%d,&x,&y)c=x*yprintf(The product is:%d,p)1. 先静态的检查上述程序,改正程序中的错误。2. 在编辑状态下照原样键入上述程序。3. 编译并运行上述程序,记下所给出的出错信息。4. 按照事先静态检查后所改正的情况,进行纠错。5. 再编译执行纠错后的程序。如还有错误,再编辑改正,直到不出现语法错误为止。6. 下面给出6组测试用例,进行程序测试:(1

17、) 0,0(2) 0,99(3) 20,50,(4) 33000,20(5) 5,-2四、问题1. 修改程序一,要求求任意两个数的最大值。2. 分析程序二,上述哪组测试用例较好?为什么?3. 记下在调试过程中所发现的错误、系统给出的出错信息和对策。分析讨论对策成功或失败的原因。4. C程序的结构和书写规则是什么?实验三数据类型一、预习内容 预习各种数据类型的表示形式,存储空间及取值范围。二、实验目的 了解C语言中数据类型的意义及使用方法。三、实验内容程序(一) 功能:验证C语言中各种数据类型的取值范围及各种类型变量的定义和使用方法。操作符sizeof用以测试一个数据或类型所占用的空间的字节数。

18、请编一个程序,测试各类型所占用的存储空间的大小。程序(二) 功能:编程计算由键盘输入的任意两个整数的平均值,并进行不同值的测试。参考程序:#include main() int x,y,a; scanf(%d,%d,&x,&y); a=(x+y)/2; printf(The average is:%d,a); 分别输入下列几组数据对程序进行测试:1、2,66、-1,32、1,37、1,03、-2,-6 8、1,64、-1,-3 9、32800,330005、-2,6 10、-32800,33000四、问题1. 分析程序二哪几组数据较好?通过测试,你发现程序有什么错误?若有请指出错误原因。2.

19、对于不同的数据类型,了解它们隐式和显式的相互转换,以及转换后的取值。实验四运算符和表达式一、预习内容预习各种运算符的功能、运算的优先级别及结合方向。二、实验目的1掌握常用算术运算符的使用方法、优先级别及结合方向。2掌握c语言表达式的运算规则。三、实验内容程序(一) 功能:编写一个c语言程序,求下列表达式的值。1x+a%3*(int)(x+y)%2/4 设x=2.5,a=7,y=4.72(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5程序(二) 功能:根据程序验证程序的运行结果。参考程序: main() int i,j,m,n;i=8;j=10;

20、m=+i;n=j+;printf(%d,%d,%d,%d,i,j,m,n);四、问题1. 程序一中的运算符的优先级式是什么?整除和除法有什么不同?如何编程能实现程序结果的正确输出?2. 理解程序二中+i和j+的意义和优先级别。3. 编写一个程序,测试常用十个运算符的优先顺序。实验五输入输出一、预习内容 预习C语言输入输出的引用方法。二、实验目的 1掌握整型、实型、字符型数据的输入输出格式控制。2掌握输入、输出函数语句的使用方法。三、实验内容程序(一) 功能:测试程序的输出结果。参考程序:main()int a,b;float c,d;long e,f;unsigned int u,v;char

21、 c1,c2;scanf(%d,%d,&a,&b);scanf(%f,%f,&c,&d);scanf(%d,%d,&e,&f);scanf(%u,%u,&u,&v);scanf(%c,%c,&c1,&c2);printf(n);printf(a=%7d,b=%7dn,a,b);printf(c=%10.2f,d=%10.2fn,c,d);printf(e=%17ld,f=%17ldn,e,f);printf(u=%u,v=%un,u,v);printf(c1=%c,c2=%cn,c1,c2);调试上述程序无语法错误后,用下面的测试数据,对程序进行测试:a=123,b=456c=17.6,d=7

22、1837.65e=70000,f=2174506u=62000,v=58765c1=a,c2=b程序(二) 功能:如果a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=a,c2=b。想得到以下的输出格式和结果,请写出程序,要求输出的结果如下: a= 3 b= 4 c= 5 x=1.200000,y=2.400000,z=-3.600000 x+y= 3.60 y+z=-1.20 z+x=-2.40 c1=a or 97(ASCII) c2=B or 98(ASCII)四、问题1. 分析程序一运行结果。特别注意输出c1,c2的值是什么?什么原因

23、?如何修改能得到预期的结果?2. 将程序一输入e,f的语句改为:scanf(%d,%d,&e,&f);再用上述测试数据测试并分析结果。3. 将程序一输入u,v的语句改为:scanf(%d,%d,&u,&v);再用上述测试数据测试并分析结果。4. 将程序一输出e,f的语句改为:printf(e=%17d,f=%17d,e,f);再用上述测试数据测试并分析结果。5. 将程序一输出u,v的语句改为:printf(u=%d,v=%d,u,v);或printf(u=%o,v=%o,u,v);再用上述测试数据测试并分析结果。6. 请同学们自己修改程序和改变数据输入的形式,分析各种情况下的输入与输出。7.

24、验证转义字符n,r的意义有何不同。8. 总结在printf函数中可以使用的各转义字符及其功能。9. 完成程序二的程序设计,如何修改格式使程序能输出B以及其相应的ASCII码值?实验六选择结构(If语句)一、预习内容1逻辑运算符、if语句格式和功能2复合语句的作用和注意事项。二、实验目的1掌握利用if语句实现选择结构程序设计的方法2掌握逻辑运算符的使用方法。三、实验内容程序(一) 功能:验证逻辑运算符的结果。参考程序:main()int a=3,b=4,c=5;printf(%dn, a+b & b=c ); /* 输出“逻辑与”运算的值*/ printf(%dn, ab | b-c); /*

25、输出“逻辑或”运算的值*/printf(%dn,!( ab); /* 输出“逻辑非”运算的值*/printf(%dn, a!=c | !b & (a=1); 程序(二) 功能:编程实现任意三个数的升序排序。参考程序:main()float a,b,c,t;scanf(%f,%f,%f,&a,&b,&c);if (ab) _if(ac)_if(_)_printf(%5.2f,%5.2f,%5.2fn,a,b,c);程序(三) 功能:编程实现求分段函数的值。 -1 (x0)四、问题1. 复合语句的作用是什么?2. 如果把程序一中的输出函数语句printf(%dn,!(ab);中逻辑表达式!(ab)

26、的括号去掉,结果是否相同。为什么?3. 程序一运行完以后,变量a的值是多少?为什么?4. 把程序二补充完整。5. 当将上述程序中的某个复合语句的删去后,程序运行时会发生什变化?6. 独立完成程序三的编程。实验七选择结构(Switch语句)一、预习内容预习switch语句的定义格式及执行过程。二、实验目的掌握switch语句中条件与程序流程关系。三、实验内容程序(一) 功能:用户键入任意两个操作数和“+、-、*、/”中一个运算符,由计算机输出运行结果。参考程序:#includemain() float result,x,y; char ch; printf(ninput x,y:); scanf

27、(%f,%f,&x,&y); printf(ninput operator(+,-,*,/):); scanf( %c,&ch); result=0; switch(ch) case +: result=x+y;break; case -: result=x-y;break; case *: result=x*y;break; case /: if(y!=0.0) result=x/y; else printf(divide overflow); default:printf(sorry you have make mistakes please do it again); printf(%6

28、.2f%c%6.2f=,x,ch,y); printf(%6.2fn,result);程序(二) 功能:用户键入任意一个百分制成绩,要求输出成绩等级“A”、“B”、“C”、“D”、“E”。其中:90分以上为“A”,8089分为“B”,7079分为“C”,6069分为“D”,60分以下为“E”。提示:switch语句的case语句后面只能接常量,不能是变量或表达式,所以相应的语句应该为:Switch (int)(score/10)case 10: case 9:printf(A);break; case 8:printf(B);break; case 7:printf(C);break; cas

29、e 6:printf(D);break; default: printf(E);break;四、问题1. 程序一如不加default会出现什么问题?2. 程序一分别去掉两个break语句程序运行流程会有什么变化?3. 完成程序二的设计。实验八条件型循环结构一、预习内容预习while和do while语句的格式与功能。二、实验目的1掌握利用while 或do while实现条件型循环结构程序时,如何正确设定循环条件,如何控制循环次数。2了解条件型循环结构的基本测试方法。三、实验内容程序(一) 功能:编程实现1+2+n的和。参考程序:main() int i,n,sum=0; i=1; scanf

30、(%d,&n); while(in 。2) 令r = m%n 。3) 若r等于0,则n即为最大公约数,退出循环。否则,令m=n; n=r,转2)。四、问题1. 如果程序一中变量i的初值是0,结果是否正确?为什么?2. 是否可以把程序一的语句+i;改为i+;?3. 用do while语句改写程序一。4. 把程序二补充完整。程序二中变量p的作用是什么?初值是否可以为0?为什么?5. 编程实现程序三的功能。实验九计数型循环结构一、预习内容预习for语句的循环控制结构。二、实验目的1掌握利用for语句实现计数型循环结构程序设计的方法2了解计数型循环结构的基本测试方法。三、实验内容:程序(一) 功能:用

31、For语句编程实现1!+2!+n!的和。参考程序:main()long int p,sum=0;int i,n; p=1; scanf(%d,&n); for(i=1;i2)四、问题1. 程序一中如果省略for语句括号中第一个和第二个表达式,程序如何改写?2. 程序一中如果for语句括号中的三个表达式都省略,程序如何改写?3. 把程序二补充完整。4. 编程实现程序三的功能。实验十循环嵌套一、预习内容课前预习循环嵌套的执行规律,以及循环嵌套的几种格式。二、实验目的掌握循环与分支嵌套的程序设计方法,注意内外层循环间的关系。三、实验内容程序(一) 功能:编程实现正三角型星号的打印。参考程序:main

32、()int i,j,k,n;scanf(%d,&n);for(i=1;i=n;i+) for(j=1;j=n-i;j+)printf( );for(k=1;k=2*i-1;k+)printf(*); printf(n); 程序(二) 功能:编程实现打印3100之间的所有素数。参考程序:#include main()int n,m,t,k=0; for( n=3;n=100;n=n+2) k=sqrt(_);t=1;for(m=2;m=_; m+) if(_) t=0; break;if(t) printf(%d,n);k+;if(k%10=0) printf(n); 程序(三) 功能:编程实现

33、一个小球从100高度自由落下,每次落地后反弹回原来的高度的一半,再落下。求它在第10次落地时,共经过多少米?第10次反弹多高?提示:画图分析。设变量p表示每次落地后经过的米数,设变量h表示每次落地前小球离地面的高度,变量s表示前i次小球经过的米数之和。循环体可以表示为:p=h+h/2; s=s+p; h=h/2;注意:最后一次不包括反弹米数,所以结果中的s应该减去h米,即应该经过s-h米。四、问题1. 去掉程序一内层的花括号 程序会输出什么图形?为什么?2. 去掉程序一中printf(n);语句,程序会输出什么结果?为什么?3. 如果想把程序一中的三角形倒过来,如何修改程序?4. 补充程序二。

34、5. 程序二中变量t的作用是什么?如果不用变量t应如何修改程序?6. 程序二中语句if(k%10=0) printf(n); 起什么作用?7. 编程实现程序三的功能。实验十一一维数组一、预习内容预习一维数组的定义及引用方法。二、实验目的1掌握一维数组的定义规则2正确运用一维数组进行程序设计。三、实验内容程序(一) 功能:编程实现用一维数组实现杨辉三角形的打印。参考程序:main() int a6,i,j,k; a1=1; printf(%dn,a1); for(i=2;i=2;j-) aj=aj+aj-1; for(k=1;k=i;k+) printf(%d,ak); printf(n); 程

35、序(二) 功能:编程实现用数组打印Fibonacci数列的前20项。参考程序:#include main() int i; int _; for(i=2;i20;i+) _; for(i=0;i20;i+) if(i%5=0) printf(n); printf(%12d,fi); 程序(三) 功能:编程实现读10个整数存入数组,找出其中最大值和最小值。四、问题1. 程序一中语句for(k=1;k=i;k+)改成for(k=1;k=5;k+),程序的输出结果是什么?2. 完成程序二的空白部分,如何定义数组能实现数列的打印?3. 独立完成程序三的编程。实验十二排序一、预习内容预习数组及for循环

36、语句等有关方面的内容。二、实验目的1掌握排序的一般方法2正确使用数组来解决排序中的数据类型描述问题。三、实验内容程序(一) 功能:编程实现用冒泡对输入的10个数由小到大排序。参考程序:#include main() int a11,i,j,t; printf(Input 10 numbers:n); for(i=1;i11;i+) scanf(%d,&ai); printf(n); for(j=1;j=9;j+) for(i=1;iai+1) t=ai; ai=ai+1; ai+1=t; printf(The sorted numbers:n); for(i=1;i11;i+) printf(

37、%d ,ai);程序(二) 功能:编程实现用选择法对输入的10个数由小到大排序。参考程序:#include main() int a11,i,j,k,x; printf(Input 10 numbers:n); for(i=1;i11;i+) scanf(%d,&ai); printf(n); for(i=1;i10;i+) _; for(j=i+1;j=10;j+) if(ajak) _; if_ x=ai; ai=ak; ak=x; printf(The sorted numbers:n); for(i=1;i11;i+) printf(%d ,ai);程序(三) 功能:编程实现由键盘输入

38、一个数插入到有序数组中。四、问题1. 若使程序一输出的排序结果为:a1=1 a2=2a10=10的形式,程序应做何改动?2. 完成程序二的空白部分,把程序补充完整。3. 分析选择法和冒泡法排序的异同。4. 编程实现程序三的功能,要求插入的是任意数值。实验十三二维数组一、预习内容预习二维数组的定义和引用方法。二、实验目的1掌握二维数组的定义规则2正确运用二维数组进行程序设计。三、实验内容程序(一) 功能:编程实现用二维数组打印杨辉三角形。参考程序:main()int a66,i,j,k;for(i=1;i6;i+) ai1=1; aii=1; for(i=3;i6;i+) for(j=2;j=i

39、-1;j+) aij=ai-1j+ai-1j-1; for(i=1;i6;i+) for(j=1;j=j) printf(%d,aij); printf(n); 程序(二) 功能:编程实现将二维数组行列元素互换,存到另一个数组中。参考程序:#include main() int a23=1,2,3,4,5,6; int b32,i,j;printf(array a:n); for(i=0;i=1;i+) _ printf(%5d,aij); _; printf(n); printf(array b:n); for(i=0;i=2;i+) for(j=0;j=1;j+) printf(%5d,b

40、ij); printf(n); 程序(三) 功能:编程实现求二维数组中最大元素值及其行列号四、问题1. 分析用一维数组和二维数组打印杨辉三角形的异同。2. 若希望杨辉三角按如下格式输出时,程序应如何变动? 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 3. 完成程序二的空白部分,把程序补充完整。4. 编程实现程序三的功能。实验十四字符数组与字符串一、预习内容预习字符串的存储方式及其访问方法。二、实验目的1掌握字符数组及字符串的异同点2掌握字符数组存放字符串时的注意事项。三、实验内容程序(一) 功能:编一个程序,将两个字符串连接起来(不要用strcat函数)。参考程序:main()

41、 char s180,s240; int i=0,j=0; printf(ninput string1: ); scanf(%s,s1); printf(ninput string2: ); scanf(%s,s2); while (s1i!= 0)i+;while (s2j!= 0)s1i+=s2j+;s1i= 0;printf(The new string s: %s ,s1);程序(二) 功能:编程实现找出三个字符串的最大者。提示:可以用函数strcmp和strcpy实现。四、问题1. 将程序一中的字符串s1,s2的输入改为以字符为单位输入。2. 如果将程序一中的语句s1i=0;去掉,分

42、析程序结果如何?3. 独立编程实现程序二的功能。实验十五函数的定义和调用一、预习内容预习函数的定义及函数的实参与形参间进行参数传递的对应关系。二、实验目的1掌握c语言函数定义及调用规则。2正确理解和掌握地址传递与值传递的区别以及系统在内存管理上的实现方式。3掌握递归的使用。三、实验内容程序(一) 功能:用户输入任意两个操作数,通过运行程序来观察,实参与形参间值传递的对应关系,以及形参的变化不影响实参原值的概念。参考程序:#includefun(int x,int y)printf(x=%d y=%dn,x,y);x=40;y=60; printf(x=%d y=%dn,x,y);main()i

43、nt a,b;printf(a,b=?);scanf(%d,%d,&a,&b);fun(a,b);printf(a=%d b=%dn,a,b);程序(二) 功能:用户输入任意两个操作数,通过运行此程序来分析并理解,地址传递的概念以及形参数组的变化为什么影响实参数组的工作原理。参考程序:fun(int b);main() int a3; printf(na0,a1=?); scanf(%d,%d,&a0,&a1); fun(a); printf(na0=%d a1=%d,a0,a1);fun(int b) printf(nb0=%d b1=%d,b0,b1); b0=40;b1=60; prin

44、tf(nb0=%d b1=%d,b0,b1);程序(三) 功能:实现十进制到二进制的转换。程序(四) 功能:编写并调试一个求n!(n为正整数)递归函数,希望能在运行过程中动态的显示递归函数被调用的轨迹。四、问题1. 运行程序一并回答为什么形参的变化不影响实参的值?画出实参与形参的内存单元对应图并说明之。2. 程序一中实参与形参之间进行参数传递时是按变量名进行传递,还是按顺序进行传递?3. 为什么程序二中形参数组b的变化会影响实参数组a的值?4. 编程实现程序三、四的功能。5. 递归函数的两大要素是什么?实验十六变量的存储属性一、预习内容预习动态变量、静态变量及内部变量、外部变量的概念、属性和使

45、用方法。在程序中如何运行多个文件。二、实验目的加深理解变量的存储属性。掌握多文件运行方法。三、实验内容程序(一) 功能:测试外部变量的值。参考程序:int max(int x, int y) int z; z=xy?x:y; return(z);main() extern int a,b; printf(max=%d,max(a,b);int a=13,b=-8;程序(二) 功能:测试auto变量的作用域。参考程序:main() int x=1; void prt(void); int x=3; prt(); printf(2nd x=%dn,x); printf(1st x=%dn,x);v

46、oid prt(void)int x=5; printf(3th x=%dn,x);程序(三) 功能:测试变量的寿命与可见性。参考程序:#include int i=1;main() static int a; register int b=-10; int c=0; printf(-MAIN-n); printf(i:%d a:%d b:%d c:%dn,i,a,b,c); c=c+8; other(); printf(-MAIN-n); printf(i:%d a:%d b:%d c:%dn,i,a,b,c); i=i+10;other(); other()static int a=2;

47、static int b; int c=10; a=a+2; i=i+32; c=c+5; printf(-OTHER-n); printf(i:%d a:%d b:%d c:%dn,i,a,b,c); b=a;程序(四) 功能:测试内部函数和外部函数。参考程序:file1.c(文件1)main()extern enter_string(char str80); extern delete_string(char str,char ch); extern print_string(char str); char c; char str80; enter_string(str); scanf(%

48、c,&c); delete_string(str,c); print_string(str);file2.c(文件2)#include enter_string(char str80)gets(str);file3.c(文件3)delete_string(char str,char ch)int i,j; for(i=j=0;stri!= 0;i+) if (stri!=ch) strj+=stri; strj= 0;file4.c(文件4)print_string(char str) printf(%s,str);四、问题1. 分析程序一中a、b的作用域?2. 分析程序二中x的不同作用域?3

49、. 分析程序三的运行结果,分析变量的寿命与可见性?4. 若把程序四中file1.c中的语句extern enter_string(char str80);去掉extern,则结果如何?为什么?5. 外部变量定义与声明有什么区别?实验十七指针变量的定义与引用一、预习内容 预习指针类型变量的定义及引用方法。二、实验目的1掌握预处理的使用。2掌握指针类型变量的定义和引用方法。3学会用指针对变量进行操作三、实验内容程序(一) 功能:用预处理实现求两个数的大数。程序(二) 功能:用指针变量实现两个数的由小到大排序。参考程序1:main() int *p1,*p2,*p,a,b; scanf(%d,%d,&a,&b);

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!