版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验1: C语言程序初步实验名称: C语言程序初步 实验类型: 验证型一、实验目的1、 了解Turbo C集成开发环境。2、 熟悉C程序的实现过程和方法。(1) 掌握编辑、编译、连接、运行程序的过程和方法。(2) 了解常见的两种语法错误(Error/Warning)。二、实验内容1、 了解Turbo C集成开发环境的功能,熟悉菜单、热键基本操作(1) 启动、退出Turbo C集成开发环境。(2) 了解F5/F6;F10,、功能键;Alt+高亮度键的效果和作用。(3) 激活文件菜单(File)、编译菜单(Compile)、运行菜单(Run)、监视菜单(Break/Watch),查看菜单选项。2、
2、 在Turbo C下完成“源程序清单”中规定的程序题。三、实验要求1、 实验中仔细观察本实验创建的目录、文件,回答实验小结和思考中的问题。2、 在Turbo C下完成“源程序清单”中规定的程序题。编辑、编译、运行程序并获得程序结果;如果程序有错,记录编译、连接遇到的提示错误。仔细思考出错原因,并更正之。3、 编制的程序必须保存在D:用户目录中。注:用户目录可以用学号或姓名拼音简写。四、实验步骤、过程1、 启动操作系统,查找Turbo C集成开发环境安装位置(路径)。假如为:C:TC,查看目录中是否有tc.exe,此程序就是Turbo C集成开发环境的执行程序。记住您的系统Turbo C2.0的
3、安装位置。2、 启动、退出Turbo C集成开发环境。(1) 启动Turbo C集成开发环境。如:双击tc.exe文件图标。(2) 退出Turbo C集成开发环境。File-Quit 退出Turbo C集成开发环境(3) 再次启动Turbo C环境。(同前)3、 Turbo C环境中,F5/F6;F10,、功能键;Alt+高亮度键的效果和作用。(1) 重复按F6键,仔细观察。当前激活窗口在编辑窗口、消息窗口之间切换。(2) 重复按F5键,仔细观察。当前激活窗口最大,正常状态之间切换。(3) 先按F10,可以看到主菜单被激活,按、,主菜单各个项被依次激活,试着按、可以打开相应菜单。重点浏览Fil
4、e(文件管理)、Run(程序运行控制)、Compile菜单(程序编译、连接)菜单。最后按ESC键光标回到编辑窗口。(4) 主菜单各个项,首字母为红色(高亮度)。可以按Alt+高亮字母,直接激活相应菜单选项。例如按Alt+F激活File菜单,比F10再按光标快捷多了!按ESC键光标回到编辑窗口。(5) 观察当前源程序名NONAME.C表示当前的程序还没有取名字,以后保存程序时,系统会提示输入源程序名。4、 按照下面步骤完成第1个程序题。(1) “File”-“New”创建一个新的源程序文件(2) 输入源程序,全屏幕编辑源程序。(3) “File”-“Save”保存源程序(文件名应按题目要求)。观
5、察编辑窗口源程序名是否已经修改。用Windows资源管理器查看用户目录中是否产生了源程序文件*.c。(4) “Compile”-“Build all”编译、连接源程序。如果有语法错误,修改源程序后再次编译、连接程序,直到没有语法错误,系统提示成功。编译连接成功后用Windows资源管理器查看用户目录中是否产生了目标文件*.obj,可执行文件*.exe,观察其命名规则。(5) “Run”-“Run”运行程序,用Alt-F5切换到用户屏幕查看运行结果。对比结果是否与预期相同。如果发现逻辑错误结果与预期不同,修改源程序,重复(3)-(5)保存、编译、运行程序,直到程序获得正确结果。注意:n 必须顺序
6、完成程序编辑、编译连接、运行的各个过程。没有正确编译成功的程序是不可能运行的!n 程序开发中经常用“File”“Save”保存源程序以免意外导致源程序丢失。5、 按步骤5完成第2个程序题。注意:Error致命错的程序不能产生目标程序、执行程序,必须修改程序,并重新编译,直到成功。6、 按步骤5完成第3个程序题。注意:Warning警告错的程序可以产生目标程序、执行程序,试着运行一下。看看结果!_,还是修改吧,警告错一般也意味着程序有毛病,尽管这种程序可以强行编译连接为可执行程序,但结果一般都有问题。五、源程序清单、测试数据、结果。1、 最简单的C程序。(要求文件名:1_1.c)main() p
7、rintf(Hello world!n);2、 一个具有致命语法错的程序。(要求文件名:1_2.c)main() int i=9 printf(i=%dn,i)3、 一个具有警告语法错的程序。(要求文件名:1_3.c)main()int i=9,j,s; s=i+j;printf(s=%dn,s);六、实验小结1、 F5/F6;F10,、功能键;Alt+高亮度键的效果和作用?答:F10,、:F10激活Turbo C主菜单,光标键选择菜单之间;回车确认。F5:编辑窗口或消息窗口最大/恢复;F6:切换编辑窗口/消息窗口。Alt+高亮度键,直接激活主菜单项。2、 与C语言程序直接相关的几种文件及扩展
8、名分别是什么?答:C语言源程序、目标程序、可执行程序,其后缀分别为*.c,*.obj,*.exe。3、 C语言程序主要的实现过程?答:分为编辑、编译、连接、运行四个阶段。其中,开发环境中,编辑完成后,可以直接启动运行,但分解的阶段仍然是四个,前面阶段未完成,程序仍然不能运行。4、 C语言程序主要的错误?答:程序错误分为:(1) 语法错误:编译系统可以协助查找出来的语法上的错误。语法错还包括:致命错Error/和警告错Warning。致命错必须修改!,警告错可以不修改,但常常暗示程序存在问题。逻辑错误:运行结果与预期不符,与程序算法逻辑相关的错误。实验2:运算符与表达式实验名称: 运算符与表达式
9、 实验类型: 验证型 一、实验目的1、 掌握C语言算术、赋值、自增、自减运算符及相应表达式2、 掌握不同类型数据之间的赋值规律3、 了解强制数据类型转换以及运算符的优先级、结合性。4、 学会根据表达式,编写相应程序,验证表达式结果的方法。二、实验内容1、 已知:a=2,b=3,x=3.9,y=2.3(a,b整型,x,y浮点),计算算术表达式(float)(a+b)/2+(int)x%(int)y的值。试编程上机验证。提示编程要点:(1)先判断结果值类型,可设置一个此类型的变量用于记录表达式结果,本例用r存放结果;(2)程序先给几个变量赋初值,然后将表达式赋值给变量r;(3)最后打印变量r的值就
10、是表达式的值。2、 已知:a=7,x=2.5,y=4.7(a整型,x,y浮点),计算算术表达式x+a%3*(int)(x+y)%2/4的值。试编程上机验证。3、 已知:a=12,n=5(a,n整型),计算下面表达式运算后a的值。试编程上机验证。(1)a+=a (2)a-=2 (3)a*=2+3 (4)a/=a+a (5)a%=(n%=2) (6)a+=a-=a*=a4、 分析下面程序结果,并上机验证。main( ) int i,j,m,n; i=8; j=10; m=+i; n=j+; printf(i=%d, j=%d, m=%d, i=%dn,i,j,m,n);5、 将k分别设置为127,
11、-128,128,-129,分析下面程序结果,并上机验证。main() float a=3.7,b; int i,j=5; int k=127; /* 用127,-128,128,-129测试 */ unsigned U; long L; char C; i=a; printf(%dn,i); /* 浮点赋值给整型 */ b=j; printf(%fn,b); /* 整型赋值给浮点*/ U=k; printf(%d,%un,U,U); /* 相同长度类型之间赋值 */ L=k; printf(%ldn,L); /* 整型赋值给长整型,短的类型赋值给长的类型 */ C=k; printf(%dn
12、,C); /* 整型赋值给字符型,长的类型赋值给短的类型 */三、实验要求1、 1-3题要求实验前手工计算,并编制好上机测试用源程序,以便上机实验。2、 4、5题要求实验前分析程序结果,以便上机时对比结果。3、 实验中仔细观察、记录、比较实验结果,如果不一致应找出原因。4、 编制的程序必须保存在D:用户目录中。注:用户目录可以用学号或姓名拼音简写。四、实验步骤、过程1、 启动操作系统。2、 启动Turbo C集成开发环境。(方法与实验1相同)3、 完成5个程序题。(编辑、编译连接、运行程序,步骤与实验1相同)注:经常用“File”“Save”(热键F2)保存源程序以免意外导致源程序丢失。4、
13、退出Turbo C集成开发环境,关机。五、源程序清单、测试数据、结果。1、 (要求文件名:3_1.c)main()int a=2,b=3;float x=3.9,y=2.3; float r; r=(float)(a+b)/2+(int)x%(int)y; printf(%fn,r);参考结果:3.5000002、 (要求文件名:3_2.c)main() int a=7;float x=2.5,y=4.7,r; r=x+a%3*(int)(x+y)%2/4;printf(%fn,r);参考结果:2.5000003、 文件名:3_3.cmain()int a,n=5; a=12; a+=a; p
14、rintf(%dn,a); a=12; a-=2; printf(%dn,a); a=12; a*=2+3; printf(%dn,a); a=12; a/=a+a; printf(%dn,a); a=12; a%=(n%=2); printf(%dn,a); a=12; a+=a-=a*=a; printf(%dn,a);参考结果:2410600004、 文件名:3_4.c(程序略)参考结果:i=9, j=11, m=9, i=105、 文件名:3_5.c(程序略)参考结果:k=127时:35.000000127,127127127k=-128时:35.000000-128,65408-12
15、8-128k=128时:35.000000128,128128-128k=-129时:35.000000-129,65407-129127六、实验小结1、C语言取整是4舍5入?还是截断取整?答: 截断取整,或向0取整(即简单的小数舍去)。2、总结赋值转换原则。答: 赋值号右边的数据类型转化为赋值号左边的数据类型,然后赋值给赋值号左边的变量。l 浮点数据赋值给整型变量:浮点数据截断取整为整数后赋值给整型变量;l 整型数据赋值给浮点变量:整型数据转换为浮点数后赋值给浮点变量;l 短型整型赋值给长型整数:低位直接传送,高位符号扩展;l 长型整型赋值给短型整数:低位直接传送,高位截断。实验3:输入与输
16、出程序设计实验名称: 输入与输出程序设计 实验类型: 验证性 一、实验目的1、 掌握:使用标准输入/输出函数进行常见数据类型的数据的输入/输出方法。2、 初步培养编制程序框图和源程序、准备测试数据以及实际调试程序的独立编程能力。二、实验内容在Turbo C下完成程序题:(1) 根据商品原价和折扣率,计算商品的实际售价(结果精确到小数点后2位)(2) 根据圆柱体的半径和高,计算圆周长、圆面积、圆柱体表面积、圆柱体体积(结果精确到小数点后3位)注:变量名可以自由选择,以易于理解为原则;数据由键盘输入。三、实验要求1、 实验前编制程序框图、编写源程序、准备测试数据。2、 实验测试数据要求从键盘输入。
17、应尽力追求程序的完美。比如要求输入数据,应当显示提示字符串,提示用户输入;输出时要求有文字说明。3、 在Turbo C下完成程序的编辑、编译、运行,获得程序结果。如果结果有误,应找出原因,并设法更正之。4、 编制的程序必须保存在D:用户目录中。注:用户目录可以用学号或姓名拼音简写。四、实验步骤、过程1、 启动操作系统。2、 启动Turbo C集成开发环境。(方法与实验1相同)3、 完成2个程序题。(编辑、保存、编译连接、运行程序,步骤与实验1相同)4、 退出Turbo C集成开发环境,关机。五、源程序清单、测试数据、结果。1、 根据商品原价和折扣率,计算商品的实际售价程序流程图:main()
18、float price,discount,fee; printf(Input Price,Discount:); scanf(%f%f,&price,&discount); fee=price*(1-discount/100); printf(Fee=%.2fn,fee);运行:Input Price,Discount:100 10Fee=90.00注:下划线表示程序运行后用户输入的数据,表示回车,以后不再解释。2、根据圆柱体的半径和高,计算圆周长、圆面积、圆柱体表面积、圆柱体体积程序框图(略)void main()float r,h,pi=3.1415926;float c0,s0,s,v;
19、printf(Input r,h(m):);scanf(%f,%f,&r,&h);c0=2*pi*r;s0=pi*r*r;s=2*pi*r*h+2*pi*r*r;v=pi*r*r*h;printf(c0=%.3f(m)ns0=%.3f(m2)ns=%.3f(m2)nv=%.3f(m3)n,c0,s0,s,v);运行:Input r,h(m):1,2c0=6.283(m)s0=3.142(m2)s=18.850(m2)v=6.283(m3)六、实验出现的问题、实验结果分析(参考)1、 C语言变量先定义后使用,变量名大小写敏感。2、 scanf输入数据,变量应当使用取地址运算。3、 scanf函数
20、格式字符串中的普通字符要原样输入,否则会发生错误。七、实验小结1、 若scanf(%f,%f,&price,&discount);如何输入两个数据?答:scanf函数格式字符串中非格式字符要求原样输入,printf函数格式字符串中非格式字符在输出时原样输出。由于格式字符串为%f,%f,即要求两个浮点数之间由,分隔,所以输入数据时必须输入,。例如:Input Price,Discount:100,10实验4:选择结构程序设计实验名称: 选择结构程序设计 实验类型: 验证性 一、实验目的1、 掌握关系、逻辑运算符及其表达式的正确使用。2、 掌握if语句和switch语句的使用。3、 了解Turbo
21、 C程序调试的基本方法。二、实验内容在Turbo C下完成程序题:1、 有如下函数,要求输入x的值,求y的值。 |X|,X0Y= X2,0X10 LogX,X102、 输入1-7之间的任意数字,程序按照用户的输入输出相应的星期值。3、 某单位马上要加工资,增加金额取决于工龄和现工资两个因素:对于工龄大于等于20年的,如果现工资高于2000,加200元,否则加180元;对于工龄小于20年的,如果现工资高于1500,加150元,否则加120元。工龄和现工资从键盘输入,编程求加工资后的员工工资。三、实验要求1、 实验前绘制程序流程图,编制源程序、准备测试数据。2、 在Turbo C下完成程序的编辑、
22、编译、运行,获得程序结果。3、 实验中可以采用Turbo C程序调试基本方法协助查找程序中的逻辑问题。四、实验步骤、过程1、 编辑、编译、运行程序题1,分别使用数据-5,0,5,10,100做测试。2、 编辑、编译、运行程序题2,分别使用数据1,7,8做测试。3、 编辑、编译、运行程序题3,测试数据见下表:工龄y(年)现工资S0(元)2522002219001817001614004、 尝试跟踪程序题1运行。用F7或F8键单步跟踪程序,用F7检查变量值,用F4可以将程序运行到光标当前位置。五、源程序清单、测试数据、结果。1、 给定y=f(x)函数,要求输入x的值,求y的值。#include m
23、ain() float x,y; scanf(%f,&x); if(x0) y=fabs(x); else if(x10) y=x*x; else y=log10(x); printf(%fn,y);测试运行:-55.00000000.000000525.000000101.0000001002.0000002、输入1-7之间的任意数字,程序按照用户的输入输出相应的星期值。main() int week; printf(Input(1-7):); scanf(%d,&week); switch(week) case 1:printf(Mon.n); break; case 2:printf(T
24、ue.n); break; case 3:printf(Wed.n); break; case 4:printf(Tur.n); break; case 5:printf(Fri.n); break; case 6:printf(Sat.n); break; case 7:printf(Sun.n); break; default:printf(The input is wrong!n); 测试运行:Input(1-7):1Mon.Input(1-7):5Fri.Input(1-7):8The input is wrong!3、工资计算。main() float s0,s; int y; pr
25、intf(Input s0,y:); scanf(%f,%d,&s0,&y); if(y=20) if(s0=2000)s=s0+200; else s=s0+180; else if(s0=1500)s=s0+150; else s=s0+120; printf(s=%fn,s);测试运行:Input s0,y:2200,25s=2400.000000Input s0,y:1900,22s=2080.000000Input s0,y:1700,18s=1850.000000Input s0,y:1400,16s=1520.000000六、实验出现的问题、实验结果分析(不要照抄哦,_)1、 求
26、绝对值对于浮点数要使用函数fabs。使用abs是对整数取绝对值。2、 以10为底的对数,应当使用函数log10。3、 0X10不能表示为0=x10,否则尽管无语法错误,但是含义不正确。4、 case语句与常量之间应当有空格,否则当做语句标号处理。如case1:。(使用单步跟踪发现)。七、实验小结1、 程序错误分为语法错误和逻辑错误。语法错误可以由编译器协助检查,逻辑错误编译器无法检查出来。程序逻辑错误比语法错误更加隐蔽,程序跟踪可用于发现程序逻辑错误。2、 调用库函数应当包含对应头文件,帮助进行类型匹配检查和类型转化,保证函数调用使用正确参数。实验5:循环结构程序设计实验名称: 循环结构程序设
27、计 实验类型: 验证型 一、实验目的1、 掌握while,do-while,for循环的语法结构与应用。2、 掌握while,do-while循环的区别。3、 掌握Turbo C单步执行调试程序的方法。二、实验内容完成程序题:1、 用三种循环结构,求1000以内奇数的和。2、 用while,do-while循环求i-10的连加和,i由用户输入。3、 有一堆零件(100200个之间),如果以4个零件为一组进行分组,则多2个零件;如果以7个零件为一组进行分组,则多3个零件;如果以9个零件为一组进行分组,则多5个零件。编程求解这堆零件总数。提示:用穷举法求解。即零件总数x从100-200循环试探,如
28、果满足所有几个分组已知条件,那么此时的x就是一个解。分组后多几个零件这种条件可以用求余运算获得条件表达式。三、实验要求1、 实验前编制源程序、对第2个实验内容需要准备测试数据。2、 在Turbo C下完成程序的编辑、编译、运行。查看、分析程序结果。四、实验步骤、过程1、 编辑、编译、运行程序题1。2、 编辑、编译、运行程序题2,分别使用数据3,15做测试。3、 编辑、编译、运行程序题3。五、源程序清单、测试数据、结果。1、 用三种循环结构,求1000以内奇数的和。(1)用while结构实现void main() long sum; int i,item; sum=0,i=0,item=2*i+
29、1; while(item1000) sum=sum+item; i+; item=2*i+1; printf(1+3+5+.999=%ldn,sum);(2)用do-while结构实现void main() long sum; int i,item; sum=0,i=0,item=2*i+1; do sum=sum+item; i+; item=2*i+1; while(item1000); printf(1+3+5+.999=%ldn,sum);(3)用for结构实现void main() long sum; int i,item; for(sum=0,i=0,item=2*i+1; it
30、em1000; i+,item=2*i+1) sum=sum+item; printf(1+3+5+.999=%ldn,sum);运行结果:1+3+5+.999=2500002、用while,do-while循环求i-10的连加和,i由用户输入。(1)用while循环实现main() int sum=0,i; printf(Input i:);scanf(%d,&i); while(i=10) sum+=i; i+; printf(sum=%dn,sum);测试运行结果:Input i:7sum=34Input i:15sum=0(2)用do-while循环实现main() int sum=0
31、,i; printf(Input i:);scanf(%d,&i); do sum+=i; i+; while(i=10); printf(sum=%dn,sum);测试运行结果:Input i:7sum=34Input i:15sum=153、穷举法搜索计算零件总数main() int x,flag=0; for(x=100; x=200; x+) if(x%4=2&x%7=3&x%9=5) flag=1; break; if(flag)printf(x=%dn,x); else printf(no answer!n);运行结果:x=122六、实验出现的问题、实验结果分析对于累加问题,获得的
32、累加值可能超过变量允许的范围,出现溢出错误(逻辑错误-编译时不能发现)。程序题1:原来sum定义为int,后来改为long后程序获得了正确的结果。七、实验小结1、 变量类型的选择应当考虑变量的使用范围。2、 循环程序可以用三种结构实现,三种结构一般情况可以相互替换。3、 while,do-while循环的区别:while先判断循环条件,如果条件满足再执行循环体,如果条件不满足,循环体一次也不执行。do-while先执行一次循环体再判断循环条件,以决定是否再次执行循环体,即就是说循环体至少执行一次。4、 穷举法是利用计算机高速计算能力试探搜索求解复杂问题的一种很好的方法。实验6:循环嵌套程序设计
33、实验名称: 循环嵌套程序设计 实验类型: 验证型 一、实验目的1、 掌握循环嵌套使用方法。2、 掌握break,continue语句。二、实验内容1、编制程序,输出由“*”组成的正三角形的,边长由程序输入。例如n=4,输出图形: * * *2、编写程序,求任意两个整数之间所有的素数。三、实验要求1、 编制源程序。2、 在Turbo C下完成程序的编辑、编译、运行。查看、分析程序结果。四、实验步骤、过程1、 编辑、编译、运行程序题1。使用数据:4,6做测试。2、 编辑、编译、运行程序题2。使用数据200,400做测试。五、源程序清单、测试数据、结果。1、输出正三角形。#include main(
34、) int n,i,j; printf(n=); scanf(%d,&n); for(i=0; in; i+) for(j=0; jn-1-i; j+)printf( ); for(j=0; j2*i+1; j+)printf(*); printf(n); 测试运行结果:n=4 * * *n=6 * * * * *2、求任意两个整数之间所有的素数。#include void main() int i1,i2,i,j,flag; printf(input two integer(2) i1,i2:); scanf(%d%d,&i1,&i2); printf(prime number:n); fo
35、r(i=i1; i=i2; i+) flag=1; for(j=2; j2) i1,i2:200 400prime number:211 223 227 229 233 239 241 251 257 263269 271 277 281 283 293 307 311 313 317331 337 347 349 353 359 367 373 379 383389 397六、实验小结1、 在不考虑内、外层循环变量相互影响和其它特定条件下提前结束循环的情况下,双重循环中,内循环体内的语句的执行次数一般是外层循环执行次数m与内层循环执行次数n的乘积。2、 Turbo C中运行一个循环程序时可能
36、出现死循环,结束死循环可以使用ctrl+break。3、 break语句可用于循环结构及switch分支结构;continue只用于循环结构。4、 程序必要的缩进、对齐有利于改善程序可读性(特别是有多层嵌套结构的程序),便于检查程序中的错误。实验7:数组程序设计实验名称: 数组程序设计 实验类型: 综合型 一、实验目的1、 理解一维数组和二维数组的概念2、 掌握一维数组和二维数组的定义、初始、数组元素引用。3、 掌握一维数组和二维数组的输入/输出。4、 掌握与数组有关的算法。二、实验内容1、 编制程序,求Fibonachi数列的前10项。提示:Fibonachi的第1,2项分别为1,1。其后任
37、何一项满足ai=ai-2+ai-1。2、 编写找出1100之间能被7或11整除的所有整数,存放在数组a中,并统计其个数。要求以每行排列5个数据的形式输出a数组中的数据。3、 设有44的方阵,其中的元素由键盘输入。求出(1)主对角线上元素之和;(2)辅对角线上元素之积;(3)方阵中最大的元素。提示:主对角线元素行、列下标相同;辅对角线元素行、列下标之和等于方阵的最大行号(或最大列号)下标、行列号基于0。三、实验要求1、 编制源程序,对于程序3输入测试数据。2、 在Turbo C下完成程序的编辑、编译、运行。查看、分析程序结果。四、实验步骤、过程1、 编辑、编译、运行程序题1。2、 编辑、编译、运
38、行程序题2。3、 编辑、编译、运行程序题3。测试数据:1 2 3 45 6 7 89 10 11 1213 14 15 16五、源程序清单、测试数据、结果。1、求Fibonachi数列的前10项main() int f11=0,1,1,n; for(n=3; n=10; n+) fn=fn-1+fn-2; for(n=1; n=10; n+) printf(%d ,fn); printf(n);程序结果:1 1 2 3 5 8 13 21 34 552、找出1100之间能被7或11整除的所有整数main() int n=0,a100,i; for(i=1; i=100; i+) if(i%7=
39、0|i%11=0) an=i; n+; printf(n=%dn,n); for(i=0; in; i+) printf(%dt,ai); if(i+1)%5=0)printf(n); printf(n);程序结果:n=227 11 14 21 2228 33 35 42 4449 55 56 63 6670 77 84 88 9198 993、方阵求出(1)主对角线上元素之和;(2)辅对角线上元素之积;(3)方阵中最大的元素。#include #define N 4main() int aNN,s1=0,s2=1,max=0,i,j; for(i=0; iN; i+) for(j=0; jN
40、; j+) scanf(%d,&aij); max=a00; for(i=0; iN; i+) for(j=0; jmax)max=aij; printf(s1=%d,s2=%d,max=%dn,s1,s2,max);程序结果:1 2 3 45 6 7 89 10 11 1213 14 15 16s1=34,s2=3640,max=16六、实验出现的问题、实验结果分析(1) 数组下标范围容易搞错,容易产生越界错误。(2) 利用scanf()输入数据时取地址符号(&)容易忘记。七、实验小结典型算法需要在理解的基础上记忆。实验8:字符数组与字符串函数实验名称: 字符数组与字符串函数 实验类型: 验
41、证型 一、实验目的1、 理解字符数组和字符串的概念。2、 掌握字符数组的定义、初始、数组元素引用、输入输出。3、 掌握字符数组的处理4、 掌握常用字符串处理函数二、实验内容1、 编制程序:对键盘输入的字符串进行逆序,逆序后的字符串仍然保留在原来字符数组中,最后输出。(不得调用任何字符串处理函数,包括strlen)例如:输入hello world 输出dlrow olleh2、 编写程序:对从键盘任意输入的字符串,将其中所有的大写字母改为小写字母,而所有小写字母改为大写字母,其它字符不变。(不调用任何字符串处理函数)例如:输入:Hello World!输出:hELLO wORLD!3、 编写程序
42、:从键盘输入4个字符串(长度20),存入二维字符数组中。然后对它们进行排序(假设由小到大顺序),最后输出排序后的4个字符串。(允许使用字符串函数)提示:字符串比较可以用strcmp函数实现,排序方法可以选择法或冒泡法。三、实验要求1、 绘制流程图、编制源程序,测试数据。2、 1-2题不得使用任何字符串处理函数,3题允许使用字符串处理函数。3、 在Turbo C下完成程序的编辑、编译、运行。查看、分析程序结果。四、实验步骤、过程1、 编辑、编译、运行程序题1。使用数据:hello world做测试。2、 编辑、编译、运行程序题3。使用数据:Hello World做测试。3、 编辑、编译、运行程序
43、题4。使用数据:SpanishChinaAmericaJapan做测试。五、源程序清单、测试数据、结果。1、字符串进行逆序main() char str100;int n,i,j; gets(str); n=0; while(strn)n+; for(i=0,j=n-1; ij; i+,j-) char k=stri; stri=strj; strj=k; puts(str);测试运行结果:hello worlddlrow olleh2、大写变小写,小写变大写#include main() char s100; int i; gets(s); for(i=0; si!=0; i+) if(si
44、=A&si=a&si=z)si-=32; puts(s);测试运行结果:Hello World!hELLO wORLD!3、串排序(采用选择法排序)#include #define N 4main() char sN20; int i,j; for(i=0; iN; i+)gets(si); for(i=0; iN-1; i+) for(j=i+1; j0) char t20;strcpy(t,si); strcpy(si,sj); strcpy(sj,t); for(i=0; iN; i+)puts(si);测试运行结果:SpanishChinaAmericaJapanAmericaChin
45、aJapanSpanish六、实验小结1、 对于字符串的处理可以将字符串当作字符数组逐个元素处理,也可以调用字符串处理函数整体处理。2、 字符串串尾结束符号0在编制字符串处理程序很重要。3、 字符串处理函数可以减轻编程工作量,了解并熟悉常用字符串处理函数乃至其它系统函数可以提高软件开发的效率。4、 要调用系统函数一般应包含此系统函数的“头文件”,以便编译系统检查调用格式。5、 如果在编程时忘记一个系统函数的调用格式,可以将光标停留在此函数上,并按ctrl+F1键联机查询。6、 gets()可以输入带空格字符串,而scanf()不能。实验9:函数的定义与调用实验名称: 函数的定义与调用 实验类型
46、: 综合型 一、实验目的1、 掌握函数定义(返回、函数名、参数、函数体),调用。2、 掌握函数的声明3、 嵌套调用、递归调用。二、实验内容1、 编制函数fun,其功能是:删除一个字符串中指定的字符。要求:原始字符串在主函数中输入,处理后的字符串在主函数中输出。例如:输入“I am a teacher,you are a student”和e输出“I am a tachr,you ar a studnt”。2、 编制函数sortstr,其功能是对多个字符串进行排序。要求:欲排序的字符串在主函数中输入,排好序的字符串在主函数中输出。提示:排序算法可参照实验9第4题,即将排序算法改为由一个函数sortstr实现。3、 掌握函数声明的使用。三、实验要求1、 1、2题编制源程序和测试数据;在Turbo C下完成程序的编辑、编译、运行并分析程序结果。2、 3题按实验步骤完成,认真观察,仔细思考思考题。四、实验步骤、过程1、 编辑、编译、运行程序题1。使用字符串:“I am a teacher,you are a student”以及字符e做测试。2、 编辑、编译、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度展览馆照明设备采购合同范本3篇
- 二零二五版建筑工程项目招投标与合同风险评估与管理协议3篇
- 二零二五年度办公室租赁合同含停车服务2篇
- 二零二五版跨区域公司间资金拆借合同范例2篇
- 二零二五年度环保设备班组工人劳务合同3篇
- 二零二五版教师临时聘用与教育品牌建设合同3篇
- 二零二五年版农业科技项目合同信用评价与推广合作合同3篇
- 二零二五年度石材矿山开采权转让合同2篇
- 二零二五版租赁合同:租赁合同信息化管理平台使用协议3篇
- 深圳汽车租赁合同模板2025版6篇
- 物业民法典知识培训课件
- 2024-2025学年山东省德州市高中五校高二上学期期中考试地理试题(解析版)
- TSGD7002-2023-压力管道元件型式试验规则
- 2024年度家庭医生签约服务培训课件
- 建筑工地节前停工安全检查表
- 了不起的狐狸爸爸-全文打印
- 派克与永华互换表
- 第二章流体静力学基础
- 小学高年级语文作文情景互动教学策略探究教研课题论文开题中期结题报告教学反思经验交流
- 春节新年红灯笼中国风信纸
- 注塑件生产通用标准
评论
0/150
提交评论