高级语言程序设计实验(09~10下 电子、通信、电科)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1实验一熟悉C程序的运行环境时间:2010/4/27一、实验目的1.熟悉ANSIC程序的运行环境;2.了解计算机系统对高级语言的基本操作方法;3.熟悉和了解WinTC系统软件的使用和操作;4.能进行简单的C语言程序录入、调试、编译和运行;5.了解C语言中数据类型的意义。二、实验内容参照实验教学大纲安装和运行C编译程序,练习编辑、编译和运行几个简单C程序。1.C语言上机步骤:(A)启动后请选择WinTC编译平台。(B)常用命令:编译(F9),运行(CTRL+F9)2.编制简单C程序,实现程序输出“Helloworld!”。3.编制C程序,实现计算键盘输入的两整数的积及平均值,并在屏幕显示过程。#includestdio.hmain(){intVar1,Var2,Multi,Avg;scanf(“%Var1,%Var2,&Var1,&Var2);avg=(var1+var2)/2;multi=Var1*Var2;printf(“Theaverageis:”avg);printf(“Themultiis:”multi);}三、调试步骤及运行结果1.调试步骤:1°静态地检查所编制程序,改正程序中的错误。2°编译并运行所编制程序,若有,则记下出错信息。3°按照事先静态检查后所改正的情况,进行纠错。4°编译执行纠错后的程序。如还有错误,再编辑改正,直到不出现语法错误为止。5°下面给出6组测试用例,你认为哪几组较好?为什么?(1)0,0(2)0,99(3)20,50(4)33000,20(5)-5,-2(6)-5,2要进行较全面的程序试运行并获得尽可能多的测试结果,你认为应当用几组测试用例?2.调试无语法错误后,分别使用下列测试用例对上述程序进行测试:2(1)2,6(2)1,3(3)-2,-6(4)-1,-3(5)-2,6(6)-1,3(7)1,0(8)1,6(9)32800,33000(10)-32800,330001°分析上述哪几组测试用例较好?通过测试,你发现程序有什么错误了吗?若有错误,请指出错误原因。2°操作符sizeof用以测试一个数据或类型所占用的存储空间的字节数。请编写一个程序,测试各基本数据类型所占用的存储空间大小。四、分析与讨论1.记下在调试过程中所发现的错误、系统给出的出错信息和对策。分析讨论对策成功或失败的原因。2.总结C程序的结构和书写规则。(简要)3.如何正确地选用数据类型?(提示:给合前面所做的实验及书本内容进行讨论总结)五、实验报告要求1.写出实验目的。2.列出实验内容,记录实验程序代码,并保存实验结果,对出现错误的情况做简要分析。3.结合调试步骤中提出的问题和分析讨论中的思考题写出自己的解决方法或调试心得。3实验二顺序程序结构程序设计时间:2010/5/4一、实验目的1.理解常用运行符的意义,掌握C语言表达式的运行规则;2.掌握C语言程序输入、输出的方法和格式;3.能够根据具体任务要求,编写顺序结构程序。二、实验内容1.编写一个C语言程序,测试下列各表达式i,ji+1,j+1i++,j++++i,++ji+++++j++i+++++j++要求在各表达式中i和j都分别有相同的初值。在实验中注意下列问题:(1)哪些表达式是错误的?为什么?(2)理解+,++,++i,i++的意义和优先级别。2.输入并编辑下面的程序main(){inta,b;floatc,d;longe,f;unsignedintu,v;charc1,c2;scanf(“%d,%d”,a,b);scanf(“%f,%f”,c,d);scanf(“%ld,%ld”,e,f);scanf(“%o,%o”,u,v);scanf(“%c,%c”,c1,c2);printf(“\n”);printf(“a=%7d,b=%7d\n”,&a,&b);printf(“c=%10.2f,d=%10.2f\n”,&c,&d);printf(“e=17ld,f=%17ld\n”,&e,&f);printf(“u=%o,d=%o\n”,&u,&v);printf(“c1=%c,d=%c\n”,&c1,&c2);这个程序有语法错误吗?为什么?3.调试上述程序无语法错误后,用下面的测试数据,对程序进行测试:a=123,b=456,c=17.6,d=71837.65,e=70000,f=2174506,u=62000,v=58765,c1=’a’,c2=’b’分析运行结果。特别注意输入c1,c2的值是什么?什么原因?4.将输入e和f的语句改为:4scanf(“%d,%d”,&e,&f);再用上述测试数据测试并分析结果。5.将输入u、v的语句改为:scanf(“%d,%d”,&u,&v);再用上述测试数据测试并分析结果。6.将输出e,f的语句改为:printf(“e=%17d,f=%17d\n”,e,f);再用上述测试数据测试并分析结果。7.将输出u、v的语句改为:printf(“u=%u,v=%u\n”,u,v);或printf(“u=%d,v=%d\n”,u,v);再用上述测试数据测试并分析结果。8.在scanf(“%c,%c”,&c1,&c2);语句之前加一个语句:getchar();9.验证转义字符\n与\r的意义有何不同。10.从键盘输入三角形的三边长(合理设置),能够求出其面积。给出程序,并在屏幕显示计算结果。11.从键盘输入一个华氏温度,要求按照公式Fahr=(9.0*celsius)/5.0+32.0,输出摄氏温度。修改程序,要求以逆转换输出华氏温度值。三、调试步骤及运行结果按照实验内容要求,完成各项任务,程序改错需标明错误位置及错误原因。运行结果,应如实记录。自行编制的程序,需注意程序编写的规范。四、分析与讨论1.分析总结运算符的优先级。2.总结在printf函数中可以使用的各种格式指定符。3.总结在printf函数中可以使用的各转义字符及其功能。五、实验报告要求1.写出实验目的。2.列出实验内容,记录实验程序代码,并保存实验结果,分别对实验内容中提出的问题进行回答和分析。3.结合调试步骤中提出的问题和分析讨论中的思考题写出自己的解决方法或调试心得。5实验三分支控制语句实验时间:2010/5/11一、实验目的1.了解条件与程序流程的关系。2.了解用不同的数据使程序的流程覆盖不同的语句、分支和路径。3.了解if及switch的嵌套结构。二、实验内容1.设计企业发放的奖金根据利润提成问题1°利润低于或等于10万元的,奖金可提10%;(利润及奖金为实数型)2°利润高于10万元,低于20万元(100000P=200000元)时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;3°200000P=400000时,低于20万元的部分按上述办法,高于20万元的部分5%提成;4°400000P=600000时,高于40万元的部分按3%提成;5°600000P=1000000时,高于60万元的部分按1.5%提成;6°P1000000时,超过100万元的部分按1%提成。要求:从键盘输入A、B、C、D四员工当月所创利润PA、PB、PC、PD,对应输出各人应发奖金及企业应发奖金总数。要求:(1)用if…else或nestedif编写;(2)用switch或nestedswitch编写;(3)以表格形式输出。Input:******EnterpriseInterestCount******A↙B↙C↙D↙Output:******EnterpriseEmployeeBonus******Abonusis:↙Bbonusis:↙Cbonusis:↙Dbonusis:↙THETOTALBONUSARE:↙2.利用if或switch实现4个数字比较大小,要求:(1)通过键盘输入比较对象;(2)分别对整数、字符、实数等数据类型进行比较实验;(3)采用?:操作符实现;(4)若为10个或更多任意数进行大小比较呢,可使用任何方法。输入/输出结果应有统一格式:Input:******TheOperationDigit******A↙B↙C↙D↙Output:6******TheResultSequence******SEQASCEND:↙(按照升序排列)SEQDESCEND:↙(按照降序排列)三、调试步骤及运行结果按照实验内容要求,完成各项任务。使用流程图描述程序的逻辑结构,要求增加一些输入语句和输出语句,以便使上述程序能在不同输入值情况下运行,并且能观察程序流程经过(覆盖)了哪些语句、哪些分支及哪些路径。对照相应格式输出,如实记录运行结果。自行编制的程序,需注意程序编写的规范。四、分析与讨论1.设定不同的数据类型对分支控制流进行全面(覆盖)检验。2.对不同程序结构(if/switch/?:)的特点进行分析。3.分析所编制程序中使用的变量、常量个数及使用结构嵌套层数。五、实验报告要求1.写出实验目的。2.列出实验内容,记录实验程序代码,并保存实验结果,分别对实验内容中提出的问题进行回答和分析。3.结合调试步骤中提出的问题和分析讨论中的思考题写出自己的解决方法或调试心得。7实验四循环语句实验时间:2010/5/18一、实验目的1.掌握在程序设计条件型循环结构时,如何正确地设定循环条件,以及如何控制循环的次数。2.了解条件型循环结构的基本测试方法。3.掌握如何正确地控制计数型循环结构的次数4.了解对计数型循环结构进行测试的基本方法5.了解在嵌套循环结构中,提高程序效率的方法二、实验内容及步骤1.打印出所有的“水仙花”数字。所谓水仙花数是指一个三位数,其各位数字的立方和等于该数本身。例如:153是一个水仙花数,因为153=13+53+33。分析:运用循环语句和条件判断语句,根据”水仙花数”的特点,可以用FOR/while计数循环来控制100~999的执行次数,然后对每个数分解出百位、十位和个位,最后再判断是否满足要求。如果满足,则打印,反之进行下一个数的判断。2.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。要求:使用ctype.h中的charactertestfunction对键盘输入的一行字符串(≤80char)进行类型判断,并在输入结束后打印统计结果。3.打印出指定的“钻石”图案。*************************要求:按照图形所示,使用循环结构完成图形的输出。4.下面是一个计算e的近似值(使误差小于给定的δ)的程序。main(){doublee=1.0,x=1.0,y,detax;inti=1;printf(\npleaseinputenteraerror:);scanf(%lf,&detax);y=1/x;while(y=detax){x=x*i;y=1/x;e=e+y;++i;}printf(%12.10lf,e);getch();8}实验步骤:1°阅读上面的程序,写出程序所依据的计算公式;2°当输入的detax各是什么值时,能分别使程序按下面的要求运行:†不进入循环;†只循环一次;†只循环两次;†进入死循环(程序将永远循环下去)。为了能知道程序循环了多少次,应该在程序中增加一条什么样的语句?3°原程序中while语句中的y=detax,分别换成ydetax,y=detax,ydetax,y=detax,观察程序运行将会有什么变化。假如不知道机器内的程序中的各语句实际上是什么,分别输入什么样的detax来测试出while语句的循环条件写错了。4°把原程序中while语句之前的y=1/x语句去掉,观察程序的运行将会发生什么样的变化。假如不知道机器内的程序实际上是怎么写的,输入什么样的detax就能测试出少了上述这条语句。5°若把原程序中的++i换成i++,观察程序的运行发生了什么变化?假如不知道这条语句到底是怎么写的,输入什么样的detax就能测试出这条语句写错了?6°把原程序中的while结构改写成do—while结构,再分别按上述的(2)、(3)两步进行实验。5.下面一个计数型循环程序,m

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功