华中科技大学C语言实验与课程设计上机实验报告汇总(1-8全部).docx
《华中科技大学C语言实验与课程设计上机实验报告汇总(1-8全部).docx》由会员分享,可在线阅读,更多相关《华中科技大学C语言实验与课程设计上机实验报告汇总(1-8全部).docx(52页珍藏版)》请在咨信网上搜索。
1、华中科技大学C语言实验与课程设计实验报告电脑科学与技术学院指导老师:Input the IP in unsigned long int form:i768795713rocess returned 0 execution tine : 24.738 s 5ress any key to continue.1.3实验体会在做改错题时,先浏览一遍,找出明显的错误,然后将初步修改后的代码输 入编译器并编译,再根据编译器的警告与错误提示修改程序至完全正确,这个过 程很需要细心和耐心,这个过程能够很好的帮助我再今后不犯类似错误。源程序修改与替换题锻炼我们举-反三的能力,我们在平时写程序时就应该 思考对于
2、一个问题有没有多钟解决方案,不使用中间变量交换两个整数是很常见 的问题,我利用一个数异或自身等于0, 0异或任意位保存原位的原理来交换。程序设计题提高了我们对所学知识的熟练度和理解程度,只有实践才能学会 C语言,在亲手编写代码的过程中发现问题,理解概念。2流程控制实验2.1实验目的(1) 掌握复合语句、if语句switch语句的使用,熟练掌握forwhile do-while 三种基本的循环控制语句的使用,掌握重复循环技术,了解转移语句与标号语句。(2) 熟练运用for、while、do-while语句来编写程序。(3) 练习转移语句和标号语句的使用。(4) 使用集成开发环境中的调试功能:单步
3、执行、设置断点、观察变量值。 2. 2实验内容及要求2.2.1.源程序改错下面是计算s=n!的源程序,在这个源程序中存在假设干语法和逻辑错 误。要求在电脑上对这个例子源程序进行调试修改,使之能够正确完成指 定任务,例如,8!=40320o程序代码:#includeint mainfl(int Ln,s=l;printffPlease enter n:;scanf(%d,n); for(i=l;i=s的最小整数n” 。例如,输入整数40310,输出结果为n=8.【分析】(1)相同循环内容利用不同循环结构实现,需要注意不同语句的 格式及根据循环方式对循环体做些许变动。流程图如下:while 型do
4、-while 型开始输入n计数变量i=l 累兼变量s=l当(while) i=n时执行循环体 s=s*l i+输出s结束开始输入n(2)同样计算n!并将n!赋值给不是s的值比方说m),然后令m和sYlYl输出sU结束比拟大小,找到符合条件的第一个m值,并返回n值。流程图如下:【程序】(1) while型#include int mainQ(int i=l,n,s=l; printffPlease enter n:); scanf(%d,&n); while(i=n)s=s*i;i+;printf(H%d!=%d,n,s); return 0;do-while 型#include int mai
5、n()(int i=l,n,s=l; printffPlease enter n:); scanf(%d,&n);do(s=s*i;i+;)while(i=n); printf(%d!=%d,n,s); return 0;(2)#include int mainQ(int tn=0,s,m=l; printffPlease enter s:); scanf(%d,&s); for(i=l;i+)n+;if(m = s) printf(n=%d,n); break;return 0;【测试】1)如果输入8,应该输出:40320,程序运行结果如下, 程序正确。Please enter n:88?=
6、40320Process returned 0 execution tine : 4.985 s Press any key to continue. 如果输入40310,应该输出:8,程序运行结果如下,程序正确。Please enter s:40310n=8Process returned 0 execut ion t ine : 4.938 s Press any key to continue.2. 2. 3程序设计编写并上机调试运行能实现以下功能的程序:(1) 假设工资税金按以下方法计算:x1000元,不收取税金;1000=x2000, 收取5%的 税金;2000=x3000,收取10
7、%的税金;3000=x4000,收取15%的税 金;4000=x5000,收取25%的税金。编写一个程序, 输入工资金额,输出应收取税金额度,要求分别用if语句呵switch语句来实现。(2) 编写一个程序,将输入的一行字符复制到输出,复制过程中将一个以 上的空格字符用一个空格代替。(3) 编写一个程序,打印如下的杨辉三角形。11 112113311464115101051161520156117213535217118285670562881193684126126843691(4) 编写一个程序,将用户输入的任意正整数逆转。例如,输入1234,输 出 4321o【分析】(1)数学中的分段函
8、数问题,可以用if-else-if结构进行控制。在应用 switch语句的时候,结合分段区间的特点设置合适的间断点。流程图分别 如下:if型开始(2)使用状态机通过判断空格的个数选择不同状态,从而实现消去空格的作用。 流程图如下:(3)根据所给公式利用循环实现杨辉三角数的计算,注意题目中特别提到 的输出格式,将每个数字设置为四个字符位,并循环输出空格符,实现金字塔效 果。(4屡次除10取余,每次都分别输出余数,然后除以10并赋给原数重复 计算,流程图如下:【程序】if型#include float taxffloat x);int mainQ(float x;printffPlease inp
9、ut your salary:; scanf(%f,&x);printffYou should pay %fyuan.n,tax(abs(x); return 0;)float taxffloat x)(float n;if(x1000)(n=0;else if(x2000)(n=0.05;else if(x3000)(n=0.1;)else if(x4000)(n=0.15;)else if(x5000)(n=0.2;)elsen=0.25; return n*x;)switch 型#include float taxffloat x);int mainfl(float x;printffP
10、lease input your salary:); scanf(F,&x);printffYou should pay %fyuan.n,tax(abs(x); return 0;float taxffloat x)(float n;switch(int(x/1000)(case 0:n=0;break;case l:n=0.05;break;case 2:n=0.1;break;case 3:n=0.15;break;case 4:n=0.2;break;default:n=0.25;return n*x;)(2)#include enum COPY,START,SPACE;int mai
11、nQ(char c;int state=COPY; printffPlease input a char:n); while(c=getcharO)!=n) switch (state) ( case COPY:if(c=, )state=START;else putchar(c); break;case START:putchar();if(c=r )state二SPACE; else(state=COPY;putchar(c); break;case SPACE:if(c= )state=COPY; putchar(c);else state=SPACE; break;)return 0;
12、(3)#include #define n 10int main(void)(int i,j,k,c,m;for(i=0;in;i+)for(m=0;m=n-i;m+( printfC );forQ=0;j=i;j+)( if(j=O)c=l; elsec=c*(i+l-j)/j; printf(%4d,c);printf(”n”);)return 0;)(4)#include int mainQ(long n,m;printffPIease input an integer n(n0):); scanf(”ld”,&n);printf(nThe new integer is:); while
13、(n=10)m=n%10; printf(%ld,m); n/=10;printf(”ld”,n);return 0;)【测试】Please input your salary:6000You should pay 1500.000000 yuan.Process returned 0 execution tine : 10.547 s Press any key to continue.Please input a char: huj iJ laj if 1huji jlajif 1 da Process returned Press any key to(2)da a fdjjfaos;a
14、h af a aa fdj Jfaos; ah af a a k0 execution tine : 28.345 s continue.11 112113311464115 10105116 152015611721 3535217118 :28 5670 !56 :2881193684 126126843691Process returned 0 execution tine : 0.203 s Press any key to continue.Please input an integer n0:123456The new integer is:654321Process return
15、ed 0 execution tine : 6.109 s Press any key to continue.2. 3实验体会源程序改错中,依赖于平时良好的输入习惯,在输入过程中己经可以检查出 大多数语法错误,或者拼写错误。接下来再检查一下逻辑是否有误,无误那么进行 多组数据的编译检验,确认最终无误。源程序修改与替换题锻炼我们举一反三触类旁通的能力,在平时写程序时就 应该思考对于一个问题有没有多钟解决方案,使用不同的逻辑结构多种尝试寻求 最优解。程序设计题那么是自主的设计实践,在练习中获得进一步提升,增强对于所学 知识的熟练度和理解程度,锻炼能力。目录1表达式和标准输入输出实验 32流程控制
16、实验113函数程序与结构实验204编译预处理实验285数组实验356指针实验427结构与联合实验528文件实验613函数与程序结构实验2.1实验目的(1) 熟悉和掌握函数的定义、声明,函数调用与参数传递方法,以及函数 返回值类型的定义和返回值使用。(2) 熟悉和掌握不同存储类型变量的使用。(3) 熟悉多文件编译技术。(4) 使用集成开发环境中的调试功能:单步执行、设置断点、观察变量值。 2. 2实验内容及要求2.2.1.源程序改错下面是计算s = 1 !+2!+3!+n!的源程序,在这个源程序中存在假设干 语法和逻辑错误。要求在电脑上对这个例子源程序进行调试修改,使之能 够正确完成指定任务。程
17、序代码:#includeint main(void)int k;for(k=1 ;kv6;k+)printf(k=%dtthe sum is %ldn, k, sum_fac(k);)return 0;longsum_fac(int n)long s = 0;inti;long fac;for(i=1; i=n; i+) fac *= i;s += fac; return s;)【分析及改正】本程序共存在3处错误,分析如下:(1) return 0;错误脉因:return返值应该在main函数内部改正:return 0; long fac;错误原因:fac未赋予初始值,会导致接下来计算错误。改
18、正:long fac=1;3) s += fac;错误原因:语句s+=fac;不在函数for内部,逻辑出错。改正:for(i=1;iv=n;i+)fac*=i;s+=fac; )源程序修改替换(1)修改上术源程序中的sumjac函数,使其计算量最小。2)修改上述源程序中的sumjac函数,计算s =1+1/(21)+1/(3!)+1/(n!)【分析】(1)利用static变量类型对循环进行化简,保存上一个值,防止屡次重复循环。流程图如下:(2) 相比拟于源程序,变动之处在于求的是阶乘的倒数和,那么在循环中多 步求倒数的过程,并对倒数求和。流程图如下:开始k=l,s=O,fac=lJ=l【程序】
19、1)#include long sum_fac();int main()(int k;for(k=l;k6;k+) printf(k=%dtthe sum is %ldn,k,sum_fac(k); return 0;static long s=O,fac=l;long sum_fac(int n)(fac*=n;s+=fac;return s;#include float sum_facQ;int main。(int k;for(k=l;k6;k+) printf(k=%dtthe sum is %fn,k,sum_fac(k);return 0;)float sum_fac(int n)(
20、long fac=l;inti;float x,s=0;for(i=l;i=n;i+) fac*=i;x=1.0/fac;s+=x;)return s;C=1thesunis1c=2thesunis3c=3thesunis9c=4thesunis33c=5thesunis153cessreturned0【测试】1)程序运行结果如下,程序正确。execution tine : 0.151 s Tess any key to continue.(2)程序运行结果如下,程序正确。=1thesunis1.000000=2thesunis1.500000=3thesunis1.666667=4thesu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华中科技大学 语言 实验 课程设计 上机 报告 汇总 全部
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。